From 911cdbca661071f8c24637de87c9e6e5297361a4 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Mon, 9 Oct 2017 20:52:36 +0200 Subject: [PATCH] Add DelegateConstruction tests --- .../ICSharpCode.Decompiler.Tests.csproj | 1 + .../PrettyTestRunner.cs | 6 + .../Pretty}/DelegateConstruction.cs | 61 +- .../TestCases/Pretty/DelegateConstruction.il | 1400 +++++++++++++++++ .../Pretty/DelegateConstruction.opt.il | 1150 ++++++++++++++ .../Pretty/DelegateConstruction.opt.roslyn.il | 1144 ++++++++++++++ .../Pretty/DelegateConstruction.roslyn.il | 1362 ++++++++++++++++ 7 files changed, 5089 insertions(+), 35 deletions(-) rename ICSharpCode.Decompiler.Tests/{ => TestCases/Pretty}/DelegateConstruction.cs (77%) create mode 100644 ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.il create mode 100644 ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.opt.il create mode 100644 ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.opt.roslyn.il create mode 100644 ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.roslyn.il diff --git a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj index f39ff4d6d..0480c2533 100644 --- a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj +++ b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj @@ -51,6 +51,7 @@ + diff --git a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs index f0033e239..47d253dab 100644 --- a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs +++ b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs @@ -97,6 +97,12 @@ namespace ICSharpCode.Decompiler.Tests Run(cscOptions: cscOptions); } + [Test, Ignore] + public void DelegateConstruction([ValueSource("defaultOptions")] CompilerOptions cscOptions) + { + Run(cscOptions: cscOptions); + } + [Test] public void AnonymousTypes([Values(CompilerOptions.None, CompilerOptions.Optimize)] CompilerOptions cscOptions) { diff --git a/ICSharpCode.Decompiler.Tests/DelegateConstruction.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.cs similarity index 77% rename from ICSharpCode.Decompiler.Tests/DelegateConstruction.cs rename to ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.cs index 70c00fc65..283a89acc 100644 --- a/ICSharpCode.Decompiler.Tests/DelegateConstruction.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.cs @@ -22,19 +22,19 @@ using System.Linq; public static class DelegateConstruction { - class InstanceTests + private class InstanceTests { public Action CaptureOfThis() { - return delegate { - CaptureOfThis(); + return (Action)delegate { + this.CaptureOfThis(); }; } public Action CaptureOfThisAndParameter(int a) { - return delegate { - CaptureOfThisAndParameter(a); + return (Action)delegate { + this.CaptureOfThisAndParameter(a); }; } @@ -42,8 +42,8 @@ public static class DelegateConstruction { foreach (int item in Enumerable.Empty()) { if (item > 0) { - return delegate { - CaptureOfThisAndParameter(item + a); + return (Action)delegate { + this.CaptureOfThisAndParameter(item + a); }; } } @@ -55,8 +55,8 @@ public static class DelegateConstruction foreach (int item in Enumerable.Empty()) { int copyOfItem = item; if (item > 0) { - return delegate { - CaptureOfThisAndParameter(item + a + copyOfItem); + return (Action)delegate { + this.CaptureOfThisAndParameter(item + a + copyOfItem); }; } } @@ -66,7 +66,7 @@ public static class DelegateConstruction public void LambdaInForLoop() { for (int i = 0; i < 100000; i++) { - Bar(() => Foo()); + this.Bar((Func)(() => this.Foo())); } } @@ -117,14 +117,11 @@ public static class DelegateConstruction public static List> AnonymousMethodStoreWithinLoop() { List> list = new List>(); - for (int i = 0; i < 10; i++) - { + for (int i = 0; i < 10; i++) { int counter; - list.Add(delegate(int x) - { + list.Add((Action)delegate(int x) { counter = x; - } - ); + }); } return list; } @@ -133,21 +130,17 @@ public static class DelegateConstruction { List> list = new List>(); int counter; - for (int i = 0; i < 10; i++) - { - list.Add(delegate(int x) - { + for (int i = 0; i < 10; i++) { + list.Add((Action)delegate(int x) { counter = x; - } - ); + }); } return list; } public static Action StaticAnonymousMethodNoClosure() { - return delegate - { + return (Action)delegate { Console.WriteLine(); }; } @@ -156,16 +149,15 @@ public static class DelegateConstruction { // i is captured variable, // j is parameter in anonymous method - // k is local in anonymous method, - // l is local in main method + // l is local in anonymous method, + // k is local in main method // Ensure that the decompiler doesn't introduce name conflicts List> list = new List>(); - for (int l = 0; l < 10; l++) { + for (int k = 0; k < 10; k++) { int i; for (i = 0; i < 10; i++) { - list.Add( - delegate (int j) { - for (int k = 0; k < i; k += j) { + list.Add((Action)delegate(int j) { + for (int l = 0; l < i; l += j) { Console.WriteLine(); } }); @@ -177,8 +169,7 @@ public static class DelegateConstruction { List> list = new List>(); for (int k = 0; k < 10; k++) { - list.Add( - delegate(int i) { + list.Add((Action)delegate(int i) { Console.WriteLine(i); }); } @@ -186,7 +177,7 @@ public static class DelegateConstruction public static Action NameConflict3(int i) { - return delegate(int j) { + return (Action)delegate(int j) { for (int k = 0; k < j; k++) { Console.WriteLine(k); } @@ -195,11 +186,11 @@ public static class DelegateConstruction public static Func> CurriedAddition(int a) { - return b => c => a + b + c; + return (Func>)((int b) => (Func)((int c) => a + b + c)); } public static Func>> CurriedAddition2(int a) { - return b => c => d => a + b + c + d; + return (Func>>)((int b) => (Func>)((int c) => (Func)((int d) => a + b + c + d))); } } diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.il new file mode 100644 index 000000000..b783a086b --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.il @@ -0,0 +1,1400 @@ + +// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.17929 +// Copyright (c) Microsoft Corporation. All rights reserved. + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern System.Core +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly bmq55mnq +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + .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. + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module bmq55mnq.dll +// MVID: {F2F10218-F242-427C-ADE5-E367B0EA41E3} +.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: 0x02B40000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed beforefieldinit DelegateConstruction + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + .class auto ansi nested private beforefieldinit InstanceTests + extends [mscorlib]System.Object + { + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass22' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public class DelegateConstruction/InstanceTests '<>4__this' + .field public int32 a + .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 '<>c__DisplayClass22'::.ctor + + .method public hidebysig instance void + 'b__21'() cil managed + { + // Code size 20 (0x14) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::'<>4__this' + IL_0007: ldarg.0 + IL_0008: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::a + IL_000d: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_0012: pop + IL_0013: ret + } // end of method '<>c__DisplayClass22'::'b__21' + + } // end of class '<>c__DisplayClass22' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass25' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public class DelegateConstruction/InstanceTests '<>4__this' + .field public int32 a + .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 '<>c__DisplayClass25'::.ctor + + } // end of class '<>c__DisplayClass25' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass28' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass25' 'CS$<>8__locals26' + .field public int32 item + .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 '<>c__DisplayClass28'::.ctor + + .method public hidebysig instance void + 'b__24'() cil managed + { + // Code size 37 (0x25) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass25' DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::'CS$<>8__locals26' + IL_0007: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass25'::'<>4__this' + IL_000c: ldarg.0 + IL_000d: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::item + IL_0012: ldarg.0 + IL_0013: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass25' DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::'CS$<>8__locals26' + IL_0018: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass25'::a + IL_001d: add + IL_001e: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_0023: pop + IL_0024: ret + } // end of method '<>c__DisplayClass28'::'b__24' + + } // end of class '<>c__DisplayClass28' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass2b' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public class DelegateConstruction/InstanceTests '<>4__this' + .field public int32 a + .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 '<>c__DisplayClass2b'::.ctor + + } // end of class '<>c__DisplayClass2b' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass2d' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 item + .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 '<>c__DisplayClass2d'::.ctor + + } // end of class '<>c__DisplayClass2d' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass30' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass2d' 'CS$<>8__locals2e' + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass2b' 'CS$<>8__locals2c' + .field public int32 copyOfItem + .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 '<>c__DisplayClass30'::.ctor + + .method public hidebysig instance void + 'b__2a'() cil managed + { + // Code size 49 (0x31) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2b' DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'CS$<>8__locals2c' + IL_0007: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass2b'::'<>4__this' + IL_000c: ldarg.0 + IL_000d: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2d' DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'CS$<>8__locals2e' + IL_0012: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2d'::item + IL_0017: ldarg.0 + IL_0018: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2b' DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'CS$<>8__locals2c' + IL_001d: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2b'::a + IL_0022: add + IL_0023: ldarg.0 + IL_0024: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::copyOfItem + IL_0029: add + IL_002a: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_002f: pop + IL_0030: ret + } // end of method '<>c__DisplayClass30'::'b__2a' + + } // end of class '<>c__DisplayClass30' + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThis() cil managed + { + // Code size 18 (0x12) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldftn instance void DelegateConstruction/InstanceTests::'b__20'() + IL_0008: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_000d: stloc.0 + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ret + } // end of method InstanceTests::CaptureOfThis + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameter(int32 a) cil managed + { + // Code size 38 (0x26) + .maxstack 2 + .locals init (class DelegateConstruction/InstanceTests/'<>c__DisplayClass22' V_0, + class [mscorlib]System.Action V_1) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::a + IL_000d: ldloc.0 + IL_000e: ldarg.0 + IL_000f: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::'<>4__this' + IL_0014: nop + IL_0015: ldloc.0 + IL_0016: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::'b__21'() + IL_001c: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0021: stloc.1 + IL_0022: br.s IL_0024 + + IL_0024: ldloc.1 + IL_0025: ret + } // end of method InstanceTests::CaptureOfThisAndParameter + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameterInForEach(int32 a) cil managed + { + // Code size 150 (0x96) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass28' V_1, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass25' V_2, + class [mscorlib]System.Action V_3, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_4, + bool V_5) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass25'::.ctor() + IL_0005: stloc.2 + IL_0006: ldloc.2 + IL_0007: ldarg.1 + IL_0008: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass25'::a + IL_000d: ldloc.2 + IL_000e: ldarg.0 + IL_000f: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass25'::'<>4__this' + IL_0014: nop + IL_0015: nop + IL_0016: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Empty() + IL_001b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0020: stloc.s V_4 + .try + { + IL_0022: br.s IL_006b + + IL_0024: ldnull + IL_0025: stloc.0 + IL_0026: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::.ctor() + IL_002b: stloc.1 + IL_002c: ldloc.1 + IL_002d: ldloc.2 + IL_002e: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass25' DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::'CS$<>8__locals26' + IL_0033: ldloc.1 + IL_0034: ldloc.s V_4 + IL_0036: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_003b: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::item + IL_0040: nop + IL_0041: ldloc.1 + IL_0042: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::item + IL_0047: ldc.i4.0 + IL_0048: cgt + IL_004a: ldc.i4.0 + IL_004b: ceq + IL_004d: stloc.s V_5 + IL_004f: ldloc.s V_5 + IL_0051: brtrue.s IL_006a + + IL_0053: nop + IL_0054: ldloc.0 + IL_0055: brtrue.s IL_0066 + + IL_0057: ldloc.1 + IL_0058: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::'b__24'() + IL_005e: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0063: stloc.0 + IL_0064: br.s IL_0066 + + IL_0066: ldloc.0 + IL_0067: stloc.3 + IL_0068: leave.s IL_0093 + + IL_006a: nop + IL_006b: ldloc.s V_4 + IL_006d: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0072: stloc.s V_5 + IL_0074: ldloc.s V_5 + IL_0076: brtrue.s IL_0024 + + IL_0078: leave.s IL_008e + + } // end .try + finally + { + IL_007a: ldloc.s V_4 + IL_007c: ldnull + IL_007d: ceq + IL_007f: stloc.s V_5 + IL_0081: ldloc.s V_5 + IL_0083: brtrue.s IL_008d + + IL_0085: ldloc.s V_4 + IL_0087: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_008c: nop + IL_008d: endfinally + } // end handler + IL_008e: nop + IL_008f: ldnull + IL_0090: stloc.3 + IL_0091: br.s IL_0093 + + IL_0093: nop + IL_0094: ldloc.3 + IL_0095: ret + } // end of method InstanceTests::CaptureOfThisAndParameterInForEach + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameterInForEachWithItemCopy(int32 a) cil managed + { + // Code size 178 (0xb2) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass30' V_1, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass2d' V_2, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass2b' V_3, + class [mscorlib]System.Action V_4, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_5, + bool V_6) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass2b'::.ctor() + IL_0005: stloc.3 + IL_0006: ldloc.3 + IL_0007: ldarg.1 + IL_0008: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2b'::a + IL_000d: ldloc.3 + IL_000e: ldarg.0 + IL_000f: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass2b'::'<>4__this' + IL_0014: nop + IL_0015: nop + IL_0016: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Empty() + IL_001b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0020: stloc.s V_5 + .try + { + IL_0022: br.s IL_0085 + + IL_0024: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass2d'::.ctor() + IL_0029: stloc.2 + IL_002a: ldloc.2 + IL_002b: ldloc.s V_5 + IL_002d: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0032: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2d'::item + IL_0037: ldnull + IL_0038: stloc.0 + IL_0039: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::.ctor() + IL_003e: stloc.1 + IL_003f: ldloc.1 + IL_0040: ldloc.2 + IL_0041: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2d' DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'CS$<>8__locals2e' + IL_0046: ldloc.1 + IL_0047: ldloc.3 + IL_0048: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2b' DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'CS$<>8__locals2c' + IL_004d: nop + IL_004e: ldloc.1 + IL_004f: ldloc.2 + IL_0050: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2d'::item + IL_0055: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::copyOfItem + IL_005a: ldloc.2 + IL_005b: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2d'::item + IL_0060: ldc.i4.0 + IL_0061: cgt + IL_0063: ldc.i4.0 + IL_0064: ceq + IL_0066: stloc.s V_6 + IL_0068: ldloc.s V_6 + IL_006a: brtrue.s IL_0084 + + IL_006c: nop + IL_006d: ldloc.0 + IL_006e: brtrue.s IL_007f + + IL_0070: ldloc.1 + IL_0071: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'b__2a'() + IL_0077: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_007c: stloc.0 + IL_007d: br.s IL_007f + + IL_007f: ldloc.0 + IL_0080: stloc.s V_4 + IL_0082: leave.s IL_00ae + + IL_0084: nop + IL_0085: ldloc.s V_5 + IL_0087: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_008c: stloc.s V_6 + IL_008e: ldloc.s V_6 + IL_0090: brtrue.s IL_0024 + + IL_0092: leave.s IL_00a8 + + } // end .try + finally + { + IL_0094: ldloc.s V_5 + IL_0096: ldnull + IL_0097: ceq + IL_0099: stloc.s V_6 + IL_009b: ldloc.s V_6 + IL_009d: brtrue.s IL_00a7 + + IL_009f: ldloc.s V_5 + IL_00a1: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_00a6: nop + IL_00a7: endfinally + } // end handler + IL_00a8: nop + IL_00a9: ldnull + IL_00aa: stloc.s V_4 + IL_00ac: br.s IL_00ae + + IL_00ae: nop + IL_00af: ldloc.s V_4 + IL_00b1: ret + } // end of method InstanceTests::CaptureOfThisAndParameterInForEachWithItemCopy + + .method public hidebysig instance void + LambdaInForLoop() cil managed + { + // Code size 53 (0x35) + .maxstack 3 + .locals init (int32 V_0, + class [mscorlib]System.Func`1 V_1, + bool V_2) + IL_0000: ldnull + IL_0001: stloc.1 + IL_0002: nop + IL_0003: ldc.i4.0 + IL_0004: stloc.0 + IL_0005: br.s IL_0027 + + IL_0007: nop + IL_0008: ldarg.0 + IL_0009: ldloc.1 + IL_000a: brtrue.s IL_001b + + IL_000c: ldarg.0 + IL_000d: ldftn instance int32 DelegateConstruction/InstanceTests::'b__32'() + IL_0013: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0018: stloc.1 + IL_0019: br.s IL_001b + + IL_001b: ldloc.1 + IL_001c: call instance void DelegateConstruction/InstanceTests::Bar(class [mscorlib]System.Func`1) + IL_0021: nop + IL_0022: nop + IL_0023: ldloc.0 + IL_0024: ldc.i4.1 + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ldc.i4 0x186a0 + IL_002d: clt + IL_002f: stloc.2 + IL_0030: ldloc.2 + IL_0031: brtrue.s IL_0007 + + IL_0033: nop + IL_0034: ret + } // end of method InstanceTests::LambdaInForLoop + + .method public hidebysig instance int32 + Foo() cil managed + { + // Code size 7 (0x7) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_0005 + + IL_0005: ldloc.0 + IL_0006: ret + } // end of method InstanceTests::Foo + + .method public hidebysig instance void + Bar(class [mscorlib]System.Func`1 f) cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method InstanceTests::Bar + + .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 InstanceTests::.ctor + + .method private hidebysig instance void + 'b__20'() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThis() + IL_0007: pop + IL_0008: ret + } // end of method InstanceTests::'b__20' + + .method private hidebysig instance int32 + 'b__32'() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: call instance int32 DelegateConstruction/InstanceTests::Foo() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method InstanceTests::'b__32' + + } // end of class InstanceTests + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 counter + .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 '<>c__DisplayClass1'::.ctor + + .method public hidebysig instance void + 'b__0'(int32 x) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldarg.1 + IL_0003: stfld int32 DelegateConstruction/'<>c__DisplayClass1'::counter + IL_0008: ret + } // end of method '<>c__DisplayClass1'::'b__0' + + } // end of class '<>c__DisplayClass1' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass5' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 counter + .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 '<>c__DisplayClass5'::.ctor + + .method public hidebysig instance void + 'b__3'(int32 x) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldarg.1 + IL_0003: stfld int32 DelegateConstruction/'<>c__DisplayClass5'::counter + IL_0008: ret + } // end of method '<>c__DisplayClass5'::'b__3' + + } // end of class '<>c__DisplayClass5' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClassb' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 i + .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 '<>c__DisplayClassb'::.ctor + + .method public hidebysig instance void + 'b__9'(int32 j) cil managed + { + // Code size 31 (0x1f) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_0011 + + IL_0005: nop + IL_0006: call void [mscorlib]System.Console::WriteLine() + IL_000b: nop + IL_000c: nop + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: add + IL_0010: stloc.0 + IL_0011: ldloc.0 + IL_0012: ldarg.0 + IL_0013: ldfld int32 DelegateConstruction/'<>c__DisplayClassb'::i + IL_0018: clt + IL_001a: stloc.1 + IL_001b: ldloc.1 + IL_001c: brtrue.s IL_0005 + + IL_001e: ret + } // end of method '<>c__DisplayClassb'::'b__9' + + } // end of class '<>c__DisplayClassb' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass13' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass15' + extends [mscorlib]System.Object + { + .field public class DelegateConstruction/'<>c__DisplayClass13' 'CS$<>8__locals14' + .field public int32 b + .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 '<>c__DisplayClass15'::.ctor + + .method public hidebysig instance int32 + 'b__12'(int32 c) cil managed + { + // Code size 25 (0x19) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/'<>c__DisplayClass13' DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::'CS$<>8__locals14' + IL_0006: ldfld int32 DelegateConstruction/'<>c__DisplayClass13'::a + IL_000b: ldarg.0 + IL_000c: ldfld int32 DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::b + IL_0011: add + IL_0012: ldarg.1 + IL_0013: add + IL_0014: stloc.0 + IL_0015: br.s IL_0017 + + IL_0017: ldloc.0 + IL_0018: ret + } // end of method '<>c__DisplayClass15'::'b__12' + + } // end of class '<>c__DisplayClass15' + + .field public int32 a + .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 '<>c__DisplayClass13'::.ctor + + .method public hidebysig instance class [mscorlib]System.Func`2 + 'b__11'(int32 b) cil managed + { + // Code size 37 (0x25) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15' V_0, + class [mscorlib]System.Func`2 V_1) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/'<>c__DisplayClass13' DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::'CS$<>8__locals14' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::b + IL_0014: ldloc.0 + IL_0015: ldftn instance int32 DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::'b__12'(int32) + IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, + native int) + IL_0020: stloc.1 + IL_0021: br.s IL_0023 + + IL_0023: ldloc.1 + IL_0024: ret + } // end of method '<>c__DisplayClass13'::'b__11' + + } // end of class '<>c__DisplayClass13' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1a' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1c' + extends [mscorlib]System.Object + { + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1e' + extends [mscorlib]System.Object + { + .field public class DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c' 'CS$<>8__locals1d' + .field public class DelegateConstruction/'<>c__DisplayClass1a' 'CS$<>8__locals1b' + .field public int32 c + .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 '<>c__DisplayClass1e'::.ctor + + .method public hidebysig instance int32 + 'b__19'(int32 d) cil managed + { + // Code size 37 (0x25) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/'<>c__DisplayClass1a' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::'CS$<>8__locals1b' + IL_0006: ldfld int32 DelegateConstruction/'<>c__DisplayClass1a'::a + IL_000b: ldarg.0 + IL_000c: ldfld class DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::'CS$<>8__locals1d' + IL_0011: ldfld int32 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::b + IL_0016: add + IL_0017: ldarg.0 + IL_0018: ldfld int32 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::c + IL_001d: add + IL_001e: ldarg.1 + IL_001f: add + IL_0020: stloc.0 + IL_0021: br.s IL_0023 + + IL_0023: ldloc.0 + IL_0024: ret + } // end of method '<>c__DisplayClass1e'::'b__19' + + } // end of class '<>c__DisplayClass1e' + + .field public class DelegateConstruction/'<>c__DisplayClass1a' 'CS$<>8__locals1b' + .field public int32 b + .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 '<>c__DisplayClass1c'::.ctor + + .method public hidebysig instance class [mscorlib]System.Func`2 + 'b__18'(int32 c) cil managed + { + // Code size 49 (0x31) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e' V_0, + class [mscorlib]System.Func`2 V_1) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::'CS$<>8__locals1d' + IL_000d: ldloc.0 + IL_000e: ldarg.0 + IL_000f: ldfld class DelegateConstruction/'<>c__DisplayClass1a' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::'CS$<>8__locals1b' + IL_0014: stfld class DelegateConstruction/'<>c__DisplayClass1a' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::'CS$<>8__locals1b' + IL_0019: ldloc.0 + IL_001a: ldarg.1 + IL_001b: stfld int32 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::c + IL_0020: ldloc.0 + IL_0021: ldftn instance int32 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::'b__19'(int32) + IL_0027: newobj instance void class [mscorlib]System.Func`2::.ctor(object, + native int) + IL_002c: stloc.1 + IL_002d: br.s IL_002f + + IL_002f: ldloc.1 + IL_0030: ret + } // end of method '<>c__DisplayClass1c'::'b__18' + + } // end of class '<>c__DisplayClass1c' + + .field public int32 a + .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 '<>c__DisplayClass1a'::.ctor + + .method public hidebysig instance class [mscorlib]System.Func`2> + 'b__17'(int32 b) cil managed + { + // Code size 37 (0x25) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c' V_0, + class [mscorlib]System.Func`2> V_1) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/'<>c__DisplayClass1a' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::'CS$<>8__locals1b' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::b + IL_0014: ldloc.0 + IL_0015: ldftn instance class [mscorlib]System.Func`2 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::'b__18'(int32) + IL_001b: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, + native int) + IL_0020: stloc.1 + IL_0021: br.s IL_0023 + + IL_0023: ldloc.1 + IL_0024: ret + } // end of method '<>c__DisplayClass1a'::'b__17' + + } // end of class '<>c__DisplayClass1a' + + .field private static class [mscorlib]System.Action 'CS$<>9__CachedAnonymousMethodDelegate8' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private static class [mscorlib]System.Action`1 'CS$<>9__CachedAnonymousMethodDelegatee' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private static class [mscorlib]System.Action`1 'CS$<>9__CachedAnonymousMethodDelegate10' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .method public hidebysig static void Test(string a) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method DelegateConstruction::Test + + .method public hidebysig static class [mscorlib]System.Action`1 + ExtensionMethodUnbound() cil managed + { + // Code size 18 (0x12) + .maxstack 2 + .locals init (class [mscorlib]System.Action`1 V_0) + IL_0000: nop + IL_0001: ldnull + IL_0002: ldftn void DelegateConstruction::Test(string) + IL_0008: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_000d: stloc.0 + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ret + } // end of method DelegateConstruction::ExtensionMethodUnbound + + .method public hidebysig static class [mscorlib]System.Action + ExtensionMethodBound() cil managed + { + // Code size 22 (0x16) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0) + IL_0000: nop + IL_0001: ldstr "abc" + IL_0006: ldftn void DelegateConstruction::Test(string) + IL_000c: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0011: stloc.0 + IL_0012: br.s IL_0014 + + IL_0014: ldloc.0 + IL_0015: ret + } // end of method DelegateConstruction::ExtensionMethodBound + + .method public hidebysig static class [mscorlib]System.Action + ExtensionMethodBoundOnNull() cil managed + { + // Code size 18 (0x12) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0) + IL_0000: nop + IL_0001: ldnull + IL_0002: ldftn void DelegateConstruction::Test(string) + IL_0008: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_000d: stloc.0 + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ret + } // end of method DelegateConstruction::ExtensionMethodBoundOnNull + + .method public hidebysig static object + StaticMethod() cil managed + { + // Code size 18 (0x12) + .maxstack 2 + .locals init (object V_0) + IL_0000: nop + IL_0001: ldnull + IL_0002: ldftn class [mscorlib]System.Action DelegateConstruction::ExtensionMethodBound() + IL_0008: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_000d: stloc.0 + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ret + } // end of method DelegateConstruction::StaticMethod + + .method public hidebysig static object + InstanceMethod() cil managed + { + // Code size 22 (0x16) + .maxstack 2 + .locals init (object V_0) + IL_0000: nop + IL_0001: ldstr "hello" + IL_0006: ldftn instance string [mscorlib]System.String::ToUpper() + IL_000c: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0011: stloc.0 + IL_0012: br.s IL_0014 + + IL_0014: ldloc.0 + IL_0015: ret + } // end of method DelegateConstruction::InstanceMethod + + .method public hidebysig static object + InstanceMethodOnNull() cil managed + { + // Code size 18 (0x12) + .maxstack 2 + .locals init (object V_0) + IL_0000: nop + IL_0001: ldnull + IL_0002: ldftn instance string [mscorlib]System.String::ToUpper() + IL_0008: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_000d: stloc.0 + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ret + } // end of method DelegateConstruction::InstanceMethodOnNull + + .method public hidebysig static class [mscorlib]System.Collections.Generic.List`1> + AnonymousMethodStoreWithinLoop() cil managed + { + // Code size 59 (0x3b) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + class DelegateConstruction/'<>c__DisplayClass1' V_2, + class [mscorlib]System.Collections.Generic.List`1> V_3, + bool V_4) + IL_0000: nop + IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0006: stloc.0 + IL_0007: ldc.i4.0 + IL_0008: stloc.1 + IL_0009: br.s IL_002a + + IL_000b: newobj instance void DelegateConstruction/'<>c__DisplayClass1'::.ctor() + IL_0010: stloc.2 + IL_0011: nop + IL_0012: ldloc.0 + IL_0013: ldloc.2 + IL_0014: ldftn instance void DelegateConstruction/'<>c__DisplayClass1'::'b__0'(int32) + IL_001a: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_001f: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0024: nop + IL_0025: nop + IL_0026: ldloc.1 + IL_0027: ldc.i4.1 + IL_0028: add + IL_0029: stloc.1 + IL_002a: ldloc.1 + IL_002b: ldc.i4.s 10 + IL_002d: clt + IL_002f: stloc.s V_4 + IL_0031: ldloc.s V_4 + IL_0033: brtrue.s IL_000b + + IL_0035: ldloc.0 + IL_0036: stloc.3 + IL_0037: br.s IL_0039 + + IL_0039: ldloc.3 + IL_003a: ret + } // end of method DelegateConstruction::AnonymousMethodStoreWithinLoop + + .method public hidebysig static class [mscorlib]System.Collections.Generic.List`1> + AnonymousMethodStoreOutsideLoop() cil managed + { + // Code size 70 (0x46) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + class [mscorlib]System.Action`1 V_2, + class DelegateConstruction/'<>c__DisplayClass5' V_3, + class [mscorlib]System.Collections.Generic.List`1> V_4, + bool V_5) + IL_0000: ldnull + IL_0001: stloc.2 + IL_0002: newobj instance void DelegateConstruction/'<>c__DisplayClass5'::.ctor() + IL_0007: stloc.3 + IL_0008: nop + IL_0009: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_000e: stloc.0 + IL_000f: ldc.i4.0 + IL_0010: stloc.1 + IL_0011: br.s IL_0033 + + IL_0013: nop + IL_0014: ldloc.0 + IL_0015: ldloc.2 + IL_0016: brtrue.s IL_0027 + + IL_0018: ldloc.3 + IL_0019: ldftn instance void DelegateConstruction/'<>c__DisplayClass5'::'b__3'(int32) + IL_001f: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0024: stloc.2 + IL_0025: br.s IL_0027 + + IL_0027: ldloc.2 + IL_0028: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_002d: nop + IL_002e: nop + IL_002f: ldloc.1 + IL_0030: ldc.i4.1 + IL_0031: add + IL_0032: stloc.1 + IL_0033: ldloc.1 + IL_0034: ldc.i4.s 10 + IL_0036: clt + IL_0038: stloc.s V_5 + IL_003a: ldloc.s V_5 + IL_003c: brtrue.s IL_0013 + + IL_003e: ldloc.0 + IL_003f: stloc.s V_4 + IL_0041: br.s IL_0043 + + IL_0043: ldloc.s V_4 + IL_0045: ret + } // end of method DelegateConstruction::AnonymousMethodStoreOutsideLoop + + .method public hidebysig static class [mscorlib]System.Action + StaticAnonymousMethodNoClosure() cil managed + { + // Code size 37 (0x25) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0) + IL_0000: nop + IL_0001: ldsfld class [mscorlib]System.Action DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate8' + IL_0006: brtrue.s IL_001b + + IL_0008: ldnull + IL_0009: ldftn void DelegateConstruction::'b__7'() + IL_000f: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0014: stsfld class [mscorlib]System.Action DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate8' + IL_0019: br.s IL_001b + + IL_001b: ldsfld class [mscorlib]System.Action DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate8' + IL_0020: stloc.0 + IL_0021: br.s IL_0023 + + IL_0023: ldloc.0 + IL_0024: ret + } // end of method DelegateConstruction::StaticAnonymousMethodNoClosure + + .method public hidebysig static void NameConflict() cil managed + { + // Code size 104 (0x68) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + class [mscorlib]System.Action`1 V_2, + class DelegateConstruction/'<>c__DisplayClassb' V_3, + bool V_4) + IL_0000: nop + IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0006: stloc.0 + IL_0007: ldc.i4.0 + IL_0008: stloc.1 + IL_0009: br.s IL_005c + + IL_000b: ldnull + IL_000c: stloc.2 + IL_000d: newobj instance void DelegateConstruction/'<>c__DisplayClassb'::.ctor() + IL_0012: stloc.3 + IL_0013: nop + IL_0014: ldloc.3 + IL_0015: ldc.i4.0 + IL_0016: stfld int32 DelegateConstruction/'<>c__DisplayClassb'::i + IL_001b: br.s IL_0047 + + IL_001d: nop + IL_001e: ldloc.0 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_0031 + + IL_0022: ldloc.3 + IL_0023: ldftn instance void DelegateConstruction/'<>c__DisplayClassb'::'b__9'(int32) + IL_0029: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_002e: stloc.2 + IL_002f: br.s IL_0031 + + IL_0031: ldloc.2 + IL_0032: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0037: nop + IL_0038: nop + IL_0039: ldloc.3 + IL_003a: dup + IL_003b: ldfld int32 DelegateConstruction/'<>c__DisplayClassb'::i + IL_0040: ldc.i4.1 + IL_0041: add + IL_0042: stfld int32 DelegateConstruction/'<>c__DisplayClassb'::i + IL_0047: ldloc.3 + IL_0048: ldfld int32 DelegateConstruction/'<>c__DisplayClassb'::i + IL_004d: ldc.i4.s 10 + IL_004f: clt + IL_0051: stloc.s V_4 + IL_0053: ldloc.s V_4 + IL_0055: brtrue.s IL_001d + + IL_0057: nop + IL_0058: ldloc.1 + IL_0059: ldc.i4.1 + IL_005a: add + IL_005b: stloc.1 + IL_005c: ldloc.1 + IL_005d: ldc.i4.s 10 + IL_005f: clt + IL_0061: stloc.s V_4 + IL_0063: ldloc.s V_4 + IL_0065: brtrue.s IL_000b + + IL_0067: ret + } // end of method DelegateConstruction::NameConflict + + .method public hidebysig static void NameConflict2(int32 j) cil managed + { + // Code size 65 (0x41) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + bool V_2) + IL_0000: nop + IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0006: stloc.0 + IL_0007: ldc.i4.0 + IL_0008: stloc.1 + IL_0009: br.s IL_0037 + + IL_000b: nop + IL_000c: ldloc.0 + IL_000d: ldsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegatee' + IL_0012: brtrue.s IL_0027 + + IL_0014: ldnull + IL_0015: ldftn void DelegateConstruction::'b__d'(int32) + IL_001b: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0020: stsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegatee' + IL_0025: br.s IL_0027 + + IL_0027: ldsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegatee' + IL_002c: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0031: nop + IL_0032: nop + IL_0033: ldloc.1 + IL_0034: ldc.i4.1 + IL_0035: add + IL_0036: stloc.1 + IL_0037: ldloc.1 + IL_0038: ldc.i4.s 10 + IL_003a: clt + IL_003c: stloc.2 + IL_003d: ldloc.2 + IL_003e: brtrue.s IL_000b + + IL_0040: ret + } // end of method DelegateConstruction::NameConflict2 + + .method public hidebysig static class [mscorlib]System.Action`1 + NameConflict3(int32 i) cil managed + { + // Code size 37 (0x25) + .maxstack 2 + .locals init (class [mscorlib]System.Action`1 V_0) + IL_0000: nop + IL_0001: ldsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate10' + IL_0006: brtrue.s IL_001b + + IL_0008: ldnull + IL_0009: ldftn void DelegateConstruction::'b__f'(int32) + IL_000f: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0014: stsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate10' + IL_0019: br.s IL_001b + + IL_001b: ldsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate10' + IL_0020: stloc.0 + IL_0021: br.s IL_0023 + + IL_0023: ldloc.0 + IL_0024: ret + } // end of method DelegateConstruction::NameConflict3 + + .method public hidebysig static class [mscorlib]System.Func`2> + CurriedAddition(int32 a) cil managed + { + // Code size 31 (0x1f) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass13' V_0, + class [mscorlib]System.Func`2> V_1) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass13'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld int32 DelegateConstruction/'<>c__DisplayClass13'::a + IL_000d: nop + IL_000e: ldloc.0 + IL_000f: ldftn instance class [mscorlib]System.Func`2 DelegateConstruction/'<>c__DisplayClass13'::'b__11'(int32) + IL_0015: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, + native int) + IL_001a: stloc.1 + IL_001b: br.s IL_001d + + IL_001d: ldloc.1 + IL_001e: ret + } // end of method DelegateConstruction::CurriedAddition + + .method public hidebysig static class [mscorlib]System.Func`2>> + CurriedAddition2(int32 a) cil managed + { + // Code size 31 (0x1f) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass1a' V_0, + class [mscorlib]System.Func`2>> V_1) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass1a'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld int32 DelegateConstruction/'<>c__DisplayClass1a'::a + IL_000d: nop + IL_000e: ldloc.0 + IL_000f: ldftn instance class [mscorlib]System.Func`2> DelegateConstruction/'<>c__DisplayClass1a'::'b__17'(int32) + IL_0015: newobj instance void class [mscorlib]System.Func`2>>::.ctor(object, + native int) + IL_001a: stloc.1 + IL_001b: br.s IL_001d + + IL_001d: ldloc.1 + IL_001e: ret + } // end of method DelegateConstruction::CurriedAddition2 + + .method private hidebysig static void 'b__7'() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 8 (0x8) + .maxstack 8 + IL_0000: nop + IL_0001: call void [mscorlib]System.Console::WriteLine() + IL_0006: nop + IL_0007: ret + } // end of method DelegateConstruction::'b__7' + + .method private hidebysig static void 'b__d'(int32 i) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call void [mscorlib]System.Console::WriteLine(int32) + IL_0007: nop + IL_0008: ret + } // end of method DelegateConstruction::'b__d' + + .method private hidebysig static void 'b__f'(int32 j) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 27 (0x1b) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_0012 + + IL_0005: nop + IL_0006: ldloc.0 + IL_0007: call void [mscorlib]System.Console::WriteLine(int32) + IL_000c: nop + IL_000d: nop + IL_000e: ldloc.0 + IL_000f: ldc.i4.1 + IL_0010: add + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: ldarg.0 + IL_0014: clt + IL_0016: stloc.1 + IL_0017: ldloc.1 + IL_0018: brtrue.s IL_0005 + + IL_001a: ret + } // end of method DelegateConstruction::'b__f' + +} // end of class DelegateConstruction + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file ../../../TestCases/Pretty\DelegateConstruction.res diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.opt.il new file mode 100644 index 000000000..5ae47aa6a --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.opt.il @@ -0,0 +1,1150 @@ + +// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.17929 +// Copyright (c) Microsoft Corporation. All rights reserved. + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern System.Core +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly xrchixjz +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + .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. + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module xrchixjz.dll +// MVID: {4764226C-6D0F-4413-9843-94B16795E6C2} +.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: 0x00C80000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed beforefieldinit DelegateConstruction + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + .class auto ansi nested private beforefieldinit InstanceTests + extends [mscorlib]System.Object + { + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass22' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public class DelegateConstruction/InstanceTests '<>4__this' + .field public int32 a + .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 '<>c__DisplayClass22'::.ctor + + .method public hidebysig instance void + 'b__21'() cil managed + { + // Code size 19 (0x13) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::'<>4__this' + IL_0006: ldarg.0 + IL_0007: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::a + IL_000c: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_0011: pop + IL_0012: ret + } // end of method '<>c__DisplayClass22'::'b__21' + + } // end of class '<>c__DisplayClass22' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass25' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public class DelegateConstruction/InstanceTests '<>4__this' + .field public int32 a + .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 '<>c__DisplayClass25'::.ctor + + } // end of class '<>c__DisplayClass25' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass28' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass25' 'CS$<>8__locals26' + .field public int32 item + .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 '<>c__DisplayClass28'::.ctor + + .method public hidebysig instance void + 'b__24'() cil managed + { + // Code size 36 (0x24) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass25' DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::'CS$<>8__locals26' + IL_0006: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass25'::'<>4__this' + IL_000b: ldarg.0 + IL_000c: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::item + IL_0011: ldarg.0 + IL_0012: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass25' DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::'CS$<>8__locals26' + IL_0017: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass25'::a + IL_001c: add + IL_001d: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_0022: pop + IL_0023: ret + } // end of method '<>c__DisplayClass28'::'b__24' + + } // end of class '<>c__DisplayClass28' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass2b' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public class DelegateConstruction/InstanceTests '<>4__this' + .field public int32 a + .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 '<>c__DisplayClass2b'::.ctor + + } // end of class '<>c__DisplayClass2b' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass2d' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 item + .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 '<>c__DisplayClass2d'::.ctor + + } // end of class '<>c__DisplayClass2d' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass30' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass2d' 'CS$<>8__locals2e' + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass2b' 'CS$<>8__locals2c' + .field public int32 copyOfItem + .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 '<>c__DisplayClass30'::.ctor + + .method public hidebysig instance void + 'b__2a'() cil managed + { + // Code size 48 (0x30) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2b' DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'CS$<>8__locals2c' + IL_0006: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass2b'::'<>4__this' + IL_000b: ldarg.0 + IL_000c: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2d' DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'CS$<>8__locals2e' + IL_0011: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2d'::item + IL_0016: ldarg.0 + IL_0017: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2b' DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'CS$<>8__locals2c' + IL_001c: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2b'::a + IL_0021: add + IL_0022: ldarg.0 + IL_0023: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::copyOfItem + IL_0028: add + IL_0029: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_002e: pop + IL_002f: ret + } // end of method '<>c__DisplayClass30'::'b__2a' + + } // end of class '<>c__DisplayClass30' + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThis() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldftn instance void DelegateConstruction/InstanceTests::'b__20'() + IL_0007: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_000c: ret + } // end of method InstanceTests::CaptureOfThis + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameter(int32 a) cil managed + { + // Code size 33 (0x21) + .maxstack 2 + .locals init (class DelegateConstruction/InstanceTests/'<>c__DisplayClass22' V_0) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.1 + IL_0008: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::a + IL_000d: ldloc.0 + IL_000e: ldarg.0 + IL_000f: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::'<>4__this' + IL_0014: ldloc.0 + IL_0015: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass22'::'b__21'() + IL_001b: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0020: ret + } // end of method InstanceTests::CaptureOfThisAndParameter + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameterInForEach(int32 a) cil managed + { + // Code size 118 (0x76) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass28' V_1, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass25' V_2, + class [mscorlib]System.Action V_3, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_4) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass25'::.ctor() + IL_0005: stloc.2 + IL_0006: ldloc.2 + IL_0007: ldarg.1 + IL_0008: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass25'::a + IL_000d: ldloc.2 + IL_000e: ldarg.0 + IL_000f: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass25'::'<>4__this' + IL_0014: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Empty() + IL_0019: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_001e: stloc.s V_4 + .try + { + IL_0020: br.s IL_005b + + IL_0022: ldnull + IL_0023: stloc.0 + IL_0024: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::.ctor() + IL_0029: stloc.1 + IL_002a: ldloc.1 + IL_002b: ldloc.2 + IL_002c: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass25' DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::'CS$<>8__locals26' + IL_0031: ldloc.1 + IL_0032: ldloc.s V_4 + IL_0034: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0039: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::item + IL_003e: ldloc.1 + IL_003f: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::item + IL_0044: ldc.i4.0 + IL_0045: ble.s IL_005b + + IL_0047: ldloc.0 + IL_0048: brtrue.s IL_0057 + + IL_004a: ldloc.1 + IL_004b: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass28'::'b__24'() + IL_0051: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0056: stloc.0 + IL_0057: ldloc.0 + IL_0058: stloc.3 + IL_0059: leave.s IL_0074 + + IL_005b: ldloc.s V_4 + IL_005d: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0062: brtrue.s IL_0022 + + IL_0064: leave.s IL_0072 + + } // end .try + finally + { + IL_0066: ldloc.s V_4 + IL_0068: brfalse.s IL_0071 + + IL_006a: ldloc.s V_4 + IL_006c: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0071: endfinally + } // end handler + IL_0072: ldnull + IL_0073: ret + + IL_0074: ldloc.3 + IL_0075: ret + } // end of method InstanceTests::CaptureOfThisAndParameterInForEach + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameterInForEachWithItemCopy(int32 a) cil managed + { + // Code size 145 (0x91) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass30' V_1, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass2d' V_2, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass2b' V_3, + class [mscorlib]System.Action V_4, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_5) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass2b'::.ctor() + IL_0005: stloc.3 + IL_0006: ldloc.3 + IL_0007: ldarg.1 + IL_0008: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2b'::a + IL_000d: ldloc.3 + IL_000e: ldarg.0 + IL_000f: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass2b'::'<>4__this' + IL_0014: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Empty() + IL_0019: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_001e: stloc.s V_5 + .try + { + IL_0020: br.s IL_0075 + + IL_0022: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass2d'::.ctor() + IL_0027: stloc.2 + IL_0028: ldloc.2 + IL_0029: ldloc.s V_5 + IL_002b: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0030: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2d'::item + IL_0035: ldnull + IL_0036: stloc.0 + IL_0037: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::.ctor() + IL_003c: stloc.1 + IL_003d: ldloc.1 + IL_003e: ldloc.2 + IL_003f: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2d' DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'CS$<>8__locals2e' + IL_0044: ldloc.1 + IL_0045: ldloc.3 + IL_0046: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2b' DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'CS$<>8__locals2c' + IL_004b: ldloc.1 + IL_004c: ldloc.2 + IL_004d: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2d'::item + IL_0052: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::copyOfItem + IL_0057: ldloc.2 + IL_0058: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2d'::item + IL_005d: ldc.i4.0 + IL_005e: ble.s IL_0075 + + IL_0060: ldloc.0 + IL_0061: brtrue.s IL_0070 + + IL_0063: ldloc.1 + IL_0064: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass30'::'b__2a'() + IL_006a: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_006f: stloc.0 + IL_0070: ldloc.0 + IL_0071: stloc.s V_4 + IL_0073: leave.s IL_008e + + IL_0075: ldloc.s V_5 + IL_0077: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_007c: brtrue.s IL_0022 + + IL_007e: leave.s IL_008c + + } // end .try + finally + { + IL_0080: ldloc.s V_5 + IL_0082: brfalse.s IL_008b + + IL_0084: ldloc.s V_5 + IL_0086: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_008b: endfinally + } // end handler + IL_008c: ldnull + IL_008d: ret + + IL_008e: ldloc.s V_4 + IL_0090: ret + } // end of method InstanceTests::CaptureOfThisAndParameterInForEachWithItemCopy + + .method public hidebysig instance void + LambdaInForLoop() cil managed + { + // Code size 42 (0x2a) + .maxstack 3 + .locals init (int32 V_0, + class [mscorlib]System.Func`1 V_1) + IL_0000: ldnull + IL_0001: stloc.1 + IL_0002: ldc.i4.0 + IL_0003: stloc.0 + IL_0004: br.s IL_0021 + + IL_0006: ldarg.0 + IL_0007: ldloc.1 + IL_0008: brtrue.s IL_0017 + + IL_000a: ldarg.0 + IL_000b: ldftn instance int32 DelegateConstruction/InstanceTests::'b__32'() + IL_0011: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0016: stloc.1 + IL_0017: ldloc.1 + IL_0018: call instance void DelegateConstruction/InstanceTests::Bar(class [mscorlib]System.Func`1) + IL_001d: ldloc.0 + IL_001e: ldc.i4.1 + IL_001f: add + IL_0020: stloc.0 + IL_0021: ldloc.0 + IL_0022: ldc.i4 0x186a0 + IL_0027: blt.s IL_0006 + + IL_0029: ret + } // end of method InstanceTests::LambdaInForLoop + + .method public hidebysig instance int32 + Foo() cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: ret + } // end of method InstanceTests::Foo + + .method public hidebysig instance void + Bar(class [mscorlib]System.Func`1 f) cil managed + { + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method InstanceTests::Bar + + .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 InstanceTests::.ctor + + .method private hidebysig instance void + 'b__20'() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThis() + IL_0006: pop + IL_0007: ret + } // end of method InstanceTests::'b__20' + + .method private hidebysig instance int32 + 'b__32'() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 DelegateConstruction/InstanceTests::Foo() + IL_0006: ret + } // end of method InstanceTests::'b__32' + + } // end of class InstanceTests + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 counter + .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 '<>c__DisplayClass1'::.ctor + + .method public hidebysig instance void + 'b__0'(int32 x) cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: stfld int32 DelegateConstruction/'<>c__DisplayClass1'::counter + IL_0007: ret + } // end of method '<>c__DisplayClass1'::'b__0' + + } // end of class '<>c__DisplayClass1' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass5' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 counter + .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 '<>c__DisplayClass5'::.ctor + + .method public hidebysig instance void + 'b__3'(int32 x) cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: stfld int32 DelegateConstruction/'<>c__DisplayClass5'::counter + IL_0007: ret + } // end of method '<>c__DisplayClass5'::'b__3' + + } // end of class '<>c__DisplayClass5' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClassb' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 i + .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 '<>c__DisplayClassb'::.ctor + + .method public hidebysig instance void + 'b__9'(int32 j) cil managed + { + // Code size 23 (0x17) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_000d + + IL_0004: call void [mscorlib]System.Console::WriteLine() + IL_0009: ldloc.0 + IL_000a: ldarg.1 + IL_000b: add + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: ldarg.0 + IL_000f: ldfld int32 DelegateConstruction/'<>c__DisplayClassb'::i + IL_0014: blt.s IL_0004 + + IL_0016: ret + } // end of method '<>c__DisplayClassb'::'b__9' + + } // end of class '<>c__DisplayClassb' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass13' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass15' + extends [mscorlib]System.Object + { + .field public class DelegateConstruction/'<>c__DisplayClass13' 'CS$<>8__locals14' + .field public int32 b + .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 '<>c__DisplayClass15'::.ctor + + .method public hidebysig instance int32 + 'b__12'(int32 c) cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/'<>c__DisplayClass13' DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::'CS$<>8__locals14' + IL_0006: ldfld int32 DelegateConstruction/'<>c__DisplayClass13'::a + IL_000b: ldarg.0 + IL_000c: ldfld int32 DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::b + IL_0011: add + IL_0012: ldarg.1 + IL_0013: add + IL_0014: ret + } // end of method '<>c__DisplayClass15'::'b__12' + + } // end of class '<>c__DisplayClass15' + + .field public int32 a + .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 '<>c__DisplayClass13'::.ctor + + .method public hidebysig instance class [mscorlib]System.Func`2 + 'b__11'(int32 b) cil managed + { + // Code size 33 (0x21) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15' V_0) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/'<>c__DisplayClass13' DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::'CS$<>8__locals14' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::b + IL_0014: ldloc.0 + IL_0015: ldftn instance int32 DelegateConstruction/'<>c__DisplayClass13'/'<>c__DisplayClass15'::'b__12'(int32) + IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, + native int) + IL_0020: ret + } // end of method '<>c__DisplayClass13'::'b__11' + + } // end of class '<>c__DisplayClass13' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1a' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1c' + extends [mscorlib]System.Object + { + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1e' + extends [mscorlib]System.Object + { + .field public class DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c' 'CS$<>8__locals1d' + .field public class DelegateConstruction/'<>c__DisplayClass1a' 'CS$<>8__locals1b' + .field public int32 c + .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 '<>c__DisplayClass1e'::.ctor + + .method public hidebysig instance int32 + 'b__19'(int32 d) cil managed + { + // Code size 33 (0x21) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/'<>c__DisplayClass1a' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::'CS$<>8__locals1b' + IL_0006: ldfld int32 DelegateConstruction/'<>c__DisplayClass1a'::a + IL_000b: ldarg.0 + IL_000c: ldfld class DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::'CS$<>8__locals1d' + IL_0011: ldfld int32 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::b + IL_0016: add + IL_0017: ldarg.0 + IL_0018: ldfld int32 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::c + IL_001d: add + IL_001e: ldarg.1 + IL_001f: add + IL_0020: ret + } // end of method '<>c__DisplayClass1e'::'b__19' + + } // end of class '<>c__DisplayClass1e' + + .field public class DelegateConstruction/'<>c__DisplayClass1a' 'CS$<>8__locals1b' + .field public int32 b + .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 '<>c__DisplayClass1c'::.ctor + + .method public hidebysig instance class [mscorlib]System.Func`2 + 'b__18'(int32 c) cil managed + { + // Code size 45 (0x2d) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e' V_0) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::'CS$<>8__locals1d' + IL_000d: ldloc.0 + IL_000e: ldarg.0 + IL_000f: ldfld class DelegateConstruction/'<>c__DisplayClass1a' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::'CS$<>8__locals1b' + IL_0014: stfld class DelegateConstruction/'<>c__DisplayClass1a' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::'CS$<>8__locals1b' + IL_0019: ldloc.0 + IL_001a: ldarg.1 + IL_001b: stfld int32 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::c + IL_0020: ldloc.0 + IL_0021: ldftn instance int32 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'/'<>c__DisplayClass1e'::'b__19'(int32) + IL_0027: newobj instance void class [mscorlib]System.Func`2::.ctor(object, + native int) + IL_002c: ret + } // end of method '<>c__DisplayClass1c'::'b__18' + + } // end of class '<>c__DisplayClass1c' + + .field public int32 a + .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 '<>c__DisplayClass1a'::.ctor + + .method public hidebysig instance class [mscorlib]System.Func`2> + 'b__17'(int32 b) cil managed + { + // Code size 33 (0x21) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c' V_0) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/'<>c__DisplayClass1a' DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::'CS$<>8__locals1b' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::b + IL_0014: ldloc.0 + IL_0015: ldftn instance class [mscorlib]System.Func`2 DelegateConstruction/'<>c__DisplayClass1a'/'<>c__DisplayClass1c'::'b__18'(int32) + IL_001b: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, + native int) + IL_0020: ret + } // end of method '<>c__DisplayClass1a'::'b__17' + + } // end of class '<>c__DisplayClass1a' + + .field private static class [mscorlib]System.Action 'CS$<>9__CachedAnonymousMethodDelegate8' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private static class [mscorlib]System.Action`1 'CS$<>9__CachedAnonymousMethodDelegatee' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private static class [mscorlib]System.Action`1 'CS$<>9__CachedAnonymousMethodDelegate10' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .method public hidebysig static void Test(string a) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method DelegateConstruction::Test + + .method public hidebysig static class [mscorlib]System.Action`1 + ExtensionMethodUnbound() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldnull + IL_0001: ldftn void DelegateConstruction::Test(string) + IL_0007: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_000c: ret + } // end of method DelegateConstruction::ExtensionMethodUnbound + + .method public hidebysig static class [mscorlib]System.Action + ExtensionMethodBound() cil managed + { + // Code size 17 (0x11) + .maxstack 8 + IL_0000: ldstr "abc" + IL_0005: ldftn void DelegateConstruction::Test(string) + IL_000b: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0010: ret + } // end of method DelegateConstruction::ExtensionMethodBound + + .method public hidebysig static class [mscorlib]System.Action + ExtensionMethodBoundOnNull() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldnull + IL_0001: ldftn void DelegateConstruction::Test(string) + IL_0007: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_000c: ret + } // end of method DelegateConstruction::ExtensionMethodBoundOnNull + + .method public hidebysig static object + StaticMethod() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldnull + IL_0001: ldftn class [mscorlib]System.Action DelegateConstruction::ExtensionMethodBound() + IL_0007: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_000c: ret + } // end of method DelegateConstruction::StaticMethod + + .method public hidebysig static object + InstanceMethod() cil managed + { + // Code size 17 (0x11) + .maxstack 8 + IL_0000: ldstr "hello" + IL_0005: ldftn instance string [mscorlib]System.String::ToUpper() + IL_000b: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0010: ret + } // end of method DelegateConstruction::InstanceMethod + + .method public hidebysig static object + InstanceMethodOnNull() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldnull + IL_0001: ldftn instance string [mscorlib]System.String::ToUpper() + IL_0007: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_000c: ret + } // end of method DelegateConstruction::InstanceMethodOnNull + + .method public hidebysig static class [mscorlib]System.Collections.Generic.List`1> + AnonymousMethodStoreWithinLoop() cil managed + { + // Code size 45 (0x2d) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + class DelegateConstruction/'<>c__DisplayClass1' V_2) + IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0005: stloc.0 + IL_0006: ldc.i4.0 + IL_0007: stloc.1 + IL_0008: br.s IL_0026 + + IL_000a: newobj instance void DelegateConstruction/'<>c__DisplayClass1'::.ctor() + IL_000f: stloc.2 + IL_0010: ldloc.0 + IL_0011: ldloc.2 + IL_0012: ldftn instance void DelegateConstruction/'<>c__DisplayClass1'::'b__0'(int32) + IL_0018: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_001d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0022: ldloc.1 + IL_0023: ldc.i4.1 + IL_0024: add + IL_0025: stloc.1 + IL_0026: ldloc.1 + IL_0027: ldc.i4.s 10 + IL_0029: blt.s IL_000a + + IL_002b: ldloc.0 + IL_002c: ret + } // end of method DelegateConstruction::AnonymousMethodStoreWithinLoop + + .method public hidebysig static class [mscorlib]System.Collections.Generic.List`1> + AnonymousMethodStoreOutsideLoop() cil managed + { + // Code size 52 (0x34) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + class [mscorlib]System.Action`1 V_2, + class DelegateConstruction/'<>c__DisplayClass5' V_3) + IL_0000: ldnull + IL_0001: stloc.2 + IL_0002: newobj instance void DelegateConstruction/'<>c__DisplayClass5'::.ctor() + IL_0007: stloc.3 + IL_0008: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_000d: stloc.0 + IL_000e: ldc.i4.0 + IL_000f: stloc.1 + IL_0010: br.s IL_002d + + IL_0012: ldloc.0 + IL_0013: ldloc.2 + IL_0014: brtrue.s IL_0023 + + IL_0016: ldloc.3 + IL_0017: ldftn instance void DelegateConstruction/'<>c__DisplayClass5'::'b__3'(int32) + IL_001d: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0022: stloc.2 + IL_0023: ldloc.2 + IL_0024: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0029: ldloc.1 + IL_002a: ldc.i4.1 + IL_002b: add + IL_002c: stloc.1 + IL_002d: ldloc.1 + IL_002e: ldc.i4.s 10 + IL_0030: blt.s IL_0012 + + IL_0032: ldloc.0 + IL_0033: ret + } // end of method DelegateConstruction::AnonymousMethodStoreOutsideLoop + + .method public hidebysig static class [mscorlib]System.Action + StaticAnonymousMethodNoClosure() cil managed + { + // Code size 30 (0x1e) + .maxstack 8 + IL_0000: ldsfld class [mscorlib]System.Action DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate8' + IL_0005: brtrue.s IL_0018 + + IL_0007: ldnull + IL_0008: ldftn void DelegateConstruction::'b__7'() + IL_000e: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0013: stsfld class [mscorlib]System.Action DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate8' + IL_0018: ldsfld class [mscorlib]System.Action DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate8' + IL_001d: ret + } // end of method DelegateConstruction::StaticAnonymousMethodNoClosure + + .method public hidebysig static void NameConflict() cil managed + { + // Code size 84 (0x54) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + class [mscorlib]System.Action`1 V_2, + class DelegateConstruction/'<>c__DisplayClassb' V_3) + IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0005: stloc.0 + IL_0006: ldc.i4.0 + IL_0007: stloc.1 + IL_0008: br.s IL_004e + + IL_000a: ldnull + IL_000b: stloc.2 + IL_000c: newobj instance void DelegateConstruction/'<>c__DisplayClassb'::.ctor() + IL_0011: stloc.3 + IL_0012: ldloc.3 + IL_0013: ldc.i4.0 + IL_0014: stfld int32 DelegateConstruction/'<>c__DisplayClassb'::i + IL_0019: br.s IL_0040 + + IL_001b: ldloc.0 + IL_001c: ldloc.2 + IL_001d: brtrue.s IL_002c + + IL_001f: ldloc.3 + IL_0020: ldftn instance void DelegateConstruction/'<>c__DisplayClassb'::'b__9'(int32) + IL_0026: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_002b: stloc.2 + IL_002c: ldloc.2 + IL_002d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0032: ldloc.3 + IL_0033: dup + IL_0034: ldfld int32 DelegateConstruction/'<>c__DisplayClassb'::i + IL_0039: ldc.i4.1 + IL_003a: add + IL_003b: stfld int32 DelegateConstruction/'<>c__DisplayClassb'::i + IL_0040: ldloc.3 + IL_0041: ldfld int32 DelegateConstruction/'<>c__DisplayClassb'::i + IL_0046: ldc.i4.s 10 + IL_0048: blt.s IL_001b + + IL_004a: ldloc.1 + IL_004b: ldc.i4.1 + IL_004c: add + IL_004d: stloc.1 + IL_004e: ldloc.1 + IL_004f: ldc.i4.s 10 + IL_0051: blt.s IL_000a + + IL_0053: ret + } // end of method DelegateConstruction::NameConflict + + .method public hidebysig static void NameConflict2(int32 j) cil managed + { + // Code size 55 (0x37) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1) + IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0005: stloc.0 + IL_0006: ldc.i4.0 + IL_0007: stloc.1 + IL_0008: br.s IL_0031 + + IL_000a: ldloc.0 + IL_000b: ldsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegatee' + IL_0010: brtrue.s IL_0023 + + IL_0012: ldnull + IL_0013: ldftn void DelegateConstruction::'b__d'(int32) + IL_0019: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_001e: stsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegatee' + IL_0023: ldsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegatee' + IL_0028: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_002d: ldloc.1 + IL_002e: ldc.i4.1 + IL_002f: add + IL_0030: stloc.1 + IL_0031: ldloc.1 + IL_0032: ldc.i4.s 10 + IL_0034: blt.s IL_000a + + IL_0036: ret + } // end of method DelegateConstruction::NameConflict2 + + .method public hidebysig static class [mscorlib]System.Action`1 + NameConflict3(int32 i) cil managed + { + // Code size 30 (0x1e) + .maxstack 8 + IL_0000: ldsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate10' + IL_0005: brtrue.s IL_0018 + + IL_0007: ldnull + IL_0008: ldftn void DelegateConstruction::'b__f'(int32) + IL_000e: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0013: stsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate10' + IL_0018: ldsfld class [mscorlib]System.Action`1 DelegateConstruction::'CS$<>9__CachedAnonymousMethodDelegate10' + IL_001d: ret + } // end of method DelegateConstruction::NameConflict3 + + .method public hidebysig static class [mscorlib]System.Func`2> + CurriedAddition(int32 a) cil managed + { + // Code size 26 (0x1a) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass13' V_0) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass13'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld int32 DelegateConstruction/'<>c__DisplayClass13'::a + IL_000d: ldloc.0 + IL_000e: ldftn instance class [mscorlib]System.Func`2 DelegateConstruction/'<>c__DisplayClass13'::'b__11'(int32) + IL_0014: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, + native int) + IL_0019: ret + } // end of method DelegateConstruction::CurriedAddition + + .method public hidebysig static class [mscorlib]System.Func`2>> + CurriedAddition2(int32 a) cil managed + { + // Code size 26 (0x1a) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass1a' V_0) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass1a'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld int32 DelegateConstruction/'<>c__DisplayClass1a'::a + IL_000d: ldloc.0 + IL_000e: ldftn instance class [mscorlib]System.Func`2> DelegateConstruction/'<>c__DisplayClass1a'::'b__17'(int32) + IL_0014: newobj instance void class [mscorlib]System.Func`2>>::.ctor(object, + native int) + IL_0019: ret + } // end of method DelegateConstruction::CurriedAddition2 + + .method private hidebysig static void 'b__7'() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: call void [mscorlib]System.Console::WriteLine() + IL_0005: ret + } // end of method DelegateConstruction::'b__7' + + .method private hidebysig static void 'b__d'(int32 i) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call void [mscorlib]System.Console::WriteLine(int32) + IL_0006: ret + } // end of method DelegateConstruction::'b__d' + + .method private hidebysig static void 'b__f'(int32 j) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 19 (0x13) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_000e + + IL_0004: ldloc.0 + IL_0005: call void [mscorlib]System.Console::WriteLine(int32) + IL_000a: ldloc.0 + IL_000b: ldc.i4.1 + IL_000c: add + IL_000d: stloc.0 + IL_000e: ldloc.0 + IL_000f: ldarg.0 + IL_0010: blt.s IL_0004 + + IL_0012: ret + } // end of method DelegateConstruction::'b__f' + +} // end of class DelegateConstruction + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** +// WARNING: Created Win32 resource file ../../../TestCases/Pretty\DelegateConstruction.opt.res diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.opt.roslyn.il new file mode 100644 index 000000000..afa8fe5da --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.opt.roslyn.il @@ -0,0 +1,1144 @@ + +// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.17929 +// Copyright (c) Microsoft Corporation. All rights reserved. + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern System.Core +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly DelegateConstruction +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .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. + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 ) + + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module DelegateConstruction.dll +// MVID: {D01DFE9F-2A31-46AA-8CBD-03D412485F40} +.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: 0x009F0000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed beforefieldinit DelegateConstruction + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + .class auto ansi nested private beforefieldinit InstanceTests + extends [mscorlib]System.Object + { + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 a + .field public class DelegateConstruction/InstanceTests '<>4__this' + .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 '<>c__DisplayClass1_0'::.ctor + + .method assembly hidebysig instance void + 'b__0'() cil managed + { + // Code size 19 (0x13) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::'<>4__this' + IL_0006: ldarg.0 + IL_0007: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::a + IL_000c: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_0011: pop + IL_0012: ret + } // end of method '<>c__DisplayClass1_0'::'b__0' + + } // end of class '<>c__DisplayClass1_0' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass2_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 item + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1' 'CS$<>8__locals1' + .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 '<>c__DisplayClass2_0'::.ctor + + .method assembly hidebysig instance void + 'b__0'() cil managed + { + // Code size 36 (0x24) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::'CS$<>8__locals1' + IL_0006: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1'::'<>4__this' + IL_000b: ldarg.0 + IL_000c: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::item + IL_0011: ldarg.0 + IL_0012: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::'CS$<>8__locals1' + IL_0017: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1'::a + IL_001c: add + IL_001d: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_0022: pop + IL_0023: ret + } // end of method '<>c__DisplayClass2_0'::'b__0' + + } // end of class '<>c__DisplayClass2_0' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass2_1' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 a + .field public class DelegateConstruction/InstanceTests '<>4__this' + .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 '<>c__DisplayClass2_1'::.ctor + + } // end of class '<>c__DisplayClass2_1' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass3_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 item + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1' 'CS$<>8__locals1' + .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 '<>c__DisplayClass3_0'::.ctor + + } // end of class '<>c__DisplayClass3_0' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass3_1' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 a + .field public class DelegateConstruction/InstanceTests '<>4__this' + .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 '<>c__DisplayClass3_1'::.ctor + + } // end of class '<>c__DisplayClass3_1' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass3_2' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 copyOfItem + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' 'CS$<>8__locals2' + .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 '<>c__DisplayClass3_2'::.ctor + + .method assembly hidebysig instance void + 'b__0'() cil managed + { + // Code size 58 (0x3a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_0006: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::'CS$<>8__locals1' + IL_000b: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1'::'<>4__this' + IL_0010: ldarg.0 + IL_0011: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_0016: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::item + IL_001b: ldarg.0 + IL_001c: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_0021: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::'CS$<>8__locals1' + IL_0026: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1'::a + IL_002b: add + IL_002c: ldarg.0 + IL_002d: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::copyOfItem + IL_0032: add + IL_0033: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_0038: pop + IL_0039: ret + } // end of method '<>c__DisplayClass3_2'::'b__0' + + } // end of class '<>c__DisplayClass3_2' + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThis() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldftn instance void DelegateConstruction/InstanceTests::'b__0_0'() + IL_0007: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_000c: ret + } // end of method InstanceTests::CaptureOfThis + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameter(int32 a) cil managed + { + // Code size 31 (0x1f) + .maxstack 8 + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::.ctor() + IL_0005: dup + IL_0006: ldarg.0 + IL_0007: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::'<>4__this' + IL_000c: dup + IL_000d: ldarg.1 + IL_000e: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::a + IL_0013: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::'b__0'() + IL_0019: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_001e: ret + } // end of method InstanceTests::CaptureOfThisAndParameter + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameterInForEach(int32 a) cil managed + { + // Code size 106 (0x6a) + .maxstack 2 + .locals init (class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0' V_2, + class [mscorlib]System.Action V_3) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1'::'<>4__this' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1'::a + IL_0014: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Empty() + IL_0019: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_001e: stloc.1 + .try + { + IL_001f: br.s IL_0052 + + IL_0021: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::.ctor() + IL_0026: stloc.2 + IL_0027: ldloc.2 + IL_0028: ldloc.0 + IL_0029: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::'CS$<>8__locals1' + IL_002e: ldloc.2 + IL_002f: ldloc.1 + IL_0030: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0035: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::item + IL_003a: ldloc.2 + IL_003b: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::item + IL_0040: ldc.i4.0 + IL_0041: ble.s IL_0052 + + IL_0043: ldloc.2 + IL_0044: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::'b__0'() + IL_004a: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_004f: stloc.3 + IL_0050: leave.s IL_0068 + + IL_0052: ldloc.1 + IL_0053: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0058: brtrue.s IL_0021 + + IL_005a: leave.s IL_0066 + + } // end .try + finally + { + IL_005c: ldloc.1 + IL_005d: brfalse.s IL_0065 + + IL_005f: ldloc.1 + IL_0060: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0065: endfinally + } // end handler + IL_0066: ldnull + IL_0067: ret + + IL_0068: ldloc.3 + IL_0069: ret + } // end of method InstanceTests::CaptureOfThisAndParameterInForEach + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameterInForEachWithItemCopy(int32 a) cil managed + { + // Code size 143 (0x8f) + .maxstack 2 + .locals init (class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' V_2, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2' V_3, + class [mscorlib]System.Action V_4) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1'::'<>4__this' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1'::a + IL_0014: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Empty() + IL_0019: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_001e: stloc.1 + .try + { + IL_001f: br.s IL_0076 + + IL_0021: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::.ctor() + IL_0026: stloc.2 + IL_0027: ldloc.2 + IL_0028: ldloc.0 + IL_0029: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::'CS$<>8__locals1' + IL_002e: ldloc.2 + IL_002f: ldloc.1 + IL_0030: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0035: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::item + IL_003a: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::.ctor() + IL_003f: stloc.3 + IL_0040: ldloc.3 + IL_0041: ldloc.2 + IL_0042: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_0047: ldloc.3 + IL_0048: ldloc.3 + IL_0049: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_004e: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::item + IL_0053: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::copyOfItem + IL_0058: ldloc.3 + IL_0059: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_005e: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::item + IL_0063: ldc.i4.0 + IL_0064: ble.s IL_0076 + + IL_0066: ldloc.3 + IL_0067: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'b__0'() + IL_006d: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0072: stloc.s V_4 + IL_0074: leave.s IL_008c + + IL_0076: ldloc.1 + IL_0077: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_007c: brtrue.s IL_0021 + + IL_007e: leave.s IL_008a + + } // end .try + finally + { + IL_0080: ldloc.1 + IL_0081: brfalse.s IL_0089 + + IL_0083: ldloc.1 + IL_0084: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0089: endfinally + } // end handler + IL_008a: ldnull + IL_008b: ret + + IL_008c: ldloc.s V_4 + IL_008e: ret + } // end of method InstanceTests::CaptureOfThisAndParameterInForEachWithItemCopy + + .method public hidebysig instance void + LambdaInForLoop() cil managed + { + // Code size 35 (0x23) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_001a + + IL_0004: ldarg.0 + IL_0005: ldarg.0 + IL_0006: ldftn instance int32 DelegateConstruction/InstanceTests::'b__4_0'() + IL_000c: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0011: call instance void DelegateConstruction/InstanceTests::Bar(class [mscorlib]System.Func`1) + IL_0016: ldloc.0 + IL_0017: ldc.i4.1 + IL_0018: add + IL_0019: stloc.0 + IL_001a: ldloc.0 + IL_001b: ldc.i4 0x186a0 + IL_0020: blt.s IL_0004 + + IL_0022: ret + } // end of method InstanceTests::LambdaInForLoop + + .method public hidebysig instance int32 + Foo() cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: ret + } // end of method InstanceTests::Foo + + .method public hidebysig instance void + Bar(class [mscorlib]System.Func`1 f) cil managed + { + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method InstanceTests::Bar + + .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 InstanceTests::.ctor + + .method private hidebysig instance void + 'b__0_0'() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThis() + IL_0006: pop + IL_0007: ret + } // end of method InstanceTests::'b__0_0' + + .method private hidebysig instance int32 + 'b__4_0'() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 DelegateConstruction/InstanceTests::Foo() + IL_0006: ret + } // end of method InstanceTests::'b__4_0' + + } // end of class InstanceTests + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass8_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 counter + .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 '<>c__DisplayClass8_0'::.ctor + + .method assembly hidebysig instance void + 'b__0'(int32 x) cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: stfld int32 DelegateConstruction/'<>c__DisplayClass8_0'::counter + IL_0007: ret + } // end of method '<>c__DisplayClass8_0'::'b__0' + + } // end of class '<>c__DisplayClass8_0' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass9_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 counter + .field public class [mscorlib]System.Action`1 '<>9__0' + .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 '<>c__DisplayClass9_0'::.ctor + + .method assembly hidebysig instance void + 'b__0'(int32 x) cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: stfld int32 DelegateConstruction/'<>c__DisplayClass9_0'::counter + IL_0007: ret + } // end of method '<>c__DisplayClass9_0'::'b__0' + + } // end of class '<>c__DisplayClass9_0' + + .class auto ansi serializable sealed nested private beforefieldinit '<>c' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public static initonly class DelegateConstruction/'<>c' '<>9' + .field public static class [mscorlib]System.Action '<>9__10_0' + .field public static class [mscorlib]System.Action`1 '<>9__12_0' + .field public static class [mscorlib]System.Action`1 '<>9__13_0' + .method private hidebysig specialname rtspecialname static + void .cctor() cil managed + { + // Code size 11 (0xb) + .maxstack 8 + IL_0000: newobj instance void DelegateConstruction/'<>c'::.ctor() + IL_0005: stsfld class DelegateConstruction/'<>c' DelegateConstruction/'<>c'::'<>9' + IL_000a: ret + } // end of method '<>c'::.cctor + + .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 '<>c'::.ctor + + .method assembly hidebysig instance void + 'b__10_0'() cil managed + { + // Code size 6 (0x6) + .maxstack 8 + IL_0000: call void [mscorlib]System.Console::WriteLine() + IL_0005: ret + } // end of method '<>c'::'b__10_0' + + .method assembly hidebysig instance void + 'b__12_0'(int32 i) cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: call void [mscorlib]System.Console::WriteLine(int32) + IL_0006: ret + } // end of method '<>c'::'b__12_0' + + .method assembly hidebysig instance void + 'b__13_0'(int32 j) cil managed + { + // Code size 19 (0x13) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_000e + + IL_0004: ldloc.0 + IL_0005: call void [mscorlib]System.Console::WriteLine(int32) + IL_000a: ldloc.0 + IL_000b: ldc.i4.1 + IL_000c: add + IL_000d: stloc.0 + IL_000e: ldloc.0 + IL_000f: ldarg.1 + IL_0010: blt.s IL_0004 + + IL_0012: ret + } // end of method '<>c'::'b__13_0' + + } // end of class '<>c' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass11_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 i + .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 '<>c__DisplayClass11_0'::.ctor + + .method assembly hidebysig instance void + 'b__0'(int32 j) cil managed + { + // Code size 23 (0x17) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_000d + + IL_0004: call void [mscorlib]System.Console::WriteLine() + IL_0009: ldloc.0 + IL_000a: ldarg.1 + IL_000b: add + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: ldarg.0 + IL_000f: ldfld int32 DelegateConstruction/'<>c__DisplayClass11_0'::i + IL_0014: blt.s IL_0004 + + IL_0016: ret + } // end of method '<>c__DisplayClass11_0'::'b__0' + + } // end of class '<>c__DisplayClass11_0' + + .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 ) + .field public int32 a + .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 '<>c__DisplayClass14_0'::.ctor + + .method assembly hidebysig instance class [mscorlib]System.Func`2 + 'b__0'(int32 b) cil managed + { + // Code size 31 (0x1f) + .maxstack 8 + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass14_1'::.ctor() + IL_0005: dup + IL_0006: ldarg.0 + IL_0007: stfld class DelegateConstruction/'<>c__DisplayClass14_0' DelegateConstruction/'<>c__DisplayClass14_1'::'CS$<>8__locals1' + IL_000c: dup + IL_000d: ldarg.1 + IL_000e: stfld int32 DelegateConstruction/'<>c__DisplayClass14_1'::b + IL_0013: ldftn instance int32 DelegateConstruction/'<>c__DisplayClass14_1'::'b__1'(int32) + IL_0019: newobj instance void class [mscorlib]System.Func`2::.ctor(object, + native int) + IL_001e: ret + } // end of method '<>c__DisplayClass14_0'::'b__0' + + } // end of class '<>c__DisplayClass14_0' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass14_1' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 b + .field public class DelegateConstruction/'<>c__DisplayClass14_0' 'CS$<>8__locals1' + .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 '<>c__DisplayClass14_1'::.ctor + + .method assembly hidebysig instance int32 + 'b__1'(int32 c) cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/'<>c__DisplayClass14_0' DelegateConstruction/'<>c__DisplayClass14_1'::'CS$<>8__locals1' + IL_0006: ldfld int32 DelegateConstruction/'<>c__DisplayClass14_0'::a + IL_000b: ldarg.0 + IL_000c: ldfld int32 DelegateConstruction/'<>c__DisplayClass14_1'::b + IL_0011: add + IL_0012: ldarg.1 + IL_0013: add + IL_0014: ret + } // end of method '<>c__DisplayClass14_1'::'b__1' + + } // end of class '<>c__DisplayClass14_1' + + .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 ) + .field public int32 a + .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 '<>c__DisplayClass15_0'::.ctor + + .method assembly hidebysig instance class [mscorlib]System.Func`2> + 'b__0'(int32 b) cil managed + { + // Code size 31 (0x1f) + .maxstack 8 + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass15_1'::.ctor() + IL_0005: dup + IL_0006: ldarg.0 + IL_0007: stfld class DelegateConstruction/'<>c__DisplayClass15_0' DelegateConstruction/'<>c__DisplayClass15_1'::'CS$<>8__locals1' + IL_000c: dup + IL_000d: ldarg.1 + IL_000e: stfld int32 DelegateConstruction/'<>c__DisplayClass15_1'::b + IL_0013: ldftn instance class [mscorlib]System.Func`2 DelegateConstruction/'<>c__DisplayClass15_1'::'b__1'(int32) + IL_0019: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, + native int) + IL_001e: ret + } // end of method '<>c__DisplayClass15_0'::'b__0' + + } // end of class '<>c__DisplayClass15_0' + + .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 b + .field public class DelegateConstruction/'<>c__DisplayClass15_0' 'CS$<>8__locals1' + .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 '<>c__DisplayClass15_1'::.ctor + + .method assembly hidebysig instance class [mscorlib]System.Func`2 + 'b__1'(int32 c) cil managed + { + // Code size 31 (0x1f) + .maxstack 8 + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass15_2'::.ctor() + IL_0005: dup + IL_0006: ldarg.0 + IL_0007: stfld class DelegateConstruction/'<>c__DisplayClass15_1' DelegateConstruction/'<>c__DisplayClass15_2'::'CS$<>8__locals2' + IL_000c: dup + IL_000d: ldarg.1 + IL_000e: stfld int32 DelegateConstruction/'<>c__DisplayClass15_2'::c + IL_0013: ldftn instance int32 DelegateConstruction/'<>c__DisplayClass15_2'::'b__2'(int32) + IL_0019: newobj instance void class [mscorlib]System.Func`2::.ctor(object, + native int) + IL_001e: ret + } // end of method '<>c__DisplayClass15_1'::'b__1' + + } // end of class '<>c__DisplayClass15_1' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass15_2' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 c + .field public class DelegateConstruction/'<>c__DisplayClass15_1' 'CS$<>8__locals2' + .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 '<>c__DisplayClass15_2'::.ctor + + .method assembly hidebysig instance int32 + 'b__2'(int32 d) cil managed + { + // Code size 38 (0x26) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/'<>c__DisplayClass15_1' DelegateConstruction/'<>c__DisplayClass15_2'::'CS$<>8__locals2' + IL_0006: ldfld class DelegateConstruction/'<>c__DisplayClass15_0' DelegateConstruction/'<>c__DisplayClass15_1'::'CS$<>8__locals1' + IL_000b: ldfld int32 DelegateConstruction/'<>c__DisplayClass15_0'::a + IL_0010: ldarg.0 + IL_0011: ldfld class DelegateConstruction/'<>c__DisplayClass15_1' DelegateConstruction/'<>c__DisplayClass15_2'::'CS$<>8__locals2' + IL_0016: ldfld int32 DelegateConstruction/'<>c__DisplayClass15_1'::b + IL_001b: add + IL_001c: ldarg.0 + IL_001d: ldfld int32 DelegateConstruction/'<>c__DisplayClass15_2'::c + IL_0022: add + IL_0023: ldarg.1 + IL_0024: add + IL_0025: ret + } // end of method '<>c__DisplayClass15_2'::'b__2' + + } // end of class '<>c__DisplayClass15_2' + + .method public hidebysig static void Test(string a) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method DelegateConstruction::Test + + .method public hidebysig static class [mscorlib]System.Action`1 + ExtensionMethodUnbound() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldnull + IL_0001: ldftn void DelegateConstruction::Test(string) + IL_0007: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_000c: ret + } // end of method DelegateConstruction::ExtensionMethodUnbound + + .method public hidebysig static class [mscorlib]System.Action + ExtensionMethodBound() cil managed + { + // Code size 17 (0x11) + .maxstack 8 + IL_0000: ldstr "abc" + IL_0005: ldftn void DelegateConstruction::Test(string) + IL_000b: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0010: ret + } // end of method DelegateConstruction::ExtensionMethodBound + + .method public hidebysig static class [mscorlib]System.Action + ExtensionMethodBoundOnNull() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldnull + IL_0001: ldftn void DelegateConstruction::Test(string) + IL_0007: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_000c: ret + } // end of method DelegateConstruction::ExtensionMethodBoundOnNull + + .method public hidebysig static object + StaticMethod() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldnull + IL_0001: ldftn class [mscorlib]System.Action DelegateConstruction::ExtensionMethodBound() + IL_0007: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_000c: ret + } // end of method DelegateConstruction::StaticMethod + + .method public hidebysig static object + InstanceMethod() cil managed + { + // Code size 17 (0x11) + .maxstack 8 + IL_0000: ldstr "hello" + IL_0005: ldftn instance string [mscorlib]System.String::ToUpper() + IL_000b: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0010: ret + } // end of method DelegateConstruction::InstanceMethod + + .method public hidebysig static object + InstanceMethodOnNull() cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldnull + IL_0001: ldftn instance string [mscorlib]System.String::ToUpper() + IL_0007: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_000c: ret + } // end of method DelegateConstruction::InstanceMethodOnNull + + .method public hidebysig static class [mscorlib]System.Collections.Generic.List`1> + AnonymousMethodStoreWithinLoop() cil managed + { + // Code size 45 (0x2d) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + class DelegateConstruction/'<>c__DisplayClass8_0' V_2) + IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0005: stloc.0 + IL_0006: ldc.i4.0 + IL_0007: stloc.1 + IL_0008: br.s IL_0026 + + IL_000a: newobj instance void DelegateConstruction/'<>c__DisplayClass8_0'::.ctor() + IL_000f: stloc.2 + IL_0010: ldloc.0 + IL_0011: ldloc.2 + IL_0012: ldftn instance void DelegateConstruction/'<>c__DisplayClass8_0'::'b__0'(int32) + IL_0018: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_001d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0022: ldloc.1 + IL_0023: ldc.i4.1 + IL_0024: add + IL_0025: stloc.1 + IL_0026: ldloc.1 + IL_0027: ldc.i4.s 10 + IL_0029: blt.s IL_000a + + IL_002b: ldloc.0 + IL_002c: ret + } // end of method DelegateConstruction::AnonymousMethodStoreWithinLoop + + .method public hidebysig static class [mscorlib]System.Collections.Generic.List`1> + AnonymousMethodStoreOutsideLoop() cil managed + { + // Code size 64 (0x40) + .maxstack 4 + .locals init (class DelegateConstruction/'<>c__DisplayClass9_0' V_0, + class [mscorlib]System.Collections.Generic.List`1> V_1, + int32 V_2, + class [mscorlib]System.Action`1 V_3) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass9_0'::.ctor() + IL_0005: stloc.0 + IL_0006: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_000b: stloc.1 + IL_000c: ldc.i4.0 + IL_000d: stloc.2 + IL_000e: br.s IL_0039 + + IL_0010: ldloc.1 + IL_0011: ldloc.0 + IL_0012: ldfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c__DisplayClass9_0'::'<>9__0' + IL_0017: dup + IL_0018: brtrue.s IL_0030 + + IL_001a: pop + IL_001b: ldloc.0 + IL_001c: ldloc.0 + IL_001d: ldftn instance void DelegateConstruction/'<>c__DisplayClass9_0'::'b__0'(int32) + IL_0023: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0028: dup + IL_0029: stloc.3 + IL_002a: stfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c__DisplayClass9_0'::'<>9__0' + IL_002f: ldloc.3 + IL_0030: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0035: ldloc.2 + IL_0036: ldc.i4.1 + IL_0037: add + IL_0038: stloc.2 + IL_0039: ldloc.2 + IL_003a: ldc.i4.s 10 + IL_003c: blt.s IL_0010 + + IL_003e: ldloc.1 + IL_003f: ret + } // end of method DelegateConstruction::AnonymousMethodStoreOutsideLoop + + .method public hidebysig static class [mscorlib]System.Action + StaticAnonymousMethodNoClosure() cil managed + { + // Code size 32 (0x20) + .maxstack 8 + IL_0000: ldsfld class [mscorlib]System.Action DelegateConstruction/'<>c'::'<>9__10_0' + IL_0005: dup + IL_0006: brtrue.s IL_001f + + IL_0008: pop + IL_0009: ldsfld class DelegateConstruction/'<>c' DelegateConstruction/'<>c'::'<>9' + IL_000e: ldftn instance void DelegateConstruction/'<>c'::'b__10_0'() + IL_0014: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0019: dup + IL_001a: stsfld class [mscorlib]System.Action DelegateConstruction/'<>c'::'<>9__10_0' + IL_001f: ret + } // end of method DelegateConstruction::StaticAnonymousMethodNoClosure + + .method public hidebysig static void NameConflict() cil managed + { + // Code size 79 (0x4f) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + class DelegateConstruction/'<>c__DisplayClass11_0' V_2, + int32 V_3) + IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0005: stloc.0 + IL_0006: ldc.i4.0 + IL_0007: stloc.1 + IL_0008: br.s IL_0049 + + IL_000a: newobj instance void DelegateConstruction/'<>c__DisplayClass11_0'::.ctor() + IL_000f: stloc.2 + IL_0010: ldloc.2 + IL_0011: ldc.i4.0 + IL_0012: stfld int32 DelegateConstruction/'<>c__DisplayClass11_0'::i + IL_0017: br.s IL_003b + + IL_0019: ldloc.0 + IL_001a: ldloc.2 + IL_001b: ldftn instance void DelegateConstruction/'<>c__DisplayClass11_0'::'b__0'(int32) + IL_0021: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0026: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_002b: ldloc.2 + IL_002c: ldfld int32 DelegateConstruction/'<>c__DisplayClass11_0'::i + IL_0031: stloc.3 + IL_0032: ldloc.2 + IL_0033: ldloc.3 + IL_0034: ldc.i4.1 + IL_0035: add + IL_0036: stfld int32 DelegateConstruction/'<>c__DisplayClass11_0'::i + IL_003b: ldloc.2 + IL_003c: ldfld int32 DelegateConstruction/'<>c__DisplayClass11_0'::i + IL_0041: ldc.i4.s 10 + IL_0043: blt.s IL_0019 + + IL_0045: ldloc.1 + IL_0046: ldc.i4.1 + IL_0047: add + IL_0048: stloc.1 + IL_0049: ldloc.1 + IL_004a: ldc.i4.s 10 + IL_004c: blt.s IL_000a + + IL_004e: ret + } // end of method DelegateConstruction::NameConflict + + .method public hidebysig static void NameConflict2(int32 j) cil managed + { + // Code size 57 (0x39) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1) + IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0005: stloc.0 + IL_0006: ldc.i4.0 + IL_0007: stloc.1 + IL_0008: br.s IL_0033 + + IL_000a: ldloc.0 + IL_000b: ldsfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c'::'<>9__12_0' + IL_0010: dup + IL_0011: brtrue.s IL_002a + + IL_0013: pop + IL_0014: ldsfld class DelegateConstruction/'<>c' DelegateConstruction/'<>c'::'<>9' + IL_0019: ldftn instance void DelegateConstruction/'<>c'::'b__12_0'(int32) + IL_001f: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0024: dup + IL_0025: stsfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c'::'<>9__12_0' + IL_002a: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_002f: ldloc.1 + IL_0030: ldc.i4.1 + IL_0031: add + IL_0032: stloc.1 + IL_0033: ldloc.1 + IL_0034: ldc.i4.s 10 + IL_0036: blt.s IL_000a + + IL_0038: ret + } // end of method DelegateConstruction::NameConflict2 + + .method public hidebysig static class [mscorlib]System.Action`1 + NameConflict3(int32 i) cil managed + { + // Code size 32 (0x20) + .maxstack 8 + IL_0000: ldsfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c'::'<>9__13_0' + IL_0005: dup + IL_0006: brtrue.s IL_001f + + IL_0008: pop + IL_0009: ldsfld class DelegateConstruction/'<>c' DelegateConstruction/'<>c'::'<>9' + IL_000e: ldftn instance void DelegateConstruction/'<>c'::'b__13_0'(int32) + IL_0014: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0019: dup + IL_001a: stsfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c'::'<>9__13_0' + IL_001f: ret + } // end of method DelegateConstruction::NameConflict3 + + .method public hidebysig static class [mscorlib]System.Func`2> + CurriedAddition(int32 a) cil managed + { + // Code size 24 (0x18) + .maxstack 8 + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass14_0'::.ctor() + IL_0005: dup + IL_0006: ldarg.0 + IL_0007: stfld int32 DelegateConstruction/'<>c__DisplayClass14_0'::a + IL_000c: ldftn instance class [mscorlib]System.Func`2 DelegateConstruction/'<>c__DisplayClass14_0'::'b__0'(int32) + IL_0012: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, + native int) + IL_0017: ret + } // end of method DelegateConstruction::CurriedAddition + + .method public hidebysig static class [mscorlib]System.Func`2>> + CurriedAddition2(int32 a) cil managed + { + // Code size 24 (0x18) + .maxstack 8 + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass15_0'::.ctor() + IL_0005: dup + IL_0006: ldarg.0 + IL_0007: stfld int32 DelegateConstruction/'<>c__DisplayClass15_0'::a + IL_000c: ldftn instance class [mscorlib]System.Func`2> DelegateConstruction/'<>c__DisplayClass15_0'::'b__0'(int32) + IL_0012: newobj instance void class [mscorlib]System.Func`2>>::.ctor(object, + native int) + IL_0017: ret + } // end of method DelegateConstruction::CurriedAddition2 + +} // end of class DelegateConstruction + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.roslyn.il new file mode 100644 index 000000000..e793c66c1 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.roslyn.il @@ -0,0 +1,1362 @@ + +// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.17929 +// Copyright (c) Microsoft Corporation. All rights reserved. + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern System.Core +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly DelegateConstruction +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .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. + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 07 01 00 00 00 00 ) + + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module DelegateConstruction.dll +// MVID: {518B81C1-649D-4492-9DBC-30B3EB1721A3} +.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: 0x01670000 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi sealed beforefieldinit DelegateConstruction + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + .class auto ansi nested private beforefieldinit InstanceTests + extends [mscorlib]System.Object + { + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass1_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 a + .field public class DelegateConstruction/InstanceTests '<>4__this' + .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 '<>c__DisplayClass1_0'::.ctor + + .method assembly hidebysig instance void + 'b__0'() cil managed + { + // Code size 20 (0x14) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::'<>4__this' + IL_0007: ldarg.0 + IL_0008: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::a + IL_000d: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_0012: pop + IL_0013: ret + } // end of method '<>c__DisplayClass1_0'::'b__0' + + } // end of class '<>c__DisplayClass1_0' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass2_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 item + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1' 'CS$<>8__locals1' + .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 '<>c__DisplayClass2_0'::.ctor + + .method assembly hidebysig instance void + 'b__0'() cil managed + { + // Code size 37 (0x25) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::'CS$<>8__locals1' + IL_0007: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1'::'<>4__this' + IL_000c: ldarg.0 + IL_000d: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::item + IL_0012: ldarg.0 + IL_0013: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::'CS$<>8__locals1' + IL_0018: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1'::a + IL_001d: add + IL_001e: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_0023: pop + IL_0024: ret + } // end of method '<>c__DisplayClass2_0'::'b__0' + + } // end of class '<>c__DisplayClass2_0' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass2_1' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 a + .field public class DelegateConstruction/InstanceTests '<>4__this' + .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 '<>c__DisplayClass2_1'::.ctor + + } // end of class '<>c__DisplayClass2_1' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass3_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 item + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1' 'CS$<>8__locals1' + .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 '<>c__DisplayClass3_0'::.ctor + + } // end of class '<>c__DisplayClass3_0' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass3_1' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 a + .field public class DelegateConstruction/InstanceTests '<>4__this' + .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 '<>c__DisplayClass3_1'::.ctor + + } // end of class '<>c__DisplayClass3_1' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass3_2' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 copyOfItem + .field public class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' 'CS$<>8__locals2' + .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 '<>c__DisplayClass3_2'::.ctor + + .method assembly hidebysig instance void + 'b__0'() cil managed + { + // Code size 59 (0x3b) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_0007: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::'CS$<>8__locals1' + IL_000c: ldfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1'::'<>4__this' + IL_0011: ldarg.0 + IL_0012: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_0017: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::item + IL_001c: ldarg.0 + IL_001d: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_0022: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::'CS$<>8__locals1' + IL_0027: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1'::a + IL_002c: add + IL_002d: ldarg.0 + IL_002e: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::copyOfItem + IL_0033: add + IL_0034: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThisAndParameter(int32) + IL_0039: pop + IL_003a: ret + } // end of method '<>c__DisplayClass3_2'::'b__0' + + } // end of class '<>c__DisplayClass3_2' + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThis() cil managed + { + // Code size 18 (0x12) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldftn instance void DelegateConstruction/InstanceTests::'b__0_0'() + IL_0008: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_000d: stloc.0 + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ret + } // end of method InstanceTests::CaptureOfThis + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameter(int32 a) cil managed + { + // Code size 38 (0x26) + .maxstack 2 + .locals init (class DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0' V_0, + class [mscorlib]System.Action V_1) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::'<>4__this' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::a + IL_0014: nop + IL_0015: ldloc.0 + IL_0016: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass1_0'::'b__0'() + IL_001c: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0021: stloc.1 + IL_0022: br.s IL_0024 + + IL_0024: ldloc.1 + IL_0025: ret + } // end of method InstanceTests::CaptureOfThisAndParameter + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameterInForEach(int32 a) cil managed + { + // Code size 121 (0x79) + .maxstack 2 + .locals init (class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0' V_2, + bool V_3, + class [mscorlib]System.Action V_4) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1'::'<>4__this' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1'::a + IL_0014: nop + IL_0015: nop + IL_0016: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Empty() + IL_001b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0020: stloc.1 + .try + { + IL_0021: br.s IL_005c + + IL_0023: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::.ctor() + IL_0028: stloc.2 + IL_0029: ldloc.2 + IL_002a: ldloc.0 + IL_002b: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass2_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::'CS$<>8__locals1' + IL_0030: ldloc.2 + IL_0031: ldloc.1 + IL_0032: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0037: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::item + IL_003c: nop + IL_003d: ldloc.2 + IL_003e: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::item + IL_0043: ldc.i4.0 + IL_0044: cgt + IL_0046: stloc.3 + IL_0047: ldloc.3 + IL_0048: brfalse.s IL_005b + + IL_004a: nop + IL_004b: ldloc.2 + IL_004c: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass2_0'::'b__0'() + IL_0052: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0057: stloc.s V_4 + IL_0059: leave.s IL_0076 + + IL_005b: nop + IL_005c: ldloc.1 + IL_005d: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0062: brtrue.s IL_0023 + + IL_0064: leave.s IL_0071 + + } // end .try + finally + { + IL_0066: ldloc.1 + IL_0067: brfalse.s IL_0070 + + IL_0069: ldloc.1 + IL_006a: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_006f: nop + IL_0070: endfinally + } // end handler + IL_0071: ldnull + IL_0072: stloc.s V_4 + IL_0074: br.s IL_0076 + + IL_0076: ldloc.s V_4 + IL_0078: ret + } // end of method InstanceTests::CaptureOfThisAndParameterInForEach + + .method public hidebysig instance class [mscorlib]System.Action + CaptureOfThisAndParameterInForEachWithItemCopy(int32 a) cil managed + { + // Code size 158 (0x9e) + .maxstack 2 + .locals init (class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' V_2, + class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2' V_3, + bool V_4, + class [mscorlib]System.Action V_5) + IL_0000: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/InstanceTests DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1'::'<>4__this' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1'::a + IL_0014: nop + IL_0015: nop + IL_0016: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Empty() + IL_001b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0020: stloc.1 + .try + { + IL_0021: br.s IL_0081 + + IL_0023: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::.ctor() + IL_0028: stloc.2 + IL_0029: ldloc.2 + IL_002a: ldloc.0 + IL_002b: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_1' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::'CS$<>8__locals1' + IL_0030: ldloc.2 + IL_0031: ldloc.1 + IL_0032: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0037: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::item + IL_003c: newobj instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::.ctor() + IL_0041: stloc.3 + IL_0042: ldloc.3 + IL_0043: ldloc.2 + IL_0044: stfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_0049: nop + IL_004a: ldloc.3 + IL_004b: ldloc.3 + IL_004c: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_0051: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::item + IL_0056: stfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::copyOfItem + IL_005b: ldloc.3 + IL_005c: ldfld class DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0' DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'CS$<>8__locals2' + IL_0061: ldfld int32 DelegateConstruction/InstanceTests/'<>c__DisplayClass3_0'::item + IL_0066: ldc.i4.0 + IL_0067: cgt + IL_0069: stloc.s V_4 + IL_006b: ldloc.s V_4 + IL_006d: brfalse.s IL_0080 + + IL_006f: nop + IL_0070: ldloc.3 + IL_0071: ldftn instance void DelegateConstruction/InstanceTests/'<>c__DisplayClass3_2'::'b__0'() + IL_0077: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_007c: stloc.s V_5 + IL_007e: leave.s IL_009b + + IL_0080: nop + IL_0081: ldloc.1 + IL_0082: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0087: brtrue.s IL_0023 + + IL_0089: leave.s IL_0096 + + } // end .try + finally + { + IL_008b: ldloc.1 + IL_008c: brfalse.s IL_0095 + + IL_008e: ldloc.1 + IL_008f: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0094: nop + IL_0095: endfinally + } // end handler + IL_0096: ldnull + IL_0097: stloc.s V_5 + IL_0099: br.s IL_009b + + IL_009b: ldloc.s V_5 + IL_009d: ret + } // end of method InstanceTests::CaptureOfThisAndParameterInForEachWithItemCopy + + .method public hidebysig instance void + LambdaInForLoop() cil managed + { + // Code size 43 (0x2b) + .maxstack 3 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_001e + + IL_0005: nop + IL_0006: ldarg.0 + IL_0007: ldarg.0 + IL_0008: ldftn instance int32 DelegateConstruction/InstanceTests::'b__4_0'() + IL_000e: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0013: call instance void DelegateConstruction/InstanceTests::Bar(class [mscorlib]System.Func`1) + IL_0018: nop + IL_0019: nop + IL_001a: ldloc.0 + IL_001b: ldc.i4.1 + IL_001c: add + IL_001d: stloc.0 + IL_001e: ldloc.0 + IL_001f: ldc.i4 0x186a0 + IL_0024: clt + IL_0026: stloc.1 + IL_0027: ldloc.1 + IL_0028: brtrue.s IL_0005 + + IL_002a: ret + } // end of method InstanceTests::LambdaInForLoop + + .method public hidebysig instance int32 + Foo() cil managed + { + // Code size 7 (0x7) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_0005 + + IL_0005: ldloc.0 + IL_0006: ret + } // end of method InstanceTests::Foo + + .method public hidebysig instance void + Bar(class [mscorlib]System.Func`1 f) cil managed + { + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method InstanceTests::Bar + + .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 InstanceTests::.ctor + + .method private hidebysig instance void + 'b__0_0'() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: call instance class [mscorlib]System.Action DelegateConstruction/InstanceTests::CaptureOfThis() + IL_0007: pop + IL_0008: ret + } // end of method InstanceTests::'b__0_0' + + .method private hidebysig instance int32 + 'b__4_0'() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance int32 DelegateConstruction/InstanceTests::Foo() + IL_0006: ret + } // end of method InstanceTests::'b__4_0' + + } // end of class InstanceTests + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass8_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 counter + .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 '<>c__DisplayClass8_0'::.ctor + + .method assembly hidebysig instance void + 'b__0'(int32 x) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldarg.1 + IL_0003: stfld int32 DelegateConstruction/'<>c__DisplayClass8_0'::counter + IL_0008: ret + } // end of method '<>c__DisplayClass8_0'::'b__0' + + } // end of class '<>c__DisplayClass8_0' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass9_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 counter + .field public class [mscorlib]System.Action`1 '<>9__0' + .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 '<>c__DisplayClass9_0'::.ctor + + .method assembly hidebysig instance void + 'b__0'(int32 x) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldarg.1 + IL_0003: stfld int32 DelegateConstruction/'<>c__DisplayClass9_0'::counter + IL_0008: ret + } // end of method '<>c__DisplayClass9_0'::'b__0' + + } // end of class '<>c__DisplayClass9_0' + + .class auto ansi serializable sealed nested private beforefieldinit '<>c' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public static initonly class DelegateConstruction/'<>c' '<>9' + .field public static class [mscorlib]System.Action '<>9__10_0' + .field public static class [mscorlib]System.Action`1 '<>9__12_0' + .field public static class [mscorlib]System.Action`1 '<>9__13_0' + .method private hidebysig specialname rtspecialname static + void .cctor() cil managed + { + // Code size 11 (0xb) + .maxstack 8 + IL_0000: newobj instance void DelegateConstruction/'<>c'::.ctor() + IL_0005: stsfld class DelegateConstruction/'<>c' DelegateConstruction/'<>c'::'<>9' + IL_000a: ret + } // end of method '<>c'::.cctor + + .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 '<>c'::.ctor + + .method assembly hidebysig instance void + 'b__10_0'() cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: nop + IL_0001: call void [mscorlib]System.Console::WriteLine() + IL_0006: nop + IL_0007: ret + } // end of method '<>c'::'b__10_0' + + .method assembly hidebysig instance void + 'b__12_0'(int32 i) cil managed + { + // Code size 9 (0x9) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.1 + IL_0002: call void [mscorlib]System.Console::WriteLine(int32) + IL_0007: nop + IL_0008: ret + } // end of method '<>c'::'b__12_0' + + .method assembly hidebysig instance void + 'b__13_0'(int32 j) cil managed + { + // Code size 27 (0x1b) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_0012 + + IL_0005: nop + IL_0006: ldloc.0 + IL_0007: call void [mscorlib]System.Console::WriteLine(int32) + IL_000c: nop + IL_000d: nop + IL_000e: ldloc.0 + IL_000f: ldc.i4.1 + IL_0010: add + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: ldarg.1 + IL_0014: clt + IL_0016: stloc.1 + IL_0017: ldloc.1 + IL_0018: brtrue.s IL_0005 + + IL_001a: ret + } // end of method '<>c'::'b__13_0' + + } // end of class '<>c' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass11_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 i + .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 '<>c__DisplayClass11_0'::.ctor + + .method assembly hidebysig instance void + 'b__0'(int32 j) cil managed + { + // Code size 31 (0x1f) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_0011 + + IL_0005: nop + IL_0006: call void [mscorlib]System.Console::WriteLine() + IL_000b: nop + IL_000c: nop + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: add + IL_0010: stloc.0 + IL_0011: ldloc.0 + IL_0012: ldarg.0 + IL_0013: ldfld int32 DelegateConstruction/'<>c__DisplayClass11_0'::i + IL_0018: clt + IL_001a: stloc.1 + IL_001b: ldloc.1 + IL_001c: brtrue.s IL_0005 + + IL_001e: ret + } // end of method '<>c__DisplayClass11_0'::'b__0' + + } // end of class '<>c__DisplayClass11_0' + + .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 ) + .field public int32 a + .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 '<>c__DisplayClass14_0'::.ctor + + .method assembly hidebysig instance class [mscorlib]System.Func`2 + 'b__0'(int32 b) cil managed + { + // Code size 33 (0x21) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass14_1' V_0) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass14_1'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/'<>c__DisplayClass14_0' DelegateConstruction/'<>c__DisplayClass14_1'::'CS$<>8__locals1' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/'<>c__DisplayClass14_1'::b + IL_0014: ldloc.0 + IL_0015: ldftn instance int32 DelegateConstruction/'<>c__DisplayClass14_1'::'b__1'(int32) + IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, + native int) + IL_0020: ret + } // end of method '<>c__DisplayClass14_0'::'b__0' + + } // end of class '<>c__DisplayClass14_0' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass14_1' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 b + .field public class DelegateConstruction/'<>c__DisplayClass14_0' 'CS$<>8__locals1' + .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 '<>c__DisplayClass14_1'::.ctor + + .method assembly hidebysig instance int32 + 'b__1'(int32 c) cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/'<>c__DisplayClass14_0' DelegateConstruction/'<>c__DisplayClass14_1'::'CS$<>8__locals1' + IL_0006: ldfld int32 DelegateConstruction/'<>c__DisplayClass14_0'::a + IL_000b: ldarg.0 + IL_000c: ldfld int32 DelegateConstruction/'<>c__DisplayClass14_1'::b + IL_0011: add + IL_0012: ldarg.1 + IL_0013: add + IL_0014: ret + } // end of method '<>c__DisplayClass14_1'::'b__1' + + } // end of class '<>c__DisplayClass14_1' + + .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 ) + .field public int32 a + .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 '<>c__DisplayClass15_0'::.ctor + + .method assembly hidebysig instance class [mscorlib]System.Func`2> + 'b__0'(int32 b) cil managed + { + // Code size 33 (0x21) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass15_1' V_0) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass15_1'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/'<>c__DisplayClass15_0' DelegateConstruction/'<>c__DisplayClass15_1'::'CS$<>8__locals1' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/'<>c__DisplayClass15_1'::b + IL_0014: ldloc.0 + IL_0015: ldftn instance class [mscorlib]System.Func`2 DelegateConstruction/'<>c__DisplayClass15_1'::'b__1'(int32) + IL_001b: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, + native int) + IL_0020: ret + } // end of method '<>c__DisplayClass15_0'::'b__0' + + } // end of class '<>c__DisplayClass15_0' + + .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 b + .field public class DelegateConstruction/'<>c__DisplayClass15_0' 'CS$<>8__locals1' + .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 '<>c__DisplayClass15_1'::.ctor + + .method assembly hidebysig instance class [mscorlib]System.Func`2 + 'b__1'(int32 c) cil managed + { + // Code size 33 (0x21) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass15_2' V_0) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass15_2'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld class DelegateConstruction/'<>c__DisplayClass15_1' DelegateConstruction/'<>c__DisplayClass15_2'::'CS$<>8__locals2' + IL_000d: ldloc.0 + IL_000e: ldarg.1 + IL_000f: stfld int32 DelegateConstruction/'<>c__DisplayClass15_2'::c + IL_0014: ldloc.0 + IL_0015: ldftn instance int32 DelegateConstruction/'<>c__DisplayClass15_2'::'b__2'(int32) + IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, + native int) + IL_0020: ret + } // end of method '<>c__DisplayClass15_1'::'b__1' + + } // end of class '<>c__DisplayClass15_1' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass15_2' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public int32 c + .field public class DelegateConstruction/'<>c__DisplayClass15_1' 'CS$<>8__locals2' + .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 '<>c__DisplayClass15_2'::.ctor + + .method assembly hidebysig instance int32 + 'b__2'(int32 d) cil managed + { + // Code size 38 (0x26) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class DelegateConstruction/'<>c__DisplayClass15_1' DelegateConstruction/'<>c__DisplayClass15_2'::'CS$<>8__locals2' + IL_0006: ldfld class DelegateConstruction/'<>c__DisplayClass15_0' DelegateConstruction/'<>c__DisplayClass15_1'::'CS$<>8__locals1' + IL_000b: ldfld int32 DelegateConstruction/'<>c__DisplayClass15_0'::a + IL_0010: ldarg.0 + IL_0011: ldfld class DelegateConstruction/'<>c__DisplayClass15_1' DelegateConstruction/'<>c__DisplayClass15_2'::'CS$<>8__locals2' + IL_0016: ldfld int32 DelegateConstruction/'<>c__DisplayClass15_1'::b + IL_001b: add + IL_001c: ldarg.0 + IL_001d: ldfld int32 DelegateConstruction/'<>c__DisplayClass15_2'::c + IL_0022: add + IL_0023: ldarg.1 + IL_0024: add + IL_0025: ret + } // end of method '<>c__DisplayClass15_2'::'b__2' + + } // end of class '<>c__DisplayClass15_2' + + .method public hidebysig static void Test(string a) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method DelegateConstruction::Test + + .method public hidebysig static class [mscorlib]System.Action`1 + ExtensionMethodUnbound() cil managed + { + // Code size 18 (0x12) + .maxstack 2 + .locals init (class [mscorlib]System.Action`1 V_0) + IL_0000: nop + IL_0001: ldnull + IL_0002: ldftn void DelegateConstruction::Test(string) + IL_0008: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_000d: stloc.0 + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ret + } // end of method DelegateConstruction::ExtensionMethodUnbound + + .method public hidebysig static class [mscorlib]System.Action + ExtensionMethodBound() cil managed + { + // Code size 22 (0x16) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0) + IL_0000: nop + IL_0001: ldstr "abc" + IL_0006: ldftn void DelegateConstruction::Test(string) + IL_000c: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_0011: stloc.0 + IL_0012: br.s IL_0014 + + IL_0014: ldloc.0 + IL_0015: ret + } // end of method DelegateConstruction::ExtensionMethodBound + + .method public hidebysig static class [mscorlib]System.Action + ExtensionMethodBoundOnNull() cil managed + { + // Code size 18 (0x12) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0) + IL_0000: nop + IL_0001: ldnull + IL_0002: ldftn void DelegateConstruction::Test(string) + IL_0008: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_000d: stloc.0 + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ret + } // end of method DelegateConstruction::ExtensionMethodBoundOnNull + + .method public hidebysig static object + StaticMethod() cil managed + { + // Code size 18 (0x12) + .maxstack 2 + .locals init (object V_0) + IL_0000: nop + IL_0001: ldnull + IL_0002: ldftn class [mscorlib]System.Action DelegateConstruction::ExtensionMethodBound() + IL_0008: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_000d: stloc.0 + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ret + } // end of method DelegateConstruction::StaticMethod + + .method public hidebysig static object + InstanceMethod() cil managed + { + // Code size 22 (0x16) + .maxstack 2 + .locals init (object V_0) + IL_0000: nop + IL_0001: ldstr "hello" + IL_0006: ldftn instance string [mscorlib]System.String::ToUpper() + IL_000c: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0011: stloc.0 + IL_0012: br.s IL_0014 + + IL_0014: ldloc.0 + IL_0015: ret + } // end of method DelegateConstruction::InstanceMethod + + .method public hidebysig static object + InstanceMethodOnNull() cil managed + { + // Code size 18 (0x12) + .maxstack 2 + .locals init (object V_0) + IL_0000: nop + IL_0001: ldnull + IL_0002: ldftn instance string [mscorlib]System.String::ToUpper() + IL_0008: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_000d: stloc.0 + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ret + } // end of method DelegateConstruction::InstanceMethodOnNull + + .method public hidebysig static class [mscorlib]System.Collections.Generic.List`1> + AnonymousMethodStoreWithinLoop() cil managed + { + // Code size 59 (0x3b) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + class DelegateConstruction/'<>c__DisplayClass8_0' V_2, + bool V_3, + class [mscorlib]System.Collections.Generic.List`1> V_4) + IL_0000: nop + IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0006: stloc.0 + IL_0007: ldc.i4.0 + IL_0008: stloc.1 + IL_0009: br.s IL_002a + + IL_000b: newobj instance void DelegateConstruction/'<>c__DisplayClass8_0'::.ctor() + IL_0010: stloc.2 + IL_0011: nop + IL_0012: ldloc.0 + IL_0013: ldloc.2 + IL_0014: ldftn instance void DelegateConstruction/'<>c__DisplayClass8_0'::'b__0'(int32) + IL_001a: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_001f: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0024: nop + IL_0025: nop + IL_0026: ldloc.1 + IL_0027: ldc.i4.1 + IL_0028: add + IL_0029: stloc.1 + IL_002a: ldloc.1 + IL_002b: ldc.i4.s 10 + IL_002d: clt + IL_002f: stloc.3 + IL_0030: ldloc.3 + IL_0031: brtrue.s IL_000b + + IL_0033: ldloc.0 + IL_0034: stloc.s V_4 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.s V_4 + IL_003a: ret + } // end of method DelegateConstruction::AnonymousMethodStoreWithinLoop + + .method public hidebysig static class [mscorlib]System.Collections.Generic.List`1> + AnonymousMethodStoreOutsideLoop() cil managed + { + // Code size 80 (0x50) + .maxstack 4 + .locals init (class DelegateConstruction/'<>c__DisplayClass9_0' V_0, + class [mscorlib]System.Collections.Generic.List`1> V_1, + int32 V_2, + class [mscorlib]System.Action`1 V_3, + bool V_4, + class [mscorlib]System.Collections.Generic.List`1> V_5) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass9_0'::.ctor() + IL_0005: stloc.0 + IL_0006: nop + IL_0007: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_000c: stloc.1 + IL_000d: ldc.i4.0 + IL_000e: stloc.2 + IL_000f: br.s IL_003d + + IL_0011: nop + IL_0012: ldloc.1 + IL_0013: ldloc.0 + IL_0014: ldfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c__DisplayClass9_0'::'<>9__0' + IL_0019: dup + IL_001a: brtrue.s IL_0032 + + IL_001c: pop + IL_001d: ldloc.0 + IL_001e: ldloc.0 + IL_001f: ldftn instance void DelegateConstruction/'<>c__DisplayClass9_0'::'b__0'(int32) + IL_0025: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_002a: dup + IL_002b: stloc.3 + IL_002c: stfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c__DisplayClass9_0'::'<>9__0' + IL_0031: ldloc.3 + IL_0032: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0037: nop + IL_0038: nop + IL_0039: ldloc.2 + IL_003a: ldc.i4.1 + IL_003b: add + IL_003c: stloc.2 + IL_003d: ldloc.2 + IL_003e: ldc.i4.s 10 + IL_0040: clt + IL_0042: stloc.s V_4 + IL_0044: ldloc.s V_4 + IL_0046: brtrue.s IL_0011 + + IL_0048: ldloc.1 + IL_0049: stloc.s V_5 + IL_004b: br.s IL_004d + + IL_004d: ldloc.s V_5 + IL_004f: ret + } // end of method DelegateConstruction::AnonymousMethodStoreOutsideLoop + + .method public hidebysig static class [mscorlib]System.Action + StaticAnonymousMethodNoClosure() cil managed + { + // Code size 37 (0x25) + .maxstack 2 + .locals init (class [mscorlib]System.Action V_0) + IL_0000: nop + IL_0001: ldsfld class [mscorlib]System.Action DelegateConstruction/'<>c'::'<>9__10_0' + IL_0006: dup + IL_0007: brtrue.s IL_0020 + + IL_0009: pop + IL_000a: ldsfld class DelegateConstruction/'<>c' DelegateConstruction/'<>c'::'<>9' + IL_000f: ldftn instance void DelegateConstruction/'<>c'::'b__10_0'() + IL_0015: newobj instance void [mscorlib]System.Action::.ctor(object, + native int) + IL_001a: dup + IL_001b: stsfld class [mscorlib]System.Action DelegateConstruction/'<>c'::'<>9__10_0' + IL_0020: stloc.0 + IL_0021: br.s IL_0023 + + IL_0023: ldloc.0 + IL_0024: ret + } // end of method DelegateConstruction::StaticAnonymousMethodNoClosure + + .method public hidebysig static void NameConflict() cil managed + { + // Code size 97 (0x61) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + class DelegateConstruction/'<>c__DisplayClass11_0' V_2, + int32 V_3, + bool V_4, + bool V_5) + IL_0000: nop + IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0006: stloc.0 + IL_0007: ldc.i4.0 + IL_0008: stloc.1 + IL_0009: br.s IL_0055 + + IL_000b: newobj instance void DelegateConstruction/'<>c__DisplayClass11_0'::.ctor() + IL_0010: stloc.2 + IL_0011: nop + IL_0012: ldloc.2 + IL_0013: ldc.i4.0 + IL_0014: stfld int32 DelegateConstruction/'<>c__DisplayClass11_0'::i + IL_0019: br.s IL_0040 + + IL_001b: nop + IL_001c: ldloc.0 + IL_001d: ldloc.2 + IL_001e: ldftn instance void DelegateConstruction/'<>c__DisplayClass11_0'::'b__0'(int32) + IL_0024: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0029: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_002e: nop + IL_002f: nop + IL_0030: ldloc.2 + IL_0031: ldfld int32 DelegateConstruction/'<>c__DisplayClass11_0'::i + IL_0036: stloc.3 + IL_0037: ldloc.2 + IL_0038: ldloc.3 + IL_0039: ldc.i4.1 + IL_003a: add + IL_003b: stfld int32 DelegateConstruction/'<>c__DisplayClass11_0'::i + IL_0040: ldloc.2 + IL_0041: ldfld int32 DelegateConstruction/'<>c__DisplayClass11_0'::i + IL_0046: ldc.i4.s 10 + IL_0048: clt + IL_004a: stloc.s V_4 + IL_004c: ldloc.s V_4 + IL_004e: brtrue.s IL_001b + + IL_0050: nop + IL_0051: ldloc.1 + IL_0052: ldc.i4.1 + IL_0053: add + IL_0054: stloc.1 + IL_0055: ldloc.1 + IL_0056: ldc.i4.s 10 + IL_0058: clt + IL_005a: stloc.s V_5 + IL_005c: ldloc.s V_5 + IL_005e: brtrue.s IL_000b + + IL_0060: ret + } // end of method DelegateConstruction::NameConflict + + .method public hidebysig static void NameConflict2(int32 j) cil managed + { + // Code size 65 (0x41) + .maxstack 3 + .locals init (class [mscorlib]System.Collections.Generic.List`1> V_0, + int32 V_1, + bool V_2) + IL_0000: nop + IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1>::.ctor() + IL_0006: stloc.0 + IL_0007: ldc.i4.0 + IL_0008: stloc.1 + IL_0009: br.s IL_0037 + + IL_000b: nop + IL_000c: ldloc.0 + IL_000d: ldsfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c'::'<>9__12_0' + IL_0012: dup + IL_0013: brtrue.s IL_002c + + IL_0015: pop + IL_0016: ldsfld class DelegateConstruction/'<>c' DelegateConstruction/'<>c'::'<>9' + IL_001b: ldftn instance void DelegateConstruction/'<>c'::'b__12_0'(int32) + IL_0021: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_0026: dup + IL_0027: stsfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c'::'<>9__12_0' + IL_002c: callvirt instance void class [mscorlib]System.Collections.Generic.List`1>::Add(!0) + IL_0031: nop + IL_0032: nop + IL_0033: ldloc.1 + IL_0034: ldc.i4.1 + IL_0035: add + IL_0036: stloc.1 + IL_0037: ldloc.1 + IL_0038: ldc.i4.s 10 + IL_003a: clt + IL_003c: stloc.2 + IL_003d: ldloc.2 + IL_003e: brtrue.s IL_000b + + IL_0040: ret + } // end of method DelegateConstruction::NameConflict2 + + .method public hidebysig static class [mscorlib]System.Action`1 + NameConflict3(int32 i) cil managed + { + // Code size 37 (0x25) + .maxstack 2 + .locals init (class [mscorlib]System.Action`1 V_0) + IL_0000: nop + IL_0001: ldsfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c'::'<>9__13_0' + IL_0006: dup + IL_0007: brtrue.s IL_0020 + + IL_0009: pop + IL_000a: ldsfld class DelegateConstruction/'<>c' DelegateConstruction/'<>c'::'<>9' + IL_000f: ldftn instance void DelegateConstruction/'<>c'::'b__13_0'(int32) + IL_0015: newobj instance void class [mscorlib]System.Action`1::.ctor(object, + native int) + IL_001a: dup + IL_001b: stsfld class [mscorlib]System.Action`1 DelegateConstruction/'<>c'::'<>9__13_0' + IL_0020: stloc.0 + IL_0021: br.s IL_0023 + + IL_0023: ldloc.0 + IL_0024: ret + } // end of method DelegateConstruction::NameConflict3 + + .method public hidebysig static class [mscorlib]System.Func`2> + CurriedAddition(int32 a) cil managed + { + // Code size 31 (0x1f) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass14_0' V_0, + class [mscorlib]System.Func`2> V_1) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass14_0'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld int32 DelegateConstruction/'<>c__DisplayClass14_0'::a + IL_000d: nop + IL_000e: ldloc.0 + IL_000f: ldftn instance class [mscorlib]System.Func`2 DelegateConstruction/'<>c__DisplayClass14_0'::'b__0'(int32) + IL_0015: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, + native int) + IL_001a: stloc.1 + IL_001b: br.s IL_001d + + IL_001d: ldloc.1 + IL_001e: ret + } // end of method DelegateConstruction::CurriedAddition + + .method public hidebysig static class [mscorlib]System.Func`2>> + CurriedAddition2(int32 a) cil managed + { + // Code size 31 (0x1f) + .maxstack 2 + .locals init (class DelegateConstruction/'<>c__DisplayClass15_0' V_0, + class [mscorlib]System.Func`2>> V_1) + IL_0000: newobj instance void DelegateConstruction/'<>c__DisplayClass15_0'::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: stfld int32 DelegateConstruction/'<>c__DisplayClass15_0'::a + IL_000d: nop + IL_000e: ldloc.0 + IL_000f: ldftn instance class [mscorlib]System.Func`2> DelegateConstruction/'<>c__DisplayClass15_0'::'b__0'(int32) + IL_0015: newobj instance void class [mscorlib]System.Func`2>>::.ctor(object, + native int) + IL_001a: stloc.1 + IL_001b: br.s IL_001d + + IL_001d: ldloc.1 + IL_001e: ret + } // end of method DelegateConstruction::CurriedAddition2 + +} // end of class DelegateConstruction + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE ***********************