Tests: Add generic method unit tests
This commit is contained in:
@@ -33,7 +33,7 @@ using System.Runtime.InteropServices;
|
|||||||
[assembly: StringFreezing] // 0x000000018000E500-0x000000018000E770
|
[assembly: StringFreezing] // 0x000000018000E500-0x000000018000E770
|
||||||
// [assembly: TypeLibVersion] // 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: CompilationRelaxations] // 0x000000018000C600-0x000000018000C660
|
||||||
// [assembly: Debuggable] // 0x000000018000C600-0x000000018000C660
|
// [assembly: Debuggable] // 0x000000018000C600-0x000000018000C660
|
||||||
[assembly: RuntimeCompatibility] // 0x000000018000C600-0x000000018000C660
|
[assembly: RuntimeCompatibility] // 0x000000018000C600-0x000000018000C660
|
||||||
@@ -41,35 +41,35 @@ using System.Runtime.InteropServices;
|
|||||||
internal static class Consts // TypeDefIndex: 100
|
internal static class Consts // TypeDefIndex: 100
|
||||||
{
|
{
|
||||||
// Fields
|
// Fields
|
||||||
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED0B4
|
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED2D8
|
||||||
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED0BF
|
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED2E3
|
||||||
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED0D8
|
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED2FC
|
||||||
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED0FF
|
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED323
|
||||||
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED11B
|
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED33F
|
||||||
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED126
|
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED34A
|
||||||
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED131
|
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED355
|
||||||
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED143
|
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: 0x000ED155
|
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: 0x000ED1A0
|
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: 0x000ED1FD
|
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: 0x000ED25E
|
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: 0x000ED2B9
|
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: 0x000ED309
|
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: 0x000ED35A
|
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: 0x000ED3AE
|
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: 0x000ED40C
|
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: 0x000ED45B
|
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: 0x000ED4A8
|
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: 0x000ED4FA
|
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: 0x000ED54E
|
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: 0x000ED5AD
|
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: 0x000ED602
|
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: 0x000ED65E
|
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: 0x000ED6B5
|
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: 0x000ED70B
|
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: 0x000ED767
|
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: 0x000ED7B8
|
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: 0x000ED813
|
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000EDA37
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed class Locale // TypeDefIndex: 101
|
internal sealed class Locale // TypeDefIndex: 101
|
||||||
@@ -118,7 +118,7 @@ namespace Il2CppTests.TestSources
|
|||||||
public Test() {} // 0x00000001800E5000-0x00000001800E5010
|
public Test() {} // 0x00000001800E5000-0x00000001800E5010
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
public void GenericTypesTest() {} // 0x0000000180408870-0x0000000180408870
|
public void GenericTypesTest() {} // 0x0000000180408930-0x0000000180408930
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
||||||
@@ -228,4 +228,34 @@ namespace Il2CppTests.TestSources
|
|||||||
// Constructors
|
// Constructors
|
||||||
public OuterGeneric() {}
|
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: StringFreezing] // 0x1000F350-0x1000F560
|
||||||
// [assembly: TypeLibVersion] // 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: CompilationRelaxations] // 0x1000D800-0x1000D850
|
||||||
// [assembly: Debuggable] // 0x1000D800-0x1000D850
|
// [assembly: Debuggable] // 0x1000D800-0x1000D850
|
||||||
[assembly: RuntimeCompatibility] // 0x1000D800-0x1000D850
|
[assembly: RuntimeCompatibility] // 0x1000D800-0x1000D850
|
||||||
@@ -41,35 +41,35 @@ using System.Runtime.InteropServices;
|
|||||||
internal static class Consts // TypeDefIndex: 100
|
internal static class Consts // TypeDefIndex: 100
|
||||||
{
|
{
|
||||||
// Fields
|
// Fields
|
||||||
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED0B4
|
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED2D8
|
||||||
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED0BF
|
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED2E3
|
||||||
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED0D8
|
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED2FC
|
||||||
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED0FF
|
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED323
|
||||||
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED11B
|
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED33F
|
||||||
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED126
|
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED34A
|
||||||
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED131
|
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED355
|
||||||
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED143
|
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: 0x000ED155
|
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: 0x000ED1A0
|
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: 0x000ED1FD
|
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: 0x000ED25E
|
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: 0x000ED2B9
|
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: 0x000ED309
|
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: 0x000ED35A
|
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: 0x000ED3AE
|
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: 0x000ED40C
|
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: 0x000ED45B
|
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: 0x000ED4A8
|
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: 0x000ED4FA
|
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: 0x000ED54E
|
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: 0x000ED5AD
|
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: 0x000ED602
|
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: 0x000ED65E
|
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: 0x000ED6B5
|
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: 0x000ED70B
|
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: 0x000ED767
|
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: 0x000ED7B8
|
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: 0x000ED813
|
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000EDA37
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed class Locale // TypeDefIndex: 101
|
internal sealed class Locale // TypeDefIndex: 101
|
||||||
@@ -118,7 +118,7 @@ namespace Il2CppTests.TestSources
|
|||||||
public Test() {} // 0x100C3000-0x100C3010
|
public Test() {} // 0x100C3000-0x100C3010
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
public void GenericTypesTest() {} // 0x1036D450-0x1036D450
|
public void GenericTypesTest() {} // 0x1036D4F0-0x1036D4F0
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
internal class ConstrainedValueType<V> // TypeDefIndex: 1820
|
||||||
@@ -228,4 +228,34 @@ namespace Il2CppTests.TestSources
|
|||||||
// Constructors
|
// Constructors
|
||||||
public OuterGeneric() {}
|
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;
|
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] // 0x000A795C-0x000A7C50
|
// [assembly: AssemblyCompany] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: AssemblyCopyright] // 0x000A795C-0x000A7C50
|
// [assembly: AssemblyCopyright] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: AssemblyDefaultAlias] // 0x000A795C-0x000A7C50
|
// [assembly: AssemblyDefaultAlias] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: AssemblyDelaySign] // 0x000A795C-0x000A7C50
|
// [assembly: AssemblyDelaySign] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: AssemblyDescription] // 0x000A795C-0x000A7C50
|
// [assembly: AssemblyDescription] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: AssemblyFileVersion] // 0x000A795C-0x000A7C50
|
// [assembly: AssemblyFileVersion] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: AssemblyInformationalVersion] // 0x000A795C-0x000A7C50
|
// [assembly: AssemblyInformationalVersion] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: AssemblyKeyFile] // 0x000A795C-0x000A7C50
|
// [assembly: AssemblyKeyFile] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: AssemblyProduct] // 0x000A795C-0x000A7C50
|
// [assembly: AssemblyProduct] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: AssemblyTitle] // 0x000A795C-0x000A7C50
|
// [assembly: AssemblyTitle] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: CLSCompliant] // 0x000A795C-0x000A7C50
|
// [assembly: CLSCompliant] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: CompilationRelaxations] // 0x000A795C-0x000A7C50
|
// [assembly: CompilationRelaxations] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: ComVisible] // 0x000A795C-0x000A7C50
|
// [assembly: ComVisible] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: Debuggable] // 0x000A795C-0x000A7C50
|
// [assembly: Debuggable] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: DefaultDependency] // 0x000A795C-0x000A7C50
|
// [assembly: DefaultDependency] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: Guid] // 0x000A795C-0x000A7C50
|
// [assembly: Guid] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: NeutralResourcesLanguage] // 0x000A795C-0x000A7C50
|
// [assembly: NeutralResourcesLanguage] // 0x000A7AE4-0x000A7DD8
|
||||||
[assembly: RuntimeCompatibility] // 0x000A795C-0x000A7C50
|
[assembly: RuntimeCompatibility] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: SatelliteContractVersion] // 0x000A795C-0x000A7C50
|
// [assembly: SatelliteContractVersion] // 0x000A7AE4-0x000A7DD8
|
||||||
[assembly: StringFreezing] // 0x000A795C-0x000A7C50
|
[assembly: StringFreezing] // 0x000A7AE4-0x000A7DD8
|
||||||
// [assembly: TypeLibVersion] // 0x000A795C-0x000A7C50
|
// [assembly: TypeLibVersion] // 0x000A7AE4-0x000A7DD8
|
||||||
|
|
||||||
// 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] // 0x000A7D64-0x000A7DB8
|
// [assembly: CompilationRelaxations] // 0x000A7EEC-0x000A7F40
|
||||||
// [assembly: Debuggable] // 0x000A7D64-0x000A7DB8
|
// [assembly: Debuggable] // 0x000A7EEC-0x000A7F40
|
||||||
[assembly: RuntimeCompatibility] // 0x000A7D64-0x000A7DB8
|
[assembly: RuntimeCompatibility] // 0x000A7EEC-0x000A7F40
|
||||||
|
|
||||||
internal static class Consts // TypeDefIndex: 100
|
internal static class Consts // TypeDefIndex: 100
|
||||||
{
|
{
|
||||||
// Fields
|
// Fields
|
||||||
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED0B4
|
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED2D8
|
||||||
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED0BF
|
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED2E3
|
||||||
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED0D8
|
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED2FC
|
||||||
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED0FF
|
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED323
|
||||||
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED11B
|
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED33F
|
||||||
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED126
|
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED34A
|
||||||
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED131
|
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED355
|
||||||
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED143
|
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: 0x000ED155
|
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: 0x000ED1A0
|
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: 0x000ED1FD
|
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: 0x000ED25E
|
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: 0x000ED2B9
|
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: 0x000ED309
|
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: 0x000ED35A
|
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: 0x000ED3AE
|
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: 0x000ED40C
|
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: 0x000ED45B
|
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: 0x000ED4A8
|
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: 0x000ED4FA
|
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: 0x000ED54E
|
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: 0x000ED5AD
|
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: 0x000ED602
|
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: 0x000ED65E
|
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: 0x000ED6B5
|
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: 0x000ED70B
|
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: 0x000ED767
|
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: 0x000ED7B8
|
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: 0x000ED813
|
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000EDA37
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed class Locale // TypeDefIndex: 101
|
internal sealed class Locale // TypeDefIndex: 101
|
||||||
{
|
{
|
||||||
// Constructors
|
// Constructors
|
||||||
private Locale() {} // 0x003ED908-0x003ED910
|
private Locale() {} // 0x003EDAF8-0x003EDB00
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
public static string GetText(string msg) => default; // 0x003ED910-0x003ED914
|
public static string GetText(string msg) => default; // 0x003EDB00-0x003EDB04
|
||||||
public static string GetText(string fmt, params /* 0x000A6188-0x000A6198 */ object[] args) => default; // 0x003ED914-0x003ED9A0
|
public static string GetText(string fmt, params /* 0x000A6310-0x000A6320 */ object[] args) => default; // 0x003EDB04-0x003EDB90
|
||||||
}
|
}
|
||||||
|
|
||||||
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() {} // 0x0057AFD8-0x0057AFE0
|
public Test() {} // 0x0057B30C-0x0057B314
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
public void GenericTypesTest() {} // 0x0057AE1C-0x0057AFD8
|
public void GenericTypesTest() {} // 0x0057B150-0x0057B30C
|
||||||
}
|
}
|
||||||
|
|
||||||
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] // 0x000A7D50-0x000A7D64
|
// [NullableContext] // 0x000A7ED8-0x000A7EEC
|
||||||
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 {}
|
||||||
@@ -228,4 +228,34 @@ namespace Il2CppTests.TestSources
|
|||||||
// Constructors
|
// Constructors
|
||||||
public OuterGeneric() {}
|
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 tF = tDerived.GetField("F").FieldType;
|
||||||
TypeInfo tNested = asm.GetType("Il2CppTests.TestSources.Derived`1+Nested");
|
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(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>");
|
||||||
@@ -51,7 +62,7 @@ namespace Il2CppInspector
|
|||||||
DisplayGenericType(tNested, "Nested type in Derived<V>");
|
DisplayGenericType(tNested, "Nested type in Derived<V>");
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var checks = new[] {
|
var typeChecks = new[] {
|
||||||
(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),
|
||||||
@@ -62,7 +73,22 @@ namespace Il2CppInspector
|
|||||||
(tNested, "Derived`1[V]+Nested[V]", true, true, true, false, -1)
|
(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;
|
var t = check.Item1;
|
||||||
|
|
||||||
Assert.That(t.ToString(), Is.EqualTo(check.Item2));
|
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.ContainsGenericParameters, Is.EqualTo(check.Item5));
|
||||||
Assert.That(t.IsGenericParameter, Is.EqualTo(check.Item6));
|
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) {
|
private void DisplayGenericType(TypeInfo t, string caption) {
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using Il2CppInspector;
|
||||||
|
|
||||||
namespace Il2CppTests.TestSources
|
namespace Il2CppTests.TestSources
|
||||||
{
|
{
|
||||||
@@ -111,4 +112,32 @@ namespace Il2CppTests.TestSources
|
|||||||
public InnerGeneric2.SubInnerGeneric2 fieldOfSubInnerGeneric2;
|
public InnerGeneric2.SubInnerGeneric2 fieldOfSubInnerGeneric2;
|
||||||
public InnerGeneric2.SubInnerGeneric3<string> fieldOfSubInnerGeneric3;
|
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