private void AddType(TypeReference typeRef, Dictionary <TypeReference, TypeReference> genericInstanceTypeMap) { // ISSUE: object of a compiler-generated type is created // ISSUE: variable of a compiler-generated type AssemblyTypeInfoGenerator.\u003CAddType\u003Ec__AnonStorey67 typeCAnonStorey67 = new AssemblyTypeInfoGenerator.\u003CAddType\u003Ec__AnonStorey67(); // ISSUE: reference to a compiler-generated field typeCAnonStorey67.typeRef = typeRef; // ISSUE: reference to a compiler-generated field typeCAnonStorey67.\u003C\u003Ef__this = this; // ISSUE: reference to a compiler-generated method if (this.classes_.Any <AssemblyTypeInfoGenerator.ClassInfo>(new Func <AssemblyTypeInfoGenerator.ClassInfo, bool>(typeCAnonStorey67.\u003C\u003Em__DE))) { return; } TypeDefinition type; try { // ISSUE: reference to a compiler-generated field type = typeCAnonStorey67.typeRef.Resolve(); } catch (AssemblyResolutionException ex) { return; } catch (NotSupportedException ex) { return; } if (type == null) { return; } // ISSUE: reference to a compiler-generated field if (typeCAnonStorey67.typeRef.get_IsGenericInstance()) { // ISSUE: reference to a compiler-generated field Collection <TypeReference> genericArguments = ((GenericInstanceType)typeCAnonStorey67.typeRef).get_GenericArguments(); Collection <GenericParameter> genericParameters = type.get_GenericParameters(); for (int index = 0; index < genericArguments.get_Count(); ++index) { if (genericParameters.get_Item(index) != genericArguments.get_Item(index)) { genericInstanceTypeMap[(TypeReference)genericParameters.get_Item(index)] = genericArguments.get_Item(index); } } // ISSUE: reference to a compiler-generated field this.typeResolver.Add((GenericInstanceType)typeCAnonStorey67.typeRef); } bool flag = false; try { flag = UnitySerializationLogic.ShouldImplementIDeserializable((TypeReference)type); } catch { } if (!flag) { this.AddNestedTypes(type, genericInstanceTypeMap); } else { // ISSUE: reference to a compiler-generated field // ISSUE: reference to a compiler-generated field this.classes_.Add(new AssemblyTypeInfoGenerator.ClassInfo() { name = this.GetMonoEmbeddedFullTypeNameFor(typeCAnonStorey67.typeRef), fields = this.GetFields(type, typeCAnonStorey67.typeRef.get_IsGenericInstance(), genericInstanceTypeMap) }); this.AddNestedTypes(type, genericInstanceTypeMap); // ISSUE: reference to a compiler-generated field this.AddBaseType(typeCAnonStorey67.typeRef, genericInstanceTypeMap); } // ISSUE: reference to a compiler-generated field if (!typeCAnonStorey67.typeRef.get_IsGenericInstance()) { return; } // ISSUE: reference to a compiler-generated field this.typeResolver.Remove((GenericInstanceType)typeCAnonStorey67.typeRef); }
private void AddType(TypeReference typeRef, Dictionary<TypeReference, TypeReference> genericInstanceTypeMap) { // ISSUE: object of a compiler-generated type is created // ISSUE: variable of a compiler-generated type AssemblyTypeInfoGenerator.\u003CAddType\u003Ec__AnonStorey67 typeCAnonStorey67 = new AssemblyTypeInfoGenerator.\u003CAddType\u003Ec__AnonStorey67(); // ISSUE: reference to a compiler-generated field typeCAnonStorey67.typeRef = typeRef; // ISSUE: reference to a compiler-generated field typeCAnonStorey67.\u003C\u003Ef__this = this; // ISSUE: reference to a compiler-generated method if (this.classes_.Any<AssemblyTypeInfoGenerator.ClassInfo>(new Func<AssemblyTypeInfoGenerator.ClassInfo, bool>(typeCAnonStorey67.\u003C\u003Em__DE))) return; TypeDefinition type; try { // ISSUE: reference to a compiler-generated field type = typeCAnonStorey67.typeRef.Resolve(); } catch (AssemblyResolutionException ex) { return; } catch (NotSupportedException ex) { return; } if (type == null) return; // ISSUE: reference to a compiler-generated field if (typeCAnonStorey67.typeRef.get_IsGenericInstance()) { // ISSUE: reference to a compiler-generated field Collection<TypeReference> genericArguments = ((GenericInstanceType) typeCAnonStorey67.typeRef).get_GenericArguments(); Collection<GenericParameter> genericParameters = type.get_GenericParameters(); for (int index = 0; index < genericArguments.get_Count(); ++index) { if (genericParameters.get_Item(index) != genericArguments.get_Item(index)) genericInstanceTypeMap[(TypeReference) genericParameters.get_Item(index)] = genericArguments.get_Item(index); } // ISSUE: reference to a compiler-generated field this.typeResolver.Add((GenericInstanceType) typeCAnonStorey67.typeRef); } bool flag = false; try { flag = UnitySerializationLogic.ShouldImplementIDeserializable((TypeReference) type); } catch { } if (!flag) { this.AddNestedTypes(type, genericInstanceTypeMap); } else { // ISSUE: reference to a compiler-generated field // ISSUE: reference to a compiler-generated field this.classes_.Add(new AssemblyTypeInfoGenerator.ClassInfo() { name = this.GetMonoEmbeddedFullTypeNameFor(typeCAnonStorey67.typeRef), fields = this.GetFields(type, typeCAnonStorey67.typeRef.get_IsGenericInstance(), genericInstanceTypeMap) }); this.AddNestedTypes(type, genericInstanceTypeMap); // ISSUE: reference to a compiler-generated field this.AddBaseType(typeCAnonStorey67.typeRef, genericInstanceTypeMap); } // ISSUE: reference to a compiler-generated field if (!typeCAnonStorey67.typeRef.get_IsGenericInstance()) return; // ISSUE: reference to a compiler-generated field this.typeResolver.Remove((GenericInstanceType) typeCAnonStorey67.typeRef); }