public BlockStatement Process(DecompilationContext context, BlockStatement body)
 {
     this.context = context.get_MethodContext();
     V_0          = context.get_MethodContext().get_Expressions().get_BlockExpressions().GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             this.parentExpressions.Clear();
             V_2 = V_1.get_Value().GetEnumerator();
             try
             {
                 while (V_2.MoveNext())
                 {
                     V_3 = V_2.get_Current();
                     this.Visit(V_3);
                 }
             }
             finally
             {
                 if (V_2 != null)
                 {
                     V_2.Dispose();
                 }
             }
         }
     }
     finally
     {
         ((IDisposable)V_0).Dispose();
     }
     return(body);
 }
 public static NamespaceHierarchyTree BuildNamespaceHierarchyTree(this AssemblyDefinition self)
 {
     V_0 = new HashSet <string>();
     V_1 = self.get_Modules().GetEnumerator();
     try
     {
         while (V_1.MoveNext())
         {
             V_2 = V_1.get_Current().get_Types().GetEnumerator();
             try
             {
                 while (V_2.MoveNext())
                 {
                     V_3 = V_2.get_Current();
                     if (String.op_Equality(V_3.get_Namespace(), String.Empty) && String.op_Equality(V_3.get_Name(), "<Module>"))
                     {
                         continue;
                     }
                     dummyVar0 = V_0.Add(V_3.get_Namespace());
                 }
             }
             finally
             {
                 V_2.Dispose();
             }
         }
     }
     finally
     {
         V_1.Dispose();
     }
     return(NamespaceHierarchyTreeBuilder.BuildTree(V_0));
 }
 private string GetArgumentsString(Collection <ParameterDefinition> parameters)
 {
     if (parameters.get_Count() == 0)
     {
         return(String.Empty);
     }
     V_0       = new StringBuilder();
     dummyVar0 = V_0.Append('(');
     V_1       = true;
     V_2       = parameters.GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             if (!V_1)
             {
                 dummyVar1 = V_0.Append(',');
             }
             V_4       = this.GetParameterTypeRepresentation(V_3.get_ParameterType());
             dummyVar2 = V_0.Append(V_4);
             V_1       = false;
         }
     }
     finally
     {
         V_2.Dispose();
     }
     dummyVar3 = V_0.Append(')');
     return(V_0.ToString());
 }
 private void RemoveTransitiveEdges()
 {
     V_0 = this.GenerateNodeToIndex();
     V_1 = this.GeenrateAdjacencyMatrix(V_0);
     this.WarsawTransitiveClosure(V_1);
     V_2 = this.inferenceGraph.GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             V_4 = this.inferenceGraph.GetEnumerator();
             try
             {
                 while (V_4.MoveNext())
                 {
                     V_5 = V_4.get_Current();
                     V_6 = this.inferenceGraph.GetEnumerator();
                     try
                     {
                         while (V_6.MoveNext())
                         {
                             V_7  = V_6.get_Current();
                             V_8  = V_0.get_Item(V_3);
                             V_9  = V_0.get_Item(V_5);
                             V_10 = V_0.get_Item(V_7);
                             if (!V_1[V_8, V_9] || !V_1[V_9, V_10] || V_3.get_IsHardNode() && V_7.get_IsHardNode() || !V_3.get_SubTypes().Contains(V_7))
                             {
                                 continue;
                             }
                             this.RemoveSubtype(V_3, V_7);
                         }
                     }
                     finally
                     {
                         if (V_6 != null)
                         {
                             V_6.Dispose();
                         }
                     }
                 }
             }
             finally
             {
                 if (V_4 != null)
                 {
                     V_4.Dispose();
                 }
             }
         }
     }
     finally
     {
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     return;
 }
Beispiel #5
0
 protected virtual void OnPhiVariableAssigned(int instructionOffset, ClassHierarchyNode variableNode)
 {
     V_0 = this.offsetToExpression.get_Item(instructionOffset).get_ExpressionType();
     if (V_0 != null)
     {
         V_1 = this.GetTypeNode(V_0);
         V_1.AddSupertype(variableNode);
         dummyVar1 = this.resultingGraph.Add(V_1);
         return;
     }
     V_2 = this.GetVariables(instructionOffset).GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             V_1 = this.GetVariableNode(V_3);
             V_1.AddSupertype(variableNode);
             dummyVar0 = this.resultingGraph.Add(V_1);
         }
     }
     finally
     {
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     return;
 }
