protected override void OnPhiVariableAssigned(int instructionOffset, ClassHierarchyNode variableNode) { V_0 = this.offsetToExpression.get_Item(instructionOffset); V_1 = V_0.get_ExpressionType(); if (V_0 as LiteralExpression != null) { V_3 = (Int32)(V_0 as LiteralExpression).get_Value(); if (V_3 == 0 || V_3 == 1) { V_1 = this.typeSystem.get_Boolean(); } else { if (V_3 > 0xff || V_3 < 0) { if (V_3 < 0xffff && V_3 >= 0) { V_1 = this.typeSystem.get_Char(); } } else { V_1 = this.typeSystem.get_Byte(); } } } V_2 = this.GetTypeNode(V_1); V_2.AddSupertype(variableNode); dummyVar0 = this.resultingGraph.Add(V_2); return; }
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; }