private void Abort() { if (this.status != 1) { this.status = 2; } return; }
public override ICodeNode VisitVariableReferenceExpression(VariableReferenceExpression node) { if (this.status == 2) { throw new Exception("Invalid state"); } if ((object)node.get_Variable().Resolve() != (object)this.variableDef) { return(node); } this.status = 1; return(this.GetNewValue(node)); }
public bool TryInlineVariable(VariableDefinition variableDef, Expression value, ICodeNode target, bool aggressive, out ICodeNode result) { this.variableDef = variableDef; this.value = value; if (!aggressive) { V_1 = new SimpleVariableInliner.ASTNodeCounter(); if (V_1.CountNodes(value) + V_1.CountNodes(target) - 1 > 10) { result = target; return(false); } } this.valueHasSideEffects = (new SideEffectsFinder()).HasSideEffectsRecursive(value); this.status = 0; result = this.Visit(target); return(this.status == 1); }