diff --git a/Il2CppTests/Il2CppTests.csproj b/Il2CppTests/Il2CppTests.csproj
index ed4f79f..b6b91f2 100644
--- a/Il2CppTests/Il2CppTests.csproj
+++ b/Il2CppTests/Il2CppTests.csproj
@@ -27,6 +27,12 @@
+
+
+
+
+
+
@@ -46,6 +52,7 @@
+
diff --git a/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x64.cs b/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x64.cs
new file mode 100644
index 0000000..d94198e
--- /dev/null
+++ b/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x64.cs
@@ -0,0 +1,216 @@
+/*
+ * Generated code file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
+ */
+
+using System;
+using System.Diagnostics;
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using Il2CppTests.DifferentNamespace;
+using Il2CppTests.TestSources;
+
+// 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: Scope.dll - 1810-1822
+// [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: 0x000ECEE8
+ public const string MonoCompany = "MONO development team"; // Metadata: 0x000ECEF3
+ public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ECF0C
+ public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ECF33
+ public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ECF4F
+ public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ECF5A
+ public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ECF65
+ public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ECF77
+ public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECF89
+ public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECFD4
+ public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED031
+ public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED092
+ public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED0ED
+ public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED13D
+ public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED18E
+ public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED1E2
+ public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED240
+ public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED28F
+ public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED2DC
+ public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED32E
+ public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED382
+ public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED3E1
+ public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED436
+ public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED492
+ public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED4E9
+ public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED53F
+ public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED59B
+ public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED5EC
+ public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED647
+}
+
+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 DifferentNamespace
+{
+ public class NestedOuter // TypeDefIndex: 1811
+ {
+ // Nested types
+ public class NestedIntermediate // TypeDefIndex: 1812
+ {
+ // Nested types
+ public class NestedInner // TypeDefIndex: 1813
+ {
+ // Constructors
+ public NestedInner() {} // 0x00000001800E2000-0x00000001800E2000
+
+ // Methods
+ public Il2CppTests.TestSources.NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public Il2CppTests.TestSources.NestedOuter.NestedInner Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ }
+
+ // Constructors
+ public NestedIntermediate() {} // 0x00000001800E2000-0x00000001800E2000
+ }
+
+ // Constructors
+ public NestedOuter() {} // 0x00000001800E2000-0x00000001800E2000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public Il2CppTests.DifferentNamespace.NestedOuter Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public Il2CppTests.TestSources.NestedOuter Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public Il2CppTests.TestSources.NestedOuter.NestedInner Test4() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ }
+}
+
+namespace Il2CppTests.DifferentNamespace
+{
+ public class NestedOuter // TypeDefIndex: 1814
+ {
+ // Constructors
+ public NestedOuter() {} // 0x00000001800E2000-0x00000001800E2000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public TestSources.NestedOuter Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public TestSources.NestedOuter.NestedInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ }
+}
+
+namespace Il2CppTests.TestSources
+{
+ public class NestedOuter // TypeDefIndex: 1815
+ {
+ // Nested types
+ public class NestedInner // TypeDefIndex: 1816
+ {
+ // Nested types
+ public class NestedSubInner // TypeDefIndex: 1817
+ {
+ // Nested types
+ public class NestedSubSubInner // TypeDefIndex: 1818
+ {
+ // Constructors
+ public NestedSubSubInner() {} // 0x00000001800E2000-0x00000001800E2000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedInner Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedSubInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedSubSubInner Test4() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ }
+
+ // Constructors
+ public NestedSubInner() {} // 0x00000001800E2000-0x00000001800E2000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedInner Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedSubInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedSubSubInner Test4() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ }
+
+ public class NestedGeneric // TypeDefIndex: 1819
+ {
+ // Constructors
+ public NestedGeneric() {}
+ }
+
+ public struct NestedStruct // TypeDefIndex: 1820
+ {
+ }
+
+ // Constructors
+ public NestedInner() {} // 0x00000001800E2000-0x00000001800E2000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedInner Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedSubInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedSubInner.NestedSubSubInner Test4() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ }
+
+ public class NestedInnerSibling // TypeDefIndex: 1821
+ {
+ // Nested types
+ public class NestedSubInnerSibling // TypeDefIndex: 1822
+ {
+ // Constructors
+ public NestedSubInnerSibling() {} // 0x00000001800E2000-0x00000001800E2000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedInner Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedInner.NestedSubInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ }
+
+ // Constructors
+ public NestedInnerSibling() {} // 0x00000001800E2000-0x00000001800E2000
+ }
+
+ // Constructors
+ public NestedOuter() {} // 0x00000001800E2000-0x00000001800E2000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedInner Test2() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedInner.NestedSubInner Test3() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedInner.NestedSubInner.NestedSubSubInner Test4() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedInner.NestedGeneric GenericNestingScopes() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ public NestedInner.NestedStruct? NullableStruct() => default; // 0x00000001800EA8C0-0x00000001800EA8C0
+ }
+}
diff --git a/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x86.cs b/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x86.cs
new file mode 100644
index 0000000..bccc53b
--- /dev/null
+++ b/Il2CppTests/TestExpectedResults/GameAssembly-Scope-x86.cs
@@ -0,0 +1,216 @@
+/*
+ * Generated code file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
+ */
+
+using System;
+using System.Diagnostics;
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using Il2CppTests.DifferentNamespace;
+using Il2CppTests.TestSources;
+
+// 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: Scope.dll - 1810-1822
+// [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: 0x000ECEE8
+ public const string MonoCompany = "MONO development team"; // Metadata: 0x000ECEF3
+ public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ECF0C
+ public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ECF33
+ public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ECF4F
+ public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ECF5A
+ public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ECF65
+ public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ECF77
+ public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECF89
+ public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECFD4
+ public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED031
+ public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED092
+ public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED0ED
+ public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED13D
+ public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED18E
+ public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED1E2
+ public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED240
+ public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED28F
+ public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED2DC
+ public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED32E
+ public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED382
+ public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED3E1
+ public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED436
+ public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED492
+ public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED4E9
+ public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED53F
+ public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED59B
+ public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED5EC
+ public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED647
+}
+
+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 DifferentNamespace
+{
+ public class NestedOuter // TypeDefIndex: 1811
+ {
+ // Nested types
+ public class NestedIntermediate // TypeDefIndex: 1812
+ {
+ // Nested types
+ public class NestedInner // TypeDefIndex: 1813
+ {
+ // Constructors
+ public NestedInner() {} // 0x100BF000-0x100BF000
+
+ // Methods
+ public Il2CppTests.TestSources.NestedOuter Test1() => default; // 0x100C5600-0x100C5600
+ public Il2CppTests.TestSources.NestedOuter.NestedInner Test2() => default; // 0x100C5600-0x100C5600
+ public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test3() => default; // 0x100C5600-0x100C5600
+ }
+
+ // Constructors
+ public NestedIntermediate() {} // 0x100BF000-0x100BF000
+ }
+
+ // Constructors
+ public NestedOuter() {} // 0x100BF000-0x100BF000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x100C5600-0x100C5600
+ public Il2CppTests.DifferentNamespace.NestedOuter Test2() => default; // 0x100C5600-0x100C5600
+ public Il2CppTests.TestSources.NestedOuter Test3() => default; // 0x100C5600-0x100C5600
+ public Il2CppTests.TestSources.NestedOuter.NestedInner Test4() => default; // 0x100C5600-0x100C5600
+ }
+}
+
+namespace Il2CppTests.DifferentNamespace
+{
+ public class NestedOuter // TypeDefIndex: 1814
+ {
+ // Constructors
+ public NestedOuter() {} // 0x100BF000-0x100BF000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x100C5600-0x100C5600
+ public TestSources.NestedOuter Test2() => default; // 0x100C5600-0x100C5600
+ public TestSources.NestedOuter.NestedInner Test3() => default; // 0x100C5600-0x100C5600
+ }
+}
+
+namespace Il2CppTests.TestSources
+{
+ public class NestedOuter // TypeDefIndex: 1815
+ {
+ // Nested types
+ public class NestedInner // TypeDefIndex: 1816
+ {
+ // Nested types
+ public class NestedSubInner // TypeDefIndex: 1817
+ {
+ // Nested types
+ public class NestedSubSubInner // TypeDefIndex: 1818
+ {
+ // Constructors
+ public NestedSubSubInner() {} // 0x100BF000-0x100BF000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x100C5600-0x100C5600
+ public NestedInner Test2() => default; // 0x100C5600-0x100C5600
+ public NestedSubInner Test3() => default; // 0x100C5600-0x100C5600
+ public NestedSubSubInner Test4() => default; // 0x100C5600-0x100C5600
+ }
+
+ // Constructors
+ public NestedSubInner() {} // 0x100BF000-0x100BF000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x100C5600-0x100C5600
+ public NestedInner Test2() => default; // 0x100C5600-0x100C5600
+ public NestedSubInner Test3() => default; // 0x100C5600-0x100C5600
+ public NestedSubSubInner Test4() => default; // 0x100C5600-0x100C5600
+ }
+
+ public class NestedGeneric // TypeDefIndex: 1819
+ {
+ // Constructors
+ public NestedGeneric() {}
+ }
+
+ public struct NestedStruct // TypeDefIndex: 1820
+ {
+ }
+
+ // Constructors
+ public NestedInner() {} // 0x100BF000-0x100BF000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x100C5600-0x100C5600
+ public NestedInner Test2() => default; // 0x100C5600-0x100C5600
+ public NestedSubInner Test3() => default; // 0x100C5600-0x100C5600
+ public NestedSubInner.NestedSubSubInner Test4() => default; // 0x100C5600-0x100C5600
+ }
+
+ public class NestedInnerSibling // TypeDefIndex: 1821
+ {
+ // Nested types
+ public class NestedSubInnerSibling // TypeDefIndex: 1822
+ {
+ // Constructors
+ public NestedSubInnerSibling() {} // 0x100BF000-0x100BF000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x100C5600-0x100C5600
+ public NestedInner Test2() => default; // 0x100C5600-0x100C5600
+ public NestedInner.NestedSubInner Test3() => default; // 0x100C5600-0x100C5600
+ }
+
+ // Constructors
+ public NestedInnerSibling() {} // 0x100BF000-0x100BF000
+ }
+
+ // Constructors
+ public NestedOuter() {} // 0x100BF000-0x100BF000
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x100C5600-0x100C5600
+ public NestedInner Test2() => default; // 0x100C5600-0x100C5600
+ public NestedInner.NestedSubInner Test3() => default; // 0x100C5600-0x100C5600
+ public NestedInner.NestedSubInner.NestedSubSubInner Test4() => default; // 0x100C5600-0x100C5600
+ public NestedInner.NestedGeneric GenericNestingScopes() => default; // 0x100C5600-0x100C5600
+ public NestedInner.NestedStruct? NullableStruct() => default; // 0x100C5600-0x100C5600
+ }
+}
diff --git a/Il2CppTests/TestExpectedResults/Scope.cs b/Il2CppTests/TestExpectedResults/Scope.cs
new file mode 100644
index 0000000..7881833
--- /dev/null
+++ b/Il2CppTests/TestExpectedResults/Scope.cs
@@ -0,0 +1,216 @@
+/*
+ * Generated code file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
+ */
+
+using System;
+using System.Diagnostics;
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using Il2CppTests.DifferentNamespace;
+using Il2CppTests.TestSources;
+
+// Image 0: mscorlib.dll - 0-1809
+// [assembly: AssemblyCompany] // 0x000A5298-0x000A558C
+// [assembly: AssemblyCopyright] // 0x000A5298-0x000A558C
+// [assembly: AssemblyDefaultAlias] // 0x000A5298-0x000A558C
+// [assembly: AssemblyDelaySign] // 0x000A5298-0x000A558C
+// [assembly: AssemblyDescription] // 0x000A5298-0x000A558C
+// [assembly: AssemblyFileVersion] // 0x000A5298-0x000A558C
+// [assembly: AssemblyInformationalVersion] // 0x000A5298-0x000A558C
+// [assembly: AssemblyKeyFile] // 0x000A5298-0x000A558C
+// [assembly: AssemblyProduct] // 0x000A5298-0x000A558C
+// [assembly: AssemblyTitle] // 0x000A5298-0x000A558C
+// [assembly: CLSCompliant] // 0x000A5298-0x000A558C
+// [assembly: CompilationRelaxations] // 0x000A5298-0x000A558C
+// [assembly: ComVisible] // 0x000A5298-0x000A558C
+// [assembly: Debuggable] // 0x000A5298-0x000A558C
+// [assembly: DefaultDependency] // 0x000A5298-0x000A558C
+// [assembly: Guid] // 0x000A5298-0x000A558C
+// [assembly: NeutralResourcesLanguage] // 0x000A5298-0x000A558C
+[assembly: RuntimeCompatibility] // 0x000A5298-0x000A558C
+// [assembly: SatelliteContractVersion] // 0x000A5298-0x000A558C
+[assembly: StringFreezing] // 0x000A5298-0x000A558C
+// [assembly: TypeLibVersion] // 0x000A5298-0x000A558C
+
+// Image 1: Scope.dll - 1810-1822
+// [assembly: CompilationRelaxations] // 0x000A558C-0x000A558C
+// [assembly: Debuggable] // 0x000A558C-0x000A558C
+[assembly: RuntimeCompatibility] // 0x000A558C-0x000A558C
+
+internal static class Consts // TypeDefIndex: 100
+{
+ // Fields
+ public const string MonoVersion = "2.6.5.0"; // Metadata: 0x000ECEE8
+ public const string MonoCompany = "MONO development team"; // Metadata: 0x000ECEF3
+ public const string MonoProduct = "MONO Common language infrastructure"; // Metadata: 0x000ECF0C
+ public const string MonoCopyright = "(c) various MONO Authors"; // Metadata: 0x000ECF33
+ public const string FxVersion = "2.0.0.0"; // Metadata: 0x000ECF4F
+ public const string VsVersion = "8.0.0.0"; // Metadata: 0x000ECF5A
+ public const string FxFileVersion = "2.0.50727.1433"; // Metadata: 0x000ECF65
+ public const string VsFileVersion = "8.0.50727.1433"; // Metadata: 0x000ECF77
+ public const string AssemblyI18N = "I18N, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ECF89
+ public const string AssemblyMicrosoft_VisualStudio = "Microsoft.VisualStudio, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ECFD4
+ public const string AssemblyMicrosoft_VisualStudio_Web = "Microsoft.VisualStudio.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED031
+ public const string AssemblyMicrosoft_VSDesigner = "Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED092
+ public const string AssemblyMono_Http = "Mono.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED0ED
+ public const string AssemblyMono_Posix = "Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED13D
+ public const string AssemblyMono_Security = "Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED18E
+ public const string AssemblyMono_Messaging_RabbitMQ = "Mono.Messaging.RabbitMQ, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"; // Metadata: 0x000ED1E2
+ public const string AssemblyCorlib = "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED240
+ public const string AssemblySystem = "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED28F
+ public const string AssemblySystem_Data = "System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED2DC
+ public const string AssemblySystem_Design = "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED32E
+ public const string AssemblySystem_DirectoryServices = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED382
+ public const string AssemblySystem_Drawing = "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED3E1
+ public const string AssemblySystem_Drawing_Design = "System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED436
+ public const string AssemblySystem_Messaging = "System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED492
+ public const string AssemblySystem_Security = "System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED4E9
+ public const string AssemblySystem_ServiceProcess = "System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED53F
+ public const string AssemblySystem_Web = "System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; // Metadata: 0x000ED59B
+ public const string AssemblySystem_Windows_Forms = "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED5EC
+ public const string AssemblySystem_Core = "System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; // Metadata: 0x000ED647
+}
+
+internal sealed class Locale // TypeDefIndex: 101
+{
+ // Constructors
+ private Locale() {} // 0x003ECC60-0x003ECC68
+
+ // Methods
+ public static string GetText(string msg) => default; // 0x003ECC68-0x003ECC6C
+ public static string GetText(string fmt, params /* 0x000A3AC4-0x000A3AD4 */ object[] args) => default; // 0x003ECC6C-0x003ECCF8
+}
+
+namespace DifferentNamespace
+{
+ public class NestedOuter // TypeDefIndex: 1811
+ {
+ // Nested types
+ public class NestedIntermediate // TypeDefIndex: 1812
+ {
+ // Nested types
+ public class NestedInner // TypeDefIndex: 1813
+ {
+ // Constructors
+ public NestedInner() {} // 0x00561EE8-0x00561EF0
+
+ // Methods
+ public Il2CppTests.TestSources.NestedOuter Test1() => default; // 0x00561ED0-0x00561ED8
+ public Il2CppTests.TestSources.NestedOuter.NestedInner Test2() => default; // 0x00561ED8-0x00561EE0
+ public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test3() => default; // 0x00561EE0-0x00561EE8
+ }
+
+ // Constructors
+ public NestedIntermediate() {} // 0x00561EC8-0x00561ED0
+ }
+
+ // Constructors
+ public NestedOuter() {} // 0x00561EC0-0x00561EC8
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00561EA0-0x00561EA8
+ public Il2CppTests.DifferentNamespace.NestedOuter Test2() => default; // 0x00561EA8-0x00561EB0
+ public Il2CppTests.TestSources.NestedOuter Test3() => default; // 0x00561EB0-0x00561EB8
+ public Il2CppTests.TestSources.NestedOuter.NestedInner Test4() => default; // 0x00561EB8-0x00561EC0
+ }
+}
+
+namespace Il2CppTests.DifferentNamespace
+{
+ public class NestedOuter // TypeDefIndex: 1814
+ {
+ // Constructors
+ public NestedOuter() {} // 0x00561F08-0x00561F10
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00561EF0-0x00561EF8
+ public TestSources.NestedOuter Test2() => default; // 0x00561EF8-0x00561F00
+ public TestSources.NestedOuter.NestedInner Test3() => default; // 0x00561F00-0x00561F08
+ }
+}
+
+namespace Il2CppTests.TestSources
+{
+ public class NestedOuter // TypeDefIndex: 1815
+ {
+ // Nested types
+ public class NestedInner // TypeDefIndex: 1816
+ {
+ // Nested types
+ public class NestedSubInner // TypeDefIndex: 1817
+ {
+ // Nested types
+ public class NestedSubSubInner // TypeDefIndex: 1818
+ {
+ // Constructors
+ public NestedSubSubInner() {} // 0x00561FB8-0x00561FC0
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00561F98-0x00561FA0
+ public NestedInner Test2() => default; // 0x00561FA0-0x00561FA8
+ public NestedSubInner Test3() => default; // 0x00561FA8-0x00561FB0
+ public NestedSubSubInner Test4() => default; // 0x00561FB0-0x00561FB8
+ }
+
+ // Constructors
+ public NestedSubInner() {} // 0x00561F90-0x00561F98
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00561F70-0x00561F78
+ public NestedInner Test2() => default; // 0x00561F78-0x00561F80
+ public NestedSubInner Test3() => default; // 0x00561F80-0x00561F88
+ public NestedSubSubInner Test4() => default; // 0x00561F88-0x00561F90
+ }
+
+ public class NestedGeneric // TypeDefIndex: 1819
+ {
+ // Constructors
+ public NestedGeneric() {}
+ }
+
+ public struct NestedStruct // TypeDefIndex: 1820
+ {
+ }
+
+ // Constructors
+ public NestedInner() {} // 0x00561F68-0x00561F70
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00561F48-0x00561F50
+ public NestedInner Test2() => default; // 0x00561F50-0x00561F58
+ public NestedSubInner Test3() => default; // 0x00561F58-0x00561F60
+ public NestedSubInner.NestedSubSubInner Test4() => default; // 0x00561F60-0x00561F68
+ }
+
+ public class NestedInnerSibling // TypeDefIndex: 1821
+ {
+ // Nested types
+ public class NestedSubInnerSibling // TypeDefIndex: 1822
+ {
+ // Constructors
+ public NestedSubInnerSibling() {} // 0x00561FE0-0x00561FE0
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00561FC8-0x00561FD0
+ public NestedInner Test2() => default; // 0x00561FD0-0x00561FD8
+ public NestedInner.NestedSubInner Test3() => default; // 0x00561FD8-0x00561FE0
+ }
+
+ // Constructors
+ public NestedInnerSibling() {} // 0x00561FC0-0x00561FC8
+ }
+
+ // Constructors
+ public NestedOuter() {} // 0x00561F40-0x00561F48
+
+ // Methods
+ public NestedOuter Test1() => default; // 0x00561F10-0x00561F18
+ public NestedInner Test2() => default; // 0x00561F18-0x00561F20
+ public NestedInner.NestedSubInner Test3() => default; // 0x00561F20-0x00561F28
+ public NestedInner.NestedSubInner.NestedSubSubInner Test4() => default; // 0x00561F28-0x00561F30
+ public NestedInner.NestedGeneric GenericNestingScopes() => default; // 0x00561F30-0x00561F38
+ public NestedInner.NestedStruct? NullableStruct() => default; // 0x00561F38-0x00561F40
+ }
+}
diff --git a/Il2CppTests/TestSources/Scope.cs b/Il2CppTests/TestSources/Scope.cs
new file mode 100644
index 0000000..db53c36
--- /dev/null
+++ b/Il2CppTests/TestSources/Scope.cs
@@ -0,0 +1,111 @@
+/*
+ Copyright 2017-2019 Katy Coe - http://www.hearthcode.org - http://www.djkaty.com
+
+ All rights reserved.
+*/
+
+#pragma warning disable CS0169
+namespace Il2CppTests.TestSources
+{
+ public class NestedOuter { // NestedOuter
+ public NestedOuter Test1() => default;
+ public NestedInner Test2() => default;
+ public NestedInner.NestedSubInner Test3() => default;
+ public NestedInner.NestedSubInner.NestedSubSubInner Test4() => default;
+
+ public class NestedInner // NestedOuter.NestedInner
+ {
+ public NestedOuter Test1() => default;
+ public NestedInner Test2() => default;
+ public NestedSubInner Test3() => default;
+ public NestedSubInner.NestedSubSubInner Test4() => default;
+
+ public class NestedSubInner // NestedOuter.NestedInner.NestedSubInner
+ {
+ public NestedOuter Test1() => default;
+ public NestedInner Test2() => default;
+ public NestedSubInner Test3() => default;
+ public NestedSubSubInner Test4() => default;
+
+ public class NestedSubSubInner // NestedOuter.NestedInner.NestedSubInner.NestedSubSubInner
+ {
+ public NestedOuter Test1() => default;
+ public NestedInner Test2() => default;
+ public NestedSubInner Test3() => default;
+ public NestedSubSubInner Test4() => default;
+ }
+ }
+
+ public class NestedGeneric {}
+
+ public struct NestedStruct {}
+ }
+
+ // Generic nested scopes
+ public NestedInner.NestedGeneric GenericNestingScopes() => default;
+
+ // Nullable type in nested scope
+ public NestedInner.NestedStruct? NullableStruct() => default;
+
+ // Nested siblings
+ public class NestedInnerSibling
+ {
+ public class NestedSubInnerSibling
+ {
+ public NestedOuter Test1() => default;
+ public NestedInner Test2() => default;
+ public NestedInner.NestedSubInner Test3() => default;
+ }
+ }
+ }
+}
+
+// Same base namespace
+namespace Il2CppTests.DifferentNamespace
+{
+ public class NestedOuter
+ {
+ public NestedOuter Test1() => default;
+ public TestSources.NestedOuter Test2() => default;
+ public TestSources.NestedOuter.NestedInner Test3() => default;
+ }
+}
+
+// Different namespace with matching name at leaf level as previous namespace
+namespace DifferentNamespace
+{
+ public class NestedOuter
+ {
+ public NestedOuter Test1() => default;
+ public Il2CppTests.DifferentNamespace.NestedOuter Test2() => default;
+ public Il2CppTests.TestSources.NestedOuter Test3() => default;
+ public Il2CppTests.TestSources.NestedOuter.NestedInner Test4() => default;
+
+ public class NestedIntermediate
+ {
+ public class NestedInner
+ {
+ public Il2CppTests.TestSources.NestedOuter Test1() => default;
+ public Il2CppTests.TestSources.NestedOuter.NestedInner Test2() => default;
+ public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test3() => default;
+ }
+ }
+ }
+
+ public class TwoLevelConflictingParentScope
+ {
+ public class NestedOuter
+ {
+ public class NestedInner
+ {
+ public Il2CppTests.TestSources.NestedOuter.NestedInner.NestedSubInner Test1() => default;
+
+ public class NestedSubInner
+ {
+
+ }
+ }
+ }
+ }
+}
+#pragma warning restore CS0169