コード例 #1
0
			V_0 = Expression.Parameter(Type.GetTypeFromHandle(// 
			// Current member / type: System.Void Mix.Cms.Lib.ViewModels.MixAttributeSetDatas.UpdateViewModel::ExpandView(Mix.Cms.Lib.Models.Cms.MixCmsContext,Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction)
			// Exception in: System.Void ExpandView(Mix.Cms.Lib.Models.Cms.MixCmsContext,Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction)
			// Specified method is not supported.
			// 
			// mailto: [email protected]


		private void ParseData()
		{
			stackVariable1 = new JObject();
			stackVariable1.Add(new JProperty("id", this.get_Id()));
			stackVariable1.Add(new JProperty("specificulture", this.get_Specificulture()));
			stackVariable1.Add(new JProperty("createdDateTime", (object)this.get_CreatedDateTime()));
			this.set_Data(stackVariable1);
			stackVariable16 = this.get_Values();
			stackVariable17 = Mix.Cms.Lib.ViewModels.MixAttributeSetDatas.UpdateViewModel.u003cu003ec.u003cu003e9__81_0;
			if (stackVariable17 == null)
			{
				dummyVar0 = stackVariable17;
				stackVariable17 = new Func<Mix.Cms.Lib.ViewModels.MixAttributeSetValues.UpdateViewModel, int>(Mix.Cms.Lib.ViewModels.MixAttributeSetDatas.UpdateViewModel.u003cu003ec.u003cu003e9.u003cParseDatau003eb__81_0);
				Mix.Cms.Lib.ViewModels.MixAttributeSetDatas.UpdateViewModel.u003cu003ec.u003cu003e9__81_0 = stackVariable17;
			}
			V_0 = stackVariable16.OrderBy<Mix.Cms.Lib.ViewModels.MixAttributeSetValues.UpdateViewModel, int>(stackVariable17).GetEnumerator();
			try
			{
				while (V_0.MoveNext())
				{
					V_1 = V_0.get_Current();
					this.get_Data().Add(this.ParseValue(V_1));
				}
			}
			finally
			{
				if (V_0 != null)
				{
					V_0.Dispose();
				}
			}
			return;
		}
コード例 #2
0
        private void FixAssignmentInList(IList <Expression> expressionList, Expression value)
        {
            V_0 = expressionList.GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if (V_1.get_CodeNodeType() != 24)
                    {
                        continue;
                    }
                    V_2 = V_1 as BinaryExpression;
                    if (!V_2.get_IsAssignmentExpression() || V_2.get_Right() != value)
                    {
                        continue;
                    }
                    dummyVar0 = this.AddAssignmentCastIfNeeded(V_2);
                    goto Label0;
                }
            }
            finally
            {
                if (V_0 != null)
                {
                    V_0.Dispose();
                }
            }
Label0:
            return;
        }
コード例 #3
0
        private MethodDefinition GetStateMachineMethod(string name)
        {
            V_0 = this.stateMachineTypeDef.get_Methods().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if (!String.op_Equality(V_1.get_Name(), name))
                    {
                        continue;
                    }
                    V_2 = V_1;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_2);

Label0:
            return(null);
        }
コード例 #4
0
        public static bool IsAsync(this MethodDefinition self, out TypeDefinition asyncStateMachineType)
        {
            asyncStateMachineType = null;
            V_0 = self.get_CustomAttributes().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    if (!MethodDefinitionExtensions.IsAsyncAttribute(V_0.get_Current(), self, self.get_DeclaringType(), out asyncStateMachineType))
                    {
                        continue;
                    }
                    V_1 = true;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_1);

Label0:
            return(false);
        }
コード例 #5
0
 private void ChangeCasesLabel()
 {
     V_0 = this.theSwitch.get_Cases().GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             if (V_1.get_CodeNodeType() != 13)
             {
                 continue;
             }
             V_2 = V_1 as ConditionCase;
             V_3 = V_2.get_Condition() as LiteralExpression;
             if (V_3 == null || V_3.get_Value() as String != null)
             {
                 continue;
             }
             V_2.set_Condition(this.FixCaseLiteralValue(V_3));
         }
     }
     finally
     {
         if (V_0 != null)
         {
             V_0.Dispose();
         }
     }
     return;
 }
コード例 #6
0
        internal static bool HasAnonymousParameter(Collection <ParameterDefinition> parameters)
        {
            V_0 = parameters.GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    if (!V_0.get_Current().get_ParameterType().ContainsAnonymousType())
                    {
                        continue;
                    }
                    V_1 = true;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_1);

