Tests: Add explicit interface implementation tests

This commit is contained in:
Katy Coe
2019-11-18 01:09:07 +01:00
parent 7167f37d18
commit 68d8e47d7d
5 changed files with 507 additions and 0 deletions

View File

@@ -27,6 +27,12 @@
<None Remove="TestExpectedResults\**" />
</ItemGroup>
<ItemGroup>
<Content Include="TestExpectedResults\ExplicitInterfaces.cs" />
<Content Include="TestExpectedResults\GameAssembly-ExplicitInterfaces-x64.cs" />
<Content Include="TestExpectedResults\GameAssembly-ExplicitInterfaces-x86.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="TestExpectedResults\GameAssembly-Scope-x64.cs" />
<Content Include="TestExpectedResults\GameAssembly-Scope-x86.cs" />
@@ -52,6 +58,7 @@
<Content Include="TestExpectedResults\GameAssembly-Methods-x64.cs" />
<Content Include="TestExpectedResults\GameAssembly-Methods-x86.cs" />
<Content Include="TestExpectedResults\Methods.cs" />
<Content Include="TestSources\ExplicitInterfaces.cs" />
<Content Include="TestSources\Scope.cs" />
</ItemGroup>

View File

@@ -0,0 +1,147 @@
/*
* Generated code file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
*/
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Image 0: mscorlib.dll - 0-1809
// [assembly: AssemblyCompany] // 0x000A50A8-0x000A539C
// [assembly: AssemblyCopyright] // 0x000A50A8-0x000A539C
// [assembly: AssemblyDefaultAlias] // 0x000A50A8-0x000A539C
// [assembly: AssemblyDelaySign] // 0x000A50A8-0x000A539C
// [assembly: AssemblyDescription] // 0x000A50A8-0x000A539C
// [assembly: AssemblyFileVersion] // 0x000A50A8-0x000A539C
// [assembly: AssemblyInformationalVersion] // 0x000A50A8-0x000A539C
// [assembly: AssemblyKeyFile] // 0x000A50A8-0x000A539C
// [assembly: AssemblyProduct] // 0x000A50A8-0x000A539C
// [assembly: AssemblyTitle] // 0x000A50A8-0x000A539C
// [assembly: CLSCompliant] // 0x000A50A8-0x000A539C
// [assembly: CompilationRelaxations] // 0x000A50A8-0x000A539C
// [assembly: ComVisible] // 0x000A50A8-0x000A539C
// [assembly: Debuggable] // 0x000A50A8-0x000A539C
// [assembly: DefaultDependency] // 0x000A50A8-0x000A539C
// [assembly: Guid] // 0x000A50A8-0x000A539C
// [assembly: NeutralResourcesLanguage] // 0x000A50A8-0x000A539C
[assembly: RuntimeCompatibility] // 0x000A50A8-0x000A539C
// [assembly: SatelliteContractVersion] // 0x000A50A8-0x000A539C
[assembly: StringFreezing] // 0x000A50A8-0x000A539C
// [assembly: TypeLibVersion] // 0x000A50A8-0x000A539C
// Image 1: ExplicitInterfaces.dll - 1810-1818
// [assembly: CompilationRelaxations] // 0x000A539C-0x000A539C
// [assembly: Debuggable] // 0x000A539C-0x000A539C
[assembly: RuntimeCompatibility] // 0x000A539C-0x000A539C
internal static class Consts // TypeDefIndex: 100
{
// Fields
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ECBFC
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ECC07
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ECC20
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ECC47
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ECC63
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ECC6E
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ECC79
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ECC8B
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECC9D
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECCE8
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECD45
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECDA6
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECE01
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECE51
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECEA2
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECEF6
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ECF54
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ECFA3
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ECFF0
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED042
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED096
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED0F5
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED14A
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1A6
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1FD
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED253
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED2AF
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED300
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED35B
}
internal sealed class Locale // TypeDefIndex: 101
{
// Constructors
private Locale() {} // 0x003EC630-0x003EC638
// Methods
public static string GetText(string msg) => default; // 0x003EC638-0x003EC63C
public static string GetText(string fmt, params /* 0x000A38D4-0x000A38E4 */ object[] args) => default; // 0x003EC63C-0x003EC6C8
}
namespace Il2CppTests.TestSources
{
internal interface IControl // TypeDefIndex: 1811
{
// Methods
void Paint();
}
internal interface ISurface // TypeDefIndex: 1812
{
// Methods
void Paint();
}
internal class Test : IControl, ISurface // TypeDefIndex: 1813
{
// Constructors
public Test() {} // 0x0056159C-0x0056159C
// Methods
void IControl.Paint() {} // 0x00561594-0x00561598
void ISurface.Paint() {} // 0x00561598-0x0056159C
}
internal interface ILeft // TypeDefIndex: 1814
{
// Properties
int P { get; }
}
internal interface IRight // TypeDefIndex: 1815
{
// Methods
int P();
}
internal class Middle : ILeft, IRight // TypeDefIndex: 1816
{
// Properties
int ILeft.P { get; } // 0x00561584-0x0056158C
// Constructors
public Middle() {} // 0x0056158C-0x00561594
// Methods
int P() => default; // 0x0056157C-0x00561584
}
internal interface IGeneric<in T> // TypeDefIndex: 1817
{
// Methods
void GenericMethod(T t);
}
internal class ImplementsGenericInterface : IGeneric<KeyValuePair<int, double>> // TypeDefIndex: 1818
{
// Constructors
public ImplementsGenericInterface() {} // 0x00561574-0x0056157C
// Methods
void IGeneric<KeyValuePair<int, double>>.GenericMethod(KeyValuePair<int, double> t) {} // 0x00561570-0x00561574
}
}

