コード例 #1
0
 protected AssignmentType AnalyzeAssignmentType(BaseUsageFinder usageFinder)
 {
     this.PrepareNodes();
     V_0 = new AssignmentAnalyzer(usageFinder, this.context.get_MethodContext().get_Expressions());
     V_1 = V_0.CheckAssignmentType(this.mappedNodes[0]);
     if (V_1 == 1)
     {
         return(1);
     }
     V_2 = V_1;
     V_3 = new List <ExceptionHandler>(this.context.get_MethodContext().get_ControlFlowGraph().get_RawExceptionHandlers());
     do
     {
         V_4 = V_3.get_Count();
         V_5 = 0;
         while (V_5 < V_3.get_Count())
         {
             V_6 = V_3.get_Item(V_5);
             if (this.GetNodeFromBlockOffset(V_6.get_TryStart().get_Offset()).get_NodeState() != AssignmentNodeState.Unknown)
             {
                 stackVariable41 = V_5;
                 V_5             = stackVariable41 - 1;
                 V_3.RemoveAt(stackVariable41);
                 this.CheckHandler(this.GetNodeFromBlockOffset(V_6.get_HandlerStart().get_Offset()), V_0, ref V_2);
                 if (V_2 == 1)
                 {
                     return(1);
                 }
                 if (V_6.get_HandlerType() == 1)
                 {
                     this.CheckHandler(this.GetNodeFromBlockOffset(V_6.get_FilterStart().get_Offset()), V_0, ref V_2);
                     if (V_2 == 1)
                     {
                         return(1);
                     }
                 }
             }
             V_5 = V_5 + 1;
         }
     }while (V_4 != V_3.get_Count());
     return(V_2);
 }