Label0:
            return(false);
        }
コード例 #7
0
        private bool TryGetExceptionHandler(InstructionBlock theBlock, out ExceptionHandler theHandler)
        {
            V_0 = this.theDisposeCFG.get_RawExceptionHandlers().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if ((object)V_1.get_TryStart() != (object)theBlock.get_First())
                    {
                        continue;
                    }
                    theHandler = V_1;
                    V_2        = true;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_2);

Label0:
            theHandler = null;
            return(false);
        }
コード例 #8
0
 private void UpdateVariablesType()
 {
     V_0 = this.get_ContainedNodes().GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             stackVariable6             = V_0.get_Current();
             stackVariable6.inferedType = this.inferedType;
             stackVariable6.UpdateVariablesType();
         }
     }
     finally
     {
         if (V_0 != null)
         {
             V_0.Dispose();
         }
     }
     if (this.variable != null)
     {
         this.variable.set_VariableType(this.inferedType);
     }
     return;
 }
コード例 #9
0
        private T GetFirst <T>(IEnumerable <T> collection)
        {
            V_0 = collection.GetEnumerator();
            try
            {
                if (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                }
                else
                {
                    goto Label0;
                }
            }
            finally
            {
                if (V_0 != null)
                {
                    V_0.Dispose();
                }
            }
            return(V_1);

Label0:
            throw new Exception("Collection empty");
        }
        private PropertyDefinition FindPropertyOfType(TypeDefinition typeDefinition, TypeReference parameterType)
        {
            V_0 = typeDefinition.get_Properties().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if ((object)V_1.get_PropertyType() != (object)parameterType)
                    {
                        continue;
                    }
                    V_2 = V_1;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_2);

Label0:
            return(null);
        }
コード例 #11
0
        private bool HasMethodParameterWithSameName(string name)
        {
            V_0 = this.methodContext.get_Method().get_Parameters().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if (this.context.get_Language().get_IdentifierComparer().Compare(V_1.get_Name(), name) != 0)
                    {
                        continue;
                    }
                    V_2 = true;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_2);

Label0:
            return(false);
        }
コード例 #12
0
        private TypeReference GetUseInArrayIndexer(ArrayIndexerExpression arrayIndexerExpression, VariableReference variable)
        {
            V_0 = arrayIndexerExpression.get_Indices().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if (V_1 as VariableReferenceExpression == null || (object)(V_1 as VariableReferenceExpression).get_Variable() != (object)variable)
                    {
                        continue;
                    }
                    V_2 = this.typeSystem.get_Int32();
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                if (V_0 != null)
                {
                    V_0.Dispose();
                }
            }
Label1:
            return(V_2);

Label0:
            return(new TypeReference("System", "Array", this.typeSystem.get_Object().get_Module(), this.typeSystem.get_Object().get_Scope()));
        }
コード例 #13
0
        private bool IsUnsafe(IEnumerable <Instruction> methodBody)
        {
            V_0 = methodBody.GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if (!OpCode.op_Equality(V_1.get_OpCode(), OpCodes.Conv_U) && !OpCode.op_Equality(V_1.get_OpCode(), OpCodes.Conv_I))
                    {
                        continue;
                    }
                    V_2 = true;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                if (V_0 != null)
                {
                    V_0.Dispose();
                }
            }
Label1:
            return(V_2);

Label0:
            return(false);
        }
コード例 #14
0
		public static bool IsAsyncStateMachine(this TypeDefinition self)
		{
			V_0 = self.get_Interfaces().GetEnumerator();
			try
			{
				while (V_0.MoveNext())
				{
					if (!String.op_Equality(V_0.get_Current().get_FullName(), "System.Runtime.CompilerServices.IAsyncStateMachine"))
					{
						continue;
					}
					V_1 = true;
					goto Label1;
				}
				goto Label0;
			}
			finally
			{
				V_0.Dispose();
			}
		Label1:
			return V_1;
		Label0:
			return false;
		}
コード例 #15
0
        public static AssemblyNameReference GetReferencedCoreLibraryRef(this ModuleDefinition self, string coreLibraryName)
        {
            if (self == null)
            {
                throw new ArgumentNullException("Module definition is null.");
            }
            if (String.op_Equality(self.get_Assembly().get_Name().get_Name(), coreLibraryName))
            {
                return(self.get_Assembly().get_Name());
            }
            V_0 = self.get_AssemblyReferences().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if (!String.op_Equality(V_1.get_Name(), coreLibraryName))
                    {
                        continue;
                    }
                    V_2 = V_1;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_2);