Beispiel #6
0
 protected override ClassHierarchyNode FindLowestCommonAncestor(ICollection <ClassHierarchyNode> typeNodes)
 {
     V_0 = null;
     V_1 = -2147483648;
     V_2 = typeNodes.GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             V_4 = ExpressionTypeInferer.GetTypeIndex(V_3.get_NodeType());
             if (V_4 <= V_1)
             {
                 continue;
             }
             V_1 = V_4;
             V_0 = V_3;
         }
     }
     finally
     {
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     return(V_0);
 }
Beispiel #7
0
 private ClassHierarchyNode FindGreatestCommonDescendant(ICollection <ClassHierarchyNode> typeNodes)
 {
     V_0 = null;
     V_1 = 0x7fffffff;
     V_2 = typeNodes.GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             V_4 = ExpressionTypeInferer.GetTypeIndex(V_3.get_NodeType());
             if (V_4 >= V_1)
             {
                 continue;
             }
             V_1 = V_4;
             V_0 = V_3;
         }
     }
     finally
     {
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     return(V_0);
 }
Beispiel #8
0
        private bool GetDisposeMethodCFG()
        {
            V_0 = "System.Void System.IDisposable.Dispose()";
            V_1 = null;
            V_2 = this.moveNextMethodDefinition.get_DeclaringType().get_Methods().GetEnumerator();
            try
            {
                while (V_2.MoveNext())
                {
                    V_3 = V_2.get_Current();
                    if (!String.op_Equality(V_3.GetFullMemberName(null), V_0))
                    {
                        continue;
                    }
                    V_1 = V_3;
                    goto Label0;
                }
            }
            finally
            {
                V_2.Dispose();
            }
Label0:
            if (V_1 == null)
            {
                return(false);
            }
            this.theDisposeCFG = (new ControlFlowGraphBuilder(V_1)).CreateGraph();
            return(true);
        }
Beispiel #9
0
 private ICollection <int> MergeSearchableEnumerables(IEnumerable <IEnumerable <Instruction> > enumerables)
 {
     V_0 = new HashSet <int>();
     V_1 = enumerables.GetEnumerator();
     try
     {
         while (V_1.MoveNext())
         {
             V_2 = V_1.get_Current().GetEnumerator();
             try
             {
                 while (V_2.MoveNext())
                 {
                     V_3       = V_2.get_Current();
                     dummyVar0 = V_0.Add(V_3.get_Offset());
                 }
             }
             finally
             {
                 if (V_2 != null)
                 {
                     V_2.Dispose();
                 }
             }
         }
     }
     finally
     {
         if (V_1 != null)
         {
             V_1.Dispose();
         }
     }
     return(V_0);
 }
Beispiel #10
0
        private IEnumerable <Statement> GetStatements()
        {
            V_0 = null;
            V_2 = this.yieldDeclaringType.get_Methods().GetEnumerator();
            try
            {
                while (V_2.MoveNext())
                {
                    V_3 = V_2.get_Current();
                    if (!String.op_Equality(V_3.get_Name(), "MoveNext"))
                    {
                        continue;
                    }
                    V_0 = V_3;
                    goto Label0;
                }
            }
            finally
            {
                V_2.Dispose();
            }
Label0:
            if (V_0 == null || V_0.get_Body() == null)
            {
                return(null);
            }
            V_1 = V_0.get_Body().DecompileYieldStateMachine(this.decompilationContext, out this.yieldData);
            if (V_1 == null)
            {
                return(null);
            }
            return(this.GetStatements(V_1));
        }
 private List <MethodDefinition> GetSameNameMethods(TypeDefinition declaringTypeDefinition, MethodReference method, ExpressionCollection arguments)
 {
     V_0 = new List <MethodDefinition>();
     V_1 = method.Resolve();
     if (V_1 == null)
     {
         return(V_0);
     }
     V_2 = declaringTypeDefinition.get_Methods().GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             if (String.op_Inequality(V_3.get_Name(), method.get_Name()) || V_3.get_HasParameters() != method.get_HasParameters() || V_3.get_Parameters().get_Count() != method.get_Parameters().get_Count() || (object)V_3 == (object)V_1 || V_3.get_HasGenericParameters() != V_1.get_HasGenericParameters() || !this.ArgumentsMatchParameters(V_3.get_Parameters(), arguments))
             {
                 continue;
             }
             V_0.Add(V_3);
         }
     }
     finally
     {
         V_2.Dispose();
     }
     return(V_0);
 }
