Tests: Include array of derived closed generic type in GenericTypes
This commit is contained in:
@@ -11,32 +11,32 @@ using System.Runtime.CompilerServices;
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// Image 0: mscorlib.dll - Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Types 0-1809
|
// Image 0: mscorlib.dll - Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Types 0-1809
|
||||||
// [assembly: AssemblyCompany] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: AssemblyCompany] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: AssemblyCopyright] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: AssemblyCopyright] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: AssemblyDefaultAlias] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: AssemblyDefaultAlias] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: AssemblyDelaySign] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: AssemblyDelaySign] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: AssemblyDescription] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: AssemblyDescription] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: AssemblyFileVersion] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: AssemblyFileVersion] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: AssemblyInformationalVersion] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: AssemblyInformationalVersion] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: AssemblyKeyFile] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: AssemblyKeyFile] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: AssemblyProduct] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: AssemblyProduct] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: AssemblyTitle] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: AssemblyTitle] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: CLSCompliant] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: CLSCompliant] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: CompilationRelaxations] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: CompilationRelaxations] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: ComVisible] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: ComVisible] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: Debuggable] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: Debuggable] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: DefaultDependency] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: DefaultDependency] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: Guid] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: Guid] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: NeutralResourcesLanguage] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: NeutralResourcesLanguage] // 0x000000018000E500-0x000000018000E770
|
||||||
[assembly: RuntimeCompatibility] // 0x000000018000E050-0x000000018000E2C0
|
[assembly: RuntimeCompatibility] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: SatelliteContractVersion] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: SatelliteContractVersion] // 0x000000018000E500-0x000000018000E770
|
||||||
[assembly: StringFreezing] // 0x000000018000E050-0x000000018000E2C0
|
[assembly: StringFreezing] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: TypeLibVersion] // 0x000000018000E050-0x000000018000E2C0
|
// [assembly: TypeLibVersion] // 0x000000018000E500-0x000000018000E770
|
||||||
|
|
||||||
// Image 1: GenericTypes.dll - Assembly: GenericTypes, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - Types 1810-1832
|
// Image 1: GenericTypes.dll - Assembly: GenericTypes, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - Types 1810-1832
|
||||||
// [assembly: CompilationRelaxations] // 0x000000018000C150-0x000000018000C1B0
|
// [assembly: CompilationRelaxations] // 0x000000018000C600-0x000000018000C660
|
||||||
// [assembly: Debuggable] // 0x000000018000C150-0x000000018000C1B0
|
// [assembly: Debuggable] // 0x000000018000C600-0x000000018000C660
|
||||||
[assembly: RuntimeCompatibility] // 0x000000018000C150-0x000000018000C1B0
|
[assembly: RuntimeCompatibility] // 0x000000018000C600-0x000000018000C660
|
||||||
|
|
||||||
internal static class Consts // TypeDefIndex: 100
|
internal static class Consts // TypeDefIndex: 100
|
||||||
{
|
{
|
||||||
@@ -75,11 +75,11 @@ internal static class Consts // TypeDefIndex: 100
|
|||||||
internal sealed class Locale // TypeDefIndex: 101
|
internal sealed class Locale // TypeDefIndex: 101
|
||||||
{
|
{
|
||||||
// Constructors
|
// Constructors
|
||||||
private Locale() {} // 0x00000001800E3000-0x00000001800E3010
|
private Locale() {} // 0x00000001800E5000-0x00000001800E5010
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
public static string GetText(string msg) => default; // 0x0000000180124590-0x00000001801245A0
|
public static string GetText(string msg) => default; // 0x00000001801273C0-0x00000001801273D0
|
||||||
public static string GetText(string fmt, params /* 0x00000001800090D0-0x00000001800090E0 */ object[] args) => default; // 0x00000001802C5BB0-0x00000001802C5C20
|
public static string GetText(string fmt, params /* 0x0000000180009200-0x0000000180009210 */ object[] args) => default; // 0x00000001802D5F20-0x00000001802D5F90
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace Il2CppTests.TestSources
|
namespace Il2CppTests.TestSources
|
||||||
@@ -115,10 +115,10 @@ namespace Il2CppTests.TestSources
|
|||||||
internal class Test // TypeDefIndex: 1819
|
internal class Test // TypeDefIndex: 1819
|
||||||
{
|
{
|
||||||
// Constructors
|
// Constructors
|
||||||
public Test() {} // 0x00000001800E3000-0x00000001800E3010
|
public Test() {} // 0x00000001800E5000-0x00000001800E5010
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
public void GenericTypesTest() {} // 0x00000001803EDC60-0x00000001803EDC60
|
public void GenericTypesTest() {} // 0x0000000180408870-0x0000000180408870
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
||||||
@@ -169,7 +169,7 @@ namespace Il2CppTests.TestSources
|
|||||||
public ConstrainedRefType() {}
|
public ConstrainedRefType() {}
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
// [NullableContext] // 0x0000000180009190-0x00000001800091B0
|
// [NullableContext] // 0x0000000180008EC0-0x0000000180008EE0
|
||||||
public void ConstrainedMethodNotNull<N>(N notnullArgument, R bar) {}
|
public void ConstrainedMethodNotNull<N>(N notnullArgument, R bar) {}
|
||||||
public void ConstrainedUnmanaged<U>(U unmanagedArgument)
|
public void ConstrainedUnmanaged<U>(U unmanagedArgument)
|
||||||
where U : struct {}
|
where U : struct {}
|
||||||
|
|||||||
@@ -11,32 +11,32 @@ using System.Runtime.CompilerServices;
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// Image 0: mscorlib.dll - Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Types 0-1809
|
// Image 0: mscorlib.dll - Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Types 0-1809
|
||||||
// [assembly: AssemblyCompany] // 0x1000ED70-0x1000EF80
|
// [assembly: AssemblyCompany] // 0x1000F350-0x1000F560
|
||||||
// [assembly: AssemblyCopyright] // 0x1000ED70-0x1000EF80
|
// [assembly: AssemblyCopyright] // 0x1000F350-0x1000F560
|
||||||
// [assembly: AssemblyDefaultAlias] // 0x1000ED70-0x1000EF80
|
// [assembly: AssemblyDefaultAlias] // 0x1000F350-0x1000F560
|
||||||
// [assembly: AssemblyDelaySign] // 0x1000ED70-0x1000EF80
|
// [assembly: AssemblyDelaySign] // 0x1000F350-0x1000F560
|
||||||
// [assembly: AssemblyDescription] // 0x1000ED70-0x1000EF80
|
// [assembly: AssemblyDescription] // 0x1000F350-0x1000F560
|
||||||
// [assembly: AssemblyFileVersion] // 0x1000ED70-0x1000EF80
|
// [assembly: AssemblyFileVersion] // 0x1000F350-0x1000F560
|
||||||
// [assembly: AssemblyInformationalVersion] // 0x1000ED70-0x1000EF80
|
// [assembly: AssemblyInformationalVersion] // 0x1000F350-0x1000F560
|
||||||
// [assembly: AssemblyKeyFile] // 0x1000ED70-0x1000EF80
|
// [assembly: AssemblyKeyFile] // 0x1000F350-0x1000F560
|
||||||
// [assembly: AssemblyProduct] // 0x1000ED70-0x1000EF80
|
// [assembly: AssemblyProduct] // 0x1000F350-0x1000F560
|
||||||
// [assembly: AssemblyTitle] // 0x1000ED70-0x1000EF80
|
// [assembly: AssemblyTitle] // 0x1000F350-0x1000F560
|
||||||
// [assembly: CLSCompliant] // 0x1000ED70-0x1000EF80
|
// [assembly: CLSCompliant] // 0x1000F350-0x1000F560
|
||||||
// [assembly: CompilationRelaxations] // 0x1000ED70-0x1000EF80
|
// [assembly: CompilationRelaxations] // 0x1000F350-0x1000F560
|
||||||
// [assembly: ComVisible] // 0x1000ED70-0x1000EF80
|
// [assembly: ComVisible] // 0x1000F350-0x1000F560
|
||||||
// [assembly: Debuggable] // 0x1000ED70-0x1000EF80
|
// [assembly: Debuggable] // 0x1000F350-0x1000F560
|
||||||
// [assembly: DefaultDependency] // 0x1000ED70-0x1000EF80
|
// [assembly: DefaultDependency] // 0x1000F350-0x1000F560
|
||||||
// [assembly: Guid] // 0x1000ED70-0x1000EF80
|
// [assembly: Guid] // 0x1000F350-0x1000F560
|
||||||
// [assembly: NeutralResourcesLanguage] // 0x1000ED70-0x1000EF80
|
// [assembly: NeutralResourcesLanguage] // 0x1000F350-0x1000F560
|
||||||
[assembly: RuntimeCompatibility] // 0x1000ED70-0x1000EF80
|
[assembly: RuntimeCompatibility] // 0x1000F350-0x1000F560
|
||||||
// [assembly: SatelliteContractVersion] // 0x1000ED70-0x1000EF80
|
// [assembly: SatelliteContractVersion] // 0x1000F350-0x1000F560
|
||||||
[assembly: StringFreezing] // 0x1000ED70-0x1000EF80
|
[assembly: StringFreezing] // 0x1000F350-0x1000F560
|
||||||
// [assembly: TypeLibVersion] // 0x1000ED70-0x1000EF80
|
// [assembly: TypeLibVersion] // 0x1000F350-0x1000F560
|
||||||
|
|
||||||
// Image 1: GenericTypes.dll - Assembly: GenericTypes, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - Types 1810-1832
|
// Image 1: GenericTypes.dll - Assembly: GenericTypes, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - Types 1810-1832
|
||||||
// [assembly: CompilationRelaxations] // 0x1000D210-0x1000D260
|
// [assembly: CompilationRelaxations] // 0x1000D800-0x1000D850
|
||||||
// [assembly: Debuggable] // 0x1000D210-0x1000D260
|
// [assembly: Debuggable] // 0x1000D800-0x1000D850
|
||||||
[assembly: RuntimeCompatibility] // 0x1000D210-0x1000D260
|
[assembly: RuntimeCompatibility] // 0x1000D800-0x1000D850
|
||||||
|
|
||||||
internal static class Consts // TypeDefIndex: 100
|
internal static class Consts // TypeDefIndex: 100
|
||||||
{
|
{
|
||||||
@@ -75,11 +75,11 @@ internal static class Consts // TypeDefIndex: 100
|
|||||||
internal sealed class Locale // TypeDefIndex: 101
|
internal sealed class Locale // TypeDefIndex: 101
|
||||||
{
|
{
|
||||||
// Constructors
|
// Constructors
|
||||||
private Locale() {} // 0x100C0000-0x100C0010
|
private Locale() {} // 0x100C3000-0x100C3010
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
public static string GetText(string msg) => default; // 0x100F8810-0x100F8820
|
public static string GetText(string msg) => default; // 0x100FD9C0-0x100FD9D0
|
||||||
public static string GetText(string fmt, params /* 0x10009B80-0x10009BA0 */ object[] args) => default; // 0x10261620-0x10261670
|
public static string GetText(string fmt, params /* 0x10009C70-0x10009C90 */ object[] args) => default; // 0x10270000-0x10270050
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace Il2CppTests.TestSources
|
namespace Il2CppTests.TestSources
|
||||||
@@ -115,10 +115,10 @@ namespace Il2CppTests.TestSources
|
|||||||
internal class Test // TypeDefIndex: 1819
|
internal class Test // TypeDefIndex: 1819
|
||||||
{
|
{
|
||||||
// Constructors
|
// Constructors
|
||||||
public Test() {} // 0x100C0000-0x100C0010
|
public Test() {} // 0x100C3000-0x100C3010
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
public void GenericTypesTest() {} // 0x103584B0-0x103584B0
|
public void GenericTypesTest() {} // 0x1036D450-0x1036D450
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
||||||
@@ -169,7 +169,7 @@ namespace Il2CppTests.TestSources
|
|||||||
public ConstrainedRefType() {}
|
public ConstrainedRefType() {}
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
// [NullableContext] // 0x10009B00-0x10009B20
|
// [NullableContext] // 0x10009C10-0x10009C30
|
||||||
public void ConstrainedMethodNotNull<N>(N notnullArgument, R bar) {}
|
public void ConstrainedMethodNotNull<N>(N notnullArgument, R bar) {}
|
||||||
public void ConstrainedUnmanaged<U>(U unmanagedArgument)
|
public void ConstrainedUnmanaged<U>(U unmanagedArgument)
|
||||||
where U : struct {}
|
where U : struct {}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using Il2CppInspector.Reflection;
|
using Il2CppInspector.Reflection;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
|
||||||
@@ -32,9 +33,8 @@ namespace Il2CppInspector
|
|||||||
TypeInfo tBase = asm.GetType("Il2CppTests.TestSources.Base`2");
|
TypeInfo tBase = asm.GetType("Il2CppTests.TestSources.Base`2");
|
||||||
TypeInfo tDerived = asm.GetType("Il2CppTests.TestSources.Derived`1");
|
TypeInfo tDerived = asm.GetType("Il2CppTests.TestSources.Derived`1");
|
||||||
TypeInfo tDerivedBase = tDerived.BaseType;
|
TypeInfo tDerivedBase = tDerived.BaseType;
|
||||||
|
// TODO: Use a model GetType() once implemented
|
||||||
// TODO: array of Derived<int>
|
TypeInfo tDerivedArray = model.Types.First(t => t.Namespace == "Il2CppTests.TestSources" && t.Name == "Derived`1[System.Int32][]");
|
||||||
// TypeInfo tDerivedArray
|
|
||||||
|
|
||||||
TypeInfo tT = tBase.GenericTypeParameters[0];
|
TypeInfo tT = tBase.GenericTypeParameters[0];
|
||||||
TypeInfo tU = tBase.GenericTypeParameters[1];
|
TypeInfo tU = tBase.GenericTypeParameters[1];
|
||||||
@@ -44,7 +44,7 @@ namespace Il2CppInspector
|
|||||||
DisplayGenericType(tBase, "Generic type definition Base<T, U>");
|
DisplayGenericType(tBase, "Generic type definition Base<T, U>");
|
||||||
DisplayGenericType(tDerived, "Derived<V>");
|
DisplayGenericType(tDerived, "Derived<V>");
|
||||||
DisplayGenericType(tDerivedBase, "Base type of Derived<V>");
|
DisplayGenericType(tDerivedBase, "Base type of Derived<V>");
|
||||||
//DisplayGenericType(tDerivedArray, "Array of Derived<int>");
|
DisplayGenericType(tDerivedArray, "Array of Derived<int>");
|
||||||
DisplayGenericType(tT, "Type parameter T from Base<T,U>");
|
DisplayGenericType(tT, "Type parameter T from Base<T,U>");
|
||||||
DisplayGenericType(tU, "Type parameter U from Base<T,U>");
|
DisplayGenericType(tU, "Type parameter U from Base<T,U>");
|
||||||
DisplayGenericType(tF, "Field type, G<Derived<V>>");
|
DisplayGenericType(tF, "Field type, G<Derived<V>>");
|
||||||
@@ -55,7 +55,7 @@ namespace Il2CppInspector
|
|||||||
(tBase, "Base`2[T,U]", true, true, true, false, -1),
|
(tBase, "Base`2[T,U]", true, true, true, false, -1),
|
||||||
(tDerived, "Derived`1[V]", true, true, true, false, -1),
|
(tDerived, "Derived`1[V]", true, true, true, false, -1),
|
||||||
(tDerivedBase, "Base`2[System.String,V]", true, false, true, false, -1),
|
(tDerivedBase, "Base`2[System.String,V]", true, false, true, false, -1),
|
||||||
//(tDerivedArray, "Derived`1[System.Int32][]", false, false, false, false, -1),
|
(tDerivedArray, "Derived`1[System.Int32][]", false, false, false, false, -1),
|
||||||
(tT, "T", false, false, true, true, 0),
|
(tT, "T", false, false, true, true, 0),
|
||||||
(tU, "U", false, false, true, true, 1),
|
(tU, "U", false, false, true, true, 1),
|
||||||
(tF, "G`1[Derived`1[V]]", true, false, true, false, -1),
|
(tF, "G`1[Derived`1[V]]", true, false, true, false, -1),
|
||||||
|
|||||||
@@ -45,8 +45,6 @@ namespace Il2CppTests.TestSources
|
|||||||
Type tF = tDerived.GetField("F").FieldType;
|
Type tF = tDerived.GetField("F").FieldType;
|
||||||
Type tNested = typeof(Derived<>.Nested);
|
Type tNested = typeof(Derived<>.Nested);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void forceTypeReferenceToDerivedIntArray(Derived<int> typeRef) {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Constraints on type definitions
|
// Constraints on type definitions
|
||||||
|
|||||||
Reference in New Issue
Block a user