Label0:
            return(null);
        }
コード例 #16
0
        private static bool HasAttribute(TypeDefinition declaringType, string attributeType, out CustomAttribute attribute)
        {
            V_0 = declaringType.get_CustomAttributes().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if (!String.op_Equality(V_1.get_AttributeType().get_FullName(), attributeType))
                    {
                        continue;
                    }
                    attribute = V_1;
                    if (!attribute.get_IsResolved())
                    {
                        attribute.Resolve();
                    }
                    V_2 = true;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_2);

Label0:
            attribute = null;
            return(false);
        }
コード例 #17
0
        private string GetFirstSuggestedName(ICollection <string> suggestedNames)
        {
            V_0 = suggestedNames.GetEnumerator();
            try
            {
                if (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                }
                else
                {
                    goto Label0;
                }
            }
            finally
            {
                if (V_0 != null)
                {
                    V_0.Dispose();
                }
            }
            return(V_1);

Label0:
            return(String.Empty);
        }
コード例 #18
0
        public static bool TryGetDynamicAttribute(this ICustomAttributeProvider self, out CustomAttribute dynamicAttribute)
        {
            if (!self.get_HasCustomAttributes())
            {
                dynamicAttribute = null;
                return(false);
            }
            V_0 = self.get_CustomAttributes().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if (!String.op_Equality(V_1.get_AttributeType().get_FullName(), "System.Runtime.CompilerServices.DynamicAttribute"))
                    {
                        continue;
                    }
                    dynamicAttribute = V_1;
                    V_2 = true;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_2);

Label0:
            dynamicAttribute = null;
            return(false);
        }
コード例 #19
0
 public BlockStatement Process(DecompilationContext context, BlockStatement block)
 {
     this.context         = context;
     this.typeSystem      = context.get_MethodContext().get_Method().get_Module().get_TypeSystem();
     this.methodVariables = new Collection <VariableDefinition>();
     V_0 = context.get_MethodContext().get_Variables().GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             if (context.get_MethodContext().get_VariablesToNotDeclare().Contains(V_1))
             {
                 continue;
             }
             this.methodVariables.Add(V_1);
         }
     }
     finally
     {
         V_0.Dispose();
     }
     this.codeNodeTypes.Push(0);
     this.Visit(block);
     dummyVar0 = this.codeNodeTypes.Pop();
     this.InsertTopLevelDeclarations(block);
     return(block);
 }
コード例 #20
0
 private void MapTheRestOfTheFieldsToVariables()
 {
     V_0 = this.delegateTypeDef.get_Fields().GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             if (this.fieldDefToAssignedValueMap.ContainsKey(V_1))
             {
                 continue;
             }
             stackVariable15 = this.context.get_MethodContext();
             V_3             = stackVariable15.get_LambdaVariablesCount();
             stackVariable15.set_LambdaVariablesCount(V_3 + 1);
             V_2 = new VariableDefinition(String.Concat("lambdaVar", V_3.ToString()), V_1.get_FieldType(), this.context.get_MethodContext().get_Method());
             this.context.get_MethodContext().get_Variables().Add(V_2);
             dummyVar0 = this.context.get_MethodContext().get_VariablesToRename().Add(V_2);
             this.fieldDefToAssignedValueMap.set_Item(V_1, new VariableReferenceExpression(V_2, null));
         }
     }
     finally
     {
         V_0.Dispose();
     }
     return;
 }
コード例 #21
0
 private void CountTypeTokens(TypeReference typeRef, ref int count)
 {
     count = count + 1;
     if (typeRef as GenericInstanceType == null)
     {
         if (typeRef as TypeSpecification != null)
         {
             this.CountTypeTokens((typeRef as TypeSpecification).get_ElementType(), ref count);
         }
     }
     else
     {
         V_0 = (typeRef as GenericInstanceType).get_GenericArguments().GetEnumerator();
         try
         {
             while (V_0.MoveNext())
             {
                 V_1 = V_0.get_Current();
                 this.CountTypeTokens(V_1, ref count);
             }
         }
         finally
         {
             V_0.Dispose();
         }
     }
     return;
 }
