Tests: Add generic method unit tests
This commit is contained in:
@@ -33,7 +33,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: StringFreezing] // 0x000000018000E500-0x000000018000E770
|
||||
// [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-1835
|
||||
// [assembly: CompilationRelaxations] // 0x000000018000C600-0x000000018000C660
|
||||
// [assembly: Debuggable] // 0x000000018000C600-0x000000018000C660
|
||||
[assembly: RuntimeCompatibility] // 0x000000018000C600-0x000000018000C660
|
||||
@@ -41,35 +41,35 @@ using System.Runtime.InteropServices;
|
||||
internal static class Consts // TypeDefIndex: 100
|
||||
{
|
||||
// Fields
|
||||
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED0B4
|
||||
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED0BF
|
||||
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED0D8
|
||||
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED0FF
|
||||
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED11B
|
||||
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED126
|
||||
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED131
|
||||
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED143
|
||||
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED155
|
||||
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1A0
|
||||
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1FD
|
||||
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED25E
|
||||
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED2B9
|
||||
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED309
|
||||
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED35A
|
||||
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED3AE
|
||||
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED40C
|
||||
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED45B
|
||||
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED4A8
|
||||
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED4FA
|
||||
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED54E
|
||||
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED5AD
|
||||
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED602
|
||||
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED65E
|
||||
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED6B5
|
||||
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED70B
|
||||
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED767
|
||||
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED7B8
|
||||
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED813
|
||||
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED2D8
|
||||
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED2E3
|
||||
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED2FC
|
||||
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED323
|
||||
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED33F
|
||||
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED34A
|
||||
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED355
|
||||
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED367
|
||||
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED379
|
||||
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED3C4
|
||||
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED421
|
||||
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED482
|
||||
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED4DD
|
||||
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED52D
|
||||
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED57E
|
||||
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED5D2
|
||||
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED630
|
||||
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED67F
|
||||
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED6CC
|
||||
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED71E
|
||||
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED772
|
||||
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED7D1
|
||||
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED826
|
||||
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED882
|
||||
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED8D9
|
||||
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED92F
|
||||
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED98B
|
||||
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED9DC
|
||||
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000EDA37
|
||||
}
|
||||
|
||||
internal sealed class Locale // TypeDefIndex: 101
|
||||
@@ -118,7 +118,7 @@ namespace Il2CppTests.TestSources
|
||||
public Test() {} // 0x00000001800E5000-0x00000001800E5010
|
||||
|
||||
// Methods
|
||||
public void GenericTypesTest() {} // 0x0000000180408870-0x0000000180408870
|
||||
public void GenericTypesTest() {} // 0x0000000180408930-0x0000000180408930
|
||||
}
|
||||
|
||||
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
||||
@@ -228,4 +228,34 @@ namespace Il2CppTests.TestSources
|
||||
// Constructors
|
||||
public OuterGeneric() {}
|
||||
}
|
||||
|
||||
public class NonGeneric // TypeDefIndex: 1833
|
||||
{
|
||||
// Constructors
|
||||
public NonGeneric() {} // 0x00000001800E5000-0x00000001800E5010
|
||||
|
||||
// Methods
|
||||
public void GenericMethodDefinitionInNonGenericClass<T>(T a) {}
|
||||
}
|
||||
|
||||
public class GenericClassWithMethods<T> // TypeDefIndex: 1834
|
||||
{
|
||||
// Constructors
|
||||
public GenericClassWithMethods() {}
|
||||
|
||||
// Methods
|
||||
public void NonGenericMethodInGenericClass(T a) {}
|
||||
public void NonGenericMethodInGenericClass2() {}
|
||||
public void GenericMethodDefinitionInGenericClass<U>(U a) {}
|
||||
public void GenericMethodDefinitionInGenericClass2<U>(T a, U b) {}
|
||||
}
|
||||
|
||||
public class CallGenericMethods : GenericClassWithMethods<int> // TypeDefIndex: 1835
|
||||
{
|
||||
// Constructors
|
||||
public CallGenericMethods() {} // 0x0000000180408870-0x00000001804088B0
|
||||
|
||||
// Methods
|
||||
public void CallMethods() {} // 0x00000001804087F0-0x0000000180408870
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: StringFreezing] // 0x1000F350-0x1000F560
|
||||
// [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-1835
|
||||
// [assembly: CompilationRelaxations] // 0x1000D800-0x1000D850
|
||||
// [assembly: Debuggable] // 0x1000D800-0x1000D850
|
||||
[assembly: RuntimeCompatibility] // 0x1000D800-0x1000D850
|
||||
@@ -41,35 +41,35 @@ using System.Runtime.InteropServices;
|
||||
internal static class Consts // TypeDefIndex: 100
|
||||
{
|
||||
// Fields
|
||||
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED0B4
|
||||
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED0BF
|
||||
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED0D8
|
||||
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED0FF
|
||||
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED11B
|
||||
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED126
|
||||
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED131
|
||||
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED143
|
||||
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED155
|
||||
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1A0
|
||||
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1FD
|
||||
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED25E
|
||||
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED2B9
|
||||
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED309
|
||||
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED35A
|
||||
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED3AE
|
||||
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED40C
|
||||
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED45B
|
||||
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED4A8
|
||||
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED4FA
|
||||
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED54E
|
||||
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED5AD
|
||||
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED602
|
||||
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED65E
|
||||
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED6B5
|
||||
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED70B
|
||||
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED767
|
||||
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED7B8
|
||||
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED813
|
||||
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED2D8
|
||||
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED2E3
|
||||
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED2FC
|
||||
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED323
|
||||
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED33F
|
||||
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED34A
|
||||
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED355
|
||||
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED367
|
||||
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED379
|
||||
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED3C4
|
||||
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED421
|
||||
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED482
|
||||
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED4DD
|
||||
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED52D
|
||||
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED57E
|
||||
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED5D2
|
||||
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED630
|
||||
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED67F
|
||||
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED6CC
|
||||
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED71E
|
||||
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED772
|
||||
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED7D1
|
||||
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED826
|
||||
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED882
|
||||
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED8D9
|
||||
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED92F
|
||||
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED98B
|
||||
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED9DC
|
||||
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000EDA37
|
||||
}
|
||||
|
||||
internal sealed class Locale // TypeDefIndex: 101
|
||||
@@ -118,7 +118,7 @@ namespace Il2CppTests.TestSources
|
||||
public Test() {} // 0x100C3000-0x100C3010
|
||||
|
||||
// Methods
|
||||
public void GenericTypesTest() {} // 0x1036D450-0x1036D450
|
||||
public void GenericTypesTest() {} // 0x1036D4F0-0x1036D4F0
|
||||
}
|
||||
|
||||
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
||||
@@ -228,4 +228,34 @@ namespace Il2CppTests.TestSources
|
||||
// Constructors
|
||||
public OuterGeneric() {}
|
||||
}
|
||||
|
||||
public class NonGeneric // TypeDefIndex: 1833
|
||||
{
|
||||
// Constructors
|
||||
public NonGeneric() {} // 0x100C3000-0x100C3010
|
||||
|
||||
// Methods
|
||||
public void GenericMethodDefinitionInNonGenericClass<T>(T a) {}
|
||||
}
|
||||
|
||||
public class GenericClassWithMethods<T> // TypeDefIndex: 1834
|
||||
{
|
||||
// Constructors
|
||||
public GenericClassWithMethods() {}
|
||||
|
||||
// Methods
|
||||
public void NonGenericMethodInGenericClass(T a) {}
|
||||
public void NonGenericMethodInGenericClass2() {}
|
||||
public void GenericMethodDefinitionInGenericClass<U>(U a) {}
|
||||
public void GenericMethodDefinitionInGenericClass2<U>(T a, U b) {}
|
||||
}
|
||||
|
||||
public class CallGenericMethods : GenericClassWithMethods<int> // TypeDefIndex: 1835
|
||||
{
|
||||
// Constructors
|
||||
public CallGenericMethods() {} // 0x1036D440-0x1036D480
|
||||
|
||||
// Methods
|
||||
public void CallMethods() {} // 0x1036D3D0-0x1036D440
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,75 +11,75 @@ using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Image 0: mscorlib.dll - Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Types 0-1809
|
||||
// [assembly: AssemblyCompany] // 0x000A795C-0x000A7C50
|
||||
// [assembly: AssemblyCopyright] // 0x000A795C-0x000A7C50
|
||||
// [assembly: AssemblyDefaultAlias] // 0x000A795C-0x000A7C50
|
||||
// [assembly: AssemblyDelaySign] // 0x000A795C-0x000A7C50
|
||||
// [assembly: AssemblyDescription] // 0x000A795C-0x000A7C50
|
||||
// [assembly: AssemblyFileVersion] // 0x000A795C-0x000A7C50
|
||||
// [assembly: AssemblyInformationalVersion] // 0x000A795C-0x000A7C50
|
||||
// [assembly: AssemblyKeyFile] // 0x000A795C-0x000A7C50
|
||||
// [assembly: AssemblyProduct] // 0x000A795C-0x000A7C50
|
||||
// [assembly: AssemblyTitle] // 0x000A795C-0x000A7C50
|
||||
// [assembly: CLSCompliant] // 0x000A795C-0x000A7C50
|
||||
// [assembly: CompilationRelaxations] // 0x000A795C-0x000A7C50
|
||||
// [assembly: ComVisible] // 0x000A795C-0x000A7C50
|
||||
// [assembly: Debuggable] // 0x000A795C-0x000A7C50
|
||||
// [assembly: DefaultDependency] // 0x000A795C-0x000A7C50
|
||||
// [assembly: Guid] // 0x000A795C-0x000A7C50
|
||||
// [assembly: NeutralResourcesLanguage] // 0x000A795C-0x000A7C50
|
||||
[assembly: RuntimeCompatibility] // 0x000A795C-0x000A7C50
|
||||
// [assembly: SatelliteContractVersion] // 0x000A795C-0x000A7C50
|
||||
[assembly: StringFreezing] // 0x000A795C-0x000A7C50
|
||||
// [assembly: TypeLibVersion] // 0x000A795C-0x000A7C50
|
||||
// [assembly: AssemblyCompany] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: AssemblyCopyright] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: AssemblyDefaultAlias] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: AssemblyDelaySign] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: AssemblyDescription] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: AssemblyFileVersion] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: AssemblyInformationalVersion] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: AssemblyKeyFile] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: AssemblyProduct] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: AssemblyTitle] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: CLSCompliant] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: CompilationRelaxations] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: ComVisible] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: Debuggable] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: DefaultDependency] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: Guid] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: NeutralResourcesLanguage] // 0x000A7AE4-0x000A7DD8
|
||||
[assembly: RuntimeCompatibility] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: SatelliteContractVersion] // 0x000A7AE4-0x000A7DD8
|
||||
[assembly: StringFreezing] // 0x000A7AE4-0x000A7DD8
|
||||
// [assembly: TypeLibVersion] // 0x000A7AE4-0x000A7DD8
|
||||
|
||||
// Image 1: GenericTypes.dll - Assembly: GenericTypes, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - Types 1810-1832
|
||||
// [assembly: CompilationRelaxations] // 0x000A7D64-0x000A7DB8
|
||||
// [assembly: Debuggable] // 0x000A7D64-0x000A7DB8
|
||||
[assembly: RuntimeCompatibility] // 0x000A7D64-0x000A7DB8
|
||||
// Image 1: GenericTypes.dll - Assembly: GenericTypes, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - Types 1810-1835
|
||||
// [assembly: CompilationRelaxations] // 0x000A7EEC-0x000A7F40
|
||||
// [assembly: Debuggable] // 0x000A7EEC-0x000A7F40
|
||||
[assembly: RuntimeCompatibility] // 0x000A7EEC-0x000A7F40
|
||||
|
||||
internal static class Consts // TypeDefIndex: 100
|
||||
{
|
||||
// Fields
|
||||
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED0B4
|
||||
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED0BF
|
||||
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED0D8
|
||||
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED0FF
|
||||
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED11B
|
||||
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED126
|
||||
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED131
|
||||
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED143
|
||||
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED155
|
||||
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1A0
|
||||
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1FD
|
||||
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED25E
|
||||
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED2B9
|
||||
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED309
|
||||
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED35A
|
||||
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED3AE
|
||||
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED40C
|
||||
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED45B
|
||||
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED4A8
|
||||
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED4FA
|
||||
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED54E
|
||||
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED5AD
|
||||
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED602
|
||||
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED65E
|
||||
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED6B5
|
||||
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED70B
|
||||
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED767
|
||||
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED7B8
|
||||
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED813
|
||||
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED2D8
|
||||
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED2E3
|
||||
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED2FC
|
||||
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED323
|
||||
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED33F
|
||||
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED34A
|
||||
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED355
|
||||
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED367
|
||||
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED379
|
||||
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED3C4
|
||||
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED421
|
||||
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED482
|
||||
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED4DD
|
||||
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED52D
|
||||
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED57E
|
||||
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED5D2
|
||||
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED630
|
||||
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED67F
|
||||
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED6CC
|
||||
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED71E
|
||||
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED772
|
||||
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED7D1
|
||||
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED826
|
||||
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED882
|
||||
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED8D9
|
||||
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED92F
|
||||
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED98B
|
||||
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED9DC
|
||||
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000EDA37
|
||||
}
|
||||
|
||||
internal sealed class Locale // TypeDefIndex: 101
|
||||
{
|
||||
// Constructors
|
||||
private Locale() {} // 0x003ED908-0x003ED910
|
||||
private Locale() {} // 0x003EDAF8-0x003EDB00
|
||||
|
||||
// Methods
|
||||
public static string GetText(string msg) => default; // 0x003ED910-0x003ED914
|
||||
public static string GetText(string fmt, params /* 0x000A6188-0x000A6198 */ object[] args) => default; // 0x003ED914-0x003ED9A0
|
||||
public static string GetText(string msg) => default; // 0x003EDB00-0x003EDB04
|
||||
public static string GetText(string fmt, params /* 0x000A6310-0x000A6320 */ object[] args) => default; // 0x003EDB04-0x003EDB90
|
||||
}
|
||||
|
||||
namespace Il2CppTests.TestSources
|
||||
@@ -115,10 +115,10 @@ namespace Il2CppTests.TestSources
|
||||
internal class Test // TypeDefIndex: 1819
|
||||
{
|
||||
// Constructors
|
||||
public Test() {} // 0x0057AFD8-0x0057AFE0
|
||||
public Test() {} // 0x0057B30C-0x0057B314
|
||||
|
||||
// Methods
|
||||
public void GenericTypesTest() {} // 0x0057AE1C-0x0057AFD8
|
||||
public void GenericTypesTest() {} // 0x0057B150-0x0057B30C
|
||||
}
|
||||
|
||||
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
||||
@@ -169,7 +169,7 @@ namespace Il2CppTests.TestSources
|
||||
public ConstrainedRefType() {}
|
||||
|
||||
// Methods
|
||||
// [NullableContext] // 0x000A7D50-0x000A7D64
|
||||
// [NullableContext] // 0x000A7ED8-0x000A7EEC
|
||||
public void ConstrainedMethodNotNull<N>(N notnullArgument, R bar) {}
|
||||
public void ConstrainedUnmanaged<U>(U unmanagedArgument)
|
||||
where U : struct {}
|
||||
@@ -228,4 +228,34 @@ namespace Il2CppTests.TestSources
|
||||
// Constructors
|
||||
public OuterGeneric() {}
|
||||
}
|
||||
|
||||
public class NonGeneric // TypeDefIndex: 1833
|
||||
{
|
||||
// Constructors
|
||||
public NonGeneric() {} // 0x0057B148-0x0057B150
|
||||
|
||||
// Methods
|
||||
public void GenericMethodDefinitionInNonGenericClass<T>(T a) {}
|
||||
}
|
||||
|
||||
public class GenericClassWithMethods<T> // TypeDefIndex: 1834
|
||||
{
|
||||
// Constructors
|
||||
public GenericClassWithMethods() {}
|
||||
|
||||
// Methods
|
||||
public void NonGenericMethodInGenericClass(T a) {}
|
||||
public void NonGenericMethodInGenericClass2() {}
|
||||
public void GenericMethodDefinitionInGenericClass<U>(U a) {}
|
||||
public void GenericMethodDefinitionInGenericClass2<U>(T a, U b) {}
|
||||
}
|
||||
|
||||
public class CallGenericMethods : GenericClassWithMethods<int> // TypeDefIndex: 1835
|
||||
{
|
||||
// Constructors
|
||||
public CallGenericMethods() {} // 0x0057B0E4-0x0057B148
|
||||
|
||||
// Methods
|
||||
public void CallMethods() {} // 0x0057B01C-0x0057B0E4
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,6 +41,17 @@ namespace Il2CppInspector
|
||||
TypeInfo tF = tDerived.GetField("F").FieldType;
|
||||
TypeInfo tNested = asm.GetType("Il2CppTests.TestSources.Derived`1+Nested");
|
||||
|
||||
TypeInfo tNG = asm.GetType("Il2CppTests.TestSources.NonGeneric");
|
||||
TypeInfo tGCWM = asm.GetType("Il2CppTests.TestSources.GenericClassWithMethods`1");
|
||||
TypeInfo tCGM = asm.GetType("Il2CppTests.TestSources.CallGenericMethods");
|
||||
MethodInfo mGMDINGC = tNG.GetMethod("GenericMethodDefinitionInNonGenericClass");
|
||||
MethodInfo mNGMIGC = tGCWM.GetMethod("NonGenericMethodInGenericClass");
|
||||
MethodInfo mNGMIGC2 = tGCWM.GetMethod("NonGenericMethodInGenericClass2");
|
||||
MethodInfo mGMDIGC = tGCWM.GetMethod("GenericMethodDefinitionInGenericClass");
|
||||
MethodInfo mGMDIGC2 = tGCWM.GetMethod("GenericMethodDefinitionInGenericClass2");
|
||||
|
||||
// TODO: Test the methods in CallGenericMethodds.CallMethods (requires MethodSpec implementation)
|
||||
|
||||
DisplayGenericType(tBase, "Generic type definition Base<T, U>");
|
||||
DisplayGenericType(tDerived, "Derived<V>");
|
||||
DisplayGenericType(tDerivedBase, "Base type of Derived<V>");
|
||||
@@ -51,7 +62,7 @@ namespace Il2CppInspector
|
||||
DisplayGenericType(tNested, "Nested type in Derived<V>");
|
||||
|
||||
// Assert
|
||||
var checks = new[] {
|
||||
var typeChecks = new[] {
|
||||
(tBase, "Base`2[T,U]", 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),
|
||||
@@ -62,7 +73,22 @@ namespace Il2CppInspector
|
||||
(tNested, "Derived`1[V]+Nested[V]", true, true, true, false, -1)
|
||||
};
|
||||
|
||||
foreach (var check in checks) {
|
||||
var methodChecks = new[] {
|
||||
(mGMDINGC, "Void GenericMethodDefinitionInNonGenericClass[T](T)", true, true, true, false),
|
||||
(mNGMIGC, "Void NonGenericMethodInGenericClass(T)", false, true, false, false),
|
||||
(mNGMIGC2, "Void NonGenericMethodInGenericClass2()", false, true, false, false),
|
||||
(mGMDIGC, "Void GenericMethodDefinitionInGenericClass[U](U)", true, true, true, false),
|
||||
(mGMDIGC2, "Void GenericMethodDefinitionInGenericClass2[U](T, U)", true, true, true, false)
|
||||
/*
|
||||
(mGMDINGC_closed, "Void GenericMethodDefinitionInNonGenericClass[Single](Single)", true, false, false, false),
|
||||
(mNGMIGC_closed, "Void NonGenericMethodInGenericClass(Int32)", false, false, false, false),
|
||||
(mNGMIGC2_closed, "Void NonGenericMethodInGenericClass()", false, false, false, false),
|
||||
(mGMDIGC_closed, "Void GenericMethodDefinitioninGenericClass[Int32](Int32)", true, true, false, true),
|
||||
(mGMDIGC2_closed, "Void GenericMethodDefinitionInGenericClass2[String](T, System.String)", true, true, false, true)
|
||||
*/
|
||||
};
|
||||
|
||||
foreach (var check in typeChecks) {
|
||||
var t = check.Item1;
|
||||
|
||||
Assert.That(t.ToString(), Is.EqualTo(check.Item2));
|
||||
@@ -71,6 +97,16 @@ namespace Il2CppInspector
|
||||
Assert.That(t.ContainsGenericParameters, Is.EqualTo(check.Item5));
|
||||
Assert.That(t.IsGenericParameter, Is.EqualTo(check.Item6));
|
||||
}
|
||||
|
||||
foreach (var check in methodChecks) {
|
||||
var m = check.Item1;
|
||||
|
||||
Assert.That(m.ToString(), Is.EqualTo(check.Item2));
|
||||
Assert.That(m.IsGenericMethod, Is.EqualTo(check.Item3));
|
||||
Assert.That(m.ContainsGenericParameters, Is.EqualTo(check.Item4));
|
||||
Assert.That(m.IsGenericMethodDefinition, Is.EqualTo(check.Item5));
|
||||
Assert.That(m.IsConstructedGenericMethod, Is.EqualTo(check.Item6));
|
||||
}
|
||||
}
|
||||
|
||||
private void DisplayGenericType(TypeInfo t, string caption) {
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Il2CppInspector;
|
||||
|
||||
namespace Il2CppTests.TestSources
|
||||
{
|
||||
@@ -111,4 +112,32 @@ namespace Il2CppTests.TestSources
|
||||
public InnerGeneric2.SubInnerGeneric2 fieldOfSubInnerGeneric2;
|
||||
public InnerGeneric2.SubInnerGeneric3<string> fieldOfSubInnerGeneric3;
|
||||
}
|
||||
|
||||
// Method tests
|
||||
public class NonGeneric
|
||||
{
|
||||
public static void GenericMethodDefinitionInNonGenericClass<T>(T a) {} // IsGenericMethod = true, ContainsGenericParameters = true, IGMD = true, ICGM = false
|
||||
}
|
||||
|
||||
public class GenericClassWithMethods<T>
|
||||
{
|
||||
public void NonGenericMethodInGenericClass(T a) { } // IsGenericMethod = false, ContainsGenericParameters = true, IGMD = false, ICGM = false
|
||||
|
||||
public void NonGenericMethodInGenericClass2() { } // IsGenericMethod = false, ContainsGenericParameters = true, IGMD = false, ICGM = false
|
||||
|
||||
public void GenericMethodDefinitionInGenericClass<U>(U a) { } // IsGenericMethod = true, ContainsGenericParameters = true, IGMD = true, ICGM = false
|
||||
|
||||
public void GenericMethodDefinitionInGenericClass2<U>(T a, U b) { } // IsGenericMethod = true, ContainsGenericParameters = true, IGMD = true, ICGM = false
|
||||
}
|
||||
|
||||
public class CallGenericMethods : GenericClassWithMethods<int>
|
||||
{
|
||||
public void CallMethods() {
|
||||
NonGeneric.GenericMethodDefinitionInNonGenericClass<float>(1.23f); // IsGenericMethod = true, ContainsGenericParameters = false, IGMD = false, ICGM = true
|
||||
NonGenericMethodInGenericClass(123); // IsGenericMethod = false, ContainsGenericParameters = false, IGMD = false, ICGM = false
|
||||
NonGenericMethodInGenericClass2(); // IsGenericMethod = false, ContainsGenericParameters = false, IGMD = false, ICGM = false
|
||||
GenericMethodDefinitionInGenericClass<int>(456); // IsGenericMethod = true, ContainsGenericParameters = true, IGMD = false, ICGM = true
|
||||
GenericMethodDefinitionInGenericClass2<string>(789, "abc"); // IsGenericMethod = true, ContainsGenericParameters = true, IGMD = false, ICGM = true
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user