| ... | ... | @@ -2778,13 +2778,13 @@ fn transCreateCompoundAssign( |
| 2778 | 2778 | try transExpr(rp, scope, rhs, .used, .r_value); |
| 2779 | 2779 | |
| 2780 | 2780 | if (is_shift) { |
| 2781 | | const as_node = try transCreateNodeBuiltinFnCall(rp.c, "@as"); |
| 2781 | const cast_node = try transCreateNodeBuiltinFnCall(rp.c, "@intCast"); |
| 2782 | 2782 | const rhs_type = try qualTypeToLog2IntRef(rp, getExprQualType(rp.c, rhs), loc); |
| 2783 | | try as_node.params.push(rhs_type); |
| 2783 | try cast_node.params.push(rhs_type); |
| 2784 | 2784 | _ = try appendToken(rp.c, .Comma, ","); |
| 2785 | | try as_node.params.push(rhs_node); |
| 2786 | | as_node.rparen_token = try appendToken(rp.c, .RParen, ")"); |
| 2787 | | rhs_node = &as_node.base; |
| 2785 | try cast_node.params.push(rhs_node); |
| 2786 | cast_node.rparen_token = try appendToken(rp.c, .RParen, ")"); |
| 2787 | rhs_node = &cast_node.base; |
| 2788 | 2788 | } |
| 2789 | 2789 | if (scope.id != .Condition) |
| 2790 | 2790 | _ = try appendToken(rp.c, .Semicolon, ";"); |
| ... | ... | @@ -2815,13 +2815,13 @@ fn transCreateCompoundAssign( |
| 2815 | 2815 | const bin_token = try appendToken(rp.c, bin_tok_id, bin_bytes); |
| 2816 | 2816 | var rhs_node = try transExpr(rp, scope, rhs, .used, .r_value); |
| 2817 | 2817 | if (is_shift) { |
| 2818 | | const as_node = try transCreateNodeBuiltinFnCall(rp.c, "@as"); |
| 2818 | const cast_node = try transCreateNodeBuiltinFnCall(rp.c, "@intCast"); |
| 2819 | 2819 | const rhs_type = try qualTypeToLog2IntRef(rp, getExprQualType(rp.c, rhs), loc); |
| 2820 | | try as_node.params.push(rhs_type); |
| 2820 | try cast_node.params.push(rhs_type); |
| 2821 | 2821 | _ = try appendToken(rp.c, .Comma, ","); |
| 2822 | | try as_node.params.push(rhs_node); |
| 2823 | | as_node.rparen_token = try appendToken(rp.c, .RParen, ")"); |
| 2824 | | rhs_node = &as_node.base; |
| 2822 | try cast_node.params.push(rhs_node); |
| 2823 | cast_node.rparen_token = try appendToken(rp.c, .RParen, ")"); |
| 2824 | rhs_node = &cast_node.base; |
| 2825 | 2825 | } |
| 2826 | 2826 | const rhs_bin = try transCreateNodeInfixOp(rp, scope, ref_node, bin_op, bin_token, rhs_node, .used, false); |
| 2827 | 2827 | |
| ... | ... | @@ -3883,20 +3883,20 @@ fn transCreateNodeShiftOp( |
| 3883 | 3883 | const lhs = try transExpr(rp, scope, lhs_expr, .used, .l_value); |
| 3884 | 3884 | const op_token = try appendToken(rp.c, op_tok_id, bytes); |
| 3885 | 3885 | |
| 3886 | | const as_node = try transCreateNodeBuiltinFnCall(rp.c, "@as"); |
| 3886 | const cast_node = try transCreateNodeBuiltinFnCall(rp.c, "@intCast"); |
| 3887 | 3887 | const rhs_type = try qualTypeToLog2IntRef(rp, ZigClangBinaryOperator_getType(stmt), rhs_location); |
| 3888 | | try as_node.params.push(rhs_type); |
| 3888 | try cast_node.params.push(rhs_type); |
| 3889 | 3889 | _ = try appendToken(rp.c, .Comma, ","); |
| 3890 | 3890 | const rhs = try transExprCoercing(rp, scope, rhs_expr, .used, .r_value); |
| 3891 | | try as_node.params.push(rhs); |
| 3892 | | as_node.rparen_token = try appendToken(rp.c, .RParen, ")"); |
| 3891 | try cast_node.params.push(rhs); |
| 3892 | cast_node.rparen_token = try appendToken(rp.c, .RParen, ")"); |
| 3893 | 3893 | |
| 3894 | 3894 | const node = try rp.c.a().create(ast.Node.InfixOp); |
| 3895 | 3895 | node.* = ast.Node.InfixOp{ |
| 3896 | 3896 | .op_token = op_token, |
| 3897 | 3897 | .lhs = lhs, |
| 3898 | 3898 | .op = op, |
| 3899 | | .rhs = &as_node.base, |
| 3899 | .rhs = &cast_node.base, |
| 3900 | 3900 | }; |
| 3901 | 3901 | |
| 3902 | 3902 | return &node.base; |