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

◆ RewriteBlockExpression()

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

Definition at line 986 of file StackSpiller.cs.

987 {
988 BlockExpression blockExpression = (BlockExpression)expr;
989 int expressionCount = blockExpression.ExpressionCount;
990 RewriteAction rewriteAction = RewriteAction.None;
991 Expression[] array = null;
992 for (int i = 0; i < expressionCount; i++)
993 {
994 Expression expression = blockExpression.GetExpression(i);
995 Result result = RewriteExpression(expression, stack);
996 rewriteAction |= result.Action;
997 if (array == null && result.Action != 0)
998 {
999 array = Clone(blockExpression.Expressions, i);
1000 }
1001 if (array != null)
1002 {
1003 array[i] = result.Node;
1004 }
1005 }
1006 if (rewriteAction != 0)
1007 {
1008 expr = blockExpression.Rewrite(null, array);
1009 }
1010 return new Result(rewriteAction, expr);
1011 }
Result RewriteExpression(Expression node, Stack stack)

References System.Linq.Expressions.Compiler.StackSpiller.Result.Action, System.array, System.Linq.Expressions.Compiler.StackSpiller.Result.Node, and System.Linq.Expressions.Compiler.StackSpiller.RewriteExpression().

Referenced by System.Linq.Expressions.Compiler.StackSpiller.RewriteExpression().