public override ICodeNode VisitFieldReferenceExpression(FieldReferenceExpression node) { if (this.state != 3) { return(this.VisitFieldReferenceExpression(node)); } V_1 = node.get_Field().Resolve(); if (V_1 == null) { return(this.VisitFieldReferenceExpression(node)); } if (this.fieldDefToAssignedValueMap.TryGetValue(V_1, out V_0)) { return(V_0.CloneExpressionOnlyAndAttachInstructions(node.get_UnderlyingSameMethodInstructions())); } dummyVar0 = this.VisitFieldReferenceExpression(node); if (node.get_Target() == null || node.get_Target().get_CodeNodeType() != 26) { return(node); } V_2 = (node.get_Target() as VariableReferenceExpression).get_Variable(); if (!this.closuresArchive.TryGetValue(V_2, out V_3) || !V_3.TryGetValue(V_1, out V_0)) { return(node); } return(V_0.CloneExpressionOnlyAndAttachInstructions(node.get_UnderlyingSameMethodInstructions())); }
public override ICodeNode VisitFieldReferenceExpression(FieldReferenceExpression node) { V_1 = node.get_Field().Resolve(); if (V_1 == null || !this.fieldToReplacingExpressionMap.TryGetValue(V_1, out V_0)) { return(this.VisitFieldReferenceExpression(node)); } return(V_0.CloneExpressionOnlyAndAttachInstructions(node.get_UnderlyingSameMethodInstructions())); }
public override ICodeNode VisitFieldReferenceExpression(FieldReferenceExpression node) { if ((object)node.get_Field().get_DeclaringType().Resolve() != (object)this.stateMachineTypeDef) { return(this.VisitFieldReferenceExpression(node)); } V_0 = node.get_Field().Resolve(); if (this.parameterMappings.ContainsKey(V_0)) { return(this.parameterMappings.get_Item(V_0).CloneExpressionOnlyAndAttachInstructions(node.get_UnderlyingSameMethodInstructions())); } V_1 = new VariableDefinition(this.GetFriendlyName(V_0.get_Name()), V_0.get_FieldType(), this.methodContext.get_Method()); this.methodContext.get_Variables().Add(V_1); this.methodContext.get_VariableAssignmentData().Add(V_1, this.asyncData.get_FieldAssignmentData().get_Item(V_0)); dummyVar0 = this.methodContext.get_VariablesToRename().Add(V_1); V_2 = new VariableReferenceExpression(V_1, node.get_UnderlyingSameMethodInstructions()); this.parameterMappings.set_Item(V_0, V_2); return(V_2); }