Beispiel #12
0
 public static ICollection <ImplementedMember> GetImplementedProperties(this PropertyReference self)
 {
     V_0 = new List <ImplementedMember>();
     V_1 = self.Resolve();
     if (V_1 == null)
     {
         return(V_0);
     }
     if (V_1.get_GetMethod() != null)
     {
         V_2 = V_1.get_GetMethod().GetImplementedMethods().GetEnumerator();
         try
         {
             while (V_2.MoveNext())
             {
                 V_3 = V_2.get_Current();
                 V_4 = PropertyDefinitionExtensions.GetMethodDeclaringProperty(V_3.get_Member() as MethodReference);
                 if (V_4 == null)
                 {
                     continue;
                 }
                 V_0.Add(new ImplementedMember(V_3.get_DeclaringType(), V_4));
             }
         }
         finally
         {
             if (V_2 != null)
             {
                 V_2.Dispose();
             }
         }
         return(V_0);
     }
     if (V_1.get_SetMethod() == null)
     {
         return(V_0);
     }
     V_2 = V_1.get_SetMethod().GetImplementedMethods().GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_5 = V_2.get_Current();
             V_6 = PropertyDefinitionExtensions.GetMethodDeclaringProperty(V_5.get_Member() as MethodReference);
             if (V_6 == null)
             {
                 continue;
             }
             V_0.Add(new ImplementedMember(V_5.get_DeclaringType(), V_6));
         }
     }
     finally
     {
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     return(V_0);
 }
 private Dictionary <PropertyDefinition, Expression> GetPropertyToValueMap(Expression expression)
 {
     V_0 = expression as AnonymousObjectCreationExpression;
     if (V_0 == null || V_0.get_Initializer().get_Expressions().get_Count() != 2)
     {
         return(null);
     }
     V_1 = new Dictionary <PropertyDefinition, Expression>();
     V_2 = V_0.get_Initializer().get_Expressions().GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = (BinaryExpression)V_2.get_Current();
             V_1.Add(((AnonymousPropertyInitializerExpression)V_3.get_Left()).get_Property(), V_3.get_Right());
         }
     }
     finally
     {
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     return(V_1);
 }
Beispiel #14
0
 protected ILogicalConstruct[] GetSortedArrayFromCollection <T>(ICollection <T> collection)
     where T : ISingleEntrySubGraph
 {
     V_0 = new ILogicalConstruct[collection.get_Count()];
     V_1 = 0;
     V_2 = collection.GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3                  = (ILogicalConstruct)(object)V_2.get_Current();
             stackVariable13      = V_1;
             V_1                  = stackVariable13 + 1;
             V_0[stackVariable13] = V_3;
         }
     }
     finally
     {
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     Array.Sort <ISingleEntrySubGraph>(V_0);
     return(V_0);
 }