コード例 #22
0
 private void GetGuardedBlockToExceptionHandlersMap()
 {
     V_0 = this.theCFG.get_RawExceptionHandlers().GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             V_2 = this.theCFG.get_InstructionToBlockMapping().get_Item(V_1.get_TryStart().get_Offset());
             if (!this.guardedBlockToExceptionHandler.TryGetValue(V_2, out V_3))
             {
                 V_3 = new List <InstructionBlock>();
                 this.guardedBlockToExceptionHandler.set_Item(V_2, V_3);
             }
             V_4 = this.theCFG.get_InstructionToBlockMapping().get_Item(V_1.get_HandlerStart().get_Offset());
             V_3.Add(V_4);
             if (V_1.get_HandlerType() != 1)
             {
                 continue;
             }
             V_5 = this.theCFG.get_InstructionToBlockMapping().get_Item(V_1.get_FilterStart().get_Offset());
             V_3.Add(V_5);
         }
     }
     finally
     {
         V_0.Dispose();
     }
     return;
 }
コード例 #23
0
		private void ParseData()
		{
			stackVariable1 = new JObject();
			stackVariable1.Add(new JProperty("id", this.get_Id()));
			stackVariable1.Add(new JProperty("createdDateTime", (object)this.get_CreatedDateTime()));
			this.set_Data(stackVariable1);
			stackVariable12 = this.get_Values();
			stackVariable13 = Mix.Cms.Lib.ViewModels.MixAttributeSetDatas.ImportViewModel.u003cu003ec.u003cu003e9__69_0;
			if (stackVariable13 == null)
			{
				dummyVar0 = stackVariable13;
				stackVariable13 = new Func<Mix.Cms.Lib.ViewModels.MixAttributeSetValues.ImportViewModel, int>(Mix.Cms.Lib.ViewModels.MixAttributeSetDatas.ImportViewModel.u003cu003ec.u003cu003e9.u003cParseDatau003eb__69_0);
				Mix.Cms.Lib.ViewModels.MixAttributeSetDatas.ImportViewModel.u003cu003ec.u003cu003e9__69_0 = stackVariable13;
			}
			V_0 = stackVariable12.OrderBy<Mix.Cms.Lib.ViewModels.MixAttributeSetValues.ImportViewModel, int>(stackVariable13).GetEnumerator();
			try
			{
				while (V_0.MoveNext())
				{
					V_1 = V_0.get_Current();
					V_1.set_AttributeFieldName(V_1.get_Field().get_Name());
					this.get_Data().Add(this.ParseValue(V_1));
				}
			}
			finally
			{
				if (V_0 != null)
				{
					V_0.Dispose();
				}
			}
			return;
		}
コード例 #24
0
 public DynamicMemberReferenceExpression(Expression target, string memberName, TypeReference type, IEnumerable <Instruction> instructions, IEnumerable <Expression> invocationArguments, IEnumerable <TypeReference> genericTypeArguments = null)
 {
     base(instructions);
     this.set_IsMethodInvocation(true);
     this.set_Target(target);
     this.set_MemberName(memberName);
     this.set_ExpressionType(type);
     this.set_InvocationArguments(new ExpressionCollection());
     V_0 = invocationArguments.GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             this.get_InvocationArguments().Add(V_1);
         }
     }
     finally
     {
         if (V_0 != null)
         {
             V_0.Dispose();
         }
     }
     if (genericTypeArguments != null)
     {
         this.set_GenericTypeArguments(new List <TypeReference>(genericTypeArguments));
     }
     return;
 }
コード例 #25
0
        private static ModuleDefinition GetAssemblyModule(AssemblyDefinition assembly, string moduleFilePath)
        {
            V_0 = assembly.get_Modules().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if (!String.Equals(V_1.get_FilePath(), moduleFilePath, 5))
                    {
                        continue;
                    }
                    V_2 = V_1;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_2);

Label0:
            throw new Exception("Module not found in assembly.");
        }
コード例 #26
0
 public void MapBranchInstructions(IEnumerable <Instruction> branchInstructions)
 {
     V_0 = branchInstructions.GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             if (V_1.get_OpCode().get_Code() == 55 || V_1.get_OpCode().get_Code() == 42)
             {
                 continue;
             }
             throw new InvalidOperationException("Only unconditional branch instructions are allowed");
         }
     }
     finally
     {
         if (V_0 != null)
         {
             V_0.Dispose();
         }
     }
     this.instructions.AddRange(branchInstructions);
     return;
 }
