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()));
 }
Beispiel #3
0
 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);
 }