From 59e01db150f5720ffdd6d7d7ab74f49d9d39ee17 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sun, 8 Apr 2018 14:36:08 +0200 Subject: [PATCH 1/4] Set up 3.1.x branch --- BuildTools/appveyor-install.ps1 | 2 +- BuildTools/update-assemblyinfo.ps1 | 2 +- ILSpy/Properties/AssemblyInfo.template.cs | 2 +- appveyor.yml | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/BuildTools/appveyor-install.ps1 b/BuildTools/appveyor-install.ps1 index 7edf389ee..24aab0a0e 100644 --- a/BuildTools/appveyor-install.ps1 +++ b/BuildTools/appveyor-install.ps1 @@ -3,7 +3,7 @@ $ErrorActionPreference = "Stop" $baseCommit = "d779383cb85003d6dabeb976f0845631e07bf463"; $baseCommitRev = 1; -$masterBranches = @("master", "3.0.x"); +$masterBranches = @("master", "3.0.x", "3.1.x"); $globalAssemblyInfoTemplateFile = "ILSpy/Properties/AssemblyInfo.template.cs"; diff --git a/BuildTools/update-assemblyinfo.ps1 b/BuildTools/update-assemblyinfo.ps1 index da1e408e2..0b495da74 100644 --- a/BuildTools/update-assemblyinfo.ps1 +++ b/BuildTools/update-assemblyinfo.ps1 @@ -3,7 +3,7 @@ $baseCommit = "d779383cb85003d6dabeb976f0845631e07bf463"; $baseCommitRev = 1; -$masterBranches = @("master", "3.0.x"); +$masterBranches = @("master", "3.0.x", "3.1.x"); $globalAssemblyInfoTemplateFile = "ILSpy/Properties/AssemblyInfo.template.cs"; diff --git a/ILSpy/Properties/AssemblyInfo.template.cs b/ILSpy/Properties/AssemblyInfo.template.cs index 0220abf53..b5f69ce87 100644 --- a/ILSpy/Properties/AssemblyInfo.template.cs +++ b/ILSpy/Properties/AssemblyInfo.template.cs @@ -40,7 +40,7 @@ internal static class RevisionClass { public const string Major = "3"; public const string Minor = "1"; - public const string Build = "0"; + public const string Build = "1"; public const string Revision = "$INSERTREVISION$"; public const string VersionName = null; diff --git a/appveyor.yml b/appveyor.yml index 6cb536409..fe610097e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -32,6 +32,7 @@ for: only: - master - 3.0.x + - 3.1.x artifacts: - path: ILSpy_binaries.zip name: ILSpy %APPVEYOR_REPO_BRANCH% %ILSPY_VERSION_NUMBER% binaries From ee093267a8118b689aca3470de2b21224c00618b Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Wed, 25 Apr 2018 11:29:46 +0200 Subject: [PATCH 2/4] Add "Remove Assemblies with load errors" command (inspired by @mookiejones, see #1096) --- .../RemoveAssembliesWithLoadErrors.cs | 43 +++++++++++++++++++ ILSpy/ILSpy.csproj | 1 + 2 files changed, 44 insertions(+) create mode 100644 ILSpy/Commands/RemoveAssembliesWithLoadErrors.cs diff --git a/ILSpy/Commands/RemoveAssembliesWithLoadErrors.cs b/ILSpy/Commands/RemoveAssembliesWithLoadErrors.cs new file mode 100644 index 000000000..2570a0a7d --- /dev/null +++ b/ILSpy/Commands/RemoveAssembliesWithLoadErrors.cs @@ -0,0 +1,43 @@ +// Copyright (c) 2018 AlphaSierraPapa for the SharpDevelop Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of this +// software and associated documentation files (the "Software"), to deal in the Software +// without restriction, including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all copies or +// substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace ICSharpCode.ILSpy +{ + [ExportMainMenuCommand(Menu = "_File", Header = "_Remove Assemblies with load errors", MenuCategory = "Remove", MenuOrder = 2.6)] + class RemoveAssembliesWithLoadErrors : SimpleCommand + { + public override bool CanExecute(object parameter) + { + return MainWindow.Instance.CurrentAssemblyList?.GetAssemblies().Any(l => l.HasLoadError) == true; + } + + public override void Execute(object parameter) + { + foreach (var asm in MainWindow.Instance.CurrentAssemblyList.GetAssemblies()) { + if (!asm.HasLoadError) continue; + var node = MainWindow.Instance.AssemblyListTreeNode.FindAssemblyNode(asm); + if (node != null && node.CanDelete()) + node.Delete(); + } + } + } +} diff --git a/ILSpy/ILSpy.csproj b/ILSpy/ILSpy.csproj index 5e828288e..b47b6a72a 100644 --- a/ILSpy/ILSpy.csproj +++ b/ILSpy/ILSpy.csproj @@ -82,6 +82,7 @@ + From dc58a1b40c23568ffe17009acaf7241e3a1ebf6e Mon Sep 17 00:00:00 2001 From: Chicken-Bones Date: Wed, 25 Apr 2018 18:02:50 +1000 Subject: [PATCH 3/4] Include "base." qualifier as needed (fixes #1123) Adds BaseReferenceExpression to ThisReferenceExpression target required checks --- ICSharpCode.Decompiler.Tests/TestCases/Pretty/FixProxyCalls.cs | 2 +- ICSharpCode.Decompiler/CSharp/CallBuilder.cs | 2 +- ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/FixProxyCalls.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/FixProxyCalls.cs index 35a6e5740..7d3fe0b20 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/FixProxyCalls.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/FixProxyCalls.cs @@ -32,7 +32,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.ILPretty { protected internal IEnumerable Test2(string test) { - yield return base.Test(test); + yield return Test(test); } } diff --git a/ICSharpCode.Decompiler/CSharp/CallBuilder.cs b/ICSharpCode.Decompiler/CSharp/CallBuilder.cs index 64fa9e8f7..544397724 100644 --- a/ICSharpCode.Decompiler/CSharp/CallBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/CallBuilder.cs @@ -210,7 +210,7 @@ namespace ICSharpCode.Decompiler.CSharp if (method.IsStatic) requireTarget = !expressionBuilder.IsCurrentOrContainingType(method.DeclaringTypeDefinition) || method.Name == ".cctor"; else - requireTarget = !(target.Expression is ThisReferenceExpression) || method.Name == ".ctor"; + requireTarget = !(target.Expression is ThisReferenceExpression || target.Expression is BaseReferenceExpression) || method.Name == ".ctor"; } bool targetCasted = false; bool argumentsCasted = false; diff --git a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs index d5e141cd8..5b8cc7fdc 100644 --- a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs @@ -196,7 +196,7 @@ namespace ICSharpCode.Decompiler.CSharp { var target = TranslateTarget(field, targetInstruction, true); bool requireTarget = HidesVariableWithName(field.Name) - || (field.IsStatic ? !IsCurrentOrContainingType(field.DeclaringTypeDefinition) : !(target.Expression is ThisReferenceExpression)); + || (field.IsStatic ? !IsCurrentOrContainingType(field.DeclaringTypeDefinition) : !(target.Expression is ThisReferenceExpression || target.Expression is BaseReferenceExpression)); bool targetCasted = false; var targetResolveResult = requireTarget ? target.ResolveResult : null; From 16e12dfb1a1f0ba51e2891d3b455a5885a838c37 Mon Sep 17 00:00:00 2001 From: Chicken-Bones Date: Wed, 25 Apr 2018 20:23:24 +1000 Subject: [PATCH 4/4] Add base. resolution to QualifierTests --- .../TestCases/Pretty/QualifierTests.cs | 52 +++++ .../TestCases/Pretty/QualifierTests.il | 141 ++++++++++- .../TestCases/Pretty/QualifierTests.opt.il | 123 +++++++++- .../Pretty/QualifierTests.opt.roslyn.il | 200 ++++++++++++---- .../TestCases/Pretty/QualifierTests.roslyn.il | 220 ++++++++++++++---- 5 files changed, 636 insertions(+), 100 deletions(-) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.cs index a28e8c4e8..6ede07102 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.cs @@ -76,6 +76,58 @@ namespace ICSharpCode.Decompiler.Tests.Pretty } } + internal class Parent + { + public virtual void Virtual() + { + + } + + public virtual void NewVirtual() + { + + } + + public void New() + { + + } + + public void BaseOnly() + { + + } + } + + internal class Child : Parent + { + public override void Virtual() + { + base.Virtual(); + } + + public new void NewVirtual() + { + base.NewVirtual(); + } + + public new void New() + { + base.New(); + } + + public void BaseQualifiers() + { + Virtual(); + base.Virtual(); + NewVirtual(); + base.NewVirtual(); + New(); + base.New(); + BaseOnly(); + } + } + private int fieldConflict; private int innerConflict; diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.il index 34f31f29c..88ebb60c7 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.il @@ -1,6 +1,4 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 -// Copyright (c) Microsoft Corporation. All rights reserved. @@ -15,7 +13,7 @@ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 4:0:0:0 } -.assembly zgfoqdfc +.assembly QualifierTests { .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. @@ -26,15 +24,13 @@ .hash algorithm 0x00008004 .ver 0:0:0:0 } -.module zgfoqdfc.dll -// MVID: {1C0110BE-438D-48BD-8A01-FFE7CCD962C7} +.module QualifierTests.dll .custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) .imagebase 0x10000000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00810000 // =============== CLASS MEMBERS DECLARATION =================== @@ -208,6 +204,138 @@ } // end of class Test + .class auto ansi nested assembly beforefieldinit Parent + extends [mscorlib]System.Object + { + .method public hidebysig newslot virtual + instance void Virtual() cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method Parent::Virtual + + .method public hidebysig newslot virtual + instance void NewVirtual() cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method Parent::NewVirtual + + .method public hidebysig instance void + New() cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method Parent::New + + .method public hidebysig instance void + BaseOnly() cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method Parent::BaseOnly + + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ret + } // end of method Parent::.ctor + + } // end of class Parent + + .class auto ansi nested assembly beforefieldinit Child + extends ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent + { + .method public hidebysig virtual instance void + Virtual() cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_0007: nop + IL_0008: ret + } // end of method Child::Virtual + + .method public hidebysig instance void + NewVirtual() cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::NewVirtual() + IL_0007: nop + IL_0008: ret + } // end of method Child::NewVirtual + + .method public hidebysig instance void + New() cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::New() + IL_0007: nop + IL_0008: ret + } // end of method Child::New + + .method public hidebysig instance void + BaseQualifiers() cil managed + { + // Code size 51 (0x33) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: callvirt instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_0007: nop + IL_0008: ldarg.0 + IL_0009: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_000e: nop + IL_000f: ldarg.0 + IL_0010: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Child::NewVirtual() + IL_0015: nop + IL_0016: ldarg.0 + IL_0017: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::NewVirtual() + IL_001c: nop + IL_001d: ldarg.0 + IL_001e: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Child::New() + IL_0023: nop + IL_0024: ldarg.0 + IL_0025: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::New() + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::BaseOnly() + IL_0031: nop + IL_0032: ret + } // end of method Child::BaseQualifiers + + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::.ctor() + IL_0006: ret + } // end of method Child::.ctor + + } // end of class Child + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1' extends [mscorlib]System.Object { @@ -609,4 +737,3 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** -// WARNING: Created Win32 resource file C:\Users\Siegfried\Projects\ILSpy\ICSharpCode.Decompiler.Tests\bin\Debug\net46\../../../TestCases/Pretty\QualifierTests.res diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.opt.il index 953f94ddc..28361e9c0 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.opt.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.opt.il @@ -1,6 +1,4 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 -// Copyright (c) Microsoft Corporation. All rights reserved. @@ -15,7 +13,7 @@ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 4:0:0:0 } -.assembly a2ezv3zo +.assembly QualifierTests.opt { .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. @@ -26,15 +24,13 @@ .hash algorithm 0x00008004 .ver 0:0:0:0 } -.module a2ezv3zo.dll -// MVID: {7C524CF6-1164-4EF8-B967-C3D2C3C0FCC5} +.module QualifierTests.opt.dll .custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) .imagebase 0x10000000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x030E0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -183,6 +179,120 @@ } // end of class Test + .class auto ansi nested assembly beforefieldinit Parent + extends [mscorlib]System.Object + { + .method public hidebysig newslot virtual + instance void Virtual() cil managed + { + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method Parent::Virtual + + .method public hidebysig newslot virtual + instance void NewVirtual() cil managed + { + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method Parent::NewVirtual + + .method public hidebysig instance void + New() cil managed + { + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method Parent::New + + .method public hidebysig instance void + BaseOnly() cil managed + { + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method Parent::BaseOnly + + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ret + } // end of method Parent::.ctor + + } // end of class Parent + + .class auto ansi nested assembly beforefieldinit Child + extends ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent + { + .method public hidebysig virtual instance void + Virtual() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_0006: ret + } // end of method Child::Virtual + + .method public hidebysig instance void + NewVirtual() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::NewVirtual() + IL_0006: ret + } // end of method Child::NewVirtual + + .method public hidebysig instance void + New() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::New() + IL_0006: ret + } // end of method Child::New + + .method public hidebysig instance void + BaseQualifiers() cil managed + { + // Code size 43 (0x2b) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_0006: ldarg.0 + IL_0007: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_000c: ldarg.0 + IL_000d: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Child::NewVirtual() + IL_0012: ldarg.0 + IL_0013: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::NewVirtual() + IL_0018: ldarg.0 + IL_0019: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Child::New() + IL_001e: ldarg.0 + IL_001f: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::New() + IL_0024: ldarg.0 + IL_0025: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::BaseOnly() + IL_002a: ret + } // end of method Child::BaseQualifiers + + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::.ctor() + IL_0006: ret + } // end of method Child::.ctor + + } // end of class Child + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1' extends [mscorlib]System.Object { @@ -530,4 +640,3 @@ // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** -// WARNING: Created Win32 resource file C:\Users\Siegfried\Projects\ILSpy\ICSharpCode.Decompiler.Tests\bin\Debug\net46\../../../TestCases/Pretty\QualifierTests.opt.res diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.opt.roslyn.il index e272da85d..0c4e87731 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.opt.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.opt.roslyn.il @@ -183,7 +183,121 @@ } // end of class Test - .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass12_0' + .class auto ansi nested assembly beforefieldinit Parent + extends [mscorlib]System.Object + { + .method public hidebysig newslot virtual + instance void Virtual() cil managed + { + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method Parent::Virtual + + .method public hidebysig newslot virtual + instance void NewVirtual() cil managed + { + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method Parent::NewVirtual + + .method public hidebysig instance void + New() cil managed + { + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method Parent::New + + .method public hidebysig instance void + BaseOnly() cil managed + { + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method Parent::BaseOnly + + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ret + } // end of method Parent::.ctor + + } // end of class Parent + + .class auto ansi nested assembly beforefieldinit Child + extends ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent + { + .method public hidebysig virtual instance void + Virtual() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_0006: ret + } // end of method Child::Virtual + + .method public hidebysig instance void + NewVirtual() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::NewVirtual() + IL_0006: ret + } // end of method Child::NewVirtual + + .method public hidebysig instance void + New() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::New() + IL_0006: ret + } // end of method Child::New + + .method public hidebysig instance void + BaseQualifiers() cil managed + { + // Code size 43 (0x2b) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_0006: ldarg.0 + IL_0007: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_000c: ldarg.0 + IL_000d: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Child::NewVirtual() + IL_0012: ldarg.0 + IL_0013: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::NewVirtual() + IL_0018: ldarg.0 + IL_0019: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Child::New() + IL_001e: ldarg.0 + IL_001f: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::New() + IL_0024: ldarg.0 + IL_0025: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::BaseOnly() + IL_002a: ret + } // end of method Child::BaseQualifiers + + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::.ctor() + IL_0006: ret + } // end of method Child::.ctor + + } // end of class Child + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass14_0' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -196,7 +310,7 @@ IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret - } // end of method '<>c__DisplayClass12_0'::.ctor + } // end of method '<>c__DisplayClass14_0'::.ctor .method assembly hidebysig instance int32 'b__0'() cil managed @@ -204,13 +318,13 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0'::conflictWithVariable + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0'::conflictWithVariable IL_0006: ret - } // end of method '<>c__DisplayClass12_0'::'b__0' + } // end of method '<>c__DisplayClass14_0'::'b__0' - } // end of class '<>c__DisplayClass12_0' + } // end of class '<>c__DisplayClass14_0' - .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass13_0' + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass15_0' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -224,7 +338,7 @@ IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret - } // end of method '<>c__DisplayClass13_0'::.ctor + } // end of method '<>c__DisplayClass15_0'::.ctor .method assembly hidebysig instance int32 'b__0'() cil managed @@ -232,53 +346,53 @@ // Code size 19 (0x13) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0001: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::fieldConflict IL_000b: ldarg.0 - IL_000c: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::fieldConflict + IL_000c: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::fieldConflict IL_0011: add IL_0012: ret - } // end of method '<>c__DisplayClass13_0'::'b__0' + } // end of method '<>c__DisplayClass15_0'::'b__0' .method assembly hidebysig instance int32 'b__1'() cil managed { // Code size 63 (0x3f) .maxstack 4 - .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1' V_0) - IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::.ctor() + .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1' V_0) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::.ctor() IL_0005: stloc.0 IL_0006: ldloc.0 IL_0007: ldarg.0 - IL_0008: stfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::'CS$<>8__locals1' + IL_0008: stfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::'CS$<>8__locals1' IL_000d: ldloc.0 IL_000e: ldc.i4.5 - IL_000f: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::innerConflict + IL_000f: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::innerConflict IL_0014: ldarg.0 - IL_0015: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0015: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_001a: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::fieldConflict IL_001f: ldarg.0 - IL_0020: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::fieldConflict + IL_0020: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::fieldConflict IL_0025: add IL_0026: ldarg.0 - IL_0027: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0027: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_002c: ldloc.0 - IL_002d: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::'b__2'() + IL_002d: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::'b__2'() IL_0033: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0038: call instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::Capturer2(class [mscorlib]System.Func`1) IL_003d: add IL_003e: ret - } // end of method '<>c__DisplayClass13_0'::'b__1' + } // end of method '<>c__DisplayClass15_0'::'b__1' - } // end of class '<>c__DisplayClass13_0' + } // end of class '<>c__DisplayClass15_0' - .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass13_1' + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass15_1' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .field public int32 innerConflict - .field public class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' 'CS$<>8__locals1' + .field public class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' 'CS$<>8__locals1' .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { @@ -287,7 +401,7 @@ IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret - } // end of method '<>c__DisplayClass13_1'::.ctor + } // end of method '<>c__DisplayClass15_1'::.ctor .method assembly hidebysig instance int32 'b__2'() cil managed @@ -295,25 +409,25 @@ // Code size 53 (0x35) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::'CS$<>8__locals1' - IL_0006: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0001: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::'CS$<>8__locals1' + IL_0006: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::innerConflict IL_0010: ldarg.0 - IL_0011: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::innerConflict + IL_0011: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::innerConflict IL_0016: add IL_0017: ldarg.0 - IL_0018: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::'CS$<>8__locals1' - IL_001d: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0018: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::'CS$<>8__locals1' + IL_001d: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_0022: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::fieldConflict IL_0027: add IL_0028: ldarg.0 - IL_0029: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::'CS$<>8__locals1' - IL_002e: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::fieldConflict + IL_0029: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::'CS$<>8__locals1' + IL_002e: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::fieldConflict IL_0033: add IL_0034: ret - } // end of method '<>c__DisplayClass13_1'::'b__2' + } // end of method '<>c__DisplayClass15_1'::'b__2' - } // end of class '<>c__DisplayClass13_1' + } // end of class '<>c__DisplayClass15_1' .field private int32 fieldConflict .field private int32 innerConflict @@ -405,19 +519,19 @@ { // Code size 44 (0x2c) .maxstack 3 - .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0' V_0) - IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0'::.ctor() + .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0' V_0) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0'::.ctor() IL_0005: stloc.0 IL_0006: ldloc.0 IL_0007: ldc.i4.5 - IL_0008: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0'::conflictWithVariable + IL_0008: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0'::conflictWithVariable IL_000d: ldarg.0 IL_000e: ldloc.0 - IL_000f: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0'::conflictWithVariable + IL_000f: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0'::conflictWithVariable IL_0014: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::conflictWithVariable(int32) IL_0019: ldarg.0 IL_001a: ldloc.0 - IL_001b: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0'::'b__0'() + IL_001b: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0'::'b__0'() IL_0021: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0026: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::Capturer(class [mscorlib]System.Func`1) @@ -429,24 +543,24 @@ { // Code size 57 (0x39) .maxstack 3 - .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' V_0) - IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::.ctor() + .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' V_0) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::.ctor() IL_0005: stloc.0 IL_0006: ldloc.0 IL_0007: ldarg.0 - IL_0008: stfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0008: stfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_000d: ldloc.0 IL_000e: ldc.i4.5 - IL_000f: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::fieldConflict + IL_000f: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::fieldConflict IL_0014: ldarg.0 IL_0015: ldloc.0 - IL_0016: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'b__0'() + IL_0016: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'b__0'() IL_001c: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0021: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::Capturer(class [mscorlib]System.Func`1) IL_0026: ldarg.0 IL_0027: ldloc.0 - IL_0028: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'b__1'() + IL_0028: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'b__1'() IL_002e: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0033: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::Capturer(class [mscorlib]System.Func`1) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.roslyn.il index 6c77d2c3e..cc2f769ed 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QualifierTests.roslyn.il @@ -208,7 +208,141 @@ } // end of class Test - .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass12_0' + .class auto ansi nested assembly beforefieldinit Parent + extends [mscorlib]System.Object + { + .method public hidebysig newslot virtual + instance void Virtual() cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method Parent::Virtual + + .method public hidebysig newslot virtual + instance void NewVirtual() cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method Parent::NewVirtual + + .method public hidebysig instance void + New() cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method Parent::New + + .method public hidebysig instance void + BaseOnly() cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method Parent::BaseOnly + + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ret + } // end of method Parent::.ctor + + } // end of class Parent + + .class auto ansi nested assembly beforefieldinit Child + extends ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent + { + .method public hidebysig virtual instance void + Virtual() cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_0007: nop + IL_0008: ret + } // end of method Child::Virtual + + .method public hidebysig instance void + NewVirtual() cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::NewVirtual() + IL_0007: nop + IL_0008: ret + } // end of method Child::NewVirtual + + .method public hidebysig instance void + New() cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::New() + IL_0007: nop + IL_0008: ret + } // end of method Child::New + + .method public hidebysig instance void + BaseQualifiers() cil managed + { + // Code size 51 (0x33) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: callvirt instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_0007: nop + IL_0008: ldarg.0 + IL_0009: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::Virtual() + IL_000e: nop + IL_000f: ldarg.0 + IL_0010: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Child::NewVirtual() + IL_0015: nop + IL_0016: ldarg.0 + IL_0017: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::NewVirtual() + IL_001c: nop + IL_001d: ldarg.0 + IL_001e: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Child::New() + IL_0023: nop + IL_0024: ldarg.0 + IL_0025: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::New() + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::BaseOnly() + IL_0031: nop + IL_0032: ret + } // end of method Child::BaseQualifiers + + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/Parent::.ctor() + IL_0006: nop + IL_0007: ret + } // end of method Child::.ctor + + } // end of class Child + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass14_0' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -222,7 +356,7 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: ret - } // end of method '<>c__DisplayClass12_0'::.ctor + } // end of method '<>c__DisplayClass14_0'::.ctor .method assembly hidebysig instance int32 'b__0'() cil managed @@ -230,13 +364,13 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0'::conflictWithVariable + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0'::conflictWithVariable IL_0006: ret - } // end of method '<>c__DisplayClass12_0'::'b__0' + } // end of method '<>c__DisplayClass14_0'::'b__0' - } // end of class '<>c__DisplayClass12_0' + } // end of class '<>c__DisplayClass14_0' - .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass13_0' + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass15_0' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -251,7 +385,7 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: ret - } // end of method '<>c__DisplayClass13_0'::.ctor + } // end of method '<>c__DisplayClass15_0'::.ctor .method assembly hidebysig instance int32 'b__0'() cil managed @@ -259,40 +393,40 @@ // Code size 19 (0x13) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0001: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::fieldConflict IL_000b: ldarg.0 - IL_000c: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::fieldConflict + IL_000c: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::fieldConflict IL_0011: add IL_0012: ret - } // end of method '<>c__DisplayClass13_0'::'b__0' + } // end of method '<>c__DisplayClass15_0'::'b__0' .method assembly hidebysig instance int32 'b__1'() cil managed { // Code size 68 (0x44) .maxstack 4 - .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1' V_0, + .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1' V_0, int32 V_1) - IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::.ctor() + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::.ctor() IL_0005: stloc.0 IL_0006: ldloc.0 IL_0007: ldarg.0 - IL_0008: stfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::'CS$<>8__locals1' + IL_0008: stfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::'CS$<>8__locals1' IL_000d: nop IL_000e: ldloc.0 IL_000f: ldc.i4.5 - IL_0010: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::innerConflict + IL_0010: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::innerConflict IL_0015: ldarg.0 - IL_0016: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0016: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_001b: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::fieldConflict IL_0020: ldarg.0 - IL_0021: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::fieldConflict + IL_0021: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::fieldConflict IL_0026: add IL_0027: ldarg.0 - IL_0028: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0028: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_002d: ldloc.0 - IL_002e: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::'b__2'() + IL_002e: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::'b__2'() IL_0034: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0039: call instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::Capturer2(class [mscorlib]System.Func`1) @@ -302,16 +436,16 @@ IL_0042: ldloc.1 IL_0043: ret - } // end of method '<>c__DisplayClass13_0'::'b__1' + } // end of method '<>c__DisplayClass15_0'::'b__1' - } // end of class '<>c__DisplayClass13_0' + } // end of class '<>c__DisplayClass15_0' - .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass13_1' + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass15_1' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .field public int32 innerConflict - .field public class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' 'CS$<>8__locals1' + .field public class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' 'CS$<>8__locals1' .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { @@ -321,7 +455,7 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: ret - } // end of method '<>c__DisplayClass13_1'::.ctor + } // end of method '<>c__DisplayClass15_1'::.ctor .method assembly hidebysig instance int32 'b__2'() cil managed @@ -329,25 +463,25 @@ // Code size 53 (0x35) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::'CS$<>8__locals1' - IL_0006: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0001: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::'CS$<>8__locals1' + IL_0006: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::innerConflict IL_0010: ldarg.0 - IL_0011: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::innerConflict + IL_0011: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::innerConflict IL_0016: add IL_0017: ldarg.0 - IL_0018: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::'CS$<>8__locals1' - IL_001d: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0018: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::'CS$<>8__locals1' + IL_001d: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_0022: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::fieldConflict IL_0027: add IL_0028: ldarg.0 - IL_0029: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_1'::'CS$<>8__locals1' - IL_002e: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::fieldConflict + IL_0029: ldfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_1'::'CS$<>8__locals1' + IL_002e: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::fieldConflict IL_0033: add IL_0034: ret - } // end of method '<>c__DisplayClass13_1'::'b__2' + } // end of method '<>c__DisplayClass15_1'::'b__2' - } // end of class '<>c__DisplayClass13_1' + } // end of class '<>c__DisplayClass15_1' .field private int32 fieldConflict .field private int32 innerConflict @@ -451,21 +585,21 @@ { // Code size 47 (0x2f) .maxstack 3 - .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0' V_0) - IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0'::.ctor() + .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0' V_0) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0'::.ctor() IL_0005: stloc.0 IL_0006: nop IL_0007: ldloc.0 IL_0008: ldc.i4.5 - IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0'::conflictWithVariable + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0'::conflictWithVariable IL_000e: ldarg.0 IL_000f: ldloc.0 - IL_0010: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0'::conflictWithVariable + IL_0010: ldfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0'::conflictWithVariable IL_0015: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::conflictWithVariable(int32) IL_001a: nop IL_001b: ldarg.0 IL_001c: ldloc.0 - IL_001d: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass12_0'::'b__0'() + IL_001d: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass14_0'::'b__0'() IL_0023: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0028: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::Capturer(class [mscorlib]System.Func`1) @@ -478,26 +612,26 @@ { // Code size 60 (0x3c) .maxstack 3 - .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0' V_0) - IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::.ctor() + .locals init (class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0' V_0) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::.ctor() IL_0005: stloc.0 IL_0006: ldloc.0 IL_0007: ldarg.0 - IL_0008: stfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'<>4__this' + IL_0008: stfld class ICSharpCode.Decompiler.Tests.Pretty.QualifierTests ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'<>4__this' IL_000d: nop IL_000e: ldloc.0 IL_000f: ldc.i4.5 - IL_0010: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::fieldConflict + IL_0010: stfld int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::fieldConflict IL_0015: ldarg.0 IL_0016: ldloc.0 - IL_0017: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'b__0'() + IL_0017: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'b__0'() IL_001d: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0022: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::Capturer(class [mscorlib]System.Func`1) IL_0027: nop IL_0028: ldarg.0 IL_0029: ldloc.0 - IL_002a: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass13_0'::'b__1'() + IL_002a: ldftn instance int32 ICSharpCode.Decompiler.Tests.Pretty.QualifierTests/'<>c__DisplayClass15_0'::'b__1'() IL_0030: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0035: call instance void ICSharpCode.Decompiler.Tests.Pretty.QualifierTests::Capturer(class [mscorlib]System.Func`1)