コード例 #27
0
        private static FieldDefinition GetFieldWithName(TypeDefinition typeDef, string eventTypeFullName, string name)
        {
            V_0 = typeDef.get_Fields().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    if (!String.op_Equality(V_1.get_Name(), name) || !String.op_Equality(V_1.get_FieldType().get_FullName(), eventTypeFullName))
                    {
                        continue;
                    }
                    V_2 = V_1;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_2);

Label0:
            return(null);
        }
コード例 #28
0
        private bool TryMatchCanCastPattern(BinaryExpression node, IEnumerable <ICodePattern> patterns, out CanCastExpression result)
        {
            V_0 = patterns.GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = CodePattern.Match(V_0.get_Current(), node);
                    if (!V_1.get_Success())
                    {
                        continue;
                    }
                    result = this.CreateCanCastExpression(V_1, node);
                    V_2    = true;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                if (V_0 != null)
                {
                    V_0.Dispose();
                }
            }
Label1:
            return(V_2);

Label0:
            result = null;
            return(false);
        }
コード例 #29
0
 private void DFSBuild(DFSTNode currentNode)
 {
     dummyVar0 = this.traversedNodes.Add(currentNode);
     dummyVar1 = this.currentPath.Add(currentNode);
     V_0       = LogicalFlowUtilities.GetTraversableSuccessors(currentNode.get_Construct()).GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             if (!this.constructToNodeMap.TryGetValue(V_1, out V_2))
             {
                 continue;
             }
             if (this.traversedNodes.Contains(V_2))
             {
                 if (!this.currentPath.Contains(V_2))
                 {
                     if (!this.IsAncestor(V_2, currentNode))
                     {
                         dummyVar10 = V_2.get_CrossEdgePredecessors().Add(currentNode);
                         dummyVar11 = currentNode.get_CrossEdgeSuccessors().Add(V_2);
                         dummyVar12 = this.theTree.get_CrossEdges().Add(new DFSTEdge(currentNode, V_2));
                     }
                     else
                     {
                         dummyVar7 = V_2.get_ForwardEdgePredecessors().Add(currentNode);
                         dummyVar8 = currentNode.get_ForwardEdgeSucessors().Add(V_2);
                         dummyVar9 = this.theTree.get_ForwardEdges().Add(new DFSTEdge(currentNode, V_2));
                     }
                 }
                 else
                 {
                     dummyVar4 = V_2.get_BackEdgePredecessors().Add(currentNode);
                     dummyVar5 = currentNode.get_BackEdgeSuccessors().Add(V_2);
                     dummyVar6 = this.theTree.get_BackEdges().Add(new DFSTEdge(currentNode, V_2));
                 }
             }
             else
             {
                 V_2.set_Predecessor(currentNode);
                 dummyVar2 = currentNode.get_TreeEdgeSuccessors().Add(V_2);
                 dummyVar3 = this.theTree.get_TreeEdges().Add(new DFSTEdge(currentNode, V_2));
                 this.DFSBuild(V_2);
             }
         }
     }
     finally
     {
         if (V_0 != null)
         {
             V_0.Dispose();
         }
     }
     dummyVar13 = this.currentPath.Remove(currentNode);
     this.theTree.get_ReversePostOrder().Add(currentNode);
     return;
 }
コード例 #30
0
 private void CreateGraph(IEnumerable <IntervalConstruct> intervals)
 {
     V_0 = intervals.GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             V_2 = V_1.get_Children().GetEnumerator();
             try
             {
                 while (V_2.MoveNext())
                 {
                     V_3 = (ILogicalConstruct)V_2.get_Current();
                     V_4 = this.GetNodeSuccessors(V_3).GetEnumerator();
                     try
                     {
                         while (V_4.MoveNext())
                         {
                             V_5 = V_4.get_Current();
                             if (!this.nodeToInterval.ContainsKey(V_5) || this.nodeToInterval.get_Item(V_5) == V_1)
                             {
                                 continue;
                             }
                             V_6 = this.nodeToInterval.get_Item(V_5);
                             if (V_1.get_SameParentSuccessors().Contains(V_6))
                             {
                                 continue;
                             }
                             dummyVar0 = V_1.get_SameParentSuccessors().Add(V_6);
                             dummyVar1 = V_6.get_SameParentPredecessors().Add(V_1);
                         }
                     }
                     finally
                     {
                         if (V_4 != null)
                         {
                             V_4.Dispose();
                         }
                     }
                 }
             }
             finally
             {
                 ((IDisposable)V_2).Dispose();
             }
         }
     }
     finally
     {
         if (V_0 != null)
         {
             V_0.Dispose();
         }
     }
     return;
 }