Пример #1
0
 public ClassHierarchyNode(IEnumerable <ClassHierarchyNode> nodesToMerge)
 {
     this();
     V_0 = null;
     V_1 = nodesToMerge.GetEnumerator();
     try
     {
         while (V_1.MoveNext())
         {
             V_2 = V_1.get_Current();
             if (!V_2.get_IsHardNode())
             {
                 continue;
             }
             if (V_0 != null)
             {
                 throw new InvalidCastException("Cannot infer types.");
             }
             V_0 = V_2.inferedType;
         }
     }
     finally
     {
         if (V_1 != null)
         {
             V_1.Dispose();
         }
     }
     this.inferedType = V_0;
     V_1 = nodesToMerge.GetEnumerator();
     try
     {
         while (V_1.MoveNext())
         {
             V_3             = V_1.get_Current();
             V_3.inferedType = this.inferedType;
             this.get_ContainedNodes().Add(V_3);
             V_3.UpdateVariablesType();
         }
     }
     finally
     {
         if (V_1 != null)
         {
             V_1.Dispose();
         }
     }
     this.RedirectConstraints();
     return;
 }