private static TypeReference CreateReference(TypeParser.Type type_info, ModuleDefinition module, IMetadataScope scope) { string @namespace; string name; TypeParser.SplitFullName(type_info.type_fullname, out @namespace, out name); TypeReference typeReference = new TypeReference(@namespace, name, module, scope); MetadataSystem.TryProcessPrimitiveTypeReference(typeReference); TypeParser.AdjustGenericParameters(typeReference); string[] nested_names = type_info.nested_names; if (nested_names.IsNullOrEmpty <string>()) { return(typeReference); } for (int i = 0; i < nested_names.Length; i++) { typeReference = new TypeReference(string.Empty, nested_names[i], module, null) { DeclaringType = typeReference }; TypeParser.AdjustGenericParameters(typeReference); } return(typeReference); }