コード例 #1
0
 protected virtual void BuildUpHardNodesHierarchy(IEnumerable <ClassHierarchyNode> hardNodes)
 {
     V_0 = new Queue <ClassHierarchyNode>(hardNodes);
     V_1 = new HashSet <ClassHierarchyNode>();
     while (V_0.get_Count() > 0)
     {
         V_2       = V_0.Dequeue();
         dummyVar0 = V_1.Add(V_2);
         dummyVar1 = this.resultingGraph.Add(V_2);
         V_3       = V_2.get_NodeType().Resolve();
         V_4       = null;
         if (V_3 == null)
         {
             continue;
         }
         V_4 = V_3.get_BaseType();
         if (V_4 != null)
         {
             V_5 = this.GetTypeNode(V_4);
             V_2.AddSupertype(V_5);
             if (!V_1.Contains(V_5))
             {
                 V_0.Enqueue(V_5);
             }
         }
         if (V_3.get_IsInterface())
         {
             V_2.AddSupertype(this.GetTypeNode(this.typeSystem.get_Object()));
         }
         V_7 = V_2.get_NodeType().Resolve().get_Interfaces().GetEnumerator();
         try
         {
             while (V_7.MoveNext())
             {
                 V_8 = V_7.get_Current();
                 V_9 = this.GetTypeNode(V_8);
                 V_2.AddSupertype(V_9);
                 if (V_1.Contains(V_9))
                 {
                     continue;
                 }
                 V_0.Enqueue(V_9);
             }
         }
         finally
         {
             if (V_7 != null)
             {
                 V_7.Dispose();
             }
         }
     }
     this.AddObjectClassNodeIfMIssing();
     return;
 }