Dedup param, array and byref/pointer types

We're aiming to make TypeInfo instances unique - no two TypeInfo
instances within a given model should refer to the same type. This will
allow us to use simple reference equality for comparing types.
This commit is contained in:
Robert Xiao
2020-04-11 17:10:35 -07:00
committed by Katy
parent 193cdcdc4a
commit 50ea6dac36
3 changed files with 67 additions and 20 deletions

View File

@@ -104,8 +104,8 @@ namespace Il2CppInspector.Reflection
// Store the generic type parameters for later instantiation
var container = pkg.GenericContainers[Definition.genericContainerIndex];
genericArguments = pkg.GenericParameters.Skip((int)container.genericParameterStart).Take(container.type_argc).Select(p => new TypeInfo(this, p)).ToArray();
genericArguments = Enumerable.Range((int)container.genericParameterStart, container.type_argc)
.Select(index => Assembly.Model.GetGenericParameterType(index)).ToArray();
}
// Set method attributes