From 0fe5fa53a6fe122ecd8b9604a7dd86328b0c3e58 Mon Sep 17 00:00:00 2001 From: Katy Coe Date: Fri, 29 Nov 2019 02:33:47 +0100 Subject: [PATCH] Model: Include the global namespace when checking for ambiguous type references --- Il2CppInspector/Reflection/TypeInfo.cs | 7 + .../GameAssembly-Scope-x64.cs | 326 +++++++------ .../GameAssembly-Scope-x86.cs | 326 +++++++------ Il2CppTests/TestExpectedResults/Scope.cs | 434 ++++++++++-------- Il2CppTests/TestSources/Scope.cs | 16 + 5 files changed, 608 insertions(+), 501 deletions(-) diff --git a/Il2CppInspector/Reflection/TypeInfo.cs b/Il2CppInspector/Reflection/TypeInfo.cs index 773613e..685058a 100644 --- a/Il2CppInspector/Reflection/TypeInfo.cs +++ b/Il2CppInspector/Reflection/TypeInfo.cs @@ -281,7 +281,14 @@ namespace Il2CppInspector.Reflection { // Only test the outermost type name outerTypeName = minimallyScopedName.Split('.')[0]; + // Take matching type names from all namespaces in scope var matchingNamespaces = scope.Namespaces.Where(n => Assembly.Model.TypesByFullName.ContainsKey(n + "." + outerTypeName)).ToList(); + + // The global namespace is in scope so take every matching type from that too + if (Assembly.Model.TypesByFullName.ContainsKey(outerTypeName)) + matchingNamespaces.Add(""); + + // More than one possible matching type? If so, the type reference is ambiguous if (matchingNamespaces.Count > 1) { Debug.WriteLine("Minimally scoped name would be ambiguous between: " + string.Join(" and ", matchingNamespaces.Select(n => n + "." + minimallyScopedName))); // TODO: This can be improved to cut off a new mutual root that doesn't cause ambiguity diff --git a/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x64.cs b/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x64.cs index 847247c..f760319 100644 --- a/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x64.cs +++ b/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x64.cs @@ -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 // TypeDefIndex: 1826 + public class NestedGeneric // 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 + } +} diff --git a/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x86.cs b/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x86.cs index 133d03a..d4a0028 100644 --- a/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x86.cs +++ b/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x86.cs @@ -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] // 0x1000F760-0x1000DC90 // [assembly: TypeLibVersion] // 0x1000F760-0x1000DC90 -// 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] // 0x1000DC90-0x1000DC90 // [assembly: Debuggable] // 0x1000DC90-0x1000DC90 [assembly: RuntimeCompatibility] // 0x1000DC90-0x1000DC90 @@ -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 /* 0x1000A660-0x1000A660 */ object[] args) => default; // 0x10261460-0x102614B0 } -namespace Some.Namespace +public class TestGlobal // TypeDefIndex: 1811 { - public class Test // TypeDefIndex: 1811 - { - // Fields - public Again.SameLeafName.Test foo; // 0x08 - - // Constructors - public Test() {} // 0x100BF000-0x100BF010 - } -} - -namespace Some.Namespace.Again.SameLeafName -{ - public class Test // TypeDefIndex: 1812 - { - // Fields - public Namespace.Test foo; // 0x08 - - // Constructors - public Test() {} // 0x100BF000-0x100BF010 - - // Methods - public AClassFromUsingDirective Test1() => default; // 0x100C5600-0x100C5610 - } -} - -namespace Some.Namespace.SameLeafName -{ - public class AClassFromUsingDirective // TypeDefIndex: 1813 - { - // Constructors - public AClassFromUsingDirective() {} // 0x100BF000-0x100BF010 - } -} - -namespace DifferentNamespace -{ - public class NestedOuter // TypeDefIndex: 1814 - { - // Nested types - public class NestedIntermediate // TypeDefIndex: 1815 - { - // Nested types - public class NestedInner // TypeDefIndex: 1816 - { - // Constructors - public NestedInner() {} // 0x100BF000-0x100BF010 - - // Methods - public Il2CppTests.TestSources.NestedOuter Test1() => default; // 0x100C5600-0x100C5610 - public Il2CppTests.TestSources.NestedOuter.NestedInner Test2() => default; // 0x100C5600-0x100C5610 - public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test3() => default; // 0x100C5600-0x100C5610 - } - - // Constructors - public NestedIntermediate() {} // 0x100BF000-0x100BF010 - } - - // Constructors - public NestedOuter() {} // 0x100BF000-0x100BF010 - - // Methods - public NestedOuter Test1() => default; // 0x100C5600-0x100C5610 - public Il2CppTests.DifferentNamespace.NestedOuter Test2() => default; // 0x100C5600-0x100C5610 - public Il2CppTests.TestSources.NestedOuter Test3() => default; // 0x100C5600-0x100C5610 - public Il2CppTests.TestSources.NestedOuter.NestedInner Test4() => default; // 0x100C5600-0x100C5610 - } - - 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() {} // 0x100BF000-0x100BF010 - } - - // Constructors - public NestedInner() {} // 0x100BF000-0x100BF010 - - // Methods - public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test1() => default; // 0x100C5600-0x100C5610 - } - - // Constructors - public NestedOuter() {} // 0x100BF000-0x100BF010 - } - - // Constructors - public TwoLevelConflictingParentScope() {} // 0x100BF000-0x100BF010 - } -} - -namespace Il2CppTests.DifferentNamespace -{ - public class NestedOuter // TypeDefIndex: 1821 - { - // Constructors - public NestedOuter() {} // 0x100BF000-0x100BF010 - - // Methods - public NestedOuter Test1() => default; // 0x100C5600-0x100C5610 - public TestSources.NestedOuter Test2() => default; // 0x100C5600-0x100C5610 - public TestSources.NestedOuter.NestedInner Test3() => default; // 0x100C5600-0x100C5610 - } + // Constructors + public TestGlobal() {} // 0x100BF000-0x100BF010 } 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() {} // 0x100BF000-0x100BF010 @@ -233,13 +126,13 @@ namespace Il2CppTests.TestSources public NestedSubSubInner Test4() => default; // 0x100C5600-0x100C5610 } - public class NestedGeneric // TypeDefIndex: 1826 + public class NestedGeneric // 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; // 0x100C5600-0x100C5610 } - 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() {} // 0x100BF000-0x100BF010 @@ -283,3 +176,138 @@ namespace Il2CppTests.TestSources public NestedInner.NestedStruct? NullableStruct() => default; // 0x100C5600-0x100C5610 } } + +namespace Il2CppTests.DifferentNamespace +{ + public class NestedOuter // TypeDefIndex: 1820 + { + // Constructors + public NestedOuter() {} // 0x100BF000-0x100BF010 + + // Methods + public NestedOuter Test1() => default; // 0x100C5600-0x100C5610 + public TestSources.NestedOuter Test2() => default; // 0x100C5600-0x100C5610 + public TestSources.NestedOuter.NestedInner Test3() => default; // 0x100C5600-0x100C5610 + } +} + +namespace DifferentNamespace +{ + public class NestedOuter // TypeDefIndex: 1821 + { + // Nested types + public class NestedIntermediate // TypeDefIndex: 1822 + { + // Nested types + public class NestedInner // TypeDefIndex: 1823 + { + // Constructors + public NestedInner() {} // 0x100BF000-0x100BF010 + + // Methods + public Il2CppTests.TestSources.NestedOuter Test1() => default; // 0x100C5600-0x100C5610 + public Il2CppTests.TestSources.NestedOuter.NestedInner Test2() => default; // 0x100C5600-0x100C5610 + public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test3() => default; // 0x100C5600-0x100C5610 + } + + // Constructors + public NestedIntermediate() {} // 0x100BF000-0x100BF010 + } + + // Constructors + public NestedOuter() {} // 0x100BF000-0x100BF010 + + // Methods + public NestedOuter Test1() => default; // 0x100C5600-0x100C5610 + public Il2CppTests.DifferentNamespace.NestedOuter Test2() => default; // 0x100C5600-0x100C5610 + public Il2CppTests.TestSources.NestedOuter Test3() => default; // 0x100C5600-0x100C5610 + public Il2CppTests.TestSources.NestedOuter.NestedInner Test4() => default; // 0x100C5600-0x100C5610 + } + + 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() {} // 0x100BF000-0x100BF010 + } + + // Constructors + public NestedInner() {} // 0x100BF000-0x100BF010 + + // Methods + public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test1() => default; // 0x100C5600-0x100C5610 + } + + // Constructors + public NestedOuter() {} // 0x100BF000-0x100BF010 + } + + // Constructors + public TwoLevelConflictingParentScope() {} // 0x100BF000-0x100BF010 + } +} + +namespace Some.Namespace +{ + public class Test // TypeDefIndex: 1828 + { + // Fields + public Again.SameLeafName.Test foo; // 0x08 + + // Constructors + public Test() {} // 0x100BF000-0x100BF010 + } +} + +namespace Some.Namespace.SameLeafName +{ + public class AClassFromUsingDirective // TypeDefIndex: 1829 + { + // Constructors + public AClassFromUsingDirective() {} // 0x100BF000-0x100BF010 + } +} + +namespace Some.Namespace.Again.SameLeafName +{ + public class Test // TypeDefIndex: 1830 + { + // Fields + public Namespace.Test foo; // 0x08 + + // Constructors + public Test() {} // 0x100BF000-0x100BF010 + + // Methods + public AClassFromUsingDirective Test1() => default; // 0x100C5600-0x100C5610 + } +} + +namespace NotGlobalUsingNamespace +{ + public class TestUsingNonGlobalNamespaceType // TypeDefIndex: 1831 + { + // Constructors + public TestUsingNonGlobalNamespaceType() {} // 0x100BF000-0x100BF010 + + // Methods + public NotGlobalNamespace.TestGlobal Test() => default; // 0x100C5600-0x100C5610 + } +} + +namespace NotGlobalNamespace +{ + public class TestGlobal // TypeDefIndex: 1832 + { + // Constructors + public TestGlobal() {} // 0x100BF000-0x100BF010 + } +} diff --git a/Il2CppTests/TestExpectedResults/Scope.cs b/Il2CppTests/TestExpectedResults/Scope.cs index 56f23f8..c471d0d 100644 --- a/Il2CppTests/TestExpectedResults/Scope.cs +++ b/Il2CppTests/TestExpectedResults/Scope.cs @@ -10,276 +10,304 @@ 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; // Image 0: mscorlib.dll - Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Types 0-1809 -// [assembly: AssemblyCompany] // 0x000A53A8-0x000A569C -// [assembly: AssemblyCopyright] // 0x000A53A8-0x000A569C -// [assembly: AssemblyDefaultAlias] // 0x000A53A8-0x000A569C -// [assembly: AssemblyDelaySign] // 0x000A53A8-0x000A569C -// [assembly: AssemblyDescription] // 0x000A53A8-0x000A569C -// [assembly: AssemblyFileVersion] // 0x000A53A8-0x000A569C -// [assembly: AssemblyInformationalVersion] // 0x000A53A8-0x000A569C -// [assembly: AssemblyKeyFile] // 0x000A53A8-0x000A569C -// [assembly: AssemblyProduct] // 0x000A53A8-0x000A569C -// [assembly: AssemblyTitle] // 0x000A53A8-0x000A569C -// [assembly: CLSCompliant] // 0x000A53A8-0x000A569C -// [assembly: CompilationRelaxations] // 0x000A53A8-0x000A569C -// [assembly: ComVisible] // 0x000A53A8-0x000A569C -// [assembly: Debuggable] // 0x000A53A8-0x000A569C -// [assembly: DefaultDependency] // 0x000A53A8-0x000A569C -// [assembly: Guid] // 0x000A53A8-0x000A569C -// [assembly: NeutralResourcesLanguage] // 0x000A53A8-0x000A569C -[assembly: RuntimeCompatibility] // 0x000A53A8-0x000A569C -// [assembly: SatelliteContractVersion] // 0x000A53A8-0x000A569C -[assembly: StringFreezing] // 0x000A53A8-0x000A569C -// [assembly: TypeLibVersion] // 0x000A53A8-0x000A569C +// [assembly: AssemblyCompany] // 0x000A5410-0x000A5704 +// [assembly: AssemblyCopyright] // 0x000A5410-0x000A5704 +// [assembly: AssemblyDefaultAlias] // 0x000A5410-0x000A5704 +// [assembly: AssemblyDelaySign] // 0x000A5410-0x000A5704 +// [assembly: AssemblyDescription] // 0x000A5410-0x000A5704 +// [assembly: AssemblyFileVersion] // 0x000A5410-0x000A5704 +// [assembly: AssemblyInformationalVersion] // 0x000A5410-0x000A5704 +// [assembly: AssemblyKeyFile] // 0x000A5410-0x000A5704 +// [assembly: AssemblyProduct] // 0x000A5410-0x000A5704 +// [assembly: AssemblyTitle] // 0x000A5410-0x000A5704 +// [assembly: CLSCompliant] // 0x000A5410-0x000A5704 +// [assembly: CompilationRelaxations] // 0x000A5410-0x000A5704 +// [assembly: ComVisible] // 0x000A5410-0x000A5704 +// [assembly: Debuggable] // 0x000A5410-0x000A5704 +// [assembly: DefaultDependency] // 0x000A5410-0x000A5704 +// [assembly: Guid] // 0x000A5410-0x000A5704 +// [assembly: NeutralResourcesLanguage] // 0x000A5410-0x000A5704 +[assembly: RuntimeCompatibility] // 0x000A5410-0x000A5704 +// [assembly: SatelliteContractVersion] // 0x000A5410-0x000A5704 +[assembly: StringFreezing] // 0x000A5410-0x000A5704 +// [assembly: TypeLibVersion] // 0x000A5410-0x000A5704 -// Image 1: Scope.dll - Assembly: Scope, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - Types 1810-1829 -// [assembly: CompilationRelaxations] // 0x000A569C-0x000A569C -// [assembly: Debuggable] // 0x000A569C-0x000A569C -[assembly: RuntimeCompatibility] // 0x000A569C-0x000A569C +// Image 1: Scope.dll - Assembly: Scope, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - Types 1810-1832 +// [assembly: CompilationRelaxations] // 0x000A5704-0x000A5704 +// [assembly: Debuggable] // 0x000A5704-0x000A5704 +[assembly: RuntimeCompatibility] // 0x000A5704-0x000A5704 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 { // Constructors - private Locale() {} // 0x003ECD70-0x003ECD78 + private Locale() {} // 0x003ECDD8-0x003ECDE0 // Methods - public static string GetText(string msg) => default; // 0x003ECD78-0x003ECD7C - public static string GetText(string fmt, params /* 0x000A3BD4-0x000A3BE4 */ object[] args) => default; // 0x003ECD7C-0x003ECE08 + public static string GetText(string msg) => default; // 0x003ECDE0-0x003ECDE4 + public static string GetText(string fmt, params /* 0x000A3C3C-0x000A3C4C */ object[] args) => default; // 0x003ECDE4-0x003ECE70 } -namespace Some.Namespace +public class TestGlobal // TypeDefIndex: 1811 { - public class Test // TypeDefIndex: 1811 - { - // Fields - public Again.SameLeafName.Test foo; // 0x08 - - // Constructors - public Test() {} // 0x00562138-0x00562138 - } -} - -namespace Some.Namespace.Again.SameLeafName -{ - public class Test // TypeDefIndex: 1812 - { - // Fields - public Namespace.Test foo; // 0x08 - - // Constructors - public Test() {} // 0x00562128-0x00562130 - - // Methods - public AClassFromUsingDirective Test1() => default; // 0x00562120-0x00562128 - } -} - -namespace Some.Namespace.SameLeafName -{ - public class AClassFromUsingDirective // TypeDefIndex: 1813 - { - // Constructors - public AClassFromUsingDirective() {} // 0x00562130-0x00562138 - } -} - -namespace DifferentNamespace -{ - public class NestedOuter // TypeDefIndex: 1814 - { - // Nested types - public class NestedIntermediate // TypeDefIndex: 1815 - { - // Nested types - public class NestedInner // TypeDefIndex: 1816 - { - // Constructors - public NestedInner() {} // 0x00561FF8-0x00562000 - - // Methods - public Il2CppTests.TestSources.NestedOuter Test1() => default; // 0x00561FE0-0x00561FE8 - public Il2CppTests.TestSources.NestedOuter.NestedInner Test2() => default; // 0x00561FE8-0x00561FF0 - public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test3() => default; // 0x00561FF0-0x00561FF8 - } - - // Constructors - public NestedIntermediate() {} // 0x00561FD8-0x00561FE0 - } - - // Constructors - public NestedOuter() {} // 0x00561FD0-0x00561FD8 - - // Methods - public NestedOuter Test1() => default; // 0x00561FB0-0x00561FB8 - public Il2CppTests.DifferentNamespace.NestedOuter Test2() => default; // 0x00561FB8-0x00561FC0 - public Il2CppTests.TestSources.NestedOuter Test3() => default; // 0x00561FC0-0x00561FC8 - public Il2CppTests.TestSources.NestedOuter.NestedInner Test4() => default; // 0x00561FC8-0x00561FD0 - } - - 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() {} // 0x00562020-0x00562028 - } - - // Constructors - public NestedInner() {} // 0x00562018-0x00562020 - - // Methods - public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test1() => default; // 0x00562010-0x00562018 - } - - // Constructors - public NestedOuter() {} // 0x00562008-0x00562010 - } - - // Constructors - public TwoLevelConflictingParentScope() {} // 0x00562000-0x00562008 - } -} - -namespace Il2CppTests.DifferentNamespace -{ - public class NestedOuter // TypeDefIndex: 1821 - { - // Constructors - public NestedOuter() {} // 0x00562040-0x00562048 - - // Methods - public NestedOuter Test1() => default; // 0x00562028-0x00562030 - public TestSources.NestedOuter Test2() => default; // 0x00562030-0x00562038 - public TestSources.NestedOuter.NestedInner Test3() => default; // 0x00562038-0x00562040 - } + // Constructors + public TestGlobal() {} // 0x005621C0-0x005621C0 } 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() {} // 0x005620F0-0x005620F8 + public NestedSubSubInner() {} // 0x00562158-0x00562160 // Methods - public NestedOuter Test1() => default; // 0x005620D0-0x005620D8 - public NestedInner Test2() => default; // 0x005620D8-0x005620E0 - public NestedSubInner Test3() => default; // 0x005620E0-0x005620E8 - public NestedSubSubInner Test4() => default; // 0x005620E8-0x005620F0 + public NestedOuter Test1() => default; // 0x00562138-0x00562140 + public NestedInner Test2() => default; // 0x00562140-0x00562148 + public NestedSubInner Test3() => default; // 0x00562148-0x00562150 + public NestedSubSubInner Test4() => default; // 0x00562150-0x00562158 } // Constructors - public NestedSubInner() {} // 0x005620C8-0x005620D0 + public NestedSubInner() {} // 0x00562130-0x00562138 // Methods - public NestedOuter Test1() => default; // 0x005620A8-0x005620B0 - public NestedInner Test2() => default; // 0x005620B0-0x005620B8 - public NestedSubInner Test3() => default; // 0x005620B8-0x005620C0 - public NestedSubSubInner Test4() => default; // 0x005620C0-0x005620C8 + public NestedOuter Test1() => default; // 0x00562110-0x00562118 + public NestedInner Test2() => default; // 0x00562118-0x00562120 + public NestedSubInner Test3() => default; // 0x00562120-0x00562128 + public NestedSubSubInner Test4() => default; // 0x00562128-0x00562130 } - public class NestedGeneric // TypeDefIndex: 1826 + public class NestedGeneric // TypeDefIndex: 1816 { // Constructors public NestedGeneric() {} } - public struct NestedStruct // TypeDefIndex: 1827 + public struct NestedStruct // TypeDefIndex: 1817 { } // Constructors - public NestedInner() {} // 0x005620A0-0x005620A8 + public NestedInner() {} // 0x00562108-0x00562110 // Methods - public NestedOuter Test1() => default; // 0x00562080-0x00562088 - public NestedInner Test2() => default; // 0x00562088-0x00562090 - public NestedSubInner Test3() => default; // 0x00562090-0x00562098 - public NestedSubInner.NestedSubSubInner Test4() => default; // 0x00562098-0x005620A0 + public NestedOuter Test1() => default; // 0x005620E8-0x005620F0 + public NestedInner Test2() => default; // 0x005620F0-0x005620F8 + public NestedSubInner Test3() => default; // 0x005620F8-0x00562100 + public NestedSubInner.NestedSubSubInner Test4() => default; // 0x00562100-0x00562108 } - 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() {} // 0x00562118-0x00562120 + public NestedSubInnerSibling() {} // 0x00562180-0x00562188 // Methods - public NestedOuter Test1() => default; // 0x00562100-0x00562108 - public NestedInner Test2() => default; // 0x00562108-0x00562110 - public NestedInner.NestedSubInner Test3() => default; // 0x00562110-0x00562118 + public NestedOuter Test1() => default; // 0x00562168-0x00562170 + public NestedInner Test2() => default; // 0x00562170-0x00562178 + public NestedInner.NestedSubInner Test3() => default; // 0x00562178-0x00562180 } // Constructors - public NestedInnerSibling() {} // 0x005620F8-0x00562100 + public NestedInnerSibling() {} // 0x00562160-0x00562168 } // Constructors - public NestedOuter() {} // 0x00562078-0x00562080 + public NestedOuter() {} // 0x005620E0-0x005620E8 // Methods - public NestedOuter Test1() => default; // 0x00562048-0x00562050 - public NestedInner Test2() => default; // 0x00562050-0x00562058 - public NestedInner.NestedSubInner Test3() => default; // 0x00562058-0x00562060 - public NestedInner.NestedSubInner.NestedSubSubInner Test4() => default; // 0x00562060-0x00562068 - public NestedInner.NestedGeneric GenericNestingScopes() => default; // 0x00562068-0x00562070 - public NestedInner.NestedStruct? NullableStruct() => default; // 0x00562070-0x00562078 + public NestedOuter Test1() => default; // 0x005620B0-0x005620B8 + public NestedInner Test2() => default; // 0x005620B8-0x005620C0 + public NestedInner.NestedSubInner Test3() => default; // 0x005620C0-0x005620C8 + public NestedInner.NestedSubInner.NestedSubSubInner Test4() => default; // 0x005620C8-0x005620D0 + public NestedInner.NestedGeneric GenericNestingScopes() => default; // 0x005620D0-0x005620D8 + public NestedInner.NestedStruct? NullableStruct() => default; // 0x005620D8-0x005620E0 + } +} + +namespace Il2CppTests.DifferentNamespace +{ + public class NestedOuter // TypeDefIndex: 1820 + { + // Constructors + public NestedOuter() {} // 0x005620A8-0x005620B0 + + // Methods + public NestedOuter Test1() => default; // 0x00562090-0x00562098 + public TestSources.NestedOuter Test2() => default; // 0x00562098-0x005620A0 + public TestSources.NestedOuter.NestedInner Test3() => default; // 0x005620A0-0x005620A8 + } +} + +namespace DifferentNamespace +{ + public class NestedOuter // TypeDefIndex: 1821 + { + // Nested types + public class NestedIntermediate // TypeDefIndex: 1822 + { + // Nested types + public class NestedInner // TypeDefIndex: 1823 + { + // Constructors + public NestedInner() {} // 0x00562060-0x00562068 + + // Methods + public Il2CppTests.TestSources.NestedOuter Test1() => default; // 0x00562048-0x00562050 + public Il2CppTests.TestSources.NestedOuter.NestedInner Test2() => default; // 0x00562050-0x00562058 + public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test3() => default; // 0x00562058-0x00562060 + } + + // Constructors + public NestedIntermediate() {} // 0x00562040-0x00562048 + } + + // Constructors + public NestedOuter() {} // 0x00562038-0x00562040 + + // Methods + public NestedOuter Test1() => default; // 0x00562018-0x00562020 + public Il2CppTests.DifferentNamespace.NestedOuter Test2() => default; // 0x00562020-0x00562028 + public Il2CppTests.TestSources.NestedOuter Test3() => default; // 0x00562028-0x00562030 + public Il2CppTests.TestSources.NestedOuter.NestedInner Test4() => default; // 0x00562030-0x00562038 + } + + 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() {} // 0x00562088-0x00562090 + } + + // Constructors + public NestedInner() {} // 0x00562080-0x00562088 + + // Methods + public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test1() => default; // 0x00562078-0x00562080 + } + + // Constructors + public NestedOuter() {} // 0x00562070-0x00562078 + } + + // Constructors + public TwoLevelConflictingParentScope() {} // 0x00562068-0x00562070 + } +} + +namespace Some.Namespace +{ + public class Test // TypeDefIndex: 1828 + { + // Fields + public Again.SameLeafName.Test foo; // 0x08 + + // Constructors + public Test() {} // 0x005621B8-0x005621C0 + } +} + +namespace Some.Namespace.SameLeafName +{ + public class AClassFromUsingDirective // TypeDefIndex: 1829 + { + // Constructors + public AClassFromUsingDirective() {} // 0x005621B0-0x005621B8 + } +} + +namespace Some.Namespace.Again.SameLeafName +{ + public class Test // TypeDefIndex: 1830 + { + // Fields + public Namespace.Test foo; // 0x08 + + // Constructors + public Test() {} // 0x005621A8-0x005621B0 + + // Methods + public AClassFromUsingDirective Test1() => default; // 0x005621A0-0x005621A8 + } +} + +namespace NotGlobalUsingNamespace +{ + public class TestUsingNonGlobalNamespaceType // TypeDefIndex: 1831 + { + // Constructors + public TestUsingNonGlobalNamespaceType() {} // 0x00562198-0x005621A0 + + // Methods + public NotGlobalNamespace.TestGlobal Test() => default; // 0x00562190-0x00562198 + } +} + +namespace NotGlobalNamespace +{ + public class TestGlobal // TypeDefIndex: 1832 + { + // Constructors + public TestGlobal() {} // 0x00562188-0x00562190 } } diff --git a/Il2CppTests/TestSources/Scope.cs b/Il2CppTests/TestSources/Scope.cs index 5aab7ae..f1c1cd5 100644 --- a/Il2CppTests/TestSources/Scope.cs +++ b/Il2CppTests/TestSources/Scope.cs @@ -12,6 +12,22 @@ using Some.Namespace.SameLeafName; #pragma warning disable CS0169 +// Type in global namespace should not overwrite selection of type with namespace +public class TestGlobal {} + +namespace NotGlobalNamespace +{ + public class TestGlobal {} +} + +namespace NotGlobalUsingNamespace +{ + public class TestUsingNonGlobalNamespaceType + { + public NotGlobalNamespace.TestGlobal Test() => default; + } +} + // Namespace nesting and using directive tests namespace Some.Namespace {