View File

@@ -0,0 +1,147 @@
/*
* Generated code file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
*/
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Image 0: mscorlib.dll - 0-1809
// [assembly: AssemblyCompany] // 0x000000018000E950-0x000000018000CAF0
// [assembly: AssemblyCopyright] // 0x000000018000E950-0x000000018000CAF0
// [assembly: AssemblyDefaultAlias] // 0x000000018000E950-0x000000018000CAF0
// [assembly: AssemblyDelaySign] // 0x000000018000E950-0x000000018000CAF0
// [assembly: AssemblyDescription] // 0x000000018000E950-0x000000018000CAF0
// [assembly: AssemblyFileVersion] // 0x000000018000E950-0x000000018000CAF0
// [assembly: AssemblyInformationalVersion] // 0x000000018000E950-0x000000018000CAF0
// [assembly: AssemblyKeyFile] // 0x000000018000E950-0x000000018000CAF0
// [assembly: AssemblyProduct] // 0x000000018000E950-0x000000018000CAF0
// [assembly: AssemblyTitle] // 0x000000018000E950-0x000000018000CAF0
// [assembly: CLSCompliant] // 0x000000018000E950-0x000000018000CAF0
// [assembly: CompilationRelaxations] // 0x000000018000E950-0x000000018000CAF0
// [assembly: ComVisible] // 0x000000018000E950-0x000000018000CAF0
// [assembly: Debuggable] // 0x000000018000E950-0x000000018000CAF0
// [assembly: DefaultDependency] // 0x000000018000E950-0x000000018000CAF0
// [assembly: Guid] // 0x000000018000E950-0x000000018000CAF0
// [assembly: NeutralResourcesLanguage] // 0x000000018000E950-0x000000018000CAF0
[assembly: RuntimeCompatibility] // 0x000000018000E950-0x000000018000CAF0
// [assembly: SatelliteContractVersion] // 0x000000018000E950-0x000000018000CAF0
[assembly: StringFreezing] // 0x000000018000E950-0x000000018000CAF0
// [assembly: TypeLibVersion] // 0x000000018000E950-0x000000018000CAF0
// Image 1: ExplicitInterfaces.dll - 1810-1818
// [assembly: CompilationRelaxations] // 0x000000018000CAF0-0x000000018000CAF0
// [assembly: Debuggable] // 0x000000018000CAF0-0x000000018000CAF0
[assembly: RuntimeCompatibility] // 0x000000018000CAF0-0x000000018000CAF0
internal static class Consts // TypeDefIndex: 100
{
// Fields
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ECBFC
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ECC07
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ECC20
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ECC47
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ECC63
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ECC6E
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ECC79
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ECC8B
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECC9D
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECCE8
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECD45
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECDA6
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECE01
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECE51
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECEA2
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECEF6
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ECF54
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ECFA3
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ECFF0
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED042
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED096
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED0F5
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED14A
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1A6
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1FD
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED253
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED2AF
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED300
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED35B
}
internal sealed class Locale // TypeDefIndex: 101
{
// Constructors
private Locale() {} // 0x00000001800E2000-0x00000001800E2000
// Methods
public static string GetText(string msg) => default; // 0x0000000180123590-0x0000000180123590
public static string GetText(string fmt, params /* 0x0000000180009C10-0x0000000180009C10 */ object[] args) => default; // 0x00000001802C64F0-0x00000001802C6560
}
namespace Il2CppTests.TestSources
{
internal interface IControl // TypeDefIndex: 1811
{
// Methods
void Paint();
}
internal interface ISurface // TypeDefIndex: 1812
{
// Methods
void Paint();
}
internal class Test : IControl, ISurface // TypeDefIndex: 1813
{
// Constructors
public Test() {} // 0x00000001800E2000-0x00000001800E2000
// Methods
void IControl.Paint() {} // 0x00000001800EA7B0-0x00000001800EA7B0
void ISurface.Paint() {} // 0x00000001800EA7B0-0x00000001800EA7B0
}
internal interface ILeft // TypeDefIndex: 1814
{
// Properties
int P { get; }
}
internal interface IRight // TypeDefIndex: 1815
{
// Methods
int P();
}
internal class Middle : ILeft, IRight // TypeDefIndex: 1816
{
// Properties
int ILeft.P { get; } // 0x00000001800EA8C0-0x00000001800EA8C0
// Constructors
public Middle() {} // 0x00000001800E2000-0x00000001800E2000
// Methods
int P() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
}
internal interface IGeneric<in T> // TypeDefIndex: 1817
{
// Methods
void GenericMethod(T t);
}
internal class ImplementsGenericInterface : IGeneric<KeyValuePair<int, double>> // TypeDefIndex: 1818
{
// Constructors
public ImplementsGenericInterface() {} // 0x00000001800E2000-0x00000001800E2000
// Methods
void IGeneric<KeyValuePair<int, double>>.GenericMethod(KeyValuePair<int, double> t) {} // 0x00000001800EA7B0-0x00000001800EA7B0
}
}