Beispiel #15
0
        private void MergeWithSingleChild()
        {
            V_0 = false;
            do
            {
                V_1 = null;
                V_2 = this.inferenceGraph.GetEnumerator();
                try
                {
                    while (V_2.MoveNext())
                    {
                        V_3 = V_2.get_Current();
                        if (V_3.get_IsHardNode() || V_3.get_CanAssignTo().get_Count() != 1 || V_3.get_SubTypes().get_Count() != 0)
                        {
                            continue;
                        }
                        V_4 = null;
                        V_5 = V_3.get_CanAssignTo().GetEnumerator();
                        try
                        {
                            if (V_5.MoveNext())
                            {
                                V_4 = V_5.get_Current();
                            }
                        }
                        finally
                        {
                            if (V_5 != null)
                            {
                                V_5.Dispose();
                            }
                        }
                        stackVariable27    = new ClassHierarchyNode[2];
                        stackVariable27[0] = V_3;
                        stackVariable27[1] = V_4;
                        V_1 = (ICollection <ClassHierarchyNode>)stackVariable27;
                        V_0 = true;
                        goto Label0;
                    }
                }
                finally
                {
                    if (V_2 != null)
                    {
                        V_2.Dispose();
                    }
                }
Label0:
                if (!V_0)
                {
                    continue;
                }
                this.MergeNodes(V_1);
            }while (V_0);
            return;
        }
        public IEnumerable <ICollection <ClassHierarchyNode> > GetConnectedComponents()
        {
            do
            {
                V_0 = null;
                V_2 = this.inferenceGraph.GetEnumerator();
                try
                {
                    while (V_2.MoveNext())
                    {
                        V_3 = V_2.get_Current();
                        if (this.used.ContainsKey(V_3))
                        {
                            continue;
                        }
                        V_0 = V_3;
                        goto Label0;
                    }
                }
                finally
                {
                    if (V_2 != null)
                    {
                        V_2.Dispose();
                    }
                }
Label0:
                if (V_0 == null)
                {
                    continue;
                }
                this.RecursiveDfs(V_0);
            }while (V_0 != null);
            V_1 = new ICollection <ClassHierarchyNode> [this.componentCount];
            V_4 = this.nodeToComponent.get_Keys().GetEnumerator();
            try
            {
                while (V_4.MoveNext())
                {
                    V_5 = V_4.get_Current();
                    V_6 = this.nodeToComponent.get_Item(V_5);
                    if (V_1[V_6] == null)
                    {
                        V_1[V_6] = new List <ClassHierarchyNode>();
                    }
                    ((List <ClassHierarchyNode>)V_1[V_6]).Add(V_5);
                }
            }
            finally
            {
                ((IDisposable)V_4).Dispose();
            }
            return(V_1);
        }
        private Dictionary <string, string> GetRenamedNamespacesMap(ModuleDefinition module, ILanguage langugage)
        {
            V_0 = new Dictionary <string, string>();
            if (!this.renameInvalidMembers)
            {
                return(V_0);
            }
            V_1 = new HashSet <string>();
            V_2 = module.get_Types().GetEnumerator();
            try
            {
Label0:
                while (V_2.MoveNext())
                {
                    V_3 = V_2.get_Current().GetNamespace();
                    if (!String.op_Equality(V_3, String.Empty))
                    {
                        if (V_1.Contains(V_3))
                        {
                            continue;
                        }
                        dummyVar1          = V_1.Add(V_3);
                        stackVariable23    = new Char[1];
                        stackVariable23[0] = '.';
                        V_4 = V_3.Split(stackVariable23);
                        V_5 = V_4;
                        V_6 = 0;
                        while (V_6 < (int)V_5.Length)
                        {
                            if (langugage.IsValidIdentifier(V_5[V_6]))
                            {
                                V_6 = V_6 + 1;
                            }
                            else
                            {
                                V_0.Add(V_3, this.EscapeNamespace(V_4, langugage));
                                goto Label0;
                            }
                        }
                    }
                    else
                    {
                        dummyVar0 = V_1.Add(V_3);
                    }
                }
            }
            finally
            {
                V_2.Dispose();
            }
            return(V_0);
        }
