protected virtual BoundExpression RewriteCompoundAssignmentExpression(BoundCompoundAssignmentExpression node) { var boundVariableExpression = new BoundVariableExpression(node.Variable); var boundBinaryExpression = new BoundBinaryExpression(boundVariableExpression, node.Op, node.Expression); var boundAssignmentExpression = new BoundAssignmentExpression(node.Variable, boundBinaryExpression); return(RewriteAssignmentExpression(boundAssignmentExpression)); }
private static void WriteCompoundAssignmentExpression(BoundCompoundAssignmentExpression node, IndentedTextWriter writer) { writer.WriteIdentifier(node.Variable.Name); writer.WriteSpace(); writer.WritePunctuation(node.Op.SyntaxKind); writer.WritePunctuation(SyntaxKind.EqualsToken); writer.WriteSpace(); node.Expression.WriteTo(writer); }
protected virtual BoundExpression RewriteCompoundAssignmentExpression(BoundCompoundAssignmentExpression node) { var expression = RewriteExpression(node.Expression); if (expression == node.Expression) { return(node); } return(new BoundCompoundAssignmentExpression(node.Syntax, node.Variable, node.Op, expression)); }