Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ RewriteAssignBinaryExpression()

Result System.Linq.Expressions.Compiler.StackSpiller.RewriteAssignBinaryExpression ( Expression expr,
Stack stack )
inlineprivate

Definition at line 653 of file StackSpiller.cs.

654 {
655 BinaryExpression binaryExpression = (BinaryExpression)expr;
656 return binaryExpression.Left.NodeType switch
657 {
658 ExpressionType.Index => RewriteIndexAssignment(binaryExpression, stack),
659 ExpressionType.MemberAccess => RewriteMemberAssignment(binaryExpression, stack),
660 ExpressionType.Parameter => RewriteVariableAssignment(binaryExpression, stack),
661 ExpressionType.Extension => RewriteExtensionAssignment(binaryExpression, stack),
662 _ => throw Error.InvalidLvalue(binaryExpression.Left.NodeType),
663 };
664 }
Result RewriteMemberAssignment(BinaryExpression node, Stack stack)
Result RewriteVariableAssignment(BinaryExpression node, Stack stack)
Result RewriteIndexAssignment(BinaryExpression node, Stack stack)
Result RewriteExtensionAssignment(BinaryExpression node, Stack stack)

References System.Linq.Expressions.Error.InvalidLvalue(), System.Linq.Expressions.Compiler.StackSpiller.RewriteExtensionAssignment(), System.Linq.Expressions.Compiler.StackSpiller.RewriteIndexAssignment(), System.Linq.Expressions.Compiler.StackSpiller.RewriteMemberAssignment(), and System.Linq.Expressions.Compiler.StackSpiller.RewriteVariableAssignment().

Referenced by System.Linq.Expressions.Compiler.StackSpiller.RewriteExpression(), and System.Linq.Expressions.Compiler.StackSpiller.RewriteExtensionAssignment().