Beispiel #18
0
 public List <FileViewModel> GetUploadFiles(string folder)
 {
     stackVariable1    = new string[2];
     stackVariable1[0] = "Content/Uploads";
     stackVariable1[1] = folder;
     V_0 = CommonHelper.GetFullPath(stackVariable1);
     this.CreateDirectoryIfNotExist(V_0);
     stackVariable11 = (new DirectoryInfo(V_0)).GetFiles();
     V_1             = new List <FileViewModel>();
     stackVariable13 = FileRepository.u003cu003ec.u003cu003e9__26_0;
     if (stackVariable13 == null)
     {
         dummyVar0       = stackVariable13;
         stackVariable13 = new Func <FileInfo, DateTime>(FileRepository.u003cu003ec.u003cu003e9.u003cGetUploadFilesu003eb__26_0);
         FileRepository.u003cu003ec.u003cu003e9__26_0 = stackVariable13;
     }
     V_2 = ((IEnumerable <FileInfo>)stackVariable11).OrderByDescending <FileInfo, DateTime>(stackVariable13).GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             V_4 = V_3.OpenText();
             try
             {
                 stackVariable23 = new FileViewModel();
                 stackVariable23.set_FileFolder(folder);
                 stackVariable23.set_Filename(V_3.get_Name().Substring(0, V_3.get_Name().LastIndexOf('.')));
                 stackVariable23.set_Extension(V_3.get_Extension());
                 stackVariable23.set_Content(V_4.ReadToEnd());
                 V_1.Add(stackVariable23);
             }
             finally
             {
                 if (V_4 != null)
                 {
                     ((IDisposable)V_4).Dispose();
                 }
             }
         }
     }
     finally
     {
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     return(V_1);
 }
Beispiel #19
0
        protected bool TryGetArrayCreation(StatementCollection statements, int startIndex, out ArrayCreationExpression creation, out Expression assignee)
        {
            assignee = null;
            creation = null;
            if (!this.TryGetAssignment(statements, startIndex, out V_0))
            {
                return(false);
            }
            if (V_0.get_Right().get_CodeNodeType() != 38)
            {
                return(false);
            }
            V_1 = V_0.get_Right() as ArrayCreationExpression;
            if (!V_0.get_Right().get_HasType() || !V_0.get_Right().get_ExpressionType().get_IsArray())
            {
                return(false);
            }
            if (V_1.get_Dimensions().get_Count() != 1)
            {
                return(false);
            }
            V_2 = V_1.get_Dimensions().GetEnumerator();
            try
            {
                while (V_2.MoveNext())
                {
                    if (V_2.get_Current().get_CodeNodeType() == 22)
                    {
                        continue;
                    }
                    V_3 = false;
                    goto Label1;
                }
                goto Label0;
            }
            finally
            {
                if (V_2 != null)
                {
                    V_2.Dispose();
                }
            }
Label1:
            return(V_3);

Label0:
            creation = V_0.get_Right() as ArrayCreationExpression;
            assignee = V_0.get_Left();
            return(true);
        }
        public static bool HasCustomAttribute(this ICustomAttributeProvider attributeProvider, IEnumerable <string> attributeTypes)
        {
            if (attributeProvider == null || attributeTypes == null)
            {
                return(false);
            }
            if (!attributeProvider.get_HasCustomAttributes())
            {
                return(false);
            }
            V_0 = attributeProvider.get_CustomAttributes().GetEnumerator();
            try
            {
                while (V_0.MoveNext())
                {
                    V_1 = V_0.get_Current();
                    V_2 = attributeTypes.GetEnumerator();
                    try
                    {
                        while (V_2.MoveNext())
                        {
                            V_3 = V_2.get_Current();
                            if (!String.op_Equality(V_1.get_AttributeType().get_FullName(), V_3))
                            {
                                continue;
                            }
                            V_4 = true;
                            goto Label1;
                        }
                    }
                    finally
                    {
                        if (V_2 != null)
                        {
                            V_2.Dispose();
                        }
                    }
                }
                goto Label0;
            }
            finally
            {
                V_0.Dispose();
            }
Label1:
            return(V_4);

Label0:
            return(false);
        }
