Model: Include the global namespace when checking for ambiguous type references

This commit is contained in:
Katy Coe
2019-11-29 02:33:47 +01:00
parent 74f209bc2e
commit 0fe5fa53a6
5 changed files with 608 additions and 501 deletions

View File

@@ -10,6 +10,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Il2CppTests.DifferentNamespace;
using Il2CppTests.TestSources;
using NotGlobalNamespace;
using Some.Namespace;
using Some.Namespace.Again.SameLeafName;
using Some.Namespace.SameLeafName;
@@ -37,7 +38,7 @@ using Some.Namespace.SameLeafName;
[assembly: StringFreezing] // 0x000000018000E950-0x000000018000CAF0
// [assembly: TypeLibVersion] // 0x000000018000E950-0x000000018000CAF0
// Image 1: Scope.dll - Assembly: Scope, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - Types 1810-1829
// Image 1: Scope.dll - Assembly: Scope, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - Types 1810-1832
// [assembly: CompilationRelaxations] // 0x000000018000CAF0-0x000000018000CAF0
// [assembly: Debuggable] // 0x000000018000CAF0-0x000000018000CAF0
[assembly: RuntimeCompatibility] // 0x000000018000CAF0-0x000000018000CAF0
@@ -45,35 +46,35 @@ using Some.Namespace.SameLeafName;
internal static class Consts // TypeDefIndex: 100
{
// Fields
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED090
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED09B
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED0B4
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED0DB
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED0F7
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED102
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED10D
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED11F
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED131
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED17C
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED1D9
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED23A
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED295
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED2E5
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED336
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED38A
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED3E8
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED437
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED484
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED4D6
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED52A
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED589
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED5DE
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED63A
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED691
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED6E7
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED743
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED794
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED7EF
public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ED168
public const string MonoCompany = "MONO development team"; // Metadata: 0x000ED173
public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ED18C
public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ED1B3
public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ED1CF
public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ED1DA
public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ED1E5
public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ED1F7
public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED209
public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED254
public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED2B1
public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED312
public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED36D
public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED3BD
public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED40E
public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED462
public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED4C0
public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED50F
public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED55C
public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED5AE
public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED602
public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED661
public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED6B6
public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED712
public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED769
public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED7BF
public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED81B
public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED86C
public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED8C7
}
internal sealed class Locale // TypeDefIndex: 101
@@ -86,132 +87,24 @@ internal sealed class Locale // TypeDefIndex: 101
public static string GetText(string fmt, params /* 0x0000000180009C10-0x0000000180009C10 */ object[] args) => default; // 0x00000001802C64F0-0x00000001802C6560
}
namespace Some.Namespace
public class TestGlobal // TypeDefIndex: 1811
{
public class Test // TypeDefIndex: 1811
{
// Fields
public Again.SameLeafName.Test foo; // 0x10
// Constructors
public Test() {} // 0x00000001800E2000-0x00000001800E2010
}
}
namespace Some.Namespace.Again.SameLeafName
{
public class Test // TypeDefIndex: 1812
{
// Fields
public Namespace.Test foo; // 0x10
// Constructors
public Test() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public AClassFromUsingDirective Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
}
namespace Some.Namespace.SameLeafName
{
public class AClassFromUsingDirective // TypeDefIndex: 1813
{
// Constructors
public AClassFromUsingDirective() {} // 0x00000001800E2000-0x00000001800E2010
}
}
namespace DifferentNamespace
{
public class NestedOuter // TypeDefIndex: 1814
{
// Nested types
public class NestedIntermediate // TypeDefIndex: 1815
{
// Nested types
public class NestedInner // TypeDefIndex: 1816
{
// Constructors
public NestedInner() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public Il2CppTests.TestSources.NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public Il2CppTests.TestSources.NestedOuter.NestedInner Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
// Constructors
public NestedIntermediate() {} // 0x00000001800E2000-0x00000001800E2010
}
// Constructors
public NestedOuter() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public Il2CppTests.DifferentNamespace.NestedOuter Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public Il2CppTests.TestSources.NestedOuter Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public Il2CppTests.TestSources.NestedOuter.NestedInner Test4() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
public class TwoLevelConflictingParentScope // TypeDefIndex: 1817
{
// Nested types
public class NestedOuter // TypeDefIndex: 1818
{
// Nested types
public class NestedInner // TypeDefIndex: 1819
{
// Nested types
public class NestedSubInner // TypeDefIndex: 1820
{
// Constructors
public NestedSubInner() {} // 0x00000001800E2000-0x00000001800E2010
}
// Constructors
public NestedInner() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
// Constructors
public NestedOuter() {} // 0x00000001800E2000-0x00000001800E2010
}
// Constructors
public TwoLevelConflictingParentScope() {} // 0x00000001800E2000-0x00000001800E2010
}
}
namespace Il2CppTests.DifferentNamespace
{
public class NestedOuter // TypeDefIndex: 1821
{
// Constructors
public NestedOuter() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public TestSources.NestedOuter Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public TestSources.NestedOuter.NestedInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
// Constructors
public TestGlobal() {} // 0x00000001800E2000-0x00000001800E2010
}
namespace Il2CppTests.TestSources
{
public class NestedOuter // TypeDefIndex: 1822
public class NestedOuter // TypeDefIndex: 1812
{
// Nested types
public class NestedInner // TypeDefIndex: 1823
public class NestedInner // TypeDefIndex: 1813
{
// Nested types
public class NestedSubInner // TypeDefIndex: 1824
public class NestedSubInner // TypeDefIndex: 1814
{
// Nested types
public class NestedSubSubInner // TypeDefIndex: 1825
public class NestedSubSubInner // TypeDefIndex: 1815
{
// Constructors
public NestedSubSubInner() {} // 0x00000001800E2000-0x00000001800E2010
@@ -233,13 +126,13 @@ namespace Il2CppTests.TestSources
public NestedSubSubInner Test4() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
public class NestedGeneric<T> // TypeDefIndex: 1826
public class NestedGeneric<T> // TypeDefIndex: 1816
{
// Constructors
public NestedGeneric() {}
}
public struct NestedStruct // TypeDefIndex: 1827
public struct NestedStruct // TypeDefIndex: 1817
{
}
@@ -253,10 +146,10 @@ namespace Il2CppTests.TestSources
public NestedSubInner.NestedSubSubInner Test4() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
public class NestedInnerSibling // TypeDefIndex: 1828
public class NestedInnerSibling // TypeDefIndex: 1818
{
// Nested types
public class NestedSubInnerSibling // TypeDefIndex: 1829
public class NestedSubInnerSibling // TypeDefIndex: 1819
{
// Constructors
public NestedSubInnerSibling() {} // 0x00000001800E2000-0x00000001800E2010
@@ -283,3 +176,138 @@ namespace Il2CppTests.TestSources
public NestedInner.NestedStruct? NullableStruct() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
}
namespace Il2CppTests.DifferentNamespace
{
public class NestedOuter // TypeDefIndex: 1820
{
// Constructors
public NestedOuter() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public TestSources.NestedOuter Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public TestSources.NestedOuter.NestedInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
}
namespace DifferentNamespace
{
public class NestedOuter // TypeDefIndex: 1821
{
// Nested types
public class NestedIntermediate // TypeDefIndex: 1822
{
// Nested types
public class NestedInner // TypeDefIndex: 1823
{
// Constructors
public NestedInner() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public Il2CppTests.TestSources.NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public Il2CppTests.TestSources.NestedOuter.NestedInner Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
// Constructors
public NestedIntermediate() {} // 0x00000001800E2000-0x00000001800E2010
}
// Constructors
public NestedOuter() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public Il2CppTests.DifferentNamespace.NestedOuter Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public Il2CppTests.TestSources.NestedOuter Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
public Il2CppTests.TestSources.NestedOuter.NestedInner Test4() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
public class TwoLevelConflictingParentScope // TypeDefIndex: 1824
{
// Nested types
public class NestedOuter // TypeDefIndex: 1825
{
// Nested types
public class NestedInner // TypeDefIndex: 1826
{
// Nested types
public class NestedSubInner // TypeDefIndex: 1827
{
// Constructors
public NestedSubInner() {} // 0x00000001800E2000-0x00000001800E2010
}
// Constructors
public NestedInner() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
// Constructors
public NestedOuter() {} // 0x00000001800E2000-0x00000001800E2010
}
// Constructors
public TwoLevelConflictingParentScope() {} // 0x00000001800E2000-0x00000001800E2010
}
}
namespace Some.Namespace
{
public class Test // TypeDefIndex: 1828
{
// Fields
public Again.SameLeafName.Test foo; // 0x10
// Constructors
public Test() {} // 0x00000001800E2000-0x00000001800E2010
}
}
namespace Some.Namespace.SameLeafName
{
public class AClassFromUsingDirective // TypeDefIndex: 1829
{
// Constructors
public AClassFromUsingDirective() {} // 0x00000001800E2000-0x00000001800E2010
}
}
namespace Some.Namespace.Again.SameLeafName
{
public class Test // TypeDefIndex: 1830
{
// Fields
public Namespace.Test foo; // 0x10
// Constructors
public Test() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public AClassFromUsingDirective Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
}
namespace NotGlobalUsingNamespace
{
public class TestUsingNonGlobalNamespaceType // TypeDefIndex: 1831
{
// Constructors
public TestUsingNonGlobalNamespaceType() {} // 0x00000001800E2000-0x00000001800E2010
// Methods
public NotGlobalNamespace.TestGlobal Test() => default; // 0x00000001800EA8C0-0x00000001800EA8D0
}
}
namespace NotGlobalNamespace
{
public class TestGlobal // TypeDefIndex: 1832
{
// Constructors
public TestGlobal() {} // 0x00000001800E2000-0x00000001800E2010
}
}