View File

@@ -0,0 +1,147 @@
/*
* Generated code file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
*/
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Image 0: mscorlib.dll - 0-1809
// [assembly: AssemblyCompany] // 0x1000F760-0x1000DC90
// [assembly: AssemblyCopyright] // 0x1000F760-0x1000DC90
// [assembly: AssemblyDefaultAlias] // 0x1000F760-0x1000DC90
// [assembly: AssemblyDelaySign] // 0x1000F760-0x1000DC90
// [assembly: AssemblyDescription] // 0x1000F760-0x1000DC90
// [assembly: AssemblyFileVersion] // 0x1000F760-0x1000DC90
// [assembly: AssemblyInformationalVersion] // 0x1000F760-0x1000DC90
// [assembly: AssemblyKeyFile] // 0x1000F760-0x1000DC90
// [assembly: AssemblyProduct] // 0x1000F760-0x1000DC90
// [assembly: AssemblyTitle] // 0x1000F760-0x1000DC90
// [assembly: CLSCompliant] // 0x1000F760-0x1000DC90
// [assembly: CompilationRelaxations] // 0x1000F760-0x1000DC90
// [assembly: ComVisible] // 0x1000F760-0x1000DC90
// [assembly: Debuggable] // 0x1000F760-0x1000DC90
// [assembly: DefaultDependency] // 0x1000F760-0x1000DC90
// [assembly: Guid] // 0x1000F760-0x1000DC90
// [assembly: NeutralResourcesLanguage] // 0x1000F760-0x1000DC90
[assembly: RuntimeCompatibility] // 0x1000F760-0x1000DC90
// [assembly: SatelliteContractVersion] // 0x1000F760-0x1000DC90
[assembly: StringFreezing] // 0x1000F760-0x1000DC90
// [assembly: TypeLibVersion] // 0x1000F760-0x1000DC90
// Image 1: ExplicitInterfaces.dll - 1810-1818
// [assembly: CompilationRelaxations] // 0x1000DC90-0x1000DC90
// [assembly: Debuggable] // 0x1000DC90-0x1000DC90
[assembly: RuntimeCompatibility] // 0x1000DC90-0x1000DC90
internal static class Consts // TypeDefIndex: 100
{
// Fields
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ECBFC
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ECC07
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ECC20
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ECC47
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ECC63
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ECC6E
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ECC79
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ECC8B
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECC9D
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECCE8
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECD45
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECDA6
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECE01
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECE51
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECEA2
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECEF6
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ECF54
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ECFA3
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ECFF0
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED042
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED096
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED0F5
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED14A
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1A6
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1FD
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED253
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED2AF
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED300
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED35B
}
internal sealed class Locale // TypeDefIndex: 101
{
// Constructors
private Locale() {} // 0x100BF000-0x100BF000
// Methods
public static string GetText(string msg) => default; // 0x100F7810-0x100F7810
public static string GetText(string fmt, params /* 0x1000A660-0x1000A660 */ object[] args) => default; // 0x10261460-0x102614B0
}
namespace Il2CppTests.TestSources
{
internal interface IControl // TypeDefIndex: 1811
{
// Methods
void Paint();
}
internal interface ISurface // TypeDefIndex: 1812
{
// Methods
void Paint();
}
internal class Test : IControl, ISurface // TypeDefIndex: 1813
{
// Constructors
public Test() {} // 0x100BF000-0x100BF000
// Methods
void IControl.Paint() {} // 0x100C5530-0x100C5530
void ISurface.Paint() {} // 0x100C5530-0x100C5530
}
internal interface ILeft // TypeDefIndex: 1814
{
// Properties
int P { get; }
}
internal interface IRight // TypeDefIndex: 1815
{
// Methods
int P();
}
internal class Middle : ILeft, IRight // TypeDefIndex: 1816
{
// Properties
int ILeft.P { get; } // 0x100C5600-0x100C5600
// Constructors
public Middle() {} // 0x100BF000-0x100BF000
// Methods
int P() => default; // 0x100C5600-0x100C5600
}
internal interface IGeneric<in T> // TypeDefIndex: 1817
{
// Methods
void GenericMethod(T t);
}
internal class ImplementsGenericInterface : IGeneric<KeyValuePair<int, double>> // TypeDefIndex: 1818
{
// Constructors
public ImplementsGenericInterface() {} // 0x100BF000-0x100BF000
// Methods
void IGeneric<KeyValuePair<int, double>>.GenericMethod(KeyValuePair<int, double> t) {} // 0x100C5530-0x100C5530
}
}

View File

@@ -0,0 +1,59 @@
/*
Copyright 2017-2019 Katy Coe - http://www.hearthcode.org - http://www.djkaty.com
All rights reserved.
*/
using System.Collections.Generic;
#pragma warning disable CS0169
namespace Il2CppTests.TestSources
{
// See: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/interfaces/explicit-interface-implementation
interface IControl
{
void Paint();
}
interface ISurface
{
void Paint();
}
internal class Test : IControl, ISurface
{
// No access modifiers on explicit interface implementation
void IControl.Paint() {}
void ISurface.Paint() {}
}
interface ILeft
{
int P { get; }
}
interface IRight
{
int P();
}
internal class Middle : ILeft, IRight
{
// One or the other has to be explicitly implemented to resolve naming conflicts
public int P() => default;
int ILeft.P => default;
}
// Generic implementation
interface IGeneric<in T>
{
void GenericMethod(T t);
}
internal class ImplementsGenericInterface : IGeneric<KeyValuePair<int, double>>
{
void IGeneric<KeyValuePair<int, double>>.GenericMethod(KeyValuePair<int, double> t) {}
}
}
#pragma warning restore CS0169