Beispiel #21
0
 public List <FileViewModel> GetTopFiles(string folder)
 {
     V_0 = new List <FileViewModel>();
     if (Directory.Exists(folder))
     {
         stackVariable5 = new DirectoryInfo(folder);
         V_1            = stackVariable5.get_Name();
         stackVariable7 = stackVariable5.GetFiles();
         stackVariable8 = FileRepository.u003cu003ec.u003cu003e9__28_0;
         if (stackVariable8 == null)
         {
             dummyVar0      = stackVariable8;
             stackVariable8 = new Func <FileInfo, DateTime>(FileRepository.u003cu003ec.u003cu003e9.u003cGetTopFilesu003eb__28_0);
             FileRepository.u003cu003ec.u003cu003e9__28_0 = stackVariable8;
         }
         V_2 = ((IEnumerable <FileInfo>)stackVariable7).OrderByDescending <FileInfo, DateTime>(stackVariable8).GetEnumerator();
         try
         {
             while (V_2.MoveNext())
             {
                 V_3             = V_2.get_Current();
                 stackVariable15 = V_0;
                 stackVariable16 = new FileViewModel();
                 stackVariable16.set_FolderName(V_1);
                 stackVariable16.set_FileFolder(folder);
                 stackVariable20 = V_3.get_Name();
                 if (V_3.get_Name().LastIndexOf('.') >= 0)
                 {
                     stackVariable30 = V_3.get_Name().LastIndexOf('.');
                 }
                 else
                 {
                     stackVariable30 = 0;
                 }
                 stackVariable16.set_Filename(stackVariable20.Substring(0, stackVariable30));
                 stackVariable16.set_Extension(V_3.get_Extension());
                 stackVariable15.Add(stackVariable16);
             }
         }
         finally
         {
             if (V_2 != null)
             {
                 V_2.Dispose();
             }
         }
     }
     return(V_0);
 }
 public static ISingleEntrySubGraph FindFirstCommonParent(IEnumerable <ISingleEntrySubGraph> blocks)
 {
     V_0 = new Queue <ISingleEntrySubGraph>();
     V_1 = new HashSet <ISingleEntrySubGraph>();
     V_2 = blocks.GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             if (V_0.get_Count() != 0)
             {
                 V_5 = V_3;
                 while (!V_1.Contains(V_5))
                 {
                     V_5 = V_5.get_Parent();
                 }
                 if (!V_1.Contains(V_5))
                 {
                     continue;
                 }
                 while (V_0.Peek() != V_5)
                 {
                     dummyVar1 = V_1.Remove(V_0.Dequeue());
                 }
             }
             else
             {
                 V_4 = V_3;
                 while (V_4 != null)
                 {
                     V_0.Enqueue(V_4);
                     dummyVar0 = V_1.Add(V_4);
                     V_4       = V_4.get_Parent();
                 }
             }
         }
     }
     finally
     {
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     return(V_0.Peek());
 }
Beispiel #23
0
 public BlockStatement Process(DecompilationContext context, BlockStatement body)
 {
     V_0 = new HashSet <Instruction>(body.get_UnderlyingSameMethodInstructions());
     if (context.get_MethodContext().get_IsMethodBodyChanged())
     {
         context.get_MethodContext().get_Method().RefreshBody();
         context.get_MethodContext().set_IsMethodBodyChanged(false);
     }
     V_1 = new List <Instruction>();
     V_2 = context.get_MethodContext().get_Method().get_Body().get_Instructions().GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             if (V_0.Contains(V_3))
             {
                 continue;
             }
             V_1.Add(V_3);
         }
     }
     finally
     {
         V_2.Dispose();
     }
     if (V_1.get_Count() > 0)
     {
         V_4 = new StringBuilder("Found unmapped instructions.\n");
         V_5 = V_1.GetEnumerator();
         try
         {
             while (V_5.MoveNext())
             {
                 V_6       = V_5.get_Current();
                 dummyVar0 = V_4.AppendLine(V_6.ToString());
             }
         }
         finally
         {
             ((IDisposable)V_5).Dispose();
         }
         throw new Exception(V_4.ToString());
     }
     return(body);
 }
 private void PropagateExpressions()
 {
     V_0 = this.context.get_MethodContext().get_Expressions().get_BlockExpressions().get_Values().GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             V_2 = this.GetAssignmentExpressions(V_1).GetEnumerator();
             try
             {
                 while (V_2.MoveNext())
                 {
                     V_3 = V_2.get_Current();
                     V_4 = this.GetDominatedExpressions(V_3, V_1);
                     V_5 = 0;
                     while (V_5 < V_4.get_Count())
                     {
                         this.TryPropagate(V_4.get_Item(V_5), V_3.get_Left(), V_3.get_Right());
                         V_5 = V_5 + 1;
                     }
                 }
             }
             finally
             {
                 if (V_2 != null)
                 {
                     V_2.Dispose();
                 }
             }
             V_6 = 0;
             while (V_6 < V_1.get_Count())
             {
                 V_1.set_Item(V_6, this.TrySimplifyExpression(V_1.get_Item(V_6)));
                 V_6 = V_6 + 1;
             }
         }
     }
     finally
     {
         ((IDisposable)V_0).Dispose();
     }
     return;
 }
