| ... | @@ -1591,93 +1591,7 @@ fn renderBuiltinCall( | ... | @@ -1591,93 +1591,7 @@ fn renderBuiltinCall( |
| 1591 | const token_tags = tree.tokens.items(.tag); | 1591 | const token_tags = tree.tokens.items(.tag); |
| 1592 | const main_tokens = tree.nodes.items(.main_token); | 1592 | const main_tokens = tree.nodes.items(.main_token); |
| 1593 | | 1593 | |
| 1594 | // TODO remove before release of 0.12.0 | 1594 | try renderToken(r, builtin_token, .none); // @name |
| 1595 | const slice = tree.tokenSlice(builtin_token); | | |
| 1596 | const rewrite_two_param_cast = params.len == 2 and for ([_][]const u8{ | | |
| 1597 | "@bitCast", | | |
| 1598 | "@errorCast", | | |
| 1599 | "@floatCast", | | |
| 1600 | "@intCast", | | |
| 1601 | "@ptrCast", | | |
| 1602 | "@intFromFloat", | | |
| 1603 | "@floatToInt", | | |
| 1604 | "@enumFromInt", | | |
| 1605 | "@intToEnum", | | |
| 1606 | "@floatFromInt", | | |
| 1607 | "@intToFloat", | | |
| 1608 | "@ptrFromInt", | | |
| 1609 | "@intToPtr", | | |
| 1610 | "@truncate", | | |
| 1611 | }) |name| { | | |
| 1612 | if (mem.eql(u8, slice, name)) break true; | | |
| 1613 | } else false; | | |
| 1614 | | | |
| 1615 | if (rewrite_two_param_cast) { | | |
| 1616 | const after_last_param_token = tree.lastToken(params[1]) + 1; | | |
| 1617 | if (token_tags[after_last_param_token] != .comma) { | | |
| 1618 | // Render all on one line, no trailing comma. | | |
| 1619 | try ais.writer().writeAll("@as"); | | |
| 1620 | try renderToken(r, builtin_token + 1, .none); // ( | | |
| 1621 | try renderExpression(r, params[0], .comma_space); | | |
| 1622 | } else { | | |
| 1623 | // Render one param per line. | | |
| 1624 | try ais.writer().writeAll("@as"); | | |
| 1625 | ais.pushIndent(); | | |
| 1626 | try renderToken(r, builtin_token + 1, .newline); // ( | | |
| 1627 | try renderExpression(r, params[0], .comma); | | |
| 1628 | } | | |
| 1629 | } | | |
| 1630 | // Corresponding logic below builtin name rewrite below | | |
| 1631 | | | |
| 1632 | // TODO remove before release of 0.11.0 | | |
| 1633 | if (mem.eql(u8, slice, "@maximum")) { | | |
| 1634 | try ais.writer().writeAll("@max"); | | |
| 1635 | } else if (mem.eql(u8, slice, "@minimum")) { | | |
| 1636 | try ais.writer().writeAll("@min"); | | |
| 1637 | } | | |
| 1638 | // TODO remove before release of 0.12.0 | | |
| 1639 | else if (mem.eql(u8, slice, "@boolToInt")) { | | |
| 1640 | try ais.writer().writeAll("@intFromBool"); | | |
| 1641 | } else if (mem.eql(u8, slice, "@enumToInt")) { | | |
| 1642 | try ais.writer().writeAll("@intFromEnum"); | | |
| 1643 | } else if (mem.eql(u8, slice, "@errorToInt")) { | | |
| 1644 | try ais.writer().writeAll("@intFromError"); | | |
| 1645 | } else if (mem.eql(u8, slice, "@floatToInt")) { | | |
| 1646 | try ais.writer().writeAll("@intFromFloat"); | | |
| 1647 | } else if (mem.eql(u8, slice, "@intToEnum")) { | | |
| 1648 | try ais.writer().writeAll("@enumFromInt"); | | |
| 1649 | } else if (mem.eql(u8, slice, "@intToError")) { | | |
| 1650 | try ais.writer().writeAll("@errorFromInt"); | | |
| 1651 | } else if (mem.eql(u8, slice, "@intToFloat")) { | | |
| 1652 | try ais.writer().writeAll("@floatFromInt"); | | |
| 1653 | } else if (mem.eql(u8, slice, "@intToPtr")) { | | |
| 1654 | try ais.writer().writeAll("@ptrFromInt"); | | |
| 1655 | } else if (mem.eql(u8, slice, "@ptrToInt")) { | | |
| 1656 | try ais.writer().writeAll("@intFromPtr"); | | |
| 1657 | } else if (mem.eql(u8, slice, "@fabs")) { | | |
| 1658 | try ais.writer().writeAll("@abs"); | | |
| 1659 | } else if (mem.eql(u8, slice, "@errSetCast")) { | | |
| 1660 | try ais.writer().writeAll("@errorCast"); | | |
| 1661 | } else { | | |
| 1662 | try renderToken(r, builtin_token, .none); // @name | | |
| 1663 | } | | |
| 1664 | | | |
| 1665 | if (rewrite_two_param_cast) { | | |
| 1666 | // Matches with corresponding logic above builtin name rewrite | | |
| 1667 | const after_last_param_token = tree.lastToken(params[1]) + 1; | | |
| 1668 | try ais.writer().writeAll("("); | | |
| 1669 | try renderExpression(r, params[1], .none); | | |
| 1670 | try ais.writer().writeAll(")"); | | |
| 1671 | if (token_tags[after_last_param_token] != .comma) { | | |
| 1672 | // Render all on one line, no trailing comma. | | |
| 1673 | return renderToken(r, after_last_param_token, space); // ) | | |
| 1674 | } else { | | |
| 1675 | // Render one param per line. | | |
| 1676 | ais.popIndent(); | | |
| 1677 | try renderToken(r, after_last_param_token, .newline); // , | | |
| 1678 | return renderToken(r, after_last_param_token + 1, space); // ) | | |
| 1679 | } | | |
| 1680 | } | | |
| 1681 | | 1595 | |
| 1682 | if (params.len == 0) { | 1596 | if (params.len == 0) { |
| 1683 | try renderToken(r, builtin_token + 1, .none); // ( | 1597 | try renderToken(r, builtin_token + 1, .none); // ( |
| ... | @@ -1685,6 +1599,7 @@ fn renderBuiltinCall( | ... | @@ -1685,6 +1599,7 @@ fn renderBuiltinCall( |
| 1685 | } | 1599 | } |
| 1686 | | 1600 | |
| 1687 | if (r.fixups.rebase_imported_paths) |prefix| { | 1601 | if (r.fixups.rebase_imported_paths) |prefix| { |
| | 1602 | const slice = tree.tokenSlice(builtin_token); |
| 1688 | if (mem.eql(u8, slice, "@import")) f: { | 1603 | if (mem.eql(u8, slice, "@import")) f: { |
| 1689 | const param = params[0]; | 1604 | const param = params[0]; |
| 1690 | const str_lit_token = main_tokens[param]; | 1605 | const str_lit_token = main_tokens[param]; |