private void InlineAssignmentInSameBlock() { V_0 = this.methodContext.get_Expressions().get_BlockExpressions().GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = V_0.get_Current(); V_2 = V_1.get_Value(); V_3 = 0; while (V_3 < V_2.get_Count() - 1) { V_4 = V_2.get_Item(V_3) as BinaryExpression; if (V_4 != null && V_4.get_IsAssignmentExpression() && V_4.get_Left().get_CodeNodeType() == 26) { V_5 = (V_4.get_Left() as VariableReferenceExpression).get_Variable().Resolve(); if (this.variablesToInline.Contains(V_5)) { V_6 = V_4.get_Right(); V_7 = new SideEffectsFinder(); V_8 = V_7.HasSideEffectsRecursive(V_6); V_9 = new StackVariablesInliner.VariablesArgumentsAndFieldsFinder(); V_9.Visit(V_6); V_10 = new StackVariablesInliner.VariableReferenceFinder(V_9.get_Variables(), V_9.get_Parameters()); V_11 = V_3 + 1; while (V_11 < V_2.get_Count()) { if (!this.inliner.TryInlineVariable(V_5, V_6, V_2.get_Item(V_11), true, out V_12)) { if (V_8 && V_7.HasSideEffectsRecursive(V_2.get_Item(V_11)) || V_10.ContainsReference(V_2.get_Item(V_11))) { break; } if (V_2.get_Item(V_11).get_CodeNodeType() == 24 && (V_2.get_Item(V_11) as BinaryExpression).get_IsAssignmentExpression()) { V_13 = (V_2.get_Item(V_11) as BinaryExpression).get_Left(); if (V_13.get_CodeNodeType() == 25 && V_9.get_Parameters().Contains((V_13 as ArgumentReferenceExpression).get_Parameter().Resolve()) || V_13.get_CodeNodeType() == 26 && V_9.get_Variables().Contains((V_13 as VariableReferenceExpression).get_Variable().Resolve()) || V_13.get_CodeNodeType() == 30 && V_9.get_Fields().Contains((V_13 as FieldReferenceExpression).get_Field().Resolve())) { break; } } V_11 = V_11 + 1; } else { this.FixContextAfterInlining(V_5); dummyVar0 = this.variablesToInline.Remove(V_5); V_2.set_Item(V_11, (Expression)V_12); V_2.RemoveAt(V_3); stackVariable141 = V_3; if (V_3 > 0) { stackVariable144 = 2; } else { stackVariable144 = 1; } V_3 = stackVariable141 - stackVariable144; break; } } } } V_3 = V_3 + 1; } } } finally { ((IDisposable)V_0).Dispose(); } return; }