Beispiel #25
0
				V_1 = Expression.Parameter(System.Type.GetTypeFromHandle(// 
				// Current member / type: System.Void Mix.Cms.Lib.ViewModels.MixModules.UpdateViewModel::LoadAttributeFields(Mix.Cms.Lib.Models.Cms.MixCmsContext,Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction)
				// Exception in: System.Void LoadAttributeFields(Mix.Cms.Lib.Models.Cms.MixCmsContext,Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction)
				// Specified method is not supported.
				// 
				// mailto: [email protected]


		private void LoadAttributes(MixCmsContext _context, IDbContextTransaction _transaction)
		{
			this.LoadAttributeData(_context, _transaction);
			this.LoadAttributeFields(_context, _transaction);
			stackVariable7 = this.get_Attributes();
			stackVariable8 = Mix.Cms.Lib.ViewModels.MixModules.UpdateViewModel.u003cu003ec.u003cu003e9__175_2;
			if (stackVariable8 == null)
			{
				dummyVar0 = stackVariable8;
				stackVariable8 = new Func<Mix.Cms.Lib.ViewModels.MixAttributeFields.UpdateViewModel, int>(Mix.Cms.Lib.ViewModels.MixModules.UpdateViewModel.u003cu003ec.u003cu003e9.u003cLoadAttributesu003eb__175_2);
				Mix.Cms.Lib.ViewModels.MixModules.UpdateViewModel.u003cu003ec.u003cu003e9__175_2 = stackVariable8;
			}
			V_2 = stackVariable7.OrderBy<Mix.Cms.Lib.ViewModels.MixAttributeFields.UpdateViewModel, int>(stackVariable8).GetEnumerator();
			try
			{
				while (V_2.MoveNext())
				{
					V_3 = new Mix.Cms.Lib.ViewModels.MixModules.UpdateViewModel.u003cu003ec__DisplayClass175_0();
					V_3.field = V_2.get_Current();
					V_4 = this.get_AttributeData().get_Data().get_Values().FirstOrDefault<Mix.Cms.Lib.ViewModels.MixAttributeSetValues.UpdateViewModel>(new Func<Mix.Cms.Lib.ViewModels.MixAttributeSetValues.UpdateViewModel, bool>(V_3.u003cLoadAttributesu003eb__3));
					if (V_4 == null)
					{
						stackVariable33 = new MixAttributeSetValue();
						stackVariable33.set_AttributeFieldId(V_3.field.get_Id());
						V_4 = new Mix.Cms.Lib.ViewModels.MixAttributeSetValues.UpdateViewModel(stackVariable33, _context, _transaction);
						V_4.set_DataType(V_3.field.get_DataType());
						V_4.set_AttributeFieldName(V_3.field.get_Name());
						V_4.set_Priority(V_3.field.get_Priority());
						this.get_AttributeData().get_Data().get_Values().Add(V_4);
					}
					V_4.set_Priority(V_3.field.get_Priority());
					V_4.set_Field(V_3.field);
				}
			}
			finally
			{
				if (V_2 != null)
				{
					V_2.Dispose();
				}
			}
			stackVariable57 = ViewModelBase<MixCmsContext, MixRelatedAttributeData, Mix.Cms.Lib.ViewModels.MixRelatedAttributeDatas.UpdateViewModel>.Repository;
			V_5 = Expression.Parameter(System.Type.GetTypeFromHandle(// 
        private void MergeSingleChildConstraints()
        {
            V_0 = true;
            while (V_0)
            {
                V_1 = null;
                V_0 = false;
                V_2 = this.inferenceGraph.GetEnumerator();
                try
                {
                    while (V_2.MoveNext())
                    {
                        V_3 = V_2.get_Current();
                        if (V_3.get_SubTypes().get_Count() != 1 || V_3.get_IsHardNode())
                        {
                            continue;
                        }
                        V_4                = V_3.get_SubTypes().First <ClassHierarchyNode>();
                        stackVariable21    = new ClassHierarchyNode[2];
                        stackVariable21[0] = V_3;
                        stackVariable21[1] = V_4;
                        V_1                = stackVariable21;
                        V_0                = true;
                        goto Label0;
                    }
                }
                finally
                {
                    if (V_2 != null)
                    {
                        V_2.Dispose();
                    }
                }
Label0:
                if (!V_0)
                {
                    continue;
                }
                this.MergeNodes(V_1);
            }
            return;
        }
Beispiel #27
0
 private bool Match(StatementCollection statements)
 {
     this.statements         = statements;
     this.yieldDeclaringType = this.GetGeneratedType();
     if (this.yieldDeclaringType == null)
     {
         return(false);
     }
     V_0 = this.GetStatements();
     if (V_0 == null || this.yieldData == null)
     {
         return(false);
     }
     if (statements.get_Count() > 2)
     {
         this.SetParameterMappings();
         V_1 = this.GetEnumeratorStatements();
         if (V_1 != null)
         {
             this.PostProcessMappings(V_1);
         }
     }
     this.newStatements = new StatementCollection();
     V_2 = V_0.GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             this.newStatements.Add(V_3);
         }
     }
     finally
     {
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     return(true);
 }
        private bool MergeSingleParent(Func <ClassHierarchyNode, bool> chooseParentPred)
        {
            V_0 = false;
            V_1 = null;
            V_2 = this.inferenceGraph.GetEnumerator();
            try
            {
                while (V_2.MoveNext())
                {
                    V_3 = V_2.get_Current();
                    if (V_3.get_IsHardNode() || V_3.get_SubTypes().get_Count() != 1)
                    {
                        continue;
                    }
                    V_4 = V_3.get_SubTypes().First <ClassHierarchyNode>();
                    if (!chooseParentPred.Invoke(V_4))
                    {
                        continue;
                    }
                    V_0                = true;
                    stackVariable23    = new ClassHierarchyNode[2];
                    stackVariable23[0] = V_3;
                    stackVariable23[1] = V_4;
                    V_1                = stackVariable23;
                    goto Label0;
                }
            }
            finally
            {
                if (V_2 != null)
                {
                    V_2.Dispose();
                }
            }
Label0:
            if (V_0)
            {
                this.MergeNodes(V_1);
            }
            return(V_0);
        }
Beispiel #29
0
 public virtual void Visit(IEnumerable collection)
 {
     V_0 = collection.GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = (ICodeNode)V_0.get_Current();
             this.Visit(V_1);
         }
     }
     finally
     {
         V_2 = V_0 as IDisposable;
         if (V_2 != null)
         {
             V_2.Dispose();
         }
     }
     return;
 }
 private string HandleArrayType(ArrayType parameterType)
 {
     V_0       = new StringBuilder();
     dummyVar0 = V_0.Append(this.GetParameterTypeRepresentation(parameterType.get_ElementType()));
     dummyVar1 = V_0.Append('[');
     V_1       = true;
     V_2       = parameterType.get_Dimensions().GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3 = V_2.get_Current();
             if (!V_1)
             {
                 dummyVar2 = V_0.Append(',');
             }
             if (V_3.get_LowerBound().get_HasValue())
             {
                 V_4       = V_3.get_LowerBound();
                 dummyVar3 = V_0.Append(V_4.get_Value());
             }
             if (V_3.get_IsSized())
             {
                 dummyVar4 = V_0.Append(':');
             }
             if (V_3.get_UpperBound().get_HasValue())
             {
                 V_4       = V_3.get_UpperBound();
                 dummyVar5 = V_0.Append(V_4.get_Value());
             }
             V_1 = false;
         }
     }
     finally
     {
         V_2.Dispose();
     }
     dummyVar6 = V_0.Append(']');
     return(V_0.ToString());
 }