diff --git a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj index 8d0d4d333..da41f0e6d 100644 --- a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj +++ b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj @@ -69,6 +69,8 @@ + + diff --git a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs index 0ed770ce5..3eb4a63c0 100644 --- a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs +++ b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs @@ -123,7 +123,7 @@ namespace ICSharpCode.Decompiler.Tests } [Test] - public void AnonymousTypes([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void AnonymousTypes([ValueSource("defaultOptionsWithMcs")] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Async.cs b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Async.cs index e7c9a17f2..842a90900 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Async.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Async.cs @@ -57,6 +57,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness await AwaitInCatch(Task.FromResult(1), Task.FromResult(2)); await AwaitInFinally(Task.FromResult(2), Task.FromResult(4)); await AwaitInCatchAndFinally(Task.FromResult(3), Task.FromResult(6), Task.FromResult(9)); + Console.WriteLine(await AwaitInFinallyInUsing(Task.FromResult(new StringWriter()), Task.FromResult(6), Task.FromResult(9))); #endif } @@ -264,6 +265,21 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness } Console.WriteLine("End Method"); } + + public async Task AwaitInFinallyInUsing(Task task1, Task task2, Task task3) + { + using (await task1) { + Console.WriteLine("Start using"); + try { + Console.WriteLine("Before return"); + return await task2; + } finally { + Console.WriteLine("Start finally"); + await task3; + Console.WriteLine("End finally"); + } + } + } #endif } } \ No newline at end of file diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.cs index 949ef3f07..748559e25 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.cs @@ -66,7 +66,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty Console.WriteLine(array[1].X); #endif } - +#if !MCS private void JaggedArray() { var array = new[] { @@ -101,7 +101,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty Console.WriteLine(array2.Length); #endif } - +#endif #if CS70 private void AnonymousTypeOutVar() { diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.mcs.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.mcs.il new file mode 100644 index 000000000..65f9824ae --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.mcs.il @@ -0,0 +1,879 @@ + + + + +// Metadata version: v2.0.50727 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 2:0:0:0 +} +.assembly AnonymousTypes.mcs +{ + .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 + bytearray (3C 00 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 // <.P.e.r.m.i.s.s. + 69 00 6F 00 6E 00 53 00 65 00 74 00 20 00 63 00 // i.o.n.S.e.t. .c. + 6C 00 61 00 73 00 73 00 3D 00 22 00 53 00 79 00 // l.a.s.s.=.".S.y. + 73 00 74 00 65 00 6D 00 2E 00 53 00 65 00 63 00 // s.t.e.m...S.e.c. + 75 00 72 00 69 00 74 00 79 00 2E 00 50 00 65 00 // u.r.i.t.y...P.e. + 72 00 6D 00 69 00 73 00 73 00 69 00 6F 00 6E 00 // r.m.i.s.s.i.o.n. + 53 00 65 00 74 00 22 00 0D 00 0A 00 76 00 65 00 // S.e.t.".....v.e. + 72 00 73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 // r.s.i.o.n.=.".1. + 22 00 3E 00 0D 00 0A 00 3C 00 49 00 50 00 65 00 // ".>.....<.I.P.e. + 72 00 6D 00 69 00 73 00 73 00 69 00 6F 00 6E 00 // r.m.i.s.s.i.o.n. + 20 00 63 00 6C 00 61 00 73 00 73 00 3D 00 22 00 // .c.l.a.s.s.=.". + 53 00 79 00 73 00 74 00 65 00 6D 00 2E 00 53 00 // S.y.s.t.e.m...S. + 65 00 63 00 75 00 72 00 69 00 74 00 79 00 2E 00 // e.c.u.r.i.t.y... + 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 69 00 // P.e.r.m.i.s.s.i. + 6F 00 6E 00 73 00 2E 00 53 00 65 00 63 00 75 00 // o.n.s...S.e.c.u. + 72 00 69 00 74 00 79 00 50 00 65 00 72 00 6D 00 // r.i.t.y.P.e.r.m. + 69 00 73 00 73 00 69 00 6F 00 6E 00 2C 00 20 00 // i.s.s.i.o.n.,. . + 6D 00 73 00 63 00 6F 00 72 00 6C 00 69 00 62 00 // m.s.c.o.r.l.i.b. + 2C 00 20 00 56 00 65 00 72 00 73 00 69 00 6F 00 // ,. .V.e.r.s.i.o. + 6E 00 3D 00 32 00 2E 00 30 00 2E 00 30 00 2E 00 // n.=.2...0...0... + 30 00 2C 00 20 00 43 00 75 00 6C 00 74 00 75 00 // 0.,. .C.u.l.t.u. + 72 00 65 00 3D 00 6E 00 65 00 75 00 74 00 72 00 // r.e.=.n.e.u.t.r. + 61 00 6C 00 2C 00 20 00 50 00 75 00 62 00 6C 00 // a.l.,. .P.u.b.l. + 69 00 63 00 4B 00 65 00 79 00 54 00 6F 00 6B 00 // i.c.K.e.y.T.o.k. + 65 00 6E 00 3D 00 62 00 37 00 37 00 61 00 35 00 // e.n.=.b.7.7.a.5. + 63 00 35 00 36 00 31 00 39 00 33 00 34 00 65 00 // c.5.6.1.9.3.4.e. + 30 00 38 00 39 00 22 00 0D 00 0A 00 76 00 65 00 // 0.8.9.".....v.e. + 72 00 73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 // r.s.i.o.n.=.".1. + 22 00 0D 00 0A 00 46 00 6C 00 61 00 67 00 73 00 // ".....F.l.a.g.s. + 3D 00 22 00 53 00 6B 00 69 00 70 00 56 00 65 00 // =.".S.k.i.p.V.e. + 72 00 69 00 66 00 69 00 63 00 61 00 74 00 69 00 // r.i.f.i.c.a.t.i. + 6F 00 6E 00 22 00 2F 00 3E 00 0D 00 0A 00 3C 00 // o.n."./.>.....<. + 2F 00 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 // /.P.e.r.m.i.s.s. + 69 00 6F 00 6E 00 53 00 65 00 74 00 3E 00 0D 00 // i.o.n.S.e.t.>... + 0A 00 ) + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module AnonymousTypes.mcs.dll +.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.AnonymousTypes + extends [mscorlib]System.Object +{ + .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 AnonymousTypes::.ctor + + .method private hidebysig instance void + SimpleTypes() cil managed + { + // Code size 58 (0x3a) + .maxstack 11 + .locals init (class '<>__AnonType0' V_0, + class '<>__AnonType1`1' V_1, + class '<>__AnonType2`2' V_2) + IL_0000: newobj instance void '<>__AnonType0'::.ctor() + IL_0005: stloc.0 + IL_0006: ldc.i4.5 + IL_0007: newobj instance void class '<>__AnonType1`1'::.ctor(!0) + IL_000c: stloc.1 + IL_000d: ldc.i4.5 + IL_000e: ldc.i4.s 10 + IL_0010: newobj instance void class '<>__AnonType2`2'::.ctor(!0, + !1) + IL_0015: stloc.2 + IL_0016: ldloc.0 + IL_0017: call void [mscorlib]System.Console::WriteLine(object) + IL_001c: ldloc.1 + IL_001d: callvirt instance !0 class '<>__AnonType1`1'::get_X() + IL_0022: call void [mscorlib]System.Console::WriteLine(int32) + IL_0027: ldloc.2 + IL_0028: callvirt instance !1 class '<>__AnonType2`2'::get_Y() + IL_002d: ldloc.2 + IL_002e: callvirt instance !0 class '<>__AnonType2`2'::get_X() + IL_0033: add + IL_0034: call void [mscorlib]System.Console::WriteLine(int32) + IL_0039: ret + } // end of method AnonymousTypes::SimpleTypes + + .method private hidebysig instance void + SimpleArray() cil managed + { + // Code size 57 (0x39) + .maxstack 7 + .locals init (class '<>__AnonType3`3'[] V_0) + IL_0000: ldc.i4.2 + IL_0001: newarr class '<>__AnonType3`3' + IL_0006: dup + IL_0007: ldc.i4.0 + IL_0008: ldc.i4.5 + IL_0009: ldc.i4.2 + IL_000a: ldc.i4.m1 + IL_000b: newobj instance void class '<>__AnonType3`3'::.ctor(!0, + !1, + !2) + IL_0010: stelem.ref + IL_0011: dup + IL_0012: ldc.i4.1 + IL_0013: ldc.i4.3 + IL_0014: ldc.i4.6 + IL_0015: ldc.i4.s -6 + IL_0017: newobj instance void class '<>__AnonType3`3'::.ctor(!0, + !1, + !2) + IL_001c: stelem.ref + IL_001d: stloc.0 + IL_001e: ldloc.0 + IL_001f: ldc.i4.0 + IL_0020: ldelem.ref + IL_0021: callvirt instance !0 class '<>__AnonType3`3'::get_X() + IL_0026: call void [mscorlib]System.Console::WriteLine(int32) + IL_002b: ldloc.0 + IL_002c: ldc.i4.1 + IL_002d: ldelem.ref + IL_002e: callvirt instance !0 class '<>__AnonType3`3'::get_X() + IL_0033: call void [mscorlib]System.Console::WriteLine(int32) + IL_0038: ret + } // end of method AnonymousTypes::SimpleArray + + .method private hidebysig static void InlineVarDecl([out] !!T& v, + !!T 'init') cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: stobj !!T + IL_0007: ret + } // end of method AnonymousTypes::InlineVarDecl + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.AnonymousTypes + +.class private auto ansi sealed beforefieldinit '<>__AnonType0' + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // 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 '<>__AnonType0'::.ctor + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 15 (0xf) + .maxstack 3 + .locals init (class '<>__AnonType0' V_0) + IL_0000: ldarg.1 + IL_0001: isinst '<>__AnonType0' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldnull + IL_0009: ceq + IL_000b: ldc.i4.0 + IL_000c: ceq + IL_000e: ret + } // end of method '<>__AnonType0'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 40 (0x28) + .maxstack 4 + .locals init (int32 V_0) + IL_0000: ldc.i4 0x811c9dc5 + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s 13 + IL_000a: shl + IL_000b: add + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: ldloc.0 + IL_000f: ldc.i4.7 + IL_0010: shr + IL_0011: xor + IL_0012: stloc.0 + IL_0013: ldloc.0 + IL_0014: ldloc.0 + IL_0015: ldc.i4.3 + IL_0016: shl + IL_0017: add + IL_0018: stloc.0 + IL_0019: ldloc.0 + IL_001a: ldloc.0 + IL_001b: ldc.i4.s 17 + IL_001d: shr + IL_001e: xor + IL_001f: stloc.0 + IL_0020: ldloc.0 + IL_0021: ldloc.0 + IL_0022: ldc.i4.5 + IL_0023: shl + IL_0024: add + IL_0025: stloc.0 + IL_0026: ldloc.0 + IL_0027: ret + } // end of method '<>__AnonType0'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldstr "{ }" + IL_0005: ret + } // end of method '<>__AnonType0'::ToString + +} // end of class '<>__AnonType0' + +.class private auto ansi sealed beforefieldinit '<>__AnonType1`1'<'__T'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'__T' '' + .method public hidebysig specialname rtspecialname + instance void .ctor(!'__T' X) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>__AnonType1`1'__T'>::'' + IL_000d: ret + } // end of method '<>__AnonType1`1'::.ctor + + .method public hidebysig specialname instance !'__T' + get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType1`1'::get_X + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 39 (0x27) + .maxstack 5 + .locals init (class '<>__AnonType1`1'__T'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>__AnonType1`1'__T'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse IL_0025 + + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0012: ldarg.0 + IL_0013: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_0018: ldloc.0 + IL_0019: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_001e: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_0023: br.s IL_0026 + + IL_0025: ldc.i4.0 + IL_0026: ret + } // end of method '<>__AnonType1`1'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 63 (0x3f) + .maxstack 7 + .locals init (int32 V_0) + IL_0000: ldc.i4 0x811c9dc5 + IL_0005: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_000a: ldarg.0 + IL_000b: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_0010: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_0015: xor + IL_0016: ldc.i4 0x1000193 + IL_001b: mul + IL_001c: stloc.0 + IL_001d: ldloc.0 + IL_001e: ldloc.0 + IL_001f: ldc.i4.s 13 + IL_0021: shl + IL_0022: add + IL_0023: stloc.0 + IL_0024: ldloc.0 + IL_0025: ldloc.0 + IL_0026: ldc.i4.7 + IL_0027: shr + IL_0028: xor + IL_0029: stloc.0 + IL_002a: ldloc.0 + IL_002b: ldloc.0 + IL_002c: ldc.i4.3 + IL_002d: shl + IL_002e: add + IL_002f: stloc.0 + IL_0030: ldloc.0 + IL_0031: ldloc.0 + IL_0032: ldc.i4.s 17 + IL_0034: shr + IL_0035: xor + IL_0036: stloc.0 + IL_0037: ldloc.0 + IL_0038: ldloc.0 + IL_0039: ldc.i4.5 + IL_003a: shl + IL_003b: add + IL_003c: stloc.0 + IL_003d: ldloc.0 + IL_003e: ret + } // end of method '<>__AnonType1`1'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 8 + .locals init (!'__T' V_0) + IL_0000: ldstr "{" + IL_0005: ldstr " X = " + IL_000a: ldarg.0 + IL_000b: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_0010: box !'__T' + IL_0015: brfalse IL_0033 + + IL_001a: ldarg.0 + IL_001b: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_0020: stloc.0 + IL_0021: ldloca.s V_0 + IL_0023: constrained. !'__T' + IL_0029: callvirt instance string [mscorlib]System.Object::ToString() + IL_002e: br IL_0038 + + IL_0033: ldstr "" + IL_0038: ldstr " }" + IL_003d: call string [mscorlib]System.String::Concat(string, + string, + string, + string) + IL_0042: ret + } // end of method '<>__AnonType1`1'::ToString + + .property !'__T' X() + { + .get instance !'__T' '<>__AnonType1`1'::get_X() + } // end of property '<>__AnonType1`1'::X +} // end of class '<>__AnonType1`1' + +.class private auto ansi sealed beforefieldinit '<>__AnonType2`2'<'__T','__T'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'__T' '' + .field private initonly !'__T' '' + .method public hidebysig specialname rtspecialname + instance void .ctor(!'__T' X, + !'__T' Y) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0014: ret + } // end of method '<>__AnonType2`2'::.ctor + + .method public hidebysig specialname instance !'__T' + get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType2`2'::get_X + + .method public hidebysig specialname instance !'__T' + get_Y() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType2`2'::get_Y + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 69 (0x45) + .maxstack 9 + .locals init (class '<>__AnonType2`2'__T',!'__T'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>__AnonType2`2'__T',!'__T'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse IL_0043 + + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0012: ldarg.0 + IL_0013: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0018: ldloc.0 + IL_0019: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_001e: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_0023: brfalse IL_0040 + + IL_0028: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_002d: ldarg.0 + IL_002e: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0033: ldloc.0 + IL_0034: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0039: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_003e: br.s IL_0041 + + IL_0040: ldc.i4.0 + IL_0041: br.s IL_0044 + + IL_0043: ldc.i4.0 + IL_0044: ret + } // end of method '<>__AnonType2`2'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 86 (0x56) + .maxstack 10 + .locals init (int32 V_0) + IL_0000: ldc.i4 0x811c9dc5 + IL_0005: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_000a: ldarg.0 + IL_000b: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0010: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_0015: xor + IL_0016: ldc.i4 0x1000193 + IL_001b: mul + IL_001c: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0021: ldarg.0 + IL_0022: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0027: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_002c: xor + IL_002d: ldc.i4 0x1000193 + IL_0032: mul + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldloc.0 + IL_0036: ldc.i4.s 13 + IL_0038: shl + IL_0039: add + IL_003a: stloc.0 + IL_003b: ldloc.0 + IL_003c: ldloc.0 + IL_003d: ldc.i4.7 + IL_003e: shr + IL_003f: xor + IL_0040: stloc.0 + IL_0041: ldloc.0 + IL_0042: ldloc.0 + IL_0043: ldc.i4.3 + IL_0044: shl + IL_0045: add + IL_0046: stloc.0 + IL_0047: ldloc.0 + IL_0048: ldloc.0 + IL_0049: ldc.i4.s 17 + IL_004b: shr + IL_004c: xor + IL_004d: stloc.0 + IL_004e: ldloc.0 + IL_004f: ldloc.0 + IL_0050: ldc.i4.5 + IL_0051: shl + IL_0052: add + IL_0053: stloc.0 + IL_0054: ldloc.0 + IL_0055: ret + } // end of method '<>__AnonType2`2'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 142 (0x8e) + .maxstack 10 + .locals init (!'__T' V_0, + !'__T' V_1) + IL_0000: ldc.i4.6 + IL_0001: newarr [mscorlib]System.String + IL_0006: dup + IL_0007: ldc.i4.0 + IL_0008: ldstr "{" + IL_000d: stelem.ref + IL_000e: dup + IL_000f: ldc.i4.1 + IL_0010: ldstr " X = " + IL_0015: stelem.ref + IL_0016: dup + IL_0017: ldc.i4.2 + IL_0018: ldarg.0 + IL_0019: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_001e: box !'__T' + IL_0023: brfalse IL_0041 + + IL_0028: ldarg.0 + IL_0029: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_002e: stloc.0 + IL_002f: ldloca.s V_0 + IL_0031: constrained. !'__T' + IL_0037: callvirt instance string [mscorlib]System.Object::ToString() + IL_003c: br IL_0046 + + IL_0041: ldstr "" + IL_0046: stelem.ref + IL_0047: dup + IL_0048: ldc.i4.3 + IL_0049: ldstr ", Y = " + IL_004e: stelem.ref + IL_004f: dup + IL_0050: ldc.i4.4 + IL_0051: ldarg.0 + IL_0052: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0057: box !'__T' + IL_005c: brfalse IL_007a + + IL_0061: ldarg.0 + IL_0062: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0067: stloc.1 + IL_0068: ldloca.s V_1 + IL_006a: constrained. !'__T' + IL_0070: callvirt instance string [mscorlib]System.Object::ToString() + IL_0075: br IL_007f + + IL_007a: ldstr "" + IL_007f: stelem.ref + IL_0080: dup + IL_0081: ldc.i4.5 + IL_0082: ldstr " }" + IL_0087: stelem.ref + IL_0088: call string [mscorlib]System.String::Concat(string[]) + IL_008d: ret + } // end of method '<>__AnonType2`2'::ToString + + .property !'__T' X() + { + .get instance !'__T' '<>__AnonType2`2'::get_X() + } // end of property '<>__AnonType2`2'::X + .property !'__T' Y() + { + .get instance !'__T' '<>__AnonType2`2'::get_Y() + } // end of property '<>__AnonType2`2'::Y +} // end of class '<>__AnonType2`2' + +.class private auto ansi sealed beforefieldinit '<>__AnonType3`3'<'__T','__T','__T'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'__T' '' + .field private initonly !'__T' '' + .field private initonly !'__T' '' + .method public hidebysig specialname rtspecialname + instance void .ctor(!'__T' X, + !'__T' Y, + !'__T' Z) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 28 (0x1c) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0014: ldarg.0 + IL_0015: ldarg.3 + IL_0016: stfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_001b: ret + } // end of method '<>__AnonType3`3'::.ctor + + .method public hidebysig specialname instance !'__T' + get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType3`3'::get_X + + .method public hidebysig specialname instance !'__T' + get_Y() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType3`3'::get_Y + + .method public hidebysig specialname instance !'__T' + get_Z() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType3`3'::get_Z + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 96 (0x60) + .maxstack 12 + .locals init (class '<>__AnonType3`3'__T',!'__T',!'__T'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>__AnonType3`3'__T',!'__T',!'__T'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse IL_005e + + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0012: ldarg.0 + IL_0013: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0018: ldloc.0 + IL_0019: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_001e: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_0023: brfalse IL_005b + + IL_0028: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_002d: ldarg.0 + IL_002e: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0033: ldloc.0 + IL_0034: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0039: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_003e: brfalse IL_005b + + IL_0043: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0048: ldarg.0 + IL_0049: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_004e: ldloc.0 + IL_004f: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0054: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_0059: br.s IL_005c + + IL_005b: ldc.i4.0 + IL_005c: br.s IL_005f + + IL_005e: ldc.i4.0 + IL_005f: ret + } // end of method '<>__AnonType3`3'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 109 (0x6d) + .maxstack 13 + .locals init (int32 V_0) + IL_0000: ldc.i4 0x811c9dc5 + IL_0005: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_000a: ldarg.0 + IL_000b: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0010: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_0015: xor + IL_0016: ldc.i4 0x1000193 + IL_001b: mul + IL_001c: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0021: ldarg.0 + IL_0022: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0027: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_002c: xor + IL_002d: ldc.i4 0x1000193 + IL_0032: mul + IL_0033: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0038: ldarg.0 + IL_0039: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_003e: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_0043: xor + IL_0044: ldc.i4 0x1000193 + IL_0049: mul + IL_004a: stloc.0 + IL_004b: ldloc.0 + IL_004c: ldloc.0 + IL_004d: ldc.i4.s 13 + IL_004f: shl + IL_0050: add + IL_0051: stloc.0 + IL_0052: ldloc.0 + IL_0053: ldloc.0 + IL_0054: ldc.i4.7 + IL_0055: shr + IL_0056: xor + IL_0057: stloc.0 + IL_0058: ldloc.0 + IL_0059: ldloc.0 + IL_005a: ldc.i4.3 + IL_005b: shl + IL_005c: add + IL_005d: stloc.0 + IL_005e: ldloc.0 + IL_005f: ldloc.0 + IL_0060: ldc.i4.s 17 + IL_0062: shr + IL_0063: xor + IL_0064: stloc.0 + IL_0065: ldloc.0 + IL_0066: ldloc.0 + IL_0067: ldc.i4.5 + IL_0068: shl + IL_0069: add + IL_006a: stloc.0 + IL_006b: ldloc.0 + IL_006c: ret + } // end of method '<>__AnonType3`3'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 199 (0xc7) + .maxstack 13 + .locals init (!'__T' V_0, + !'__T' V_1, + !'__T' V_2) + IL_0000: ldc.i4.8 + IL_0001: newarr [mscorlib]System.String + IL_0006: dup + IL_0007: ldc.i4.0 + IL_0008: ldstr "{" + IL_000d: stelem.ref + IL_000e: dup + IL_000f: ldc.i4.1 + IL_0010: ldstr " X = " + IL_0015: stelem.ref + IL_0016: dup + IL_0017: ldc.i4.2 + IL_0018: ldarg.0 + IL_0019: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_001e: box !'__T' + IL_0023: brfalse IL_0041 + + IL_0028: ldarg.0 + IL_0029: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_002e: stloc.0 + IL_002f: ldloca.s V_0 + IL_0031: constrained. !'__T' + IL_0037: callvirt instance string [mscorlib]System.Object::ToString() + IL_003c: br IL_0046 + + IL_0041: ldstr "" + IL_0046: stelem.ref + IL_0047: dup + IL_0048: ldc.i4.3 + IL_0049: ldstr ", Y = " + IL_004e: stelem.ref + IL_004f: dup + IL_0050: ldc.i4.4 + IL_0051: ldarg.0 + IL_0052: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0057: box !'__T' + IL_005c: brfalse IL_007a + + IL_0061: ldarg.0 + IL_0062: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0067: stloc.1 + IL_0068: ldloca.s V_1 + IL_006a: constrained. !'__T' + IL_0070: callvirt instance string [mscorlib]System.Object::ToString() + IL_0075: br IL_007f + + IL_007a: ldstr "" + IL_007f: stelem.ref + IL_0080: dup + IL_0081: ldc.i4.5 + IL_0082: ldstr ", Z = " + IL_0087: stelem.ref + IL_0088: dup + IL_0089: ldc.i4.6 + IL_008a: ldarg.0 + IL_008b: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0090: box !'__T' + IL_0095: brfalse IL_00b3 + + IL_009a: ldarg.0 + IL_009b: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_00a0: stloc.2 + IL_00a1: ldloca.s V_2 + IL_00a3: constrained. !'__T' + IL_00a9: callvirt instance string [mscorlib]System.Object::ToString() + IL_00ae: br IL_00b8 + + IL_00b3: ldstr "" + IL_00b8: stelem.ref + IL_00b9: dup + IL_00ba: ldc.i4.7 + IL_00bb: ldstr " }" + IL_00c0: stelem.ref + IL_00c1: call string [mscorlib]System.String::Concat(string[]) + IL_00c6: ret + } // end of method '<>__AnonType3`3'::ToString + + .property !'__T' X() + { + .get instance !'__T' '<>__AnonType3`3'::get_X() + } // end of property '<>__AnonType3`3'::X + .property !'__T' Y() + { + .get instance !'__T' '<>__AnonType3`3'::get_Y() + } // end of property '<>__AnonType3`3'::Y + .property !'__T' Z() + { + .get instance !'__T' '<>__AnonType3`3'::get_Z() + } // end of property '<>__AnonType3`3'::Z +} // end of class '<>__AnonType3`3' + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.opt.mcs.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.opt.mcs.il new file mode 100644 index 000000000..8ca32173b --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AnonymousTypes.opt.mcs.il @@ -0,0 +1,879 @@ + + + + +// Metadata version: v2.0.50727 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 2:0:0:0 +} +.assembly AnonymousTypes.opt.mcs +{ + .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 + bytearray (3C 00 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 // <.P.e.r.m.i.s.s. + 69 00 6F 00 6E 00 53 00 65 00 74 00 20 00 63 00 // i.o.n.S.e.t. .c. + 6C 00 61 00 73 00 73 00 3D 00 22 00 53 00 79 00 // l.a.s.s.=.".S.y. + 73 00 74 00 65 00 6D 00 2E 00 53 00 65 00 63 00 // s.t.e.m...S.e.c. + 75 00 72 00 69 00 74 00 79 00 2E 00 50 00 65 00 // u.r.i.t.y...P.e. + 72 00 6D 00 69 00 73 00 73 00 69 00 6F 00 6E 00 // r.m.i.s.s.i.o.n. + 53 00 65 00 74 00 22 00 0D 00 0A 00 76 00 65 00 // S.e.t.".....v.e. + 72 00 73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 // r.s.i.o.n.=.".1. + 22 00 3E 00 0D 00 0A 00 3C 00 49 00 50 00 65 00 // ".>.....<.I.P.e. + 72 00 6D 00 69 00 73 00 73 00 69 00 6F 00 6E 00 // r.m.i.s.s.i.o.n. + 20 00 63 00 6C 00 61 00 73 00 73 00 3D 00 22 00 // .c.l.a.s.s.=.". + 53 00 79 00 73 00 74 00 65 00 6D 00 2E 00 53 00 // S.y.s.t.e.m...S. + 65 00 63 00 75 00 72 00 69 00 74 00 79 00 2E 00 // e.c.u.r.i.t.y... + 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 69 00 // P.e.r.m.i.s.s.i. + 6F 00 6E 00 73 00 2E 00 53 00 65 00 63 00 75 00 // o.n.s...S.e.c.u. + 72 00 69 00 74 00 79 00 50 00 65 00 72 00 6D 00 // r.i.t.y.P.e.r.m. + 69 00 73 00 73 00 69 00 6F 00 6E 00 2C 00 20 00 // i.s.s.i.o.n.,. . + 6D 00 73 00 63 00 6F 00 72 00 6C 00 69 00 62 00 // m.s.c.o.r.l.i.b. + 2C 00 20 00 56 00 65 00 72 00 73 00 69 00 6F 00 // ,. .V.e.r.s.i.o. + 6E 00 3D 00 32 00 2E 00 30 00 2E 00 30 00 2E 00 // n.=.2...0...0... + 30 00 2C 00 20 00 43 00 75 00 6C 00 74 00 75 00 // 0.,. .C.u.l.t.u. + 72 00 65 00 3D 00 6E 00 65 00 75 00 74 00 72 00 // r.e.=.n.e.u.t.r. + 61 00 6C 00 2C 00 20 00 50 00 75 00 62 00 6C 00 // a.l.,. .P.u.b.l. + 69 00 63 00 4B 00 65 00 79 00 54 00 6F 00 6B 00 // i.c.K.e.y.T.o.k. + 65 00 6E 00 3D 00 62 00 37 00 37 00 61 00 35 00 // e.n.=.b.7.7.a.5. + 63 00 35 00 36 00 31 00 39 00 33 00 34 00 65 00 // c.5.6.1.9.3.4.e. + 30 00 38 00 39 00 22 00 0D 00 0A 00 76 00 65 00 // 0.8.9.".....v.e. + 72 00 73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 // r.s.i.o.n.=.".1. + 22 00 0D 00 0A 00 46 00 6C 00 61 00 67 00 73 00 // ".....F.l.a.g.s. + 3D 00 22 00 53 00 6B 00 69 00 70 00 56 00 65 00 // =.".S.k.i.p.V.e. + 72 00 69 00 66 00 69 00 63 00 61 00 74 00 69 00 // r.i.f.i.c.a.t.i. + 6F 00 6E 00 22 00 2F 00 3E 00 0D 00 0A 00 3C 00 // o.n."./.>.....<. + 2F 00 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 // /.P.e.r.m.i.s.s. + 69 00 6F 00 6E 00 53 00 65 00 74 00 3E 00 0D 00 // i.o.n.S.e.t.>... + 0A 00 ) + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module AnonymousTypes.opt.mcs.dll +.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00000001 // ILONLY + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.AnonymousTypes + extends [mscorlib]System.Object +{ + .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 AnonymousTypes::.ctor + + .method private hidebysig instance void + SimpleTypes() cil managed + { + // Code size 58 (0x3a) + .maxstack 11 + .locals init (class '<>__AnonType0' V_0, + class '<>__AnonType1`1' V_1, + class '<>__AnonType2`2' V_2) + IL_0000: newobj instance void '<>__AnonType0'::.ctor() + IL_0005: stloc.0 + IL_0006: ldc.i4.5 + IL_0007: newobj instance void class '<>__AnonType1`1'::.ctor(!0) + IL_000c: stloc.1 + IL_000d: ldc.i4.5 + IL_000e: ldc.i4.s 10 + IL_0010: newobj instance void class '<>__AnonType2`2'::.ctor(!0, + !1) + IL_0015: stloc.2 + IL_0016: ldloc.0 + IL_0017: call void [mscorlib]System.Console::WriteLine(object) + IL_001c: ldloc.1 + IL_001d: callvirt instance !0 class '<>__AnonType1`1'::get_X() + IL_0022: call void [mscorlib]System.Console::WriteLine(int32) + IL_0027: ldloc.2 + IL_0028: callvirt instance !1 class '<>__AnonType2`2'::get_Y() + IL_002d: ldloc.2 + IL_002e: callvirt instance !0 class '<>__AnonType2`2'::get_X() + IL_0033: add + IL_0034: call void [mscorlib]System.Console::WriteLine(int32) + IL_0039: ret + } // end of method AnonymousTypes::SimpleTypes + + .method private hidebysig instance void + SimpleArray() cil managed + { + // Code size 57 (0x39) + .maxstack 7 + .locals init (class '<>__AnonType3`3'[] V_0) + IL_0000: ldc.i4.2 + IL_0001: newarr class '<>__AnonType3`3' + IL_0006: dup + IL_0007: ldc.i4.0 + IL_0008: ldc.i4.5 + IL_0009: ldc.i4.2 + IL_000a: ldc.i4.m1 + IL_000b: newobj instance void class '<>__AnonType3`3'::.ctor(!0, + !1, + !2) + IL_0010: stelem.ref + IL_0011: dup + IL_0012: ldc.i4.1 + IL_0013: ldc.i4.3 + IL_0014: ldc.i4.6 + IL_0015: ldc.i4.s -6 + IL_0017: newobj instance void class '<>__AnonType3`3'::.ctor(!0, + !1, + !2) + IL_001c: stelem.ref + IL_001d: stloc.0 + IL_001e: ldloc.0 + IL_001f: ldc.i4.0 + IL_0020: ldelem.ref + IL_0021: callvirt instance !0 class '<>__AnonType3`3'::get_X() + IL_0026: call void [mscorlib]System.Console::WriteLine(int32) + IL_002b: ldloc.0 + IL_002c: ldc.i4.1 + IL_002d: ldelem.ref + IL_002e: callvirt instance !0 class '<>__AnonType3`3'::get_X() + IL_0033: call void [mscorlib]System.Console::WriteLine(int32) + IL_0038: ret + } // end of method AnonymousTypes::SimpleArray + + .method private hidebysig static void InlineVarDecl([out] !!T& v, + !!T 'init') cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: stobj !!T + IL_0007: ret + } // end of method AnonymousTypes::InlineVarDecl + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.AnonymousTypes + +.class private auto ansi sealed beforefieldinit '<>__AnonType0' + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // 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 '<>__AnonType0'::.ctor + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 15 (0xf) + .maxstack 3 + .locals init (class '<>__AnonType0' V_0) + IL_0000: ldarg.1 + IL_0001: isinst '<>__AnonType0' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldnull + IL_0009: ceq + IL_000b: ldc.i4.0 + IL_000c: ceq + IL_000e: ret + } // end of method '<>__AnonType0'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 40 (0x28) + .maxstack 4 + .locals init (int32 V_0) + IL_0000: ldc.i4 0x811c9dc5 + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s 13 + IL_000a: shl + IL_000b: add + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: ldloc.0 + IL_000f: ldc.i4.7 + IL_0010: shr + IL_0011: xor + IL_0012: stloc.0 + IL_0013: ldloc.0 + IL_0014: ldloc.0 + IL_0015: ldc.i4.3 + IL_0016: shl + IL_0017: add + IL_0018: stloc.0 + IL_0019: ldloc.0 + IL_001a: ldloc.0 + IL_001b: ldc.i4.s 17 + IL_001d: shr + IL_001e: xor + IL_001f: stloc.0 + IL_0020: ldloc.0 + IL_0021: ldloc.0 + IL_0022: ldc.i4.5 + IL_0023: shl + IL_0024: add + IL_0025: stloc.0 + IL_0026: ldloc.0 + IL_0027: ret + } // end of method '<>__AnonType0'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 6 (0x6) + .maxstack 8 + IL_0000: ldstr "{ }" + IL_0005: ret + } // end of method '<>__AnonType0'::ToString + +} // end of class '<>__AnonType0' + +.class private auto ansi sealed beforefieldinit '<>__AnonType1`1'<'__T'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'__T' '' + .method public hidebysig specialname rtspecialname + instance void .ctor(!'__T' X) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 14 (0xe) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>__AnonType1`1'__T'>::'' + IL_000d: ret + } // end of method '<>__AnonType1`1'::.ctor + + .method public hidebysig specialname instance !'__T' + get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType1`1'::get_X + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 39 (0x27) + .maxstack 5 + .locals init (class '<>__AnonType1`1'__T'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>__AnonType1`1'__T'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse IL_0025 + + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0012: ldarg.0 + IL_0013: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_0018: ldloc.0 + IL_0019: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_001e: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_0023: br.s IL_0026 + + IL_0025: ldc.i4.0 + IL_0026: ret + } // end of method '<>__AnonType1`1'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 63 (0x3f) + .maxstack 7 + .locals init (int32 V_0) + IL_0000: ldc.i4 0x811c9dc5 + IL_0005: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_000a: ldarg.0 + IL_000b: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_0010: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_0015: xor + IL_0016: ldc.i4 0x1000193 + IL_001b: mul + IL_001c: stloc.0 + IL_001d: ldloc.0 + IL_001e: ldloc.0 + IL_001f: ldc.i4.s 13 + IL_0021: shl + IL_0022: add + IL_0023: stloc.0 + IL_0024: ldloc.0 + IL_0025: ldloc.0 + IL_0026: ldc.i4.7 + IL_0027: shr + IL_0028: xor + IL_0029: stloc.0 + IL_002a: ldloc.0 + IL_002b: ldloc.0 + IL_002c: ldc.i4.3 + IL_002d: shl + IL_002e: add + IL_002f: stloc.0 + IL_0030: ldloc.0 + IL_0031: ldloc.0 + IL_0032: ldc.i4.s 17 + IL_0034: shr + IL_0035: xor + IL_0036: stloc.0 + IL_0037: ldloc.0 + IL_0038: ldloc.0 + IL_0039: ldc.i4.5 + IL_003a: shl + IL_003b: add + IL_003c: stloc.0 + IL_003d: ldloc.0 + IL_003e: ret + } // end of method '<>__AnonType1`1'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 67 (0x43) + .maxstack 8 + .locals init (!'__T' V_0) + IL_0000: ldstr "{" + IL_0005: ldstr " X = " + IL_000a: ldarg.0 + IL_000b: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_0010: box !'__T' + IL_0015: brfalse IL_0033 + + IL_001a: ldarg.0 + IL_001b: ldfld !0 class '<>__AnonType1`1'__T'>::'' + IL_0020: stloc.0 + IL_0021: ldloca.s V_0 + IL_0023: constrained. !'__T' + IL_0029: callvirt instance string [mscorlib]System.Object::ToString() + IL_002e: br IL_0038 + + IL_0033: ldsfld string [mscorlib]System.String::Empty + IL_0038: ldstr " }" + IL_003d: call string [mscorlib]System.String::Concat(string, + string, + string, + string) + IL_0042: ret + } // end of method '<>__AnonType1`1'::ToString + + .property !'__T' X() + { + .get instance !'__T' '<>__AnonType1`1'::get_X() + } // end of property '<>__AnonType1`1'::X +} // end of class '<>__AnonType1`1' + +.class private auto ansi sealed beforefieldinit '<>__AnonType2`2'<'__T','__T'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'__T' '' + .field private initonly !'__T' '' + .method public hidebysig specialname rtspecialname + instance void .ctor(!'__T' X, + !'__T' Y) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0014: ret + } // end of method '<>__AnonType2`2'::.ctor + + .method public hidebysig specialname instance !'__T' + get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType2`2'::get_X + + .method public hidebysig specialname instance !'__T' + get_Y() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType2`2'::get_Y + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 69 (0x45) + .maxstack 9 + .locals init (class '<>__AnonType2`2'__T',!'__T'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>__AnonType2`2'__T',!'__T'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse IL_0043 + + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0012: ldarg.0 + IL_0013: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0018: ldloc.0 + IL_0019: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_001e: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_0023: brfalse IL_0040 + + IL_0028: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_002d: ldarg.0 + IL_002e: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0033: ldloc.0 + IL_0034: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0039: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_003e: br.s IL_0041 + + IL_0040: ldc.i4.0 + IL_0041: br.s IL_0044 + + IL_0043: ldc.i4.0 + IL_0044: ret + } // end of method '<>__AnonType2`2'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 86 (0x56) + .maxstack 10 + .locals init (int32 V_0) + IL_0000: ldc.i4 0x811c9dc5 + IL_0005: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_000a: ldarg.0 + IL_000b: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0010: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_0015: xor + IL_0016: ldc.i4 0x1000193 + IL_001b: mul + IL_001c: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0021: ldarg.0 + IL_0022: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0027: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_002c: xor + IL_002d: ldc.i4 0x1000193 + IL_0032: mul + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldloc.0 + IL_0036: ldc.i4.s 13 + IL_0038: shl + IL_0039: add + IL_003a: stloc.0 + IL_003b: ldloc.0 + IL_003c: ldloc.0 + IL_003d: ldc.i4.7 + IL_003e: shr + IL_003f: xor + IL_0040: stloc.0 + IL_0041: ldloc.0 + IL_0042: ldloc.0 + IL_0043: ldc.i4.3 + IL_0044: shl + IL_0045: add + IL_0046: stloc.0 + IL_0047: ldloc.0 + IL_0048: ldloc.0 + IL_0049: ldc.i4.s 17 + IL_004b: shr + IL_004c: xor + IL_004d: stloc.0 + IL_004e: ldloc.0 + IL_004f: ldloc.0 + IL_0050: ldc.i4.5 + IL_0051: shl + IL_0052: add + IL_0053: stloc.0 + IL_0054: ldloc.0 + IL_0055: ret + } // end of method '<>__AnonType2`2'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 142 (0x8e) + .maxstack 10 + .locals init (!'__T' V_0, + !'__T' V_1) + IL_0000: ldc.i4.6 + IL_0001: newarr [mscorlib]System.String + IL_0006: dup + IL_0007: ldc.i4.0 + IL_0008: ldstr "{" + IL_000d: stelem.ref + IL_000e: dup + IL_000f: ldc.i4.1 + IL_0010: ldstr " X = " + IL_0015: stelem.ref + IL_0016: dup + IL_0017: ldc.i4.2 + IL_0018: ldarg.0 + IL_0019: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_001e: box !'__T' + IL_0023: brfalse IL_0041 + + IL_0028: ldarg.0 + IL_0029: ldfld !0 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_002e: stloc.0 + IL_002f: ldloca.s V_0 + IL_0031: constrained. !'__T' + IL_0037: callvirt instance string [mscorlib]System.Object::ToString() + IL_003c: br IL_0046 + + IL_0041: ldsfld string [mscorlib]System.String::Empty + IL_0046: stelem.ref + IL_0047: dup + IL_0048: ldc.i4.3 + IL_0049: ldstr ", Y = " + IL_004e: stelem.ref + IL_004f: dup + IL_0050: ldc.i4.4 + IL_0051: ldarg.0 + IL_0052: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0057: box !'__T' + IL_005c: brfalse IL_007a + + IL_0061: ldarg.0 + IL_0062: ldfld !1 class '<>__AnonType2`2'__T',!'__T'>::'' + IL_0067: stloc.1 + IL_0068: ldloca.s V_1 + IL_006a: constrained. !'__T' + IL_0070: callvirt instance string [mscorlib]System.Object::ToString() + IL_0075: br IL_007f + + IL_007a: ldsfld string [mscorlib]System.String::Empty + IL_007f: stelem.ref + IL_0080: dup + IL_0081: ldc.i4.5 + IL_0082: ldstr " }" + IL_0087: stelem.ref + IL_0088: call string [mscorlib]System.String::Concat(string[]) + IL_008d: ret + } // end of method '<>__AnonType2`2'::ToString + + .property !'__T' X() + { + .get instance !'__T' '<>__AnonType2`2'::get_X() + } // end of property '<>__AnonType2`2'::X + .property !'__T' Y() + { + .get instance !'__T' '<>__AnonType2`2'::get_Y() + } // end of property '<>__AnonType2`2'::Y +} // end of class '<>__AnonType2`2' + +.class private auto ansi sealed beforefieldinit '<>__AnonType3`3'<'__T','__T','__T'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'__T' '' + .field private initonly !'__T' '' + .field private initonly !'__T' '' + .method public hidebysig specialname rtspecialname + instance void .ctor(!'__T' X, + !'__T' Y, + !'__T' Z) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 28 (0x1c) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0014: ldarg.0 + IL_0015: ldarg.3 + IL_0016: stfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_001b: ret + } // end of method '<>__AnonType3`3'::.ctor + + .method public hidebysig specialname instance !'__T' + get_X() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType3`3'::get_X + + .method public hidebysig specialname instance !'__T' + get_Y() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType3`3'::get_Y + + .method public hidebysig specialname instance !'__T' + get_Z() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0006: ret + } // end of method '<>__AnonType3`3'::get_Z + + .method public hidebysig virtual instance bool + Equals(object obj) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 96 (0x60) + .maxstack 12 + .locals init (class '<>__AnonType3`3'__T',!'__T',!'__T'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>__AnonType3`3'__T',!'__T',!'__T'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse IL_005e + + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0012: ldarg.0 + IL_0013: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0018: ldloc.0 + IL_0019: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_001e: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_0023: brfalse IL_005b + + IL_0028: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_002d: ldarg.0 + IL_002e: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0033: ldloc.0 + IL_0034: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0039: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_003e: brfalse IL_005b + + IL_0043: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0048: ldarg.0 + IL_0049: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_004e: ldloc.0 + IL_004f: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0054: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::Equals(!0, + !0) + IL_0059: br.s IL_005c + + IL_005b: ldc.i4.0 + IL_005c: br.s IL_005f + + IL_005e: ldc.i4.0 + IL_005f: ret + } // end of method '<>__AnonType3`3'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 109 (0x6d) + .maxstack 13 + .locals init (int32 V_0) + IL_0000: ldc.i4 0x811c9dc5 + IL_0005: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_000a: ldarg.0 + IL_000b: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0010: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_0015: xor + IL_0016: ldc.i4 0x1000193 + IL_001b: mul + IL_001c: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0021: ldarg.0 + IL_0022: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0027: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_002c: xor + IL_002d: ldc.i4 0x1000193 + IL_0032: mul + IL_0033: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::get_Default() + IL_0038: ldarg.0 + IL_0039: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_003e: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1__T'>::GetHashCode(!0) + IL_0043: xor + IL_0044: ldc.i4 0x1000193 + IL_0049: mul + IL_004a: stloc.0 + IL_004b: ldloc.0 + IL_004c: ldloc.0 + IL_004d: ldc.i4.s 13 + IL_004f: shl + IL_0050: add + IL_0051: stloc.0 + IL_0052: ldloc.0 + IL_0053: ldloc.0 + IL_0054: ldc.i4.7 + IL_0055: shr + IL_0056: xor + IL_0057: stloc.0 + IL_0058: ldloc.0 + IL_0059: ldloc.0 + IL_005a: ldc.i4.3 + IL_005b: shl + IL_005c: add + IL_005d: stloc.0 + IL_005e: ldloc.0 + IL_005f: ldloc.0 + IL_0060: ldc.i4.s 17 + IL_0062: shr + IL_0063: xor + IL_0064: stloc.0 + IL_0065: ldloc.0 + IL_0066: ldloc.0 + IL_0067: ldc.i4.5 + IL_0068: shl + IL_0069: add + IL_006a: stloc.0 + IL_006b: ldloc.0 + IL_006c: ret + } // end of method '<>__AnonType3`3'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 199 (0xc7) + .maxstack 13 + .locals init (!'__T' V_0, + !'__T' V_1, + !'__T' V_2) + IL_0000: ldc.i4.8 + IL_0001: newarr [mscorlib]System.String + IL_0006: dup + IL_0007: ldc.i4.0 + IL_0008: ldstr "{" + IL_000d: stelem.ref + IL_000e: dup + IL_000f: ldc.i4.1 + IL_0010: ldstr " X = " + IL_0015: stelem.ref + IL_0016: dup + IL_0017: ldc.i4.2 + IL_0018: ldarg.0 + IL_0019: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_001e: box !'__T' + IL_0023: brfalse IL_0041 + + IL_0028: ldarg.0 + IL_0029: ldfld !0 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_002e: stloc.0 + IL_002f: ldloca.s V_0 + IL_0031: constrained. !'__T' + IL_0037: callvirt instance string [mscorlib]System.Object::ToString() + IL_003c: br IL_0046 + + IL_0041: ldsfld string [mscorlib]System.String::Empty + IL_0046: stelem.ref + IL_0047: dup + IL_0048: ldc.i4.3 + IL_0049: ldstr ", Y = " + IL_004e: stelem.ref + IL_004f: dup + IL_0050: ldc.i4.4 + IL_0051: ldarg.0 + IL_0052: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0057: box !'__T' + IL_005c: brfalse IL_007a + + IL_0061: ldarg.0 + IL_0062: ldfld !1 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0067: stloc.1 + IL_0068: ldloca.s V_1 + IL_006a: constrained. !'__T' + IL_0070: callvirt instance string [mscorlib]System.Object::ToString() + IL_0075: br IL_007f + + IL_007a: ldsfld string [mscorlib]System.String::Empty + IL_007f: stelem.ref + IL_0080: dup + IL_0081: ldc.i4.5 + IL_0082: ldstr ", Z = " + IL_0087: stelem.ref + IL_0088: dup + IL_0089: ldc.i4.6 + IL_008a: ldarg.0 + IL_008b: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_0090: box !'__T' + IL_0095: brfalse IL_00b3 + + IL_009a: ldarg.0 + IL_009b: ldfld !2 class '<>__AnonType3`3'__T',!'__T',!'__T'>::'' + IL_00a0: stloc.2 + IL_00a1: ldloca.s V_2 + IL_00a3: constrained. !'__T' + IL_00a9: callvirt instance string [mscorlib]System.Object::ToString() + IL_00ae: br IL_00b8 + + IL_00b3: ldsfld string [mscorlib]System.String::Empty + IL_00b8: stelem.ref + IL_00b9: dup + IL_00ba: ldc.i4.7 + IL_00bb: ldstr " }" + IL_00c0: stelem.ref + IL_00c1: call string [mscorlib]System.String::Concat(string[]) + IL_00c6: ret + } // end of method '<>__AnonType3`3'::ToString + + .property !'__T' X() + { + .get instance !'__T' '<>__AnonType3`3'::get_X() + } // end of property '<>__AnonType3`3'::X + .property !'__T' Y() + { + .get instance !'__T' '<>__AnonType3`3'::get_Y() + } // end of property '<>__AnonType3`3'::Y + .property !'__T' Z() + { + .get instance !'__T' '<>__AnonType3`3'::get_Z() + } // end of property '<>__AnonType3`3'::Z +} // end of class '<>__AnonType3`3' + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.cs index 8b7326e16..ebcf87829 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.cs @@ -19,11 +19,24 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty { public class QueryExpressions { + public class HbmParam + { + public string Name { + get; + set; + } + public string[] Text { + get; + set; + } + } + public class Customer { public int CustomerID; @@ -127,6 +140,19 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty select b + c; } + public object HibernateApplyGeneratorQuery() + { + return (from pi in customers.GetType().GetProperties() + let pname = pi.Name + let pvalue = pi.GetValue(customers, null) + select new HbmParam { + Name = pname, + Text = new string[1] { + (pvalue == null) ? "null" : pvalue.ToString() + } + }).ToArray(); + } + public object Join() { return from c in customers diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.il index df228fd92..a73a6d0ea 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.il @@ -1,6 +1,4 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 -// Copyright (c) Microsoft Corporation. All rights reserved. @@ -15,26 +13,24 @@ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 4:0:0:0 } -.assembly '3sjlbjwy' +.assembly QueryExpressions { .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. - .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.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 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 '3sjlbjwy.dll' -// MVID: {6FCE06BA-3F4A-453E-A9A7-0186431125F1} +.module QueryExpressions.dll .custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) .imagebase 0x10000000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x04290000 // =============== CLASS MEMBERS DECLARATION =================== @@ -42,6 +38,91 @@ .class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions extends [mscorlib]System.Object { + .class auto ansi nested public beforefieldinit HbmParam + extends [mscorlib]System.Object + { + .field private string 'k__BackingField' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string[] 'k__BackingField' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .method public hidebysig specialname + instance string get_Name() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 11 (0xb) + .maxstack 1 + .locals init (string V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method HbmParam::get_Name + + .method public hidebysig specialname + instance void set_Name(string 'value') 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: ldarg.1 + IL_0002: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0007: ret + } // end of method HbmParam::set_Name + + .method public hidebysig specialname + instance string[] get_Text() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 11 (0xb) + .maxstack 1 + .locals init (string[] V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method HbmParam::get_Text + + .method public hidebysig specialname + instance void set_Text(string[] 'value') 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: ldarg.1 + IL_0002: stfld string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0007: ret + } // end of method HbmParam::set_Text + + .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 HbmParam::.ctor + + .property instance string Name() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::get_Name() + .set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Name(string) + } // end of property HbmParam::Name + .property instance string[] Text() + { + .get instance string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::get_Text() + .set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Text(string[]) + } // end of property HbmParam::Text + } // end of class HbmParam + .class auto ansi nested public beforefieldinit Customer extends [mscorlib]System.Object { @@ -152,41 +233,45 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .field private static class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> 'CS$<>9__CachedAnonymousMethodDelegate3b' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate40' + .field private static class [mscorlib]System.Func`2f__AnonymousTypea`2'> 'CS$<>9__CachedAnonymousMethodDelegate42' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate41' + .field private static class [mscorlib]System.Func`2f__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> 'CS$<>9__CachedAnonymousMethodDelegate43' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`3f__AnonymousTypea`3'> 'CS$<>9__CachedAnonymousMethodDelegate42' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate48' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate4b' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate49' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate4c' + .field private static class [mscorlib]System.Func`3f__AnonymousTypec`3'> 'CS$<>9__CachedAnonymousMethodDelegate4a' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`3,class '<>f__AnonymousTypeb`2'>> 'CS$<>9__CachedAnonymousMethodDelegate4d' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate53' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2f__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>> 'CS$<>9__CachedAnonymousMethodDelegate4e' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate54' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,bool> 'CS$<>9__CachedAnonymousMethodDelegate4f' + .field private static class [mscorlib]System.Func`3,class '<>f__AnonymousTyped`2'>> 'CS$<>9__CachedAnonymousMethodDelegate55' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'> 'CS$<>9__CachedAnonymousMethodDelegate50' + .field private static class [mscorlib]System.Func`2f__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>> 'CS$<>9__CachedAnonymousMethodDelegate56' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate53' + .field private static class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,bool> 'CS$<>9__CachedAnonymousMethodDelegate57' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate54' + .field private static class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'> 'CS$<>9__CachedAnonymousMethodDelegate58' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate57' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate5b' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate58' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate5c' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate5a' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate5f' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate5d' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate60' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2,class '<>f__AnonymousTypee`2'> 'CS$<>9__CachedAnonymousMethodDelegate5e' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate62' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate61' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate65' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate62' + .field private static class [mscorlib]System.Func`2,class '<>f__AnonymousType10`2'> 'CS$<>9__CachedAnonymousMethodDelegate66' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate69' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate6a' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig instance object MultipleWhere() cil managed @@ -612,6 +697,57 @@ IL_0077: ret } // end of method QueryExpressions::MultipleLet + .method public hidebysig instance object + HibernateApplyGeneratorQuery() cil managed + { + // Code size 116 (0x74) + .maxstack 3 + .locals init (object V_0) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers + IL_0007: callvirt instance class [mscorlib]System.Type [mscorlib]System.Object::GetType() + IL_000c: callvirt instance class [mscorlib]System.Reflection.PropertyInfo[] [mscorlib]System.Type::GetProperties() + IL_0011: ldsfld class [mscorlib]System.Func`2f__AnonymousTypea`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' + IL_0016: brtrue.s IL_002b + + IL_0018: ldnull + IL_0019: ldftn class '<>f__AnonymousTypea`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__3f'(class [mscorlib]System.Reflection.PropertyInfo) + IL_001f: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypea`2'>::.ctor(object, + native int) + IL_0024: stsfld class [mscorlib]System.Func`2f__AnonymousTypea`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' + IL_0029: br.s IL_002b + + IL_002b: ldsfld class [mscorlib]System.Func`2f__AnonymousTypea`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' + IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypea`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_0035: ldarg.0 + IL_0036: ldftn instance class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__40'(class '<>f__AnonymousTypea`2') + IL_003c: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypea`2',class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>>::.ctor(object, + native int) + IL_0041: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypea`2',class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_0046: ldsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate43' + IL_004b: brtrue.s IL_0060 + + IL_004d: ldnull + IL_004e: ldftn class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__41'(class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>) + IL_0054: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam>::.ctor(object, + native int) + IL_0059: stsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate43' + IL_005e: br.s IL_0060 + + IL_0060: ldsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate43' + IL_0065: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_006a: call !!0[] [System.Core]System.Linq.Enumerable::ToArray(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_006f: stloc.0 + IL_0070: br.s IL_0072 + + IL_0072: ldloc.0 + IL_0073: ret + } // end of method QueryExpressions::HibernateApplyGeneratorQuery + .method public hidebysig instance object Join() cil managed { @@ -623,41 +759,41 @@ IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0007: ldarg.0 IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_000d: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate40' + IL_000d: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate48' IL_0012: brtrue.s IL_0027 IL_0014: ldnull - IL_0015: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__3d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0015: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__45'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate40' + IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate48' IL_0025: br.s IL_0027 - IL_0027: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate40' - IL_002c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate41' + IL_0027: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate48' + IL_002c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate49' IL_0031: brtrue.s IL_0046 IL_0033: ldnull - IL_0034: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__3e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0034: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__46'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_003a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_003f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate41' + IL_003f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate49' IL_0044: br.s IL_0046 - IL_0046: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate41' - IL_004b: ldsfld class [mscorlib]System.Func`3f__AnonymousTypea`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' + IL_0046: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate49' + IL_004b: ldsfld class [mscorlib]System.Func`3f__AnonymousTypec`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4a' IL_0050: brtrue.s IL_0065 IL_0052: ldnull - IL_0053: ldftn class '<>f__AnonymousTypea`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__3f'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0053: ldftn class '<>f__AnonymousTypec`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__47'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) - IL_0059: newobj instance void class [mscorlib]System.Func`3f__AnonymousTypea`3'>::.ctor(object, + IL_0059: newobj instance void class [mscorlib]System.Func`3f__AnonymousTypec`3'>::.ctor(object, native int) - IL_005e: stsfld class [mscorlib]System.Func`3f__AnonymousTypea`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' + IL_005e: stsfld class [mscorlib]System.Func`3f__AnonymousTypec`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4a' IL_0063: br.s IL_0065 - IL_0065: ldsfld class [mscorlib]System.Func`3f__AnonymousTypea`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' - IL_006a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Joinf__AnonymousTypea`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0065: ldsfld class [mscorlib]System.Func`3f__AnonymousTypec`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4a' + IL_006a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Joinf__AnonymousTypec`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2, @@ -680,83 +816,83 @@ IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0007: ldarg.0 IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_000d: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4b' + IL_000d: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' IL_0012: brtrue.s IL_0027 IL_0014: ldnull - IL_0015: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__45'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0015: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__4d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4b' + IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' IL_0025: br.s IL_0027 - IL_0027: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4b' - IL_002c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4c' + IL_0027: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' + IL_002c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' IL_0031: brtrue.s IL_0046 IL_0033: ldnull - IL_0034: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__46'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0034: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__4e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_003a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_003f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4c' + IL_003f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' IL_0044: br.s IL_0046 - IL_0046: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4c' - IL_004b: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTypeb`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4d' + IL_0046: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' + IL_004b: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTyped`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate55' IL_0050: brtrue.s IL_0065 IL_0052: ldnull - IL_0053: ldftn class '<>f__AnonymousTypeb`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__47'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0053: ldftn class '<>f__AnonymousTyped`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__4f'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0059: newobj instance void class [mscorlib]System.Func`3,class '<>f__AnonymousTypeb`2'>>::.ctor(object, + IL_0059: newobj instance void class [mscorlib]System.Func`3,class '<>f__AnonymousTyped`2'>>::.ctor(object, native int) - IL_005e: stsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTypeb`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4d' + IL_005e: stsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTyped`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate55' IL_0063: br.s IL_0065 - IL_0065: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTypeb`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4d' - IL_006a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::GroupJoinf__AnonymousTypeb`2'>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0065: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTyped`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate55' + IL_006a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::GroupJoinf__AnonymousTyped`2'>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2, class [mscorlib]System.Func`3,!!3>) - IL_006f: ldsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4e' + IL_006f: ldsfld class [mscorlib]System.Func`2f__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate56' IL_0074: brtrue.s IL_0089 IL_0076: ldnull - IL_0077: ldftn class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__48'(class '<>f__AnonymousTypeb`2'>) - IL_007d: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>>::.ctor(object, + IL_0077: ldftn class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__50'(class '<>f__AnonymousTyped`2'>) + IL_007d: newobj instance void class [mscorlib]System.Func`2f__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>>::.ctor(object, native int) - IL_0082: stsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4e' + IL_0082: stsfld class [mscorlib]System.Func`2f__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate56' IL_0087: br.s IL_0089 - IL_0089: ldsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4e' - IL_008e: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0089: ldsfld class [mscorlib]System.Func`2f__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate56' + IL_008e: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_0093: ldsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4f' + IL_0093: ldsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' IL_0098: brtrue.s IL_00ad IL_009a: ldnull - IL_009b: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__49'(class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>) - IL_00a1: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,bool>::.ctor(object, + IL_009b: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__51'(class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>) + IL_00a1: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,bool>::.ctor(object, native int) - IL_00a6: stsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4f' + IL_00a6: stsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' IL_00ab: br.s IL_00ad - IL_00ad: ldsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4f' - IL_00b2: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Wheref__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_00ad: ldsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' + IL_00b2: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Wheref__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_00b7: ldsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate50' + IL_00b7: ldsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' IL_00bc: brtrue.s IL_00d1 IL_00be: ldnull - IL_00bf: ldftn class '<>f__AnonymousTyped`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__4a'(class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>) - IL_00c5: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'>::.ctor(object, + IL_00bf: ldftn class '<>f__AnonymousTypef`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__52'(class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>) + IL_00c5: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'>::.ctor(object, native int) - IL_00ca: stsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate50' + IL_00ca: stsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' IL_00cf: br.s IL_00d1 - IL_00d1: ldsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate50' - IL_00d6: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_00d1: ldsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' + IL_00d6: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_00db: stloc.0 IL_00dc: br.s IL_00de @@ -774,30 +910,30 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' + IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5b' IL_000c: brtrue.s IL_0021 IL_000e: ldnull - IL_000f: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__51'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_000f: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__59'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0015: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' + IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5b' IL_001f: br.s IL_0021 - IL_0021: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' + IL_0021: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5b' IL_0026: call class [System.Core]System.Linq.IOrderedEnumerable`1 [System.Core]System.Linq.Enumerable::OrderBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' + IL_002b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5c' IL_0030: brtrue.s IL_0045 IL_0032: ldnull - IL_0033: ldftn valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__52'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0033: ldftn valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5a'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0039: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_003e: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' + IL_003e: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5c' IL_0043: br.s IL_0045 - IL_0045: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' + IL_0045: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5c' IL_004a: call class [System.Core]System.Linq.IOrderedEnumerable`1 [System.Core]System.Linq.Enumerable::ThenByDescending(class [System.Core]System.Linq.IOrderedEnumerable`1, class [mscorlib]System.Func`2) IL_004f: stloc.0 @@ -816,28 +952,28 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' + IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5f' IL_000c: brtrue.s IL_0021 IL_000e: ldnull - IL_000f: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__55'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_000f: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0015: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' + IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5f' IL_001f: br.s IL_0021 - IL_0021: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' - IL_0026: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' + IL_0021: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5f' + IL_0026: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate60' IL_002b: brtrue.s IL_0040 IL_002d: ldnull - IL_002e: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__56'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_002e: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0034: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0039: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' + IL_0039: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate60' IL_003e: br.s IL_0040 - IL_0040: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' + IL_0040: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate60' IL_0045: call class [mscorlib]System.Collections.Generic.IEnumerable`1> [System.Core]System.Linq.Enumerable::GroupBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2) @@ -858,17 +994,17 @@ IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0007: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Cast(class [mscorlib]System.Collections.IEnumerable) - IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5a' + IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' IL_0011: brtrue.s IL_0026 IL_0013: ldnull - IL_0014: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__59'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__61'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_001f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5a' + IL_001f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' IL_0024: br.s IL_0026 - IL_0026: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5a' + IL_0026: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' IL_002b: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0030: stloc.0 @@ -887,32 +1023,32 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5d' + IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate65' IL_000c: brtrue.s IL_0021 IL_000e: ldnull - IL_000f: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5b'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_000f: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__63'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0015: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5d' + IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate65' IL_001f: br.s IL_0021 - IL_0021: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5d' + IL_0021: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate65' IL_0026: call class [mscorlib]System.Collections.Generic.IEnumerable`1> [System.Core]System.Linq.Enumerable::GroupBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002b: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousTypee`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5e' + IL_002b: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType10`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate66' IL_0030: brtrue.s IL_0045 IL_0032: ldnull - IL_0033: ldftn class '<>f__AnonymousTypee`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5c'(class [System.Core]System.Linq.IGrouping`2) - IL_0039: newobj instance void class [mscorlib]System.Func`2,class '<>f__AnonymousTypee`2'>::.ctor(object, - native int) - IL_003e: stsfld class [mscorlib]System.Func`2,class '<>f__AnonymousTypee`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5e' + IL_0033: ldftn class '<>f__AnonymousType10`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__64'(class [System.Core]System.Linq.IGrouping`2) + IL_0039: newobj instance void class [mscorlib]System.Func`2,class '<>f__AnonymousType10`2'>::.ctor(object, + native int) + IL_003e: stsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType10`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate66' IL_0043: br.s IL_0045 - IL_0045: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousTypee`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5e' - IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select,class '<>f__AnonymousTypee`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, - class [mscorlib]System.Func`2) + IL_0045: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType10`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate66' + IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select,class '<>f__AnonymousType10`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) IL_004f: stloc.0 IL_0050: br.s IL_0052 @@ -928,30 +1064,30 @@ .locals init (object V_0) IL_0000: nop IL_0001: ldarg.1 - IL_0002: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate61' + IL_0002: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate69' IL_0007: brtrue.s IL_001c IL_0009: ldnull - IL_000a: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5f'(bool) + IL_000a: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__67'(bool) IL_0010: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0015: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate61' + IL_0015: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate69' IL_001a: br.s IL_001c - IL_001c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate61' + IL_001c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate69' IL_0021: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_0026: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' + IL_0026: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate6a' IL_002b: brtrue.s IL_0040 IL_002d: ldnull - IL_002e: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__60'(bool) + IL_002e: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__68'(bool) IL_0034: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0039: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' + IL_0039: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate6a' IL_003e: br.s IL_0040 - IL_0040: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' + IL_0040: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate6a' IL_0045: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_004a: stloc.0 @@ -970,23 +1106,23 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldnull - IL_0003: ldftn class '<>f__AnonymousTypef`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__64'(!!0) - IL_0009: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypef`2'>::.ctor(object, - native int) - IL_000e: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousTypef`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, - class [mscorlib]System.Func`2) + IL_0003: ldftn class '<>f__AnonymousType11`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__6c'(!!0) + IL_0009: newobj instance void class [mscorlib]System.Func`2f__AnonymousType11`2'>::.ctor(object, + native int) + IL_000e: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType11`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + class [mscorlib]System.Func`2) IL_0013: ldnull - IL_0014: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__65'(class '<>f__AnonymousTypef`2') - IL_001a: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypef`2',bool>::.ctor(object, - native int) - IL_001f: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Wheref__AnonymousTypef`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, - class [mscorlib]System.Func`2) + IL_0014: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__6d'(class '<>f__AnonymousType11`2') + IL_001a: newobj instance void class [mscorlib]System.Func`2f__AnonymousType11`2',bool>::.ctor(object, + native int) + IL_001f: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Wheref__AnonymousType11`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + class [mscorlib]System.Func`2) IL_0024: ldnull - IL_0025: ldftn !!1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__66'(class '<>f__AnonymousTypef`2') - IL_002b: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypef`2',!!TB>::.ctor(object, - native int) - IL_0030: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousTypef`2',!!1>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, - class [mscorlib]System.Func`2) + IL_0025: ldftn !!1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__6e'(class '<>f__AnonymousType11`2') + IL_002b: newobj instance void class [mscorlib]System.Func`2f__AnonymousType11`2',!!TB>::.ctor(object, + native int) + IL_0030: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType11`2',!!1>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + class [mscorlib]System.Func`2) IL_0035: stloc.0 IL_0036: br.s IL_0038 @@ -1515,8 +1651,97 @@ IL_001a: ret } // end of method QueryExpressions::'b__38' + .method private hidebysig static class '<>f__AnonymousTypea`2' + 'b__3f'(class [mscorlib]System.Reflection.PropertyInfo pi) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 17 (0x11) + .maxstack 2 + .locals init (class '<>f__AnonymousTypea`2' V_0) + IL_0000: ldarg.0 + IL_0001: ldarg.0 + IL_0002: callvirt instance string [mscorlib]System.Reflection.MemberInfo::get_Name() + IL_0007: newobj instance void class '<>f__AnonymousTypea`2'::.ctor(!0, + !1) + IL_000c: stloc.0 + IL_000d: br.s IL_000f + + IL_000f: ldloc.0 + IL_0010: ret + } // end of method QueryExpressions::'b__3f' + + .method private hidebysig instance class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object> + 'b__40'(class '<>f__AnonymousTypea`2' '<>h__TransparentIdentifier3c') cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 29 (0x1d) + .maxstack 4 + .locals init (class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object> V_0) + IL_0000: ldarg.1 + IL_0001: ldarg.1 + IL_0002: callvirt instance !0 class '<>f__AnonymousTypea`2'::get_pi() + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers + IL_000d: ldnull + IL_000e: callvirt instance object [mscorlib]System.Reflection.PropertyInfo::GetValue(object, + object[]) + IL_0013: newobj instance void class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>::.ctor(!0, + !1) + IL_0018: stloc.0 + IL_0019: br.s IL_001b + + IL_001b: ldloc.0 + IL_001c: ret + } // end of method QueryExpressions::'b__40' + + .method private hidebysig static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam + 'b__41'(class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object> '<>h__TransparentIdentifier3d') cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 75 (0x4b) + .maxstack 4 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam V_0, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam V_1, + string[] V_2) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: callvirt instance !0 class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>::'get_<>h__TransparentIdentifier3c'() + IL_000d: callvirt instance !1 class '<>f__AnonymousTypea`2'::get_pname() + IL_0012: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Name(string) + IL_0017: nop + IL_0018: ldloc.0 + IL_0019: ldc.i4.1 + IL_001a: newarr [mscorlib]System.String + IL_001f: stloc.2 + IL_0020: ldloc.2 + IL_0021: ldc.i4.0 + IL_0022: ldarg.0 + IL_0023: callvirt instance !1 class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>::get_pvalue() + IL_0028: brfalse.s IL_0037 + + IL_002a: ldarg.0 + IL_002b: callvirt instance !1 class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>::get_pvalue() + IL_0030: callvirt instance string [mscorlib]System.Object::ToString() + IL_0035: br.s IL_003c + + IL_0037: ldstr "null" + IL_003c: nop + IL_003d: stelem.ref + IL_003e: ldloc.2 + IL_003f: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Text(string[]) + IL_0044: nop + IL_0045: ldloc.0 + IL_0046: stloc.1 + IL_0047: br.s IL_0049 + + IL_0049: ldloc.1 + IL_004a: ret + } // end of method QueryExpressions::'b__41' + .method private hidebysig static int32 - 'b__3d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__45'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) @@ -1529,10 +1754,10 @@ IL_0009: ldloc.0 IL_000a: ret - } // end of method QueryExpressions::'b__3d' + } // end of method QueryExpressions::'b__45' .method private hidebysig static int32 - 'b__3e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__46'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) @@ -1545,23 +1770,23 @@ IL_0009: ldloc.0 IL_000a: ret - } // end of method QueryExpressions::'b__3e' + } // end of method QueryExpressions::'b__46' - .method private hidebysig static class '<>f__AnonymousTypea`3' - 'b__3f'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + .method private hidebysig static class '<>f__AnonymousTypec`3' + 'b__47'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 28 (0x1c) .maxstack 3 - .locals init (class '<>f__AnonymousTypea`3' V_0) + .locals init (class '<>f__AnonymousTypec`3' V_0) IL_0000: ldarg.0 IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_0006: ldarg.1 IL_0007: ldfld valuetype [mscorlib]System.DateTime ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::OrderDate IL_000c: ldarg.1 IL_000d: ldfld valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Total - IL_0012: newobj instance void class '<>f__AnonymousTypea`3'::.ctor(!0, + IL_0012: newobj instance void class '<>f__AnonymousTypec`3'::.ctor(!0, !1, !2) IL_0017: stloc.0 @@ -1569,10 +1794,10 @@ IL_001a: ldloc.0 IL_001b: ret - } // end of method QueryExpressions::'b__3f' + } // end of method QueryExpressions::'b__47' .method private hidebysig static int32 - 'b__45'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__4d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) @@ -1585,10 +1810,10 @@ IL_0009: ldloc.0 IL_000a: ret - } // end of method QueryExpressions::'b__45' + } // end of method QueryExpressions::'b__4d' .method private hidebysig static int32 - 'b__46'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__4e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) @@ -1601,55 +1826,55 @@ IL_0009: ldloc.0 IL_000a: ret - } // end of method QueryExpressions::'b__46' + } // end of method QueryExpressions::'b__4e' - .method private hidebysig static class '<>f__AnonymousTypeb`2'> - 'b__47'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + .method private hidebysig static class '<>f__AnonymousTyped`2'> + 'b__4f'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class [mscorlib]System.Collections.Generic.IEnumerable`1 co) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 12 (0xc) .maxstack 2 - .locals init (class '<>f__AnonymousTypeb`2'> V_0) + .locals init (class '<>f__AnonymousTyped`2'> V_0) IL_0000: ldarg.0 IL_0001: ldarg.1 - IL_0002: newobj instance void class '<>f__AnonymousTypeb`2'>::.ctor(!0, + IL_0002: newobj instance void class '<>f__AnonymousTyped`2'>::.ctor(!0, !1) IL_0007: stloc.0 IL_0008: br.s IL_000a IL_000a: ldloc.0 IL_000b: ret - } // end of method QueryExpressions::'b__47' + } // end of method QueryExpressions::'b__4f' - .method private hidebysig static class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32> - 'b__48'(class '<>f__AnonymousTypeb`2'> '<>h__TransparentIdentifier43') cil managed + .method private hidebysig static class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32> + 'b__50'(class '<>f__AnonymousTyped`2'> '<>h__TransparentIdentifier4b') cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 22 (0x16) .maxstack 2 - .locals init (class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32> V_0) + .locals init (class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32> V_0) IL_0000: ldarg.0 IL_0001: ldarg.0 - IL_0002: callvirt instance !1 class '<>f__AnonymousTypeb`2'>::get_co() + IL_0002: callvirt instance !1 class '<>f__AnonymousTyped`2'>::get_co() IL_0007: call int32 [System.Core]System.Linq.Enumerable::Count(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_000c: newobj instance void class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>::.ctor(!0, + IL_000c: newobj instance void class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>::.ctor(!0, !1) IL_0011: stloc.0 IL_0012: br.s IL_0014 IL_0014: ldloc.0 IL_0015: ret - } // end of method QueryExpressions::'b__48' + } // end of method QueryExpressions::'b__50' - .method private hidebysig static bool 'b__49'(class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32> '<>h__TransparentIdentifier44') cil managed + .method private hidebysig static bool 'b__51'(class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32> '<>h__TransparentIdentifier4c') cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 18 (0x12) .maxstack 2 .locals init (bool V_0) IL_0000: ldarg.0 - IL_0001: callvirt instance !1 class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>::get_n() + IL_0001: callvirt instance !1 class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>::get_n() IL_0006: ldc.i4.s 10 IL_0008: clt IL_000a: ldc.i4.0 @@ -1659,32 +1884,32 @@ IL_0010: ldloc.0 IL_0011: ret - } // end of method QueryExpressions::'b__49' + } // end of method QueryExpressions::'b__51' - .method private hidebysig static class '<>f__AnonymousTyped`2' - 'b__4a'(class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32> '<>h__TransparentIdentifier44') cil managed + .method private hidebysig static class '<>f__AnonymousTypef`2' + 'b__52'(class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32> '<>h__TransparentIdentifier4c') cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 32 (0x20) .maxstack 2 - .locals init (class '<>f__AnonymousTyped`2' V_0) + .locals init (class '<>f__AnonymousTypef`2' V_0) IL_0000: ldarg.0 - IL_0001: callvirt instance !0 class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>::'get_<>h__TransparentIdentifier43'() - IL_0006: callvirt instance !0 class '<>f__AnonymousTypeb`2'>::get_c() + IL_0001: callvirt instance !0 class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>::'get_<>h__TransparentIdentifier4b'() + IL_0006: callvirt instance !0 class '<>f__AnonymousTyped`2'>::get_c() IL_000b: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_0010: ldarg.0 - IL_0011: callvirt instance !1 class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>::get_n() - IL_0016: newobj instance void class '<>f__AnonymousTyped`2'::.ctor(!0, + IL_0011: callvirt instance !1 class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>::get_n() + IL_0016: newobj instance void class '<>f__AnonymousTypef`2'::.ctor(!0, !1) IL_001b: stloc.0 IL_001c: br.s IL_001e IL_001e: ldloc.0 IL_001f: ret - } // end of method QueryExpressions::'b__4a' + } // end of method QueryExpressions::'b__52' .method private hidebysig static string - 'b__51'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__59'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 16 (0x10) @@ -1698,10 +1923,10 @@ IL_000e: ldloc.0 IL_000f: ret - } // end of method QueryExpressions::'b__51' + } // end of method QueryExpressions::'b__59' .method private hidebysig static valuetype [mscorlib]System.Decimal - 'b__52'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__5a'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) @@ -1714,10 +1939,10 @@ IL_0009: ldloc.0 IL_000a: ret - } // end of method QueryExpressions::'b__52' + } // end of method QueryExpressions::'b__5a' .method private hidebysig static string - 'b__55'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__5d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) @@ -1730,10 +1955,10 @@ IL_0009: ldloc.0 IL_000a: ret - } // end of method QueryExpressions::'b__55' + } // end of method QueryExpressions::'b__5d' .method private hidebysig static string - 'b__56'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__5e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) @@ -1746,9 +1971,9 @@ IL_0009: ldloc.0 IL_000a: ret - } // end of method QueryExpressions::'b__56' + } // end of method QueryExpressions::'b__5e' - .method private hidebysig static bool 'b__59'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + .method private hidebysig static bool 'b__61'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 21 (0x15) @@ -1764,10 +1989,10 @@ IL_0013: ldloc.0 IL_0014: ret - } // end of method QueryExpressions::'b__59' + } // end of method QueryExpressions::'b__61' .method private hidebysig static string - 'b__5b'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__63'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) @@ -1780,29 +2005,29 @@ IL_0009: ldloc.0 IL_000a: ret - } // end of method QueryExpressions::'b__5b' + } // end of method QueryExpressions::'b__63' - .method private hidebysig static class '<>f__AnonymousTypee`2' - 'b__5c'(class [System.Core]System.Linq.IGrouping`2 g) cil managed + .method private hidebysig static class '<>f__AnonymousType10`2' + 'b__64'(class [System.Core]System.Linq.IGrouping`2 g) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 22 (0x16) .maxstack 2 - .locals init (class '<>f__AnonymousTypee`2' V_0) + .locals init (class '<>f__AnonymousType10`2' V_0) IL_0000: ldarg.0 IL_0001: callvirt instance !0 class [System.Core]System.Linq.IGrouping`2::get_Key() IL_0006: ldarg.0 IL_0007: call int32 [System.Core]System.Linq.Enumerable::Count(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_000c: newobj instance void class '<>f__AnonymousTypee`2'::.ctor(!0, - !1) + IL_000c: newobj instance void class '<>f__AnonymousType10`2'::.ctor(!0, + !1) IL_0011: stloc.0 IL_0012: br.s IL_0014 IL_0014: ldloc.0 IL_0015: ret - } // end of method QueryExpressions::'b__5c' + } // end of method QueryExpressions::'b__64' - .method private hidebysig static bool 'b__5f'(bool x) cil managed + .method private hidebysig static bool 'b__67'(bool x) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 6 (0x6) @@ -1814,9 +2039,9 @@ IL_0004: ldloc.0 IL_0005: ret - } // end of method QueryExpressions::'b__5f' + } // end of method QueryExpressions::'b__67' - .method private hidebysig static bool 'b__60'(bool x) cil managed + .method private hidebysig static bool 'b__68'(bool x) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 6 (0x6) @@ -1828,37 +2053,37 @@ IL_0004: ldloc.0 IL_0005: ret - } // end of method QueryExpressions::'b__60' + } // end of method QueryExpressions::'b__68' - .method private hidebysig static class '<>f__AnonymousTypef`2' - 'b__64'(!!TA m) cil managed + .method private hidebysig static class '<>f__AnonymousType11`2' + 'b__6c'(!!TA m) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 27 (0x1b) .maxstack 2 - .locals init (class '<>f__AnonymousTypef`2' V_0) + .locals init (class '<>f__AnonymousType11`2' V_0) IL_0000: ldarg.0 IL_0001: ldarg.0 IL_0002: box !!TA IL_0007: isinst !!TB IL_000c: unbox.any !!TB - IL_0011: newobj instance void class '<>f__AnonymousTypef`2'::.ctor(!0, - !1) + IL_0011: newobj instance void class '<>f__AnonymousType11`2'::.ctor(!0, + !1) IL_0016: stloc.0 IL_0017: br.s IL_0019 IL_0019: ldloc.0 IL_001a: ret - } // end of method QueryExpressions::'b__64' + } // end of method QueryExpressions::'b__6c' - .method private hidebysig static bool 'b__65'(class '<>f__AnonymousTypef`2' '<>h__TransparentIdentifier63') cil managed + .method private hidebysig static bool 'b__6d'(class '<>f__AnonymousType11`2' '<>h__TransparentIdentifier6b') cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 22 (0x16) .maxstack 2 .locals init (bool V_0) IL_0000: ldarg.0 - IL_0001: callvirt instance !1 class '<>f__AnonymousTypef`2'::get_t() + IL_0001: callvirt instance !1 class '<>f__AnonymousType11`2'::get_t() IL_0006: box !!TB IL_000b: ldnull IL_000c: ceq @@ -1869,22 +2094,22 @@ IL_0014: ldloc.0 IL_0015: ret - } // end of method QueryExpressions::'b__65' + } // end of method QueryExpressions::'b__6d' - .method private hidebysig static !!TB 'b__66'(class '<>f__AnonymousTypef`2' '<>h__TransparentIdentifier63') cil managed + .method private hidebysig static !!TB 'b__6e'(class '<>f__AnonymousType11`2' '<>h__TransparentIdentifier6b') cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) .maxstack 1 .locals init (!!TB V_0) IL_0000: ldarg.0 - IL_0001: callvirt instance !1 class '<>f__AnonymousTypef`2'::get_t() + IL_0001: callvirt instance !1 class '<>f__AnonymousType11`2'::get_t() IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method QueryExpressions::'b__66' + } // end of method QueryExpressions::'b__6e' } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions @@ -3964,7 +4189,380 @@ } // end of property '<>f__AnonymousType9`2'::c } // end of class '<>f__AnonymousType9`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypea`3'<'j__TPar','j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypea`2'<'j__TPar','j__TPar'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .method public hidebysig specialname rtspecialname + instance void .ctor(!'j__TPar' pi, + !'j__TPar' pname) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ret + } // end of method '<>f__AnonymousTypea`2'::.ctor + + .method public hidebysig specialname instance !'j__TPar' + get_pi() cil managed + { + // Code size 11 (0xb) + .maxstack 1 + .locals init (!'j__TPar' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method '<>f__AnonymousTypea`2'::get_pi + + .method public hidebysig specialname instance !'j__TPar' + get_pname() cil managed + { + // Code size 11 (0xb) + .maxstack 1 + .locals init (!'j__TPar' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method '<>f__AnonymousTypea`2'::get_pname + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 89 (0x59) + .maxstack 2 + .locals init (class [mscorlib]System.Text.StringBuilder V_0, + string V_1) + IL_0000: newobj instance void [mscorlib]System.Text.StringBuilder::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldstr "{ pi = " + IL_000c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_0011: pop + IL_0012: ldloc.0 + IL_0013: ldarg.0 + IL_0014: ldfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0019: box !'j__TPar' + IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) + IL_0023: pop + IL_0024: ldloc.0 + IL_0025: ldstr ", pname = " + IL_002a: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_002f: pop + IL_0030: ldloc.0 + IL_0031: ldarg.0 + IL_0032: ldfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0037: box !'j__TPar' + IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) + IL_0041: pop + IL_0042: ldloc.0 + IL_0043: ldstr " }" + IL_0048: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_004d: pop + IL_004e: ldloc.0 + IL_004f: callvirt instance string [mscorlib]System.Object::ToString() + IL_0054: stloc.1 + IL_0055: br.s IL_0057 + + IL_0057: ldloc.1 + IL_0058: ret + } // end of method '<>f__AnonymousTypea`2'::ToString + + .method public hidebysig virtual instance bool + Equals(object 'value') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 65 (0x41) + .maxstack 3 + .locals init (class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'> V_0, + bool V_1) + IL_0000: ldarg.1 + IL_0001: isinst class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_003a + + IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_000f: ldarg.0 + IL_0010: ldfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0015: ldloc.0 + IL_0016: ldfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0020: brfalse.s IL_003a + + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002d: ldloc.0 + IL_002e: ldfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0038: br.s IL_003b + + IL_003a: ldc.i4.0 + IL_003b: nop + IL_003c: stloc.1 + IL_003d: br.s IL_003f + + IL_003f: ldloc.1 + IL_0040: ret + } // end of method '<>f__AnonymousTypea`2'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 62 (0x3e) + .maxstack 3 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldc.i4 0x62bc9c7e + IL_0005: stloc.0 + IL_0006: ldc.i4 0xa5555529 + IL_000b: ldloc.0 + IL_000c: mul + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0012: ldarg.0 + IL_0013: ldfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_001d: add + IL_001e: stloc.0 + IL_001f: ldc.i4 0xa5555529 + IL_0024: ldloc.0 + IL_0025: mul + IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_002b: ldarg.0 + IL_002c: ldfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_0036: add + IL_0037: stloc.0 + IL_0038: ldloc.0 + IL_0039: stloc.1 + IL_003a: br.s IL_003c + + IL_003c: ldloc.1 + IL_003d: ret + } // end of method '<>f__AnonymousTypea`2'::GetHashCode + + .property instance !'j__TPar' pi() + { + .get instance !'j__TPar' '<>f__AnonymousTypea`2'::get_pi() + } // end of property '<>f__AnonymousTypea`2'::pi + .property instance !'j__TPar' pname() + { + .get instance !'j__TPar' '<>f__AnonymousTypea`2'::get_pname() + } // end of property '<>f__AnonymousTypea`2'::pname +} // end of class '<>f__AnonymousTypea`2' + +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypeb`2'<'<<>h__TransparentIdentifier3c>j__TPar','j__TPar'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'<<>h__TransparentIdentifier3c>j__TPar' '<<>h__TransparentIdentifier3c>i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .method public hidebysig specialname rtspecialname + instance void .ctor(!'<<>h__TransparentIdentifier3c>j__TPar' '<>h__TransparentIdentifier3c', + !'j__TPar' pvalue) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ret + } // end of method '<>f__AnonymousTypeb`2'::.ctor + + .method public hidebysig specialname instance !'<<>h__TransparentIdentifier3c>j__TPar' + 'get_<>h__TransparentIdentifier3c'() cil managed + { + // Code size 11 (0xb) + .maxstack 1 + .locals init (!'<<>h__TransparentIdentifier3c>j__TPar' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method '<>f__AnonymousTypeb`2'::'get_<>h__TransparentIdentifier3c' + + .method public hidebysig specialname instance !'j__TPar' + get_pvalue() cil managed + { + // Code size 11 (0xb) + .maxstack 1 + .locals init (!'j__TPar' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method '<>f__AnonymousTypeb`2'::get_pvalue + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 89 (0x59) + .maxstack 2 + .locals init (class [mscorlib]System.Text.StringBuilder V_0, + string V_1) + IL_0000: newobj instance void [mscorlib]System.Text.StringBuilder::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldstr "{ <>h__TransparentIdentifier3c = " + IL_000c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_0011: pop + IL_0012: ldloc.0 + IL_0013: ldarg.0 + IL_0014: ldfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_0019: box !'<<>h__TransparentIdentifier3c>j__TPar' + IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) + IL_0023: pop + IL_0024: ldloc.0 + IL_0025: ldstr ", pvalue = " + IL_002a: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_002f: pop + IL_0030: ldloc.0 + IL_0031: ldarg.0 + IL_0032: ldfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_0037: box !'j__TPar' + IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) + IL_0041: pop + IL_0042: ldloc.0 + IL_0043: ldstr " }" + IL_0048: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_004d: pop + IL_004e: ldloc.0 + IL_004f: callvirt instance string [mscorlib]System.Object::ToString() + IL_0054: stloc.1 + IL_0055: br.s IL_0057 + + IL_0057: ldloc.1 + IL_0058: ret + } // end of method '<>f__AnonymousTypeb`2'::ToString + + .method public hidebysig virtual instance bool + Equals(object 'value') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 65 (0x41) + .maxstack 3 + .locals init (class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'> V_0, + bool V_1) + IL_0000: ldarg.1 + IL_0001: isinst class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_003a + + IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier3c>j__TPar'>::get_Default() + IL_000f: ldarg.0 + IL_0010: ldfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_0015: ldloc.0 + IL_0016: ldfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier3c>j__TPar'>::Equals(!0, + !0) + IL_0020: brfalse.s IL_003a + + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_002d: ldloc.0 + IL_002e: ldfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0038: br.s IL_003b + + IL_003a: ldc.i4.0 + IL_003b: nop + IL_003c: stloc.1 + IL_003d: br.s IL_003f + + IL_003f: ldloc.1 + IL_0040: ret + } // end of method '<>f__AnonymousTypeb`2'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 62 (0x3e) + .maxstack 3 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldc.i4 0x6aa6e13b + IL_0005: stloc.0 + IL_0006: ldc.i4 0xa5555529 + IL_000b: ldloc.0 + IL_000c: mul + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier3c>j__TPar'>::get_Default() + IL_0012: ldarg.0 + IL_0013: ldfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier3c>j__TPar'>::GetHashCode(!0) + IL_001d: add + IL_001e: stloc.0 + IL_001f: ldc.i4 0xa5555529 + IL_0024: ldloc.0 + IL_0025: mul + IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_002b: ldarg.0 + IL_002c: ldfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_0036: add + IL_0037: stloc.0 + IL_0038: ldloc.0 + IL_0039: stloc.1 + IL_003a: br.s IL_003c + + IL_003c: ldloc.1 + IL_003d: ret + } // end of method '<>f__AnonymousTypeb`2'::GetHashCode + + .property instance !'<<>h__TransparentIdentifier3c>j__TPar' + '<>h__TransparentIdentifier3c'() + { + .get instance !'<<>h__TransparentIdentifier3c>j__TPar' '<>f__AnonymousTypeb`2'::'get_<>h__TransparentIdentifier3c'() + } // end of property '<>f__AnonymousTypeb`2'::'<>h__TransparentIdentifier3c' + .property instance !'j__TPar' pvalue() + { + .get instance !'j__TPar' '<>f__AnonymousTypeb`2'::get_pvalue() + } // end of property '<>f__AnonymousTypeb`2'::pvalue +} // end of class '<>f__AnonymousTypeb`2' + +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypec`3'<'j__TPar','j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -3986,15 +4584,15 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ldarg.0 IL_0015: ldarg.3 - IL_0016: stfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: stfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_001b: ret - } // end of method '<>f__AnonymousTypea`3'::.ctor + } // end of method '<>f__AnonymousTypec`3'::.ctor .method public hidebysig specialname instance !'j__TPar' get_Name() cil managed @@ -4003,13 +4601,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypea`3'::get_Name + } // end of method '<>f__AnonymousTypec`3'::get_Name .method public hidebysig specialname instance !'j__TPar' get_OrderDate() cil managed @@ -4018,13 +4616,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypea`3'::get_OrderDate + } // end of method '<>f__AnonymousTypec`3'::get_OrderDate .method public hidebysig specialname instance !'j__TPar' get_Total() cil managed @@ -4033,13 +4631,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypea`3'::get_Total + } // end of method '<>f__AnonymousTypec`3'::get_Total .method public hidebysig virtual instance string ToString() cil managed @@ -4057,7 +4655,7 @@ IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ldfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0019: box !'j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop @@ -4067,7 +4665,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -4077,7 +4675,7 @@ IL_004d: pop IL_004e: ldloc.0 IL_004f: ldarg.0 - IL_0050: ldfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0050: ldfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0055: box !'j__TPar' IL_005a: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_005f: pop @@ -4092,7 +4690,7 @@ IL_0075: ldloc.1 IL_0076: ret - } // end of method '<>f__AnonymousTypea`3'::ToString + } // end of method '<>f__AnonymousTypec`3'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -4100,37 +4698,37 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 89 (0x59) .maxstack 3 - .locals init (class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'> V_0, + .locals init (class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'> V_0, bool V_1) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0052 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0052 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: brfalse.s IL_0052 IL_003a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_003f: ldarg.0 - IL_0040: ldfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0040: ldfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0045: ldloc.0 - IL_0046: ldfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0046: ldfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_004b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0050: br.s IL_0053 @@ -4142,7 +4740,7 @@ IL_0057: ldloc.1 IL_0058: ret - } // end of method '<>f__AnonymousTypea`3'::Equals + } // end of method '<>f__AnonymousTypec`3'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -4159,7 +4757,7 @@ IL_000c: mul IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0013: ldfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 @@ -4168,7 +4766,7 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 @@ -4177,7 +4775,7 @@ IL_003e: mul IL_003f: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0044: ldarg.0 - IL_0045: ldfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0045: ldfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_004a: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_004f: add IL_0050: stloc.0 @@ -4187,24 +4785,24 @@ IL_0055: ldloc.1 IL_0056: ret - } // end of method '<>f__AnonymousTypea`3'::GetHashCode + } // end of method '<>f__AnonymousTypec`3'::GetHashCode .property instance !'j__TPar' Name() { - .get instance !'j__TPar' '<>f__AnonymousTypea`3'::get_Name() - } // end of property '<>f__AnonymousTypea`3'::Name + .get instance !'j__TPar' '<>f__AnonymousTypec`3'::get_Name() + } // end of property '<>f__AnonymousTypec`3'::Name .property instance !'j__TPar' OrderDate() { - .get instance !'j__TPar' '<>f__AnonymousTypea`3'::get_OrderDate() - } // end of property '<>f__AnonymousTypea`3'::OrderDate + .get instance !'j__TPar' '<>f__AnonymousTypec`3'::get_OrderDate() + } // end of property '<>f__AnonymousTypec`3'::OrderDate .property instance !'j__TPar' Total() { - .get instance !'j__TPar' '<>f__AnonymousTypea`3'::get_Total() - } // end of property '<>f__AnonymousTypea`3'::Total -} // end of class '<>f__AnonymousTypea`3' + .get instance !'j__TPar' '<>f__AnonymousTypec`3'::get_Total() + } // end of property '<>f__AnonymousTypec`3'::Total +} // end of class '<>f__AnonymousTypec`3' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypeb`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTyped`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -4223,12 +4821,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousTypeb`2'::.ctor + } // end of method '<>f__AnonymousTyped`2'::.ctor .method public hidebysig specialname instance !'j__TPar' get_c() cil managed @@ -4237,13 +4835,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypeb`2'::get_c + } // end of method '<>f__AnonymousTyped`2'::get_c .method public hidebysig specialname instance !'j__TPar' get_co() cil managed @@ -4252,13 +4850,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypeb`2'::get_co + } // end of method '<>f__AnonymousTyped`2'::get_co .method public hidebysig virtual instance string ToString() cil managed @@ -4276,7 +4874,7 @@ IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0019: box !'j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop @@ -4286,7 +4884,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -4301,7 +4899,7 @@ IL_0057: ldloc.1 IL_0058: ret - } // end of method '<>f__AnonymousTypeb`2'::ToString + } // end of method '<>f__AnonymousTyped`2'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -4309,28 +4907,28 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 65 (0x41) .maxstack 3 - .locals init (class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'> V_0, + .locals init (class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'> V_0, bool V_1) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_003a IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_003a IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: br.s IL_003b @@ -4342,7 +4940,7 @@ IL_003f: ldloc.1 IL_0040: ret - } // end of method '<>f__AnonymousTypeb`2'::Equals + } // end of method '<>f__AnonymousTyped`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -4359,7 +4957,7 @@ IL_000c: mul IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0013: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 @@ -4368,7 +4966,7 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 @@ -4378,28 +4976,28 @@ IL_003c: ldloc.1 IL_003d: ret - } // end of method '<>f__AnonymousTypeb`2'::GetHashCode + } // end of method '<>f__AnonymousTyped`2'::GetHashCode .property instance !'j__TPar' c() { - .get instance !'j__TPar' '<>f__AnonymousTypeb`2'::get_c() - } // end of property '<>f__AnonymousTypeb`2'::c + .get instance !'j__TPar' '<>f__AnonymousTyped`2'::get_c() + } // end of property '<>f__AnonymousTyped`2'::c .property instance !'j__TPar' co() { - .get instance !'j__TPar' '<>f__AnonymousTypeb`2'::get_co() - } // end of property '<>f__AnonymousTypeb`2'::co -} // end of class '<>f__AnonymousTypeb`2' + .get instance !'j__TPar' '<>f__AnonymousTyped`2'::get_co() + } // end of property '<>f__AnonymousTyped`2'::co +} // end of class '<>f__AnonymousTyped`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypec`2'<'<<>h__TransparentIdentifier43>j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypee`2'<'<<>h__TransparentIdentifier4b>j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private initonly !'<<>h__TransparentIdentifier43>j__TPar' '<<>h__TransparentIdentifier43>i__Field' + .field private initonly !'<<>h__TransparentIdentifier4b>j__TPar' '<<>h__TransparentIdentifier4b>i__Field' .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .field private initonly !'j__TPar' 'i__Field' .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .method public hidebysig specialname rtspecialname - instance void .ctor(!'<<>h__TransparentIdentifier43>j__TPar' '<>h__TransparentIdentifier43', + instance void .ctor(!'<<>h__TransparentIdentifier4b>j__TPar' '<>h__TransparentIdentifier4b', !'j__TPar' n) cil managed { .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) @@ -4409,27 +5007,27 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' + IL_0008: stfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousTypec`2'::.ctor + } // end of method '<>f__AnonymousTypee`2'::.ctor - .method public hidebysig specialname instance !'<<>h__TransparentIdentifier43>j__TPar' - 'get_<>h__TransparentIdentifier43'() cil managed + .method public hidebysig specialname instance !'<<>h__TransparentIdentifier4b>j__TPar' + 'get_<>h__TransparentIdentifier4b'() cil managed { // Code size 11 (0xb) .maxstack 1 - .locals init (!'<<>h__TransparentIdentifier43>j__TPar' V_0) + .locals init (!'<<>h__TransparentIdentifier4b>j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypec`2'::'get_<>h__TransparentIdentifier43' + } // end of method '<>f__AnonymousTypee`2'::'get_<>h__TransparentIdentifier4b' .method public hidebysig specialname instance !'j__TPar' get_n() cil managed @@ -4438,13 +5036,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypec`2'::get_n + } // end of method '<>f__AnonymousTypee`2'::get_n .method public hidebysig virtual instance string ToString() cil managed @@ -4457,13 +5055,13 @@ IL_0000: newobj instance void [mscorlib]System.Text.StringBuilder::.ctor() IL_0005: stloc.0 IL_0006: ldloc.0 - IL_0007: ldstr "{ <>h__TransparentIdentifier43 = " + IL_0007: ldstr "{ <>h__TransparentIdentifier4b = " IL_000c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' - IL_0019: box !'<<>h__TransparentIdentifier43>j__TPar' + IL_0014: ldfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' + IL_0019: box !'<<>h__TransparentIdentifier4b>j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop IL_0024: ldloc.0 @@ -4472,7 +5070,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -4487,7 +5085,7 @@ IL_0057: ldloc.1 IL_0058: ret - } // end of method '<>f__AnonymousTypec`2'::ToString + } // end of method '<>f__AnonymousTypee`2'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -4495,28 +5093,28 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 65 (0x41) .maxstack 3 - .locals init (class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'> V_0, + .locals init (class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'> V_0, bool V_1) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_003a - IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier43>j__TPar'>::get_Default() + IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier4b>j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' - IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier43>j__TPar'>::Equals(!0, + IL_0016: ldfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' + IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier4b>j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_003a IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: br.s IL_003b @@ -4528,7 +5126,7 @@ IL_003f: ldloc.1 IL_0040: ret - } // end of method '<>f__AnonymousTypec`2'::Equals + } // end of method '<>f__AnonymousTypee`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -4538,15 +5136,15 @@ .maxstack 3 .locals init (int32 V_0, int32 V_1) - IL_0000: ldc.i4 0xc3dcc655 + IL_0000: ldc.i4 0x2fe1ff76 IL_0005: stloc.0 IL_0006: ldc.i4 0xa5555529 IL_000b: ldloc.0 IL_000c: mul - IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier43>j__TPar'>::get_Default() + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier4b>j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' - IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier43>j__TPar'>::GetHashCode(!0) + IL_0013: ldfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' + IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier4b>j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 IL_001f: ldc.i4 0xa5555529 @@ -4554,7 +5152,7 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 @@ -4564,20 +5162,20 @@ IL_003c: ldloc.1 IL_003d: ret - } // end of method '<>f__AnonymousTypec`2'::GetHashCode + } // end of method '<>f__AnonymousTypee`2'::GetHashCode - .property instance !'<<>h__TransparentIdentifier43>j__TPar' - '<>h__TransparentIdentifier43'() + .property instance !'<<>h__TransparentIdentifier4b>j__TPar' + '<>h__TransparentIdentifier4b'() { - .get instance !'<<>h__TransparentIdentifier43>j__TPar' '<>f__AnonymousTypec`2'::'get_<>h__TransparentIdentifier43'() - } // end of property '<>f__AnonymousTypec`2'::'<>h__TransparentIdentifier43' + .get instance !'<<>h__TransparentIdentifier4b>j__TPar' '<>f__AnonymousTypee`2'::'get_<>h__TransparentIdentifier4b'() + } // end of property '<>f__AnonymousTypee`2'::'<>h__TransparentIdentifier4b' .property instance !'j__TPar' n() { - .get instance !'j__TPar' '<>f__AnonymousTypec`2'::get_n() - } // end of property '<>f__AnonymousTypec`2'::n -} // end of class '<>f__AnonymousTypec`2' + .get instance !'j__TPar' '<>f__AnonymousTypee`2'::get_n() + } // end of property '<>f__AnonymousTypee`2'::n +} // end of class '<>f__AnonymousTypee`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTyped`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypef`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -4596,12 +5194,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousTyped`2'::.ctor + } // end of method '<>f__AnonymousTypef`2'::.ctor .method public hidebysig specialname instance !'j__TPar' get_Name() cil managed @@ -4610,13 +5208,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTyped`2'::get_Name + } // end of method '<>f__AnonymousTypef`2'::get_Name .method public hidebysig specialname instance !'j__TPar' get_OrderCount() cil managed @@ -4625,13 +5223,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTyped`2'::get_OrderCount + } // end of method '<>f__AnonymousTypef`2'::get_OrderCount .method public hidebysig virtual instance string ToString() cil managed @@ -4649,7 +5247,7 @@ IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0019: box !'j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop @@ -4659,7 +5257,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -4674,7 +5272,7 @@ IL_0057: ldloc.1 IL_0058: ret - } // end of method '<>f__AnonymousTyped`2'::ToString + } // end of method '<>f__AnonymousTypef`2'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -4682,28 +5280,28 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 65 (0x41) .maxstack 3 - .locals init (class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'> V_0, + .locals init (class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'> V_0, bool V_1) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_003a IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_003a IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: br.s IL_003b @@ -4715,7 +5313,7 @@ IL_003f: ldloc.1 IL_0040: ret - } // end of method '<>f__AnonymousTyped`2'::Equals + } // end of method '<>f__AnonymousTypef`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -4732,7 +5330,7 @@ IL_000c: mul IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0013: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 @@ -4741,7 +5339,7 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 @@ -4751,20 +5349,20 @@ IL_003c: ldloc.1 IL_003d: ret - } // end of method '<>f__AnonymousTyped`2'::GetHashCode + } // end of method '<>f__AnonymousTypef`2'::GetHashCode .property instance !'j__TPar' Name() { - .get instance !'j__TPar' '<>f__AnonymousTyped`2'::get_Name() - } // end of property '<>f__AnonymousTyped`2'::Name + .get instance !'j__TPar' '<>f__AnonymousTypef`2'::get_Name() + } // end of property '<>f__AnonymousTypef`2'::Name .property instance !'j__TPar' OrderCount() { - .get instance !'j__TPar' '<>f__AnonymousTyped`2'::get_OrderCount() - } // end of property '<>f__AnonymousTyped`2'::OrderCount -} // end of class '<>f__AnonymousTyped`2' + .get instance !'j__TPar' '<>f__AnonymousTypef`2'::get_OrderCount() + } // end of property '<>f__AnonymousTypef`2'::OrderCount +} // end of class '<>f__AnonymousTypef`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypee`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType10`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -4783,12 +5381,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousTypee`2'::.ctor + } // end of method '<>f__AnonymousType10`2'::.ctor .method public hidebysig specialname instance !'j__TPar' get_Country() cil managed @@ -4797,13 +5395,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypee`2'::get_Country + } // end of method '<>f__AnonymousType10`2'::get_Country .method public hidebysig specialname instance !'j__TPar' get_CustCount() cil managed @@ -4812,13 +5410,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypee`2'::get_CustCount + } // end of method '<>f__AnonymousType10`2'::get_CustCount .method public hidebysig virtual instance string ToString() cil managed @@ -4836,7 +5434,7 @@ IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0019: box !'j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop @@ -4846,7 +5444,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -4861,7 +5459,7 @@ IL_0057: ldloc.1 IL_0058: ret - } // end of method '<>f__AnonymousTypee`2'::ToString + } // end of method '<>f__AnonymousType10`2'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -4869,28 +5467,28 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 65 (0x41) .maxstack 3 - .locals init (class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'> V_0, + .locals init (class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'> V_0, bool V_1) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_003a IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_003a IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: br.s IL_003b @@ -4902,7 +5500,7 @@ IL_003f: ldloc.1 IL_0040: ret - } // end of method '<>f__AnonymousTypee`2'::Equals + } // end of method '<>f__AnonymousType10`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -4919,7 +5517,7 @@ IL_000c: mul IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0013: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 @@ -4928,7 +5526,7 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 @@ -4938,20 +5536,20 @@ IL_003c: ldloc.1 IL_003d: ret - } // end of method '<>f__AnonymousTypee`2'::GetHashCode + } // end of method '<>f__AnonymousType10`2'::GetHashCode .property instance !'j__TPar' Country() { - .get instance !'j__TPar' '<>f__AnonymousTypee`2'::get_Country() - } // end of property '<>f__AnonymousTypee`2'::Country + .get instance !'j__TPar' '<>f__AnonymousType10`2'::get_Country() + } // end of property '<>f__AnonymousType10`2'::Country .property instance !'j__TPar' CustCount() { - .get instance !'j__TPar' '<>f__AnonymousTypee`2'::get_CustCount() - } // end of property '<>f__AnonymousTypee`2'::CustCount -} // end of class '<>f__AnonymousTypee`2' + .get instance !'j__TPar' '<>f__AnonymousType10`2'::get_CustCount() + } // end of property '<>f__AnonymousType10`2'::CustCount +} // end of class '<>f__AnonymousType10`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypef`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType11`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -4970,12 +5568,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousTypef`2'::.ctor + } // end of method '<>f__AnonymousType11`2'::.ctor .method public hidebysig specialname instance !'j__TPar' get_m() cil managed @@ -4984,13 +5582,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypef`2'::get_m + } // end of method '<>f__AnonymousType11`2'::get_m .method public hidebysig specialname instance !'j__TPar' get_t() cil managed @@ -4999,13 +5597,13 @@ .maxstack 1 .locals init (!'j__TPar' V_0) IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret - } // end of method '<>f__AnonymousTypef`2'::get_t + } // end of method '<>f__AnonymousType11`2'::get_t .method public hidebysig virtual instance string ToString() cil managed @@ -5023,7 +5621,7 @@ IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0019: box !'j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop @@ -5033,7 +5631,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -5048,7 +5646,7 @@ IL_0057: ldloc.1 IL_0058: ret - } // end of method '<>f__AnonymousTypef`2'::ToString + } // end of method '<>f__AnonymousType11`2'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -5056,28 +5654,28 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 65 (0x41) .maxstack 3 - .locals init (class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'> V_0, + .locals init (class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'> V_0, bool V_1) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_003a IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_003a IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: br.s IL_003b @@ -5089,7 +5687,7 @@ IL_003f: ldloc.1 IL_0040: ret - } // end of method '<>f__AnonymousTypef`2'::Equals + } // end of method '<>f__AnonymousType11`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -5106,7 +5704,7 @@ IL_000c: mul IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0013: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 @@ -5115,7 +5713,7 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 @@ -5125,20 +5723,19 @@ IL_003c: ldloc.1 IL_003d: ret - } // end of method '<>f__AnonymousTypef`2'::GetHashCode + } // end of method '<>f__AnonymousType11`2'::GetHashCode .property instance !'j__TPar' m() { - .get instance !'j__TPar' '<>f__AnonymousTypef`2'::get_m() - } // end of property '<>f__AnonymousTypef`2'::m + .get instance !'j__TPar' '<>f__AnonymousType11`2'::get_m() + } // end of property '<>f__AnonymousType11`2'::m .property instance !'j__TPar' t() { - .get instance !'j__TPar' '<>f__AnonymousTypef`2'::get_t() - } // end of property '<>f__AnonymousTypef`2'::t -} // end of class '<>f__AnonymousTypef`2' + .get instance !'j__TPar' '<>f__AnonymousType11`2'::get_t() + } // end of property '<>f__AnonymousType11`2'::t +} // end of class '<>f__AnonymousType11`2' // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** -// WARNING: Created Win32 resource file C:\work\ILSpy\ICSharpCode.Decompiler.Tests\bin\Debug\net46\../../../TestCases/Pretty\QueryExpressions.res diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.opt.il index 6f1594544..487f6754b 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.opt.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.opt.il @@ -1,6 +1,4 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 -// Copyright (c) Microsoft Corporation. All rights reserved. @@ -15,26 +13,24 @@ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 4:0:0:0 } -.assembly '2kynotdr' +.assembly QueryExpressions.opt { .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. - .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.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 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 '2kynotdr.dll' -// MVID: {F5A95C54-34B1-4584-A2AF-6C9F06777178} +.module QueryExpressions.opt.dll .custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) .imagebase 0x10000000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x049E0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -42,6 +38,81 @@ .class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions extends [mscorlib]System.Object { + .class auto ansi nested public beforefieldinit HbmParam + extends [mscorlib]System.Object + { + .field private string 'k__BackingField' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string[] 'k__BackingField' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .method public hidebysig specialname + instance string get_Name() 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: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0006: ret + } // end of method HbmParam::get_Name + + .method public hidebysig specialname + instance void set_Name(string 'value') 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: ldarg.1 + IL_0002: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0007: ret + } // end of method HbmParam::set_Name + + .method public hidebysig specialname + instance string[] get_Text() 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: ldfld string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0006: ret + } // end of method HbmParam::get_Text + + .method public hidebysig specialname + instance void set_Text(string[] 'value') 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: ldarg.1 + IL_0002: stfld string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0007: ret + } // end of method HbmParam::set_Text + + .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 HbmParam::.ctor + + .property instance string Name() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::get_Name() + .set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Name(string) + } // end of property HbmParam::Name + .property instance string[] Text() + { + .get instance string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::get_Text() + .set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Text(string[]) + } // end of property HbmParam::Text + } // end of class HbmParam + .class auto ansi nested public beforefieldinit Customer extends [mscorlib]System.Object { @@ -152,41 +223,45 @@ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .field private static class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> 'CS$<>9__CachedAnonymousMethodDelegate3b' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate40' + .field private static class [mscorlib]System.Func`2f__AnonymousTypea`2'> 'CS$<>9__CachedAnonymousMethodDelegate42' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private static class [mscorlib]System.Func`2f__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> 'CS$<>9__CachedAnonymousMethodDelegate43' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate48' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate41' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate49' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`3f__AnonymousTypea`3'> 'CS$<>9__CachedAnonymousMethodDelegate42' + .field private static class [mscorlib]System.Func`3f__AnonymousTypec`3'> 'CS$<>9__CachedAnonymousMethodDelegate4a' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate4b' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate53' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate4c' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate54' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`3,class '<>f__AnonymousTypeb`2'>> 'CS$<>9__CachedAnonymousMethodDelegate4d' + .field private static class [mscorlib]System.Func`3,class '<>f__AnonymousTyped`2'>> 'CS$<>9__CachedAnonymousMethodDelegate55' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2f__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>> 'CS$<>9__CachedAnonymousMethodDelegate4e' + .field private static class [mscorlib]System.Func`2f__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>> 'CS$<>9__CachedAnonymousMethodDelegate56' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,bool> 'CS$<>9__CachedAnonymousMethodDelegate4f' + .field private static class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,bool> 'CS$<>9__CachedAnonymousMethodDelegate57' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'> 'CS$<>9__CachedAnonymousMethodDelegate50' + .field private static class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'> 'CS$<>9__CachedAnonymousMethodDelegate58' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate53' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate5b' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate54' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate5c' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate57' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate5f' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate58' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate60' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate5a' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate62' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate5d' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate65' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2,class '<>f__AnonymousTypee`2'> 'CS$<>9__CachedAnonymousMethodDelegate5e' + .field private static class [mscorlib]System.Func`2,class '<>f__AnonymousType10`2'> 'CS$<>9__CachedAnonymousMethodDelegate66' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate61' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate69' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate62' + .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate6a' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig instance object MultipleWhere() cil managed @@ -522,6 +597,47 @@ IL_006c: ret } // end of method QueryExpressions::MultipleLet + .method public hidebysig instance object + HibernateApplyGeneratorQuery() cil managed + { + // Code size 107 (0x6b) + .maxstack 3 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers + IL_0006: callvirt instance class [mscorlib]System.Type [mscorlib]System.Object::GetType() + IL_000b: callvirt instance class [mscorlib]System.Reflection.PropertyInfo[] [mscorlib]System.Type::GetProperties() + IL_0010: ldsfld class [mscorlib]System.Func`2f__AnonymousTypea`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' + IL_0015: brtrue.s IL_0028 + + IL_0017: ldnull + IL_0018: ldftn class '<>f__AnonymousTypea`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__3f'(class [mscorlib]System.Reflection.PropertyInfo) + IL_001e: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypea`2'>::.ctor(object, + native int) + IL_0023: stsfld class [mscorlib]System.Func`2f__AnonymousTypea`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' + IL_0028: ldsfld class [mscorlib]System.Func`2f__AnonymousTypea`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' + IL_002d: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypea`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_0032: ldarg.0 + IL_0033: ldftn instance class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__40'(class '<>f__AnonymousTypea`2') + IL_0039: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypea`2',class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>>::.ctor(object, + native int) + IL_003e: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypea`2',class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_0043: ldsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate43' + IL_0048: brtrue.s IL_005b + + IL_004a: ldnull + IL_004b: ldftn class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__41'(class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>) + IL_0051: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam>::.ctor(object, + native int) + IL_0056: stsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate43' + IL_005b: ldsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate43' + IL_0060: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypeb`2'f__AnonymousTypea`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_0065: call !!0[] [System.Core]System.Linq.Enumerable::ToArray(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_006a: ret + } // end of method QueryExpressions::HibernateApplyGeneratorQuery + .method public hidebysig instance object Join() cil managed { @@ -531,35 +647,35 @@ IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0006: ldarg.0 IL_0007: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate40' + IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate48' IL_0011: brtrue.s IL_0024 IL_0013: ldnull - IL_0014: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__3d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__45'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_001f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate40' - IL_0024: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate40' - IL_0029: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate41' + IL_001f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate48' + IL_0024: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate48' + IL_0029: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate49' IL_002e: brtrue.s IL_0041 IL_0030: ldnull - IL_0031: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__3e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0031: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__46'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0037: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_003c: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate41' - IL_0041: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate41' - IL_0046: ldsfld class [mscorlib]System.Func`3f__AnonymousTypea`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' + IL_003c: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate49' + IL_0041: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate49' + IL_0046: ldsfld class [mscorlib]System.Func`3f__AnonymousTypec`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4a' IL_004b: brtrue.s IL_005e IL_004d: ldnull - IL_004e: ldftn class '<>f__AnonymousTypea`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__3f'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_004e: ldftn class '<>f__AnonymousTypec`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__47'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) - IL_0054: newobj instance void class [mscorlib]System.Func`3f__AnonymousTypea`3'>::.ctor(object, + IL_0054: newobj instance void class [mscorlib]System.Func`3f__AnonymousTypec`3'>::.ctor(object, native int) - IL_0059: stsfld class [mscorlib]System.Func`3f__AnonymousTypea`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' - IL_005e: ldsfld class [mscorlib]System.Func`3f__AnonymousTypea`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate42' - IL_0063: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Joinf__AnonymousTypea`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0059: stsfld class [mscorlib]System.Func`3f__AnonymousTypec`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4a' + IL_005e: ldsfld class [mscorlib]System.Func`3f__AnonymousTypec`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4a' + IL_0063: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Joinf__AnonymousTypec`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2, @@ -576,71 +692,71 @@ IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0006: ldarg.0 IL_0007: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4b' + IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' IL_0011: brtrue.s IL_0024 IL_0013: ldnull - IL_0014: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__45'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__4d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_001f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4b' - IL_0024: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4b' - IL_0029: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4c' + IL_001f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' + IL_0024: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' + IL_0029: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' IL_002e: brtrue.s IL_0041 IL_0030: ldnull - IL_0031: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__46'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0031: ldftn int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__4e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0037: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_003c: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4c' - IL_0041: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4c' - IL_0046: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTypeb`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4d' + IL_003c: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' + IL_0041: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' + IL_0046: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTyped`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate55' IL_004b: brtrue.s IL_005e IL_004d: ldnull - IL_004e: ldftn class '<>f__AnonymousTypeb`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__47'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_004e: ldftn class '<>f__AnonymousTyped`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__4f'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0054: newobj instance void class [mscorlib]System.Func`3,class '<>f__AnonymousTypeb`2'>>::.ctor(object, + IL_0054: newobj instance void class [mscorlib]System.Func`3,class '<>f__AnonymousTyped`2'>>::.ctor(object, native int) - IL_0059: stsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTypeb`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4d' - IL_005e: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTypeb`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4d' - IL_0063: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::GroupJoinf__AnonymousTypeb`2'>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0059: stsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTyped`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate55' + IL_005e: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousTyped`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate55' + IL_0063: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::GroupJoinf__AnonymousTyped`2'>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2, class [mscorlib]System.Func`3,!!3>) - IL_0068: ldsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4e' + IL_0068: ldsfld class [mscorlib]System.Func`2f__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate56' IL_006d: brtrue.s IL_0080 IL_006f: ldnull - IL_0070: ldftn class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__48'(class '<>f__AnonymousTypeb`2'>) - IL_0076: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>>::.ctor(object, + IL_0070: ldftn class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__50'(class '<>f__AnonymousTyped`2'>) + IL_0076: newobj instance void class [mscorlib]System.Func`2f__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>>::.ctor(object, native int) - IL_007b: stsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4e' - IL_0080: ldsfld class [mscorlib]System.Func`2f__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4e' - IL_0085: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypeb`2'>,class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_007b: stsfld class [mscorlib]System.Func`2f__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate56' + IL_0080: ldsfld class [mscorlib]System.Func`2f__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate56' + IL_0085: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTyped`2'>,class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_008a: ldsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4f' + IL_008a: ldsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' IL_008f: brtrue.s IL_00a2 IL_0091: ldnull - IL_0092: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__49'(class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>) - IL_0098: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,bool>::.ctor(object, + IL_0092: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__51'(class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>) + IL_0098: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,bool>::.ctor(object, native int) - IL_009d: stsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4f' - IL_00a2: ldsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate4f' - IL_00a7: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Wheref__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_009d: stsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' + IL_00a2: ldsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' + IL_00a7: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Wheref__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_00ac: ldsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate50' + IL_00ac: ldsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' IL_00b1: brtrue.s IL_00c4 IL_00b3: ldnull - IL_00b4: ldftn class '<>f__AnonymousTyped`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__4a'(class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>) - IL_00ba: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'>::.ctor(object, + IL_00b4: ldftn class '<>f__AnonymousTypef`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__52'(class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>) + IL_00ba: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'>::.ctor(object, native int) - IL_00bf: stsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate50' - IL_00c4: ldsfld class [mscorlib]System.Func`2f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate50' - IL_00c9: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>,class '<>f__AnonymousTyped`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_00bf: stsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' + IL_00c4: ldsfld class [mscorlib]System.Func`2f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' + IL_00c9: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>,class '<>f__AnonymousTypef`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_00ce: ret } // end of method QueryExpressions::JoinInto @@ -652,26 +768,26 @@ .maxstack 3 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' + IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5b' IL_000b: brtrue.s IL_001e IL_000d: ldnull - IL_000e: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__51'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_000e: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__59'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0014: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0019: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' - IL_001e: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate53' + IL_0019: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5b' + IL_001e: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5b' IL_0023: call class [System.Core]System.Linq.IOrderedEnumerable`1 [System.Core]System.Linq.Enumerable::OrderBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_0028: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' + IL_0028: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5c' IL_002d: brtrue.s IL_0040 IL_002f: ldnull - IL_0030: ldftn valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__52'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0030: ldftn valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5a'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0036: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_003b: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' - IL_0040: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate54' + IL_003b: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5c' + IL_0040: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5c' IL_0045: call class [System.Core]System.Linq.IOrderedEnumerable`1 [System.Core]System.Linq.Enumerable::ThenByDescending(class [System.Core]System.Linq.IOrderedEnumerable`1, class [mscorlib]System.Func`2) IL_004a: ret @@ -684,24 +800,24 @@ .maxstack 4 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' + IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5f' IL_000b: brtrue.s IL_001e IL_000d: ldnull - IL_000e: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__55'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_000e: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0014: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0019: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' - IL_001e: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate57' - IL_0023: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' + IL_0019: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5f' + IL_001e: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5f' + IL_0023: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate60' IL_0028: brtrue.s IL_003b IL_002a: ldnull - IL_002b: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__56'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_002b: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0031: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0036: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' - IL_003b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate58' + IL_0036: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate60' + IL_003b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate60' IL_0040: call class [mscorlib]System.Collections.Generic.IEnumerable`1> [System.Core]System.Linq.Enumerable::GroupBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2) @@ -716,15 +832,15 @@ IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0006: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Cast(class [mscorlib]System.Collections.IEnumerable) - IL_000b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5a' + IL_000b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' IL_0010: brtrue.s IL_0023 IL_0012: ldnull - IL_0013: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__59'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0013: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__61'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0019: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_001e: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5a' - IL_0023: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5a' + IL_001e: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' + IL_0023: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' IL_0028: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_002d: ret @@ -737,28 +853,28 @@ .maxstack 3 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5d' + IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate65' IL_000b: brtrue.s IL_001e IL_000d: ldnull - IL_000e: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5b'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_000e: ldftn string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__63'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0014: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0019: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5d' - IL_001e: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5d' + IL_0019: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate65' + IL_001e: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate65' IL_0023: call class [mscorlib]System.Collections.Generic.IEnumerable`1> [System.Core]System.Linq.Enumerable::GroupBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_0028: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousTypee`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5e' + IL_0028: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType10`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate66' IL_002d: brtrue.s IL_0040 IL_002f: ldnull - IL_0030: ldftn class '<>f__AnonymousTypee`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5c'(class [System.Core]System.Linq.IGrouping`2) - IL_0036: newobj instance void class [mscorlib]System.Func`2,class '<>f__AnonymousTypee`2'>::.ctor(object, - native int) - IL_003b: stsfld class [mscorlib]System.Func`2,class '<>f__AnonymousTypee`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5e' - IL_0040: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousTypee`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate5e' - IL_0045: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select,class '<>f__AnonymousTypee`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, - class [mscorlib]System.Func`2) + IL_0030: ldftn class '<>f__AnonymousType10`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__64'(class [System.Core]System.Linq.IGrouping`2) + IL_0036: newobj instance void class [mscorlib]System.Func`2,class '<>f__AnonymousType10`2'>::.ctor(object, + native int) + IL_003b: stsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType10`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate66' + IL_0040: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType10`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate66' + IL_0045: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select,class '<>f__AnonymousType10`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) IL_004a: ret } // end of method QueryExpressions::QueryContinuation @@ -768,26 +884,26 @@ // Code size 70 (0x46) .maxstack 3 IL_0000: ldarg.1 - IL_0001: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate61' + IL_0001: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate69' IL_0006: brtrue.s IL_0019 IL_0008: ldnull - IL_0009: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__5f'(bool) + IL_0009: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__67'(bool) IL_000f: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0014: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate61' - IL_0019: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate61' + IL_0014: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate69' + IL_0019: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate69' IL_001e: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_0023: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' + IL_0023: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate6a' IL_0028: brtrue.s IL_003b IL_002a: ldnull - IL_002b: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__60'(bool) + IL_002b: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__68'(bool) IL_0031: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) - IL_0036: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' - IL_003b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate62' + IL_0036: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate6a' + IL_003b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'CS$<>9__CachedAnonymousMethodDelegate6a' IL_0040: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0045: ret @@ -800,23 +916,23 @@ .maxstack 8 IL_0000: ldarg.0 IL_0001: ldnull - IL_0002: ldftn class '<>f__AnonymousTypef`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__64'(!!0) - IL_0008: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypef`2'>::.ctor(object, - native int) - IL_000d: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousTypef`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, - class [mscorlib]System.Func`2) + IL_0002: ldftn class '<>f__AnonymousType11`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__6c'(!!0) + IL_0008: newobj instance void class [mscorlib]System.Func`2f__AnonymousType11`2'>::.ctor(object, + native int) + IL_000d: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType11`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + class [mscorlib]System.Func`2) IL_0012: ldnull - IL_0013: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__65'(class '<>f__AnonymousTypef`2') - IL_0019: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypef`2',bool>::.ctor(object, - native int) - IL_001e: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Wheref__AnonymousTypef`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, - class [mscorlib]System.Func`2) + IL_0013: ldftn bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__6d'(class '<>f__AnonymousType11`2') + IL_0019: newobj instance void class [mscorlib]System.Func`2f__AnonymousType11`2',bool>::.ctor(object, + native int) + IL_001e: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Wheref__AnonymousType11`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + class [mscorlib]System.Func`2) IL_0023: ldnull - IL_0024: ldftn !!1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__66'(class '<>f__AnonymousTypef`2') - IL_002a: newobj instance void class [mscorlib]System.Func`2f__AnonymousTypef`2',!!TB>::.ctor(object, - native int) - IL_002f: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousTypef`2',!!1>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, - class [mscorlib]System.Func`2) + IL_0024: ldftn !!1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__6e'(class '<>f__AnonymousType11`2') + IL_002a: newobj instance void class [mscorlib]System.Func`2f__AnonymousType11`2',!!TB>::.ctor(object, + native int) + IL_002f: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType11`2',!!1>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + class [mscorlib]System.Func`2) IL_0034: ret } // end of method QueryExpressions::Cast @@ -1214,8 +1330,79 @@ IL_0016: ret } // end of method QueryExpressions::'b__38' + .method private hidebysig static class '<>f__AnonymousTypea`2' + 'b__3f'(class [mscorlib]System.Reflection.PropertyInfo pi) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.0 + IL_0002: callvirt instance string [mscorlib]System.Reflection.MemberInfo::get_Name() + IL_0007: newobj instance void class '<>f__AnonymousTypea`2'::.ctor(!0, + !1) + IL_000c: ret + } // end of method QueryExpressions::'b__3f' + + .method private hidebysig instance class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object> + 'b__40'(class '<>f__AnonymousTypea`2' '<>h__TransparentIdentifier3c') cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ldarg.1 + IL_0002: callvirt instance !0 class '<>f__AnonymousTypea`2'::get_pi() + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers + IL_000d: ldnull + IL_000e: callvirt instance object [mscorlib]System.Reflection.PropertyInfo::GetValue(object, + object[]) + IL_0013: newobj instance void class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>::.ctor(!0, + !1) + IL_0018: ret + } // end of method QueryExpressions::'b__40' + + .method private hidebysig static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam + 'b__41'(class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object> '<>h__TransparentIdentifier3d') cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 68 (0x44) + .maxstack 4 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam V_0, + string[] V_1) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.0 + IL_0008: callvirt instance !0 class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>::'get_<>h__TransparentIdentifier3c'() + IL_000d: callvirt instance !1 class '<>f__AnonymousTypea`2'::get_pname() + IL_0012: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Name(string) + IL_0017: ldloc.0 + IL_0018: ldc.i4.1 + IL_0019: newarr [mscorlib]System.String + IL_001e: stloc.1 + IL_001f: ldloc.1 + IL_0020: ldc.i4.0 + IL_0021: ldarg.0 + IL_0022: callvirt instance !1 class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>::get_pvalue() + IL_0027: brfalse.s IL_0036 + + IL_0029: ldarg.0 + IL_002a: callvirt instance !1 class '<>f__AnonymousTypeb`2'f__AnonymousTypea`2',object>::get_pvalue() + IL_002f: callvirt instance string [mscorlib]System.Object::ToString() + IL_0034: br.s IL_003b + + IL_0036: ldstr "null" + IL_003b: stelem.ref + IL_003c: ldloc.1 + IL_003d: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Text(string[]) + IL_0042: ldloc.0 + IL_0043: ret + } // end of method QueryExpressions::'b__41' + .method private hidebysig static int32 - 'b__3d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__45'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 7 (0x7) @@ -1223,10 +1410,10 @@ IL_0000: ldarg.0 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::CustomerID IL_0006: ret - } // end of method QueryExpressions::'b__3d' + } // end of method QueryExpressions::'b__45' .method private hidebysig static int32 - 'b__3e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__46'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 7 (0x7) @@ -1234,10 +1421,10 @@ IL_0000: ldarg.0 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::CustomerID IL_0006: ret - } // end of method QueryExpressions::'b__3e' + } // end of method QueryExpressions::'b__46' - .method private hidebysig static class '<>f__AnonymousTypea`3' - 'b__3f'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + .method private hidebysig static class '<>f__AnonymousTypec`3' + 'b__47'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -1249,14 +1436,14 @@ IL_0007: ldfld valuetype [mscorlib]System.DateTime ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::OrderDate IL_000c: ldarg.1 IL_000d: ldfld valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Total - IL_0012: newobj instance void class '<>f__AnonymousTypea`3'::.ctor(!0, + IL_0012: newobj instance void class '<>f__AnonymousTypec`3'::.ctor(!0, !1, !2) IL_0017: ret - } // end of method QueryExpressions::'b__3f' + } // end of method QueryExpressions::'b__47' .method private hidebysig static int32 - 'b__45'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__4d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 7 (0x7) @@ -1264,10 +1451,10 @@ IL_0000: ldarg.0 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::CustomerID IL_0006: ret - } // end of method QueryExpressions::'b__45' + } // end of method QueryExpressions::'b__4d' .method private hidebysig static int32 - 'b__46'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__4e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 7 (0x7) @@ -1275,10 +1462,10 @@ IL_0000: ldarg.0 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::CustomerID IL_0006: ret - } // end of method QueryExpressions::'b__46' + } // end of method QueryExpressions::'b__4e' - .method private hidebysig static class '<>f__AnonymousTypeb`2'> - 'b__47'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + .method private hidebysig static class '<>f__AnonymousTyped`2'> + 'b__4f'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class [mscorlib]System.Collections.Generic.IEnumerable`1 co) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -1286,59 +1473,59 @@ .maxstack 8 IL_0000: ldarg.0 IL_0001: ldarg.1 - IL_0002: newobj instance void class '<>f__AnonymousTypeb`2'>::.ctor(!0, + IL_0002: newobj instance void class '<>f__AnonymousTyped`2'>::.ctor(!0, !1) IL_0007: ret - } // end of method QueryExpressions::'b__47' + } // end of method QueryExpressions::'b__4f' - .method private hidebysig static class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32> - 'b__48'(class '<>f__AnonymousTypeb`2'> '<>h__TransparentIdentifier43') cil managed + .method private hidebysig static class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32> + 'b__50'(class '<>f__AnonymousTyped`2'> '<>h__TransparentIdentifier4b') cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 18 (0x12) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldarg.0 - IL_0002: callvirt instance !1 class '<>f__AnonymousTypeb`2'>::get_co() + IL_0002: callvirt instance !1 class '<>f__AnonymousTyped`2'>::get_co() IL_0007: call int32 [System.Core]System.Linq.Enumerable::Count(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_000c: newobj instance void class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>::.ctor(!0, + IL_000c: newobj instance void class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>::.ctor(!0, !1) IL_0011: ret - } // end of method QueryExpressions::'b__48' + } // end of method QueryExpressions::'b__50' - .method private hidebysig static bool 'b__49'(class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32> '<>h__TransparentIdentifier44') cil managed + .method private hidebysig static bool 'b__51'(class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32> '<>h__TransparentIdentifier4c') cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 14 (0xe) .maxstack 8 IL_0000: ldarg.0 - IL_0001: callvirt instance !1 class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>::get_n() + IL_0001: callvirt instance !1 class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>::get_n() IL_0006: ldc.i4.s 10 IL_0008: clt IL_000a: ldc.i4.0 IL_000b: ceq IL_000d: ret - } // end of method QueryExpressions::'b__49' + } // end of method QueryExpressions::'b__51' - .method private hidebysig static class '<>f__AnonymousTyped`2' - 'b__4a'(class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32> '<>h__TransparentIdentifier44') cil managed + .method private hidebysig static class '<>f__AnonymousTypef`2' + 'b__52'(class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32> '<>h__TransparentIdentifier4c') cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 28 (0x1c) .maxstack 8 IL_0000: ldarg.0 - IL_0001: callvirt instance !0 class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>::'get_<>h__TransparentIdentifier43'() - IL_0006: callvirt instance !0 class '<>f__AnonymousTypeb`2'>::get_c() + IL_0001: callvirt instance !0 class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>::'get_<>h__TransparentIdentifier4b'() + IL_0006: callvirt instance !0 class '<>f__AnonymousTyped`2'>::get_c() IL_000b: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_0010: ldarg.0 - IL_0011: callvirt instance !1 class '<>f__AnonymousTypec`2'f__AnonymousTypeb`2'>,int32>::get_n() - IL_0016: newobj instance void class '<>f__AnonymousTyped`2'::.ctor(!0, + IL_0011: callvirt instance !1 class '<>f__AnonymousTypee`2'f__AnonymousTyped`2'>,int32>::get_n() + IL_0016: newobj instance void class '<>f__AnonymousTypef`2'::.ctor(!0, !1) IL_001b: ret - } // end of method QueryExpressions::'b__4a' + } // end of method QueryExpressions::'b__52' .method private hidebysig static string - 'b__51'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__59'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 12 (0xc) @@ -1347,10 +1534,10 @@ IL_0001: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Customer IL_0006: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_000b: ret - } // end of method QueryExpressions::'b__51' + } // end of method QueryExpressions::'b__59' .method private hidebysig static valuetype [mscorlib]System.Decimal - 'b__52'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__5a'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 7 (0x7) @@ -1358,10 +1545,10 @@ IL_0000: ldarg.0 IL_0001: ldfld valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Total IL_0006: ret - } // end of method QueryExpressions::'b__52' + } // end of method QueryExpressions::'b__5a' .method private hidebysig static string - 'b__55'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__5d'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 7 (0x7) @@ -1369,10 +1556,10 @@ IL_0000: ldarg.0 IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Country IL_0006: ret - } // end of method QueryExpressions::'b__55' + } // end of method QueryExpressions::'b__5d' .method private hidebysig static string - 'b__56'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__5e'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 7 (0x7) @@ -1380,9 +1567,9 @@ IL_0000: ldarg.0 IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_0006: ret - } // end of method QueryExpressions::'b__56' + } // end of method QueryExpressions::'b__5e' - .method private hidebysig static bool 'b__59'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + .method private hidebysig static bool 'b__61'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 17 (0x11) @@ -1393,10 +1580,10 @@ IL_000b: call bool [mscorlib]System.String::op_Equality(string, string) IL_0010: ret - } // end of method QueryExpressions::'b__59' + } // end of method QueryExpressions::'b__61' .method private hidebysig static string - 'b__5b'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__63'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 7 (0x7) @@ -1404,10 +1591,10 @@ IL_0000: ldarg.0 IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Country IL_0006: ret - } // end of method QueryExpressions::'b__5b' + } // end of method QueryExpressions::'b__63' - .method private hidebysig static class '<>f__AnonymousTypee`2' - 'b__5c'(class [System.Core]System.Linq.IGrouping`2 g) cil managed + .method private hidebysig static class '<>f__AnonymousType10`2' + 'b__64'(class [System.Core]System.Linq.IGrouping`2 g) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 18 (0x12) @@ -1416,31 +1603,31 @@ IL_0001: callvirt instance !0 class [System.Core]System.Linq.IGrouping`2::get_Key() IL_0006: ldarg.0 IL_0007: call int32 [System.Core]System.Linq.Enumerable::Count(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_000c: newobj instance void class '<>f__AnonymousTypee`2'::.ctor(!0, - !1) + IL_000c: newobj instance void class '<>f__AnonymousType10`2'::.ctor(!0, + !1) IL_0011: ret - } // end of method QueryExpressions::'b__5c' + } // end of method QueryExpressions::'b__64' - .method private hidebysig static bool 'b__5f'(bool x) cil managed + .method private hidebysig static bool 'b__67'(bool x) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 2 (0x2) .maxstack 8 IL_0000: ldarg.0 IL_0001: ret - } // end of method QueryExpressions::'b__5f' + } // end of method QueryExpressions::'b__67' - .method private hidebysig static bool 'b__60'(bool x) cil managed + .method private hidebysig static bool 'b__68'(bool x) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 2 (0x2) .maxstack 8 IL_0000: ldarg.0 IL_0001: ret - } // end of method QueryExpressions::'b__60' + } // end of method QueryExpressions::'b__68' - .method private hidebysig static class '<>f__AnonymousTypef`2' - 'b__64'(!!TA m) cil managed + .method private hidebysig static class '<>f__AnonymousType11`2' + 'b__6c'(!!TA m) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 23 (0x17) @@ -1450,35 +1637,35 @@ IL_0002: box !!TA IL_0007: isinst !!TB IL_000c: unbox.any !!TB - IL_0011: newobj instance void class '<>f__AnonymousTypef`2'::.ctor(!0, - !1) + IL_0011: newobj instance void class '<>f__AnonymousType11`2'::.ctor(!0, + !1) IL_0016: ret - } // end of method QueryExpressions::'b__64' + } // end of method QueryExpressions::'b__6c' - .method private hidebysig static bool 'b__65'(class '<>f__AnonymousTypef`2' '<>h__TransparentIdentifier63') cil managed + .method private hidebysig static bool 'b__6d'(class '<>f__AnonymousType11`2' '<>h__TransparentIdentifier6b') cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) // Code size 18 (0x12) .maxstack 8 IL_0000: ldarg.0 - IL_0001: callvirt instance !1 class '<>f__AnonymousTypef`2'::get_t() + IL_0001: callvirt instance !1 class '<>f__AnonymousType11`2'::get_t() IL_0006: box !!TB IL_000b: ldnull IL_000c: ceq IL_000e: ldc.i4.0 IL_000f: ceq IL_0011: ret - } // end of method QueryExpressions::'b__65' + } // end of method QueryExpressions::'b__6d' - .method private hidebysig static !!TB 'b__66'(class '<>f__AnonymousTypef`2' '<>h__TransparentIdentifier63') cil managed + .method private hidebysig static !!TB 'b__6e'(class '<>f__AnonymousType11`2' '<>h__TransparentIdentifier6b') 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: callvirt instance !1 class '<>f__AnonymousTypef`2'::get_t() + IL_0001: callvirt instance !1 class '<>f__AnonymousType11`2'::get_t() IL_0006: ret - } // end of method QueryExpressions::'b__66' + } // end of method QueryExpressions::'b__6e' } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions @@ -3271,7 +3458,328 @@ } // end of property '<>f__AnonymousType9`2'::c } // end of class '<>f__AnonymousType9`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypea`3'<'j__TPar','j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypea`2'<'j__TPar','j__TPar'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .method public hidebysig specialname rtspecialname + instance void .ctor(!'j__TPar' pi, + !'j__TPar' pname) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ret + } // end of method '<>f__AnonymousTypea`2'::.ctor + + .method public hidebysig specialname instance !'j__TPar' + get_pi() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousTypea`2'::get_pi + + .method public hidebysig specialname instance !'j__TPar' + get_pname() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousTypea`2'::get_pname + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 85 (0x55) + .maxstack 2 + .locals init (class [mscorlib]System.Text.StringBuilder V_0) + IL_0000: newobj instance void [mscorlib]System.Text.StringBuilder::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldstr "{ pi = " + IL_000c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_0011: pop + IL_0012: ldloc.0 + IL_0013: ldarg.0 + IL_0014: ldfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0019: box !'j__TPar' + IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) + IL_0023: pop + IL_0024: ldloc.0 + IL_0025: ldstr ", pname = " + IL_002a: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_002f: pop + IL_0030: ldloc.0 + IL_0031: ldarg.0 + IL_0032: ldfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0037: box !'j__TPar' + IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) + IL_0041: pop + IL_0042: ldloc.0 + IL_0043: ldstr " }" + IL_0048: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_004d: pop + IL_004e: ldloc.0 + IL_004f: callvirt instance string [mscorlib]System.Object::ToString() + IL_0054: ret + } // end of method '<>f__AnonymousTypea`2'::ToString + + .method public hidebysig virtual instance bool + Equals(object 'value') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 59 (0x3b) + .maxstack 3 + .locals init (class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0039 + + IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_000f: ldarg.0 + IL_0010: ldfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0015: ldloc.0 + IL_0016: ldfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0020: brfalse.s IL_0039 + + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002d: ldloc.0 + IL_002e: ldfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0038: ret + + IL_0039: ldc.i4.0 + IL_003a: ret + } // end of method '<>f__AnonymousTypea`2'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 58 (0x3a) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldc.i4 0x62bc9c7e + IL_0005: stloc.0 + IL_0006: ldc.i4 0xa5555529 + IL_000b: ldloc.0 + IL_000c: mul + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0012: ldarg.0 + IL_0013: ldfld !0 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_001d: add + IL_001e: stloc.0 + IL_001f: ldc.i4 0xa5555529 + IL_0024: ldloc.0 + IL_0025: mul + IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_002b: ldarg.0 + IL_002c: ldfld !1 class '<>f__AnonymousTypea`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_0036: add + IL_0037: stloc.0 + IL_0038: ldloc.0 + IL_0039: ret + } // end of method '<>f__AnonymousTypea`2'::GetHashCode + + .property instance !'j__TPar' pi() + { + .get instance !'j__TPar' '<>f__AnonymousTypea`2'::get_pi() + } // end of property '<>f__AnonymousTypea`2'::pi + .property instance !'j__TPar' pname() + { + .get instance !'j__TPar' '<>f__AnonymousTypea`2'::get_pname() + } // end of property '<>f__AnonymousTypea`2'::pname +} // end of class '<>f__AnonymousTypea`2' + +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypeb`2'<'<<>h__TransparentIdentifier3c>j__TPar','j__TPar'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'<<>h__TransparentIdentifier3c>j__TPar' '<<>h__TransparentIdentifier3c>i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .method public hidebysig specialname rtspecialname + instance void .ctor(!'<<>h__TransparentIdentifier3c>j__TPar' '<>h__TransparentIdentifier3c', + !'j__TPar' pvalue) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ret + } // end of method '<>f__AnonymousTypeb`2'::.ctor + + .method public hidebysig specialname instance !'<<>h__TransparentIdentifier3c>j__TPar' + 'get_<>h__TransparentIdentifier3c'() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousTypeb`2'::'get_<>h__TransparentIdentifier3c' + + .method public hidebysig specialname instance !'j__TPar' + get_pvalue() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousTypeb`2'::get_pvalue + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 85 (0x55) + .maxstack 2 + .locals init (class [mscorlib]System.Text.StringBuilder V_0) + IL_0000: newobj instance void [mscorlib]System.Text.StringBuilder::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldstr "{ <>h__TransparentIdentifier3c = " + IL_000c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_0011: pop + IL_0012: ldloc.0 + IL_0013: ldarg.0 + IL_0014: ldfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_0019: box !'<<>h__TransparentIdentifier3c>j__TPar' + IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) + IL_0023: pop + IL_0024: ldloc.0 + IL_0025: ldstr ", pvalue = " + IL_002a: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_002f: pop + IL_0030: ldloc.0 + IL_0031: ldarg.0 + IL_0032: ldfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_0037: box !'j__TPar' + IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) + IL_0041: pop + IL_0042: ldloc.0 + IL_0043: ldstr " }" + IL_0048: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) + IL_004d: pop + IL_004e: ldloc.0 + IL_004f: callvirt instance string [mscorlib]System.Object::ToString() + IL_0054: ret + } // end of method '<>f__AnonymousTypeb`2'::ToString + + .method public hidebysig virtual instance bool + Equals(object 'value') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 59 (0x3b) + .maxstack 3 + .locals init (class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0039 + + IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier3c>j__TPar'>::get_Default() + IL_000f: ldarg.0 + IL_0010: ldfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_0015: ldloc.0 + IL_0016: ldfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier3c>j__TPar'>::Equals(!0, + !0) + IL_0020: brfalse.s IL_0039 + + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_002d: ldloc.0 + IL_002e: ldfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0038: ret + + IL_0039: ldc.i4.0 + IL_003a: ret + } // end of method '<>f__AnonymousTypeb`2'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 58 (0x3a) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldc.i4 0x6aa6e13b + IL_0005: stloc.0 + IL_0006: ldc.i4 0xa5555529 + IL_000b: ldloc.0 + IL_000c: mul + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier3c>j__TPar'>::get_Default() + IL_0012: ldarg.0 + IL_0013: ldfld !0 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier3c>i__Field' + IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier3c>j__TPar'>::GetHashCode(!0) + IL_001d: add + IL_001e: stloc.0 + IL_001f: ldc.i4 0xa5555529 + IL_0024: ldloc.0 + IL_0025: mul + IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_002b: ldarg.0 + IL_002c: ldfld !1 class '<>f__AnonymousTypeb`2'h__TransparentIdentifier3c>j__TPar',!'j__TPar'>::'i__Field' + IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_0036: add + IL_0037: stloc.0 + IL_0038: ldloc.0 + IL_0039: ret + } // end of method '<>f__AnonymousTypeb`2'::GetHashCode + + .property instance !'<<>h__TransparentIdentifier3c>j__TPar' + '<>h__TransparentIdentifier3c'() + { + .get instance !'<<>h__TransparentIdentifier3c>j__TPar' '<>f__AnonymousTypeb`2'::'get_<>h__TransparentIdentifier3c'() + } // end of property '<>f__AnonymousTypeb`2'::'<>h__TransparentIdentifier3c' + .property instance !'j__TPar' pvalue() + { + .get instance !'j__TPar' '<>f__AnonymousTypeb`2'::get_pvalue() + } // end of property '<>f__AnonymousTypeb`2'::pvalue +} // end of class '<>f__AnonymousTypeb`2' + +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypec`3'<'j__TPar','j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -3293,15 +3801,15 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ldarg.0 IL_0015: ldarg.3 - IL_0016: stfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: stfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_001b: ret - } // end of method '<>f__AnonymousTypea`3'::.ctor + } // end of method '<>f__AnonymousTypec`3'::.ctor .method public hidebysig specialname instance !'j__TPar' get_Name() cil managed @@ -3309,9 +3817,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypea`3'::get_Name + } // end of method '<>f__AnonymousTypec`3'::get_Name .method public hidebysig specialname instance !'j__TPar' get_OrderDate() cil managed @@ -3319,9 +3827,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypea`3'::get_OrderDate + } // end of method '<>f__AnonymousTypec`3'::get_OrderDate .method public hidebysig specialname instance !'j__TPar' get_Total() cil managed @@ -3329,9 +3837,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypea`3'::get_Total + } // end of method '<>f__AnonymousTypec`3'::get_Total .method public hidebysig virtual instance string ToString() cil managed @@ -3348,7 +3856,7 @@ IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ldfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0019: box !'j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop @@ -3358,7 +3866,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -3368,7 +3876,7 @@ IL_004d: pop IL_004e: ldloc.0 IL_004f: ldarg.0 - IL_0050: ldfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0050: ldfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0055: box !'j__TPar' IL_005a: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_005f: pop @@ -3379,7 +3887,7 @@ IL_006c: ldloc.0 IL_006d: callvirt instance string [mscorlib]System.Object::ToString() IL_0072: ret - } // end of method '<>f__AnonymousTypea`3'::ToString + } // end of method '<>f__AnonymousTypec`3'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -3387,43 +3895,43 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 83 (0x53) .maxstack 3 - .locals init (class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0051 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0051 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: brfalse.s IL_0051 IL_003a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_003f: ldarg.0 - IL_0040: ldfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0040: ldfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0045: ldloc.0 - IL_0046: ldfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0046: ldfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_004b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0050: ret IL_0051: ldc.i4.0 IL_0052: ret - } // end of method '<>f__AnonymousTypea`3'::Equals + } // end of method '<>f__AnonymousTypec`3'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -3439,7 +3947,7 @@ IL_000c: mul IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0013: ldfld !0 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 @@ -3448,7 +3956,7 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 @@ -3457,30 +3965,30 @@ IL_003e: mul IL_003f: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0044: ldarg.0 - IL_0045: ldfld !2 class '<>f__AnonymousTypea`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0045: ldfld !2 class '<>f__AnonymousTypec`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_004a: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_004f: add IL_0050: stloc.0 IL_0051: ldloc.0 IL_0052: ret - } // end of method '<>f__AnonymousTypea`3'::GetHashCode + } // end of method '<>f__AnonymousTypec`3'::GetHashCode .property instance !'j__TPar' Name() { - .get instance !'j__TPar' '<>f__AnonymousTypea`3'::get_Name() - } // end of property '<>f__AnonymousTypea`3'::Name + .get instance !'j__TPar' '<>f__AnonymousTypec`3'::get_Name() + } // end of property '<>f__AnonymousTypec`3'::Name .property instance !'j__TPar' OrderDate() { - .get instance !'j__TPar' '<>f__AnonymousTypea`3'::get_OrderDate() - } // end of property '<>f__AnonymousTypea`3'::OrderDate + .get instance !'j__TPar' '<>f__AnonymousTypec`3'::get_OrderDate() + } // end of property '<>f__AnonymousTypec`3'::OrderDate .property instance !'j__TPar' Total() { - .get instance !'j__TPar' '<>f__AnonymousTypea`3'::get_Total() - } // end of property '<>f__AnonymousTypea`3'::Total -} // end of class '<>f__AnonymousTypea`3' + .get instance !'j__TPar' '<>f__AnonymousTypec`3'::get_Total() + } // end of property '<>f__AnonymousTypec`3'::Total +} // end of class '<>f__AnonymousTypec`3' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypeb`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTyped`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -3499,12 +4007,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousTypeb`2'::.ctor + } // end of method '<>f__AnonymousTyped`2'::.ctor .method public hidebysig specialname instance !'j__TPar' get_c() cil managed @@ -3512,9 +4020,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypeb`2'::get_c + } // end of method '<>f__AnonymousTyped`2'::get_c .method public hidebysig specialname instance !'j__TPar' get_co() cil managed @@ -3522,9 +4030,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypeb`2'::get_co + } // end of method '<>f__AnonymousTyped`2'::get_co .method public hidebysig virtual instance string ToString() cil managed @@ -3541,7 +4049,7 @@ IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0019: box !'j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop @@ -3551,7 +4059,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -3562,7 +4070,7 @@ IL_004e: ldloc.0 IL_004f: callvirt instance string [mscorlib]System.Object::ToString() IL_0054: ret - } // end of method '<>f__AnonymousTypeb`2'::ToString + } // end of method '<>f__AnonymousTyped`2'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -3570,34 +4078,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 59 (0x3b) .maxstack 3 - .locals init (class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0039 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0039 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: ret IL_0039: ldc.i4.0 IL_003a: ret - } // end of method '<>f__AnonymousTypeb`2'::Equals + } // end of method '<>f__AnonymousTyped`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -3613,7 +4121,7 @@ IL_000c: mul IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0013: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 @@ -3622,34 +4130,34 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTypeb`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 IL_0038: ldloc.0 IL_0039: ret - } // end of method '<>f__AnonymousTypeb`2'::GetHashCode + } // end of method '<>f__AnonymousTyped`2'::GetHashCode .property instance !'j__TPar' c() { - .get instance !'j__TPar' '<>f__AnonymousTypeb`2'::get_c() - } // end of property '<>f__AnonymousTypeb`2'::c + .get instance !'j__TPar' '<>f__AnonymousTyped`2'::get_c() + } // end of property '<>f__AnonymousTyped`2'::c .property instance !'j__TPar' co() { - .get instance !'j__TPar' '<>f__AnonymousTypeb`2'::get_co() - } // end of property '<>f__AnonymousTypeb`2'::co -} // end of class '<>f__AnonymousTypeb`2' + .get instance !'j__TPar' '<>f__AnonymousTyped`2'::get_co() + } // end of property '<>f__AnonymousTyped`2'::co +} // end of class '<>f__AnonymousTyped`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypec`2'<'<<>h__TransparentIdentifier43>j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypee`2'<'<<>h__TransparentIdentifier4b>j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field private initonly !'<<>h__TransparentIdentifier43>j__TPar' '<<>h__TransparentIdentifier43>i__Field' + .field private initonly !'<<>h__TransparentIdentifier4b>j__TPar' '<<>h__TransparentIdentifier4b>i__Field' .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .field private initonly !'j__TPar' 'i__Field' .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .method public hidebysig specialname rtspecialname - instance void .ctor(!'<<>h__TransparentIdentifier43>j__TPar' '<>h__TransparentIdentifier43', + instance void .ctor(!'<<>h__TransparentIdentifier4b>j__TPar' '<>h__TransparentIdentifier4b', !'j__TPar' n) cil managed { .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) @@ -3659,22 +4167,22 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' + IL_0008: stfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousTypec`2'::.ctor + } // end of method '<>f__AnonymousTypee`2'::.ctor - .method public hidebysig specialname instance !'<<>h__TransparentIdentifier43>j__TPar' - 'get_<>h__TransparentIdentifier43'() cil managed + .method public hidebysig specialname instance !'<<>h__TransparentIdentifier4b>j__TPar' + 'get_<>h__TransparentIdentifier4b'() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypec`2'::'get_<>h__TransparentIdentifier43' + } // end of method '<>f__AnonymousTypee`2'::'get_<>h__TransparentIdentifier4b' .method public hidebysig specialname instance !'j__TPar' get_n() cil managed @@ -3682,9 +4190,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypec`2'::get_n + } // end of method '<>f__AnonymousTypee`2'::get_n .method public hidebysig virtual instance string ToString() cil managed @@ -3696,13 +4204,13 @@ IL_0000: newobj instance void [mscorlib]System.Text.StringBuilder::.ctor() IL_0005: stloc.0 IL_0006: ldloc.0 - IL_0007: ldstr "{ <>h__TransparentIdentifier43 = " + IL_0007: ldstr "{ <>h__TransparentIdentifier4b = " IL_000c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(string) IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' - IL_0019: box !'<<>h__TransparentIdentifier43>j__TPar' + IL_0014: ldfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' + IL_0019: box !'<<>h__TransparentIdentifier4b>j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop IL_0024: ldloc.0 @@ -3711,7 +4219,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -3722,7 +4230,7 @@ IL_004e: ldloc.0 IL_004f: callvirt instance string [mscorlib]System.Object::ToString() IL_0054: ret - } // end of method '<>f__AnonymousTypec`2'::ToString + } // end of method '<>f__AnonymousTypee`2'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -3730,34 +4238,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 59 (0x3b) .maxstack 3 - .locals init (class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0039 - IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier43>j__TPar'>::get_Default() + IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier4b>j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' - IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier43>j__TPar'>::Equals(!0, + IL_0016: ldfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' + IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier4b>j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0039 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: ret IL_0039: ldc.i4.0 IL_003a: ret - } // end of method '<>f__AnonymousTypec`2'::Equals + } // end of method '<>f__AnonymousTypee`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -3766,15 +4274,15 @@ // Code size 58 (0x3a) .maxstack 3 .locals init (int32 V_0) - IL_0000: ldc.i4 0xc3dcc655 + IL_0000: ldc.i4 0x2fe1ff76 IL_0005: stloc.0 IL_0006: ldc.i4 0xa5555529 IL_000b: ldloc.0 IL_000c: mul - IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier43>j__TPar'>::get_Default() + IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier4b>j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier43>i__Field' - IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier43>j__TPar'>::GetHashCode(!0) + IL_0013: ldfld !0 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier4b>i__Field' + IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier4b>j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 IL_001f: ldc.i4 0xa5555529 @@ -3782,26 +4290,26 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTypec`2'h__TransparentIdentifier43>j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousTypee`2'h__TransparentIdentifier4b>j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 IL_0038: ldloc.0 IL_0039: ret - } // end of method '<>f__AnonymousTypec`2'::GetHashCode + } // end of method '<>f__AnonymousTypee`2'::GetHashCode - .property instance !'<<>h__TransparentIdentifier43>j__TPar' - '<>h__TransparentIdentifier43'() + .property instance !'<<>h__TransparentIdentifier4b>j__TPar' + '<>h__TransparentIdentifier4b'() { - .get instance !'<<>h__TransparentIdentifier43>j__TPar' '<>f__AnonymousTypec`2'::'get_<>h__TransparentIdentifier43'() - } // end of property '<>f__AnonymousTypec`2'::'<>h__TransparentIdentifier43' + .get instance !'<<>h__TransparentIdentifier4b>j__TPar' '<>f__AnonymousTypee`2'::'get_<>h__TransparentIdentifier4b'() + } // end of property '<>f__AnonymousTypee`2'::'<>h__TransparentIdentifier4b' .property instance !'j__TPar' n() { - .get instance !'j__TPar' '<>f__AnonymousTypec`2'::get_n() - } // end of property '<>f__AnonymousTypec`2'::n -} // end of class '<>f__AnonymousTypec`2' + .get instance !'j__TPar' '<>f__AnonymousTypee`2'::get_n() + } // end of property '<>f__AnonymousTypee`2'::n +} // end of class '<>f__AnonymousTypee`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTyped`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypef`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -3820,12 +4328,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousTyped`2'::.ctor + } // end of method '<>f__AnonymousTypef`2'::.ctor .method public hidebysig specialname instance !'j__TPar' get_Name() cil managed @@ -3833,9 +4341,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTyped`2'::get_Name + } // end of method '<>f__AnonymousTypef`2'::get_Name .method public hidebysig specialname instance !'j__TPar' get_OrderCount() cil managed @@ -3843,9 +4351,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTyped`2'::get_OrderCount + } // end of method '<>f__AnonymousTypef`2'::get_OrderCount .method public hidebysig virtual instance string ToString() cil managed @@ -3862,7 +4370,7 @@ IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0019: box !'j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop @@ -3872,7 +4380,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -3883,7 +4391,7 @@ IL_004e: ldloc.0 IL_004f: callvirt instance string [mscorlib]System.Object::ToString() IL_0054: ret - } // end of method '<>f__AnonymousTyped`2'::ToString + } // end of method '<>f__AnonymousTypef`2'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -3891,34 +4399,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 59 (0x3b) .maxstack 3 - .locals init (class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0039 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0039 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: ret IL_0039: ldc.i4.0 IL_003a: ret - } // end of method '<>f__AnonymousTyped`2'::Equals + } // end of method '<>f__AnonymousTypef`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -3934,7 +4442,7 @@ IL_000c: mul IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0013: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 @@ -3943,26 +4451,26 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTyped`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 IL_0038: ldloc.0 IL_0039: ret - } // end of method '<>f__AnonymousTyped`2'::GetHashCode + } // end of method '<>f__AnonymousTypef`2'::GetHashCode .property instance !'j__TPar' Name() { - .get instance !'j__TPar' '<>f__AnonymousTyped`2'::get_Name() - } // end of property '<>f__AnonymousTyped`2'::Name + .get instance !'j__TPar' '<>f__AnonymousTypef`2'::get_Name() + } // end of property '<>f__AnonymousTypef`2'::Name .property instance !'j__TPar' OrderCount() { - .get instance !'j__TPar' '<>f__AnonymousTyped`2'::get_OrderCount() - } // end of property '<>f__AnonymousTyped`2'::OrderCount -} // end of class '<>f__AnonymousTyped`2' + .get instance !'j__TPar' '<>f__AnonymousTypef`2'::get_OrderCount() + } // end of property '<>f__AnonymousTypef`2'::OrderCount +} // end of class '<>f__AnonymousTypef`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypee`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType10`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -3981,12 +4489,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousTypee`2'::.ctor + } // end of method '<>f__AnonymousType10`2'::.ctor .method public hidebysig specialname instance !'j__TPar' get_Country() cil managed @@ -3994,9 +4502,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypee`2'::get_Country + } // end of method '<>f__AnonymousType10`2'::get_Country .method public hidebysig specialname instance !'j__TPar' get_CustCount() cil managed @@ -4004,9 +4512,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypee`2'::get_CustCount + } // end of method '<>f__AnonymousType10`2'::get_CustCount .method public hidebysig virtual instance string ToString() cil managed @@ -4023,7 +4531,7 @@ IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0019: box !'j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop @@ -4033,7 +4541,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -4044,7 +4552,7 @@ IL_004e: ldloc.0 IL_004f: callvirt instance string [mscorlib]System.Object::ToString() IL_0054: ret - } // end of method '<>f__AnonymousTypee`2'::ToString + } // end of method '<>f__AnonymousType10`2'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -4052,34 +4560,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 59 (0x3b) .maxstack 3 - .locals init (class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0039 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0039 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: ret IL_0039: ldc.i4.0 IL_003a: ret - } // end of method '<>f__AnonymousTypee`2'::Equals + } // end of method '<>f__AnonymousType10`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -4095,7 +4603,7 @@ IL_000c: mul IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0013: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 @@ -4104,26 +4612,26 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTypee`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 IL_0038: ldloc.0 IL_0039: ret - } // end of method '<>f__AnonymousTypee`2'::GetHashCode + } // end of method '<>f__AnonymousType10`2'::GetHashCode .property instance !'j__TPar' Country() { - .get instance !'j__TPar' '<>f__AnonymousTypee`2'::get_Country() - } // end of property '<>f__AnonymousTypee`2'::Country + .get instance !'j__TPar' '<>f__AnonymousType10`2'::get_Country() + } // end of property '<>f__AnonymousType10`2'::Country .property instance !'j__TPar' CustCount() { - .get instance !'j__TPar' '<>f__AnonymousTypee`2'::get_CustCount() - } // end of property '<>f__AnonymousTypee`2'::CustCount -} // end of class '<>f__AnonymousTypee`2' + .get instance !'j__TPar' '<>f__AnonymousType10`2'::get_CustCount() + } // end of property '<>f__AnonymousType10`2'::CustCount +} // end of class '<>f__AnonymousType10`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousTypef`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType11`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -4142,12 +4650,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousTypef`2'::.ctor + } // end of method '<>f__AnonymousType11`2'::.ctor .method public hidebysig specialname instance !'j__TPar' get_m() cil managed @@ -4155,9 +4663,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypef`2'::get_m + } // end of method '<>f__AnonymousType11`2'::get_m .method public hidebysig specialname instance !'j__TPar' get_t() cil managed @@ -4165,9 +4673,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousTypef`2'::get_t + } // end of method '<>f__AnonymousType11`2'::get_t .method public hidebysig virtual instance string ToString() cil managed @@ -4184,7 +4692,7 @@ IL_0011: pop IL_0012: ldloc.0 IL_0013: ldarg.0 - IL_0014: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0019: box !'j__TPar' IL_001e: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0023: pop @@ -4194,7 +4702,7 @@ IL_002f: pop IL_0030: ldloc.0 IL_0031: ldarg.0 - IL_0032: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0032: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0037: box !'j__TPar' IL_003c: callvirt instance class [mscorlib]System.Text.StringBuilder [mscorlib]System.Text.StringBuilder::Append(object) IL_0041: pop @@ -4205,7 +4713,7 @@ IL_004e: ldloc.0 IL_004f: callvirt instance string [mscorlib]System.Object::ToString() IL_0054: ret - } // end of method '<>f__AnonymousTypef`2'::ToString + } // end of method '<>f__AnonymousType11`2'::ToString .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -4213,34 +4721,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 59 (0x3b) .maxstack 3 - .locals init (class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0039 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0039 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: ret IL_0039: ldc.i4.0 IL_003a: ret - } // end of method '<>f__AnonymousTypef`2'::Equals + } // end of method '<>f__AnonymousType11`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -4256,7 +4764,7 @@ IL_000c: mul IL_000d: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0012: ldarg.0 - IL_0013: ldfld !0 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0013: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0018: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001d: add IL_001e: stloc.0 @@ -4265,26 +4773,25 @@ IL_0025: mul IL_0026: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousTypef`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002c: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' IL_0031: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0036: add IL_0037: stloc.0 IL_0038: ldloc.0 IL_0039: ret - } // end of method '<>f__AnonymousTypef`2'::GetHashCode + } // end of method '<>f__AnonymousType11`2'::GetHashCode .property instance !'j__TPar' m() { - .get instance !'j__TPar' '<>f__AnonymousTypef`2'::get_m() - } // end of property '<>f__AnonymousTypef`2'::m + .get instance !'j__TPar' '<>f__AnonymousType11`2'::get_m() + } // end of property '<>f__AnonymousType11`2'::m .property instance !'j__TPar' t() { - .get instance !'j__TPar' '<>f__AnonymousTypef`2'::get_t() - } // end of property '<>f__AnonymousTypef`2'::t -} // end of class '<>f__AnonymousTypef`2' + .get instance !'j__TPar' '<>f__AnonymousType11`2'::get_t() + } // end of property '<>f__AnonymousType11`2'::t +} // end of class '<>f__AnonymousType11`2' // ============================================================= // *********** DISASSEMBLY COMPLETE *********************** -// WARNING: Created Win32 resource file C:\work\ILSpy\ICSharpCode.Decompiler.Tests\bin\Debug\net46\../../../TestCases/Pretty\QueryExpressions.opt.res diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.opt.roslyn.il index 6cdeda68d..f1e4543e1 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.opt.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.opt.roslyn.il @@ -2105,7 +2105,383 @@ } // end of property '<>f__AnonymousType9`2'::c } // end of class '<>f__AnonymousType9`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType10`3'<'j__TPar','j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType10`2'<'j__TPar','j__TPar'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .method public hidebysig specialname instance !'j__TPar' + get_pi() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousType10`2'::get_pi + + .method public hidebysig specialname instance !'j__TPar' + get_pname() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousType10`2'::get_pname + + .method public hidebysig specialname rtspecialname + instance void .ctor(!'j__TPar' pi, + !'j__TPar' pname) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ret + } // end of method '<>f__AnonymousType10`2'::.ctor + + .method public hidebysig virtual instance bool + Equals(object 'value') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 59 (0x3b) + .maxstack 3 + .locals init (class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0039 + + IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_000f: ldarg.0 + IL_0010: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0015: ldloc.0 + IL_0016: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0020: brfalse.s IL_0039 + + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002d: ldloc.0 + IL_002e: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0038: ret + + IL_0039: ldc.i4.0 + IL_003a: ret + } // end of method '<>f__AnonymousType10`2'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 52 (0x34) + .maxstack 8 + IL_0000: ldc.i4 0xa7c79008 + IL_0005: ldc.i4 0xa5555529 + IL_000a: mul + IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0010: ldarg.0 + IL_0011: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_001b: add + IL_001c: ldc.i4 0xa5555529 + IL_0021: mul + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_0032: add + IL_0033: ret + } // end of method '<>f__AnonymousType10`2'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 136 (0x88) + .maxstack 7 + .locals init (!'j__TPar' V_0, + !'j__TPar' V_1, + !'j__TPar' V_2, + !'j__TPar' V_3) + IL_0000: ldnull + IL_0001: ldstr "{{ pi = {0}, pname = {1} }}" + IL_0006: ldc.i4.2 + IL_0007: newarr [mscorlib]System.Object + IL_000c: dup + IL_000d: ldc.i4.0 + IL_000e: ldarg.0 + IL_000f: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: stloc.0 + IL_0015: ldloca.s V_0 + IL_0017: ldloca.s V_1 + IL_0019: initobj !'j__TPar' + IL_001f: ldloc.1 + IL_0020: box !'j__TPar' + IL_0025: brtrue.s IL_003b + + IL_0027: ldobj !'j__TPar' + IL_002c: stloc.1 + IL_002d: ldloca.s V_1 + IL_002f: ldloc.1 + IL_0030: box !'j__TPar' + IL_0035: brtrue.s IL_003b + + IL_0037: pop + IL_0038: ldnull + IL_0039: br.s IL_0046 + + IL_003b: constrained. !'j__TPar' + IL_0041: callvirt instance string [mscorlib]System.Object::ToString() + IL_0046: stelem.ref + IL_0047: dup + IL_0048: ldc.i4.1 + IL_0049: ldarg.0 + IL_004a: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_004f: stloc.2 + IL_0050: ldloca.s V_2 + IL_0052: ldloca.s V_3 + IL_0054: initobj !'j__TPar' + IL_005a: ldloc.3 + IL_005b: box !'j__TPar' + IL_0060: brtrue.s IL_0076 + + IL_0062: ldobj !'j__TPar' + IL_0067: stloc.3 + IL_0068: ldloca.s V_3 + IL_006a: ldloc.3 + IL_006b: box !'j__TPar' + IL_0070: brtrue.s IL_0076 + + IL_0072: pop + IL_0073: ldnull + IL_0074: br.s IL_0081 + + IL_0076: constrained. !'j__TPar' + IL_007c: callvirt instance string [mscorlib]System.Object::ToString() + IL_0081: stelem.ref + IL_0082: call string [mscorlib]System.String::Format(class [mscorlib]System.IFormatProvider, + string, + object[]) + IL_0087: ret + } // end of method '<>f__AnonymousType10`2'::ToString + + .property instance !'j__TPar' pi() + { + .get instance !'j__TPar' '<>f__AnonymousType10`2'::get_pi() + } // end of property '<>f__AnonymousType10`2'::pi + .property instance !'j__TPar' pname() + { + .get instance !'j__TPar' '<>f__AnonymousType10`2'::get_pname() + } // end of property '<>f__AnonymousType10`2'::pname +} // end of class '<>f__AnonymousType10`2' + +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType11`2'<'<<>h__TransparentIdentifier0>j__TPar','j__TPar'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private initonly !'<<>h__TransparentIdentifier0>j__TPar' '<<>h__TransparentIdentifier0>i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .method public hidebysig specialname instance !'<<>h__TransparentIdentifier0>j__TPar' + 'get_<>h__TransparentIdentifier0'() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousType11`2'::'get_<>h__TransparentIdentifier0' + + .method public hidebysig specialname instance !'j__TPar' + get_pvalue() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousType11`2'::get_pvalue + + .method public hidebysig specialname rtspecialname + instance void .ctor(!'<<>h__TransparentIdentifier0>j__TPar' '<>h__TransparentIdentifier0', + !'j__TPar' pvalue) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ret + } // end of method '<>f__AnonymousType11`2'::.ctor + + .method public hidebysig virtual instance bool + Equals(object 'value') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 59 (0x3b) + .maxstack 3 + .locals init (class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0039 + + IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::get_Default() + IL_000f: ldarg.0 + IL_0010: ldfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0015: ldloc.0 + IL_0016: ldfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::Equals(!0, + !0) + IL_0020: brfalse.s IL_0039 + + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_002d: ldloc.0 + IL_002e: ldfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0038: ret + + IL_0039: ldc.i4.0 + IL_003a: ret + } // end of method '<>f__AnonymousType11`2'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 52 (0x34) + .maxstack 8 + IL_0000: ldc.i4 0x6a08b9da + IL_0005: ldc.i4 0xa5555529 + IL_000a: mul + IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::get_Default() + IL_0010: ldarg.0 + IL_0011: ldfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::GetHashCode(!0) + IL_001b: add + IL_001c: ldc.i4 0xa5555529 + IL_0021: mul + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_0032: add + IL_0033: ret + } // end of method '<>f__AnonymousType11`2'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 136 (0x88) + .maxstack 7 + .locals init (!'<<>h__TransparentIdentifier0>j__TPar' V_0, + !'<<>h__TransparentIdentifier0>j__TPar' V_1, + !'j__TPar' V_2, + !'j__TPar' V_3) + IL_0000: ldnull + IL_0001: ldstr "{{ <>h__TransparentIdentifier0 = {0}, pvalue = {1}" + + " }}" + IL_0006: ldc.i4.2 + IL_0007: newarr [mscorlib]System.Object + IL_000c: dup + IL_000d: ldc.i4.0 + IL_000e: ldarg.0 + IL_000f: ldfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0014: stloc.0 + IL_0015: ldloca.s V_0 + IL_0017: ldloca.s V_1 + IL_0019: initobj !'<<>h__TransparentIdentifier0>j__TPar' + IL_001f: ldloc.1 + IL_0020: box !'<<>h__TransparentIdentifier0>j__TPar' + IL_0025: brtrue.s IL_003b + + IL_0027: ldobj !'<<>h__TransparentIdentifier0>j__TPar' + IL_002c: stloc.1 + IL_002d: ldloca.s V_1 + IL_002f: ldloc.1 + IL_0030: box !'<<>h__TransparentIdentifier0>j__TPar' + IL_0035: brtrue.s IL_003b + + IL_0037: pop + IL_0038: ldnull + IL_0039: br.s IL_0046 + + IL_003b: constrained. !'<<>h__TransparentIdentifier0>j__TPar' + IL_0041: callvirt instance string [mscorlib]System.Object::ToString() + IL_0046: stelem.ref + IL_0047: dup + IL_0048: ldc.i4.1 + IL_0049: ldarg.0 + IL_004a: ldfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_004f: stloc.2 + IL_0050: ldloca.s V_2 + IL_0052: ldloca.s V_3 + IL_0054: initobj !'j__TPar' + IL_005a: ldloc.3 + IL_005b: box !'j__TPar' + IL_0060: brtrue.s IL_0076 + + IL_0062: ldobj !'j__TPar' + IL_0067: stloc.3 + IL_0068: ldloca.s V_3 + IL_006a: ldloc.3 + IL_006b: box !'j__TPar' + IL_0070: brtrue.s IL_0076 + + IL_0072: pop + IL_0073: ldnull + IL_0074: br.s IL_0081 + + IL_0076: constrained. !'j__TPar' + IL_007c: callvirt instance string [mscorlib]System.Object::ToString() + IL_0081: stelem.ref + IL_0082: call string [mscorlib]System.String::Format(class [mscorlib]System.IFormatProvider, + string, + object[]) + IL_0087: ret + } // end of method '<>f__AnonymousType11`2'::ToString + + .property instance !'<<>h__TransparentIdentifier0>j__TPar' + '<>h__TransparentIdentifier0'() + { + .get instance !'<<>h__TransparentIdentifier0>j__TPar' '<>f__AnonymousType11`2'::'get_<>h__TransparentIdentifier0'() + } // end of property '<>f__AnonymousType11`2'::'<>h__TransparentIdentifier0' + .property instance !'j__TPar' pvalue() + { + .get instance !'j__TPar' '<>f__AnonymousType11`2'::get_pvalue() + } // end of property '<>f__AnonymousType11`2'::pvalue +} // end of class '<>f__AnonymousType11`2' + +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType12`3'<'j__TPar','j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -2121,9 +2497,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType10`3'::get_Name + } // end of method '<>f__AnonymousType12`3'::get_Name .method public hidebysig specialname instance !'j__TPar' get_OrderDate() cil managed @@ -2131,9 +2507,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType10`3'::get_OrderDate + } // end of method '<>f__AnonymousType12`3'::get_OrderDate .method public hidebysig specialname instance !'j__TPar' get_Total() cil managed @@ -2141,9 +2517,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType10`3'::get_Total + } // end of method '<>f__AnonymousType12`3'::get_Total .method public hidebysig specialname rtspecialname instance void .ctor(!'j__TPar' Name, @@ -2157,15 +2533,15 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ldarg.0 IL_0015: ldarg.3 - IL_0016: stfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: stfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_001b: ret - } // end of method '<>f__AnonymousType10`3'::.ctor + } // end of method '<>f__AnonymousType12`3'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -2173,43 +2549,43 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 83 (0x53) .maxstack 3 - .locals init (class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0051 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0051 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: brfalse.s IL_0051 IL_003a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_003f: ldarg.0 - IL_0040: ldfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0040: ldfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0045: ldloc.0 - IL_0046: ldfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0046: ldfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_004b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0050: ret IL_0051: ldc.i4.0 IL_0052: ret - } // end of method '<>f__AnonymousType10`3'::Equals + } // end of method '<>f__AnonymousType12`3'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -2222,25 +2598,25 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ldc.i4 0xa5555529 IL_0038: mul IL_0039: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_003e: ldarg.0 - IL_003f: ldfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_003f: ldfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0044: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0049: add IL_004a: ret - } // end of method '<>f__AnonymousType10`3'::GetHashCode + } // end of method '<>f__AnonymousType12`3'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -2261,7 +2637,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -2287,7 +2663,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -2313,7 +2689,7 @@ IL_0082: dup IL_0083: ldc.i4.2 IL_0084: ldarg.0 - IL_0085: ldfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0085: ldfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_008a: stloc.s V_4 IL_008c: ldloca.s V_4 IL_008e: ldloca.s V_5 @@ -2340,24 +2716,24 @@ string, object[]) IL_00c6: ret - } // end of method '<>f__AnonymousType10`3'::ToString + } // end of method '<>f__AnonymousType12`3'::ToString .property instance !'j__TPar' Name() { - .get instance !'j__TPar' '<>f__AnonymousType10`3'::get_Name() - } // end of property '<>f__AnonymousType10`3'::Name + .get instance !'j__TPar' '<>f__AnonymousType12`3'::get_Name() + } // end of property '<>f__AnonymousType12`3'::Name .property instance !'j__TPar' OrderDate() { - .get instance !'j__TPar' '<>f__AnonymousType10`3'::get_OrderDate() - } // end of property '<>f__AnonymousType10`3'::OrderDate + .get instance !'j__TPar' '<>f__AnonymousType12`3'::get_OrderDate() + } // end of property '<>f__AnonymousType12`3'::OrderDate .property instance !'j__TPar' Total() { - .get instance !'j__TPar' '<>f__AnonymousType10`3'::get_Total() - } // end of property '<>f__AnonymousType10`3'::Total -} // end of class '<>f__AnonymousType10`3' + .get instance !'j__TPar' '<>f__AnonymousType12`3'::get_Total() + } // end of property '<>f__AnonymousType12`3'::Total +} // end of class '<>f__AnonymousType12`3' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType11`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType13`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -2371,9 +2747,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType11`2'::get_c + } // end of method '<>f__AnonymousType13`2'::get_c .method public hidebysig specialname instance !'j__TPar' get_co() cil managed @@ -2381,9 +2757,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType11`2'::get_co + } // end of method '<>f__AnonymousType13`2'::get_co .method public hidebysig specialname rtspecialname instance void .ctor(!'j__TPar' c, @@ -2396,12 +2772,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousType11`2'::.ctor + } // end of method '<>f__AnonymousType13`2'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -2409,34 +2785,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 59 (0x3b) .maxstack 3 - .locals init (class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0039 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0039 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: ret IL_0039: ldc.i4.0 IL_003a: ret - } // end of method '<>f__AnonymousType11`2'::Equals + } // end of method '<>f__AnonymousType13`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -2449,18 +2825,18 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ret - } // end of method '<>f__AnonymousType11`2'::GetHashCode + } // end of method '<>f__AnonymousType13`2'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -2479,7 +2855,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -2505,7 +2881,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -2532,19 +2908,19 @@ string, object[]) IL_0087: ret - } // end of method '<>f__AnonymousType11`2'::ToString + } // end of method '<>f__AnonymousType13`2'::ToString .property instance !'j__TPar' c() { - .get instance !'j__TPar' '<>f__AnonymousType11`2'::get_c() - } // end of property '<>f__AnonymousType11`2'::c + .get instance !'j__TPar' '<>f__AnonymousType13`2'::get_c() + } // end of property '<>f__AnonymousType13`2'::c .property instance !'j__TPar' co() { - .get instance !'j__TPar' '<>f__AnonymousType11`2'::get_co() - } // end of property '<>f__AnonymousType11`2'::co -} // end of class '<>f__AnonymousType11`2' + .get instance !'j__TPar' '<>f__AnonymousType13`2'::get_co() + } // end of property '<>f__AnonymousType13`2'::co +} // end of class '<>f__AnonymousType13`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType12`2'<'<<>h__TransparentIdentifier0>j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType14`2'<'<<>h__TransparentIdentifier0>j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -2558,9 +2934,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType12`2'::'get_<>h__TransparentIdentifier0' + } // end of method '<>f__AnonymousType14`2'::'get_<>h__TransparentIdentifier0' .method public hidebysig specialname instance !'j__TPar' get_n() cil managed @@ -2568,9 +2944,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType12`2'::get_n + } // end of method '<>f__AnonymousType14`2'::get_n .method public hidebysig specialname rtspecialname instance void .ctor(!'<<>h__TransparentIdentifier0>j__TPar' '<>h__TransparentIdentifier0', @@ -2583,12 +2959,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousType12`2'::.ctor + } // end of method '<>f__AnonymousType14`2'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -2596,34 +2972,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 59 (0x3b) .maxstack 3 - .locals init (class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0039 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0039 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: ret IL_0039: ldc.i4.0 IL_003a: ret - } // end of method '<>f__AnonymousType12`2'::Equals + } // end of method '<>f__AnonymousType14`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -2636,18 +3012,18 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ret - } // end of method '<>f__AnonymousType12`2'::GetHashCode + } // end of method '<>f__AnonymousType14`2'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -2666,7 +3042,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -2692,7 +3068,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -2719,20 +3095,20 @@ string, object[]) IL_0087: ret - } // end of method '<>f__AnonymousType12`2'::ToString + } // end of method '<>f__AnonymousType14`2'::ToString .property instance !'<<>h__TransparentIdentifier0>j__TPar' '<>h__TransparentIdentifier0'() { - .get instance !'<<>h__TransparentIdentifier0>j__TPar' '<>f__AnonymousType12`2'::'get_<>h__TransparentIdentifier0'() - } // end of property '<>f__AnonymousType12`2'::'<>h__TransparentIdentifier0' + .get instance !'<<>h__TransparentIdentifier0>j__TPar' '<>f__AnonymousType14`2'::'get_<>h__TransparentIdentifier0'() + } // end of property '<>f__AnonymousType14`2'::'<>h__TransparentIdentifier0' .property instance !'j__TPar' n() { - .get instance !'j__TPar' '<>f__AnonymousType12`2'::get_n() - } // end of property '<>f__AnonymousType12`2'::n -} // end of class '<>f__AnonymousType12`2' + .get instance !'j__TPar' '<>f__AnonymousType14`2'::get_n() + } // end of property '<>f__AnonymousType14`2'::n +} // end of class '<>f__AnonymousType14`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType13`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType15`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -2746,9 +3122,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType13`2'::get_Name + } // end of method '<>f__AnonymousType15`2'::get_Name .method public hidebysig specialname instance !'j__TPar' get_OrderCount() cil managed @@ -2756,9 +3132,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType13`2'::get_OrderCount + } // end of method '<>f__AnonymousType15`2'::get_OrderCount .method public hidebysig specialname rtspecialname instance void .ctor(!'j__TPar' Name, @@ -2771,12 +3147,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousType13`2'::.ctor + } // end of method '<>f__AnonymousType15`2'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -2784,34 +3160,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 59 (0x3b) .maxstack 3 - .locals init (class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0039 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0039 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: ret IL_0039: ldc.i4.0 IL_003a: ret - } // end of method '<>f__AnonymousType13`2'::Equals + } // end of method '<>f__AnonymousType15`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -2824,18 +3200,18 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ret - } // end of method '<>f__AnonymousType13`2'::GetHashCode + } // end of method '<>f__AnonymousType15`2'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -2854,7 +3230,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -2880,7 +3256,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -2907,20 +3283,20 @@ string, object[]) IL_0087: ret - } // end of method '<>f__AnonymousType13`2'::ToString + } // end of method '<>f__AnonymousType15`2'::ToString .property instance !'j__TPar' Name() { - .get instance !'j__TPar' '<>f__AnonymousType13`2'::get_Name() - } // end of property '<>f__AnonymousType13`2'::Name + .get instance !'j__TPar' '<>f__AnonymousType15`2'::get_Name() + } // end of property '<>f__AnonymousType15`2'::Name .property instance !'j__TPar' OrderCount() { - .get instance !'j__TPar' '<>f__AnonymousType13`2'::get_OrderCount() - } // end of property '<>f__AnonymousType13`2'::OrderCount -} // end of class '<>f__AnonymousType13`2' + .get instance !'j__TPar' '<>f__AnonymousType15`2'::get_OrderCount() + } // end of property '<>f__AnonymousType15`2'::OrderCount +} // end of class '<>f__AnonymousType15`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType14`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType16`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -2934,9 +3310,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType14`2'::get_Country + } // end of method '<>f__AnonymousType16`2'::get_Country .method public hidebysig specialname instance !'j__TPar' get_CustCount() cil managed @@ -2944,9 +3320,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType14`2'::get_CustCount + } // end of method '<>f__AnonymousType16`2'::get_CustCount .method public hidebysig specialname rtspecialname instance void .ctor(!'j__TPar' Country, @@ -2959,12 +3335,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousType14`2'::.ctor + } // end of method '<>f__AnonymousType16`2'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -2972,34 +3348,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 59 (0x3b) .maxstack 3 - .locals init (class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0039 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0039 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: ret IL_0039: ldc.i4.0 IL_003a: ret - } // end of method '<>f__AnonymousType14`2'::Equals + } // end of method '<>f__AnonymousType16`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -3012,18 +3388,18 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ret - } // end of method '<>f__AnonymousType14`2'::GetHashCode + } // end of method '<>f__AnonymousType16`2'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -3042,7 +3418,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -3068,7 +3444,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -3095,20 +3471,20 @@ string, object[]) IL_0087: ret - } // end of method '<>f__AnonymousType14`2'::ToString + } // end of method '<>f__AnonymousType16`2'::ToString .property instance !'j__TPar' Country() { - .get instance !'j__TPar' '<>f__AnonymousType14`2'::get_Country() - } // end of property '<>f__AnonymousType14`2'::Country + .get instance !'j__TPar' '<>f__AnonymousType16`2'::get_Country() + } // end of property '<>f__AnonymousType16`2'::Country .property instance !'j__TPar' CustCount() { - .get instance !'j__TPar' '<>f__AnonymousType14`2'::get_CustCount() - } // end of property '<>f__AnonymousType14`2'::CustCount -} // end of class '<>f__AnonymousType14`2' + .get instance !'j__TPar' '<>f__AnonymousType16`2'::get_CustCount() + } // end of property '<>f__AnonymousType16`2'::CustCount +} // end of class '<>f__AnonymousType16`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType15`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType17`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -3122,9 +3498,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType15`2'::get_m + } // end of method '<>f__AnonymousType17`2'::get_m .method public hidebysig specialname instance !'j__TPar' get_t() cil managed @@ -3132,9 +3508,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType15`2'::get_t + } // end of method '<>f__AnonymousType17`2'::get_t .method public hidebysig specialname rtspecialname instance void .ctor(!'j__TPar' m, @@ -3147,12 +3523,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousType15`2'::.ctor + } // end of method '<>f__AnonymousType17`2'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -3160,34 +3536,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 59 (0x3b) .maxstack 3 - .locals init (class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0039 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0039 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: ret IL_0039: ldc.i4.0 IL_003a: ret - } // end of method '<>f__AnonymousType15`2'::Equals + } // end of method '<>f__AnonymousType17`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -3200,18 +3576,18 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ret - } // end of method '<>f__AnonymousType15`2'::GetHashCode + } // end of method '<>f__AnonymousType17`2'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -3230,7 +3606,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -3256,7 +3632,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -3283,21 +3659,96 @@ string, object[]) IL_0087: ret - } // end of method '<>f__AnonymousType15`2'::ToString + } // end of method '<>f__AnonymousType17`2'::ToString .property instance !'j__TPar' m() { - .get instance !'j__TPar' '<>f__AnonymousType15`2'::get_m() - } // end of property '<>f__AnonymousType15`2'::m + .get instance !'j__TPar' '<>f__AnonymousType17`2'::get_m() + } // end of property '<>f__AnonymousType17`2'::m .property instance !'j__TPar' t() { - .get instance !'j__TPar' '<>f__AnonymousType15`2'::get_t() - } // end of property '<>f__AnonymousType15`2'::t -} // end of class '<>f__AnonymousType15`2' + .get instance !'j__TPar' '<>f__AnonymousType17`2'::get_t() + } // end of property '<>f__AnonymousType17`2'::t +} // end of class '<>f__AnonymousType17`2' .class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions extends [mscorlib]System.Object { + .class auto ansi nested public beforefieldinit HbmParam + extends [mscorlib]System.Object + { + .field private string 'k__BackingField' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string[] 'k__BackingField' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .method public hidebysig specialname + instance string get_Name() 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: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0006: ret + } // end of method HbmParam::get_Name + + .method public hidebysig specialname + instance void set_Name(string 'value') 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: ldarg.1 + IL_0002: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0007: ret + } // end of method HbmParam::set_Name + + .method public hidebysig specialname + instance string[] get_Text() 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: ldfld string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0006: ret + } // end of method HbmParam::get_Text + + .method public hidebysig specialname + instance void set_Text(string[] 'value') 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: ldarg.1 + IL_0002: stfld string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0007: ret + } // end of method HbmParam::set_Text + + .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 HbmParam::.ctor + + .property instance string Name() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::get_Name() + .set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Name(string) + } // end of property HbmParam::Name + .property instance string[] Text() + { + .get instance string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::get_Text() + .set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Text(string[]) + } // end of property HbmParam::Text + } // end of class HbmParam + .class auto ansi nested public beforefieldinit Customer extends [mscorlib]System.Object { @@ -3361,49 +3812,51 @@ { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .field public static initonly class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' '<>9' - .field public static class [mscorlib]System.Func`2 '<>9__5_0' - .field public static class [mscorlib]System.Func`2 '<>9__5_1' - .field public static class [mscorlib]System.Func`2> '<>9__6_0' - .field public static class [mscorlib]System.Func`3f__AnonymousType0`3'> '<>9__6_1' + .field public static class [mscorlib]System.Func`2 '<>9__6_0' + .field public static class [mscorlib]System.Func`2 '<>9__6_1' .field public static class [mscorlib]System.Func`2> '<>9__7_0' - .field public static class [mscorlib]System.Func`3f__AnonymousType1`2'> '<>9__7_1' - .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> '<>9__7_2' - .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> '<>9__7_3' + .field public static class [mscorlib]System.Func`3f__AnonymousType0`3'> '<>9__7_1' .field public static class [mscorlib]System.Func`2> '<>9__8_0' .field public static class [mscorlib]System.Func`3f__AnonymousType1`2'> '<>9__8_1' - .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> '<>9__8_2' - .field public static class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> '<>9__8_3' + .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> '<>9__8_2' + .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> '<>9__8_3' .field public static class [mscorlib]System.Func`2> '<>9__9_0' .field public static class [mscorlib]System.Func`3f__AnonymousType1`2'> '<>9__9_1' .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> '<>9__9_2' - .field public static class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> '<>9__9_3' - .field public static class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> '<>9__9_4' - .field public static class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> '<>9__9_5' - .field public static class [mscorlib]System.Func`2 '<>9__10_3' - .field public static class [mscorlib]System.Func`2f__AnonymousType6`2'> '<>9__10_0' - .field public static class [mscorlib]System.Func`2f__AnonymousType6`2',bool> '<>9__10_1' - .field public static class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> '<>9__10_2' - .field public static class [mscorlib]System.Func`2f__AnonymousType8`2'> '<>9__11_0' - .field public static class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> '<>9__11_1' - .field public static class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> '<>9__11_2' - .field public static class [mscorlib]System.Func`2 '<>9__12_0' - .field public static class [mscorlib]System.Func`2 '<>9__12_1' - .field public static class [mscorlib]System.Func`3f__AnonymousType10`3'> '<>9__12_2' - .field public static class [mscorlib]System.Func`2 '<>9__13_0' - .field public static class [mscorlib]System.Func`2 '<>9__13_1' - .field public static class [mscorlib]System.Func`3,class '<>f__AnonymousType11`2'>> '<>9__13_2' - .field public static class [mscorlib]System.Func`2f__AnonymousType11`2'>,class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>> '<>9__13_3' - .field public static class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,bool> '<>9__13_4' - .field public static class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,class '<>f__AnonymousType13`2'> '<>9__13_5' - .field public static class [mscorlib]System.Func`2 '<>9__14_0' - .field public static class [mscorlib]System.Func`2 '<>9__14_1' - .field public static class [mscorlib]System.Func`2 '<>9__15_0' - .field public static class [mscorlib]System.Func`2 '<>9__15_1' - .field public static class [mscorlib]System.Func`2 '<>9__16_0' + .field public static class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> '<>9__9_3' + .field public static class [mscorlib]System.Func`2> '<>9__10_0' + .field public static class [mscorlib]System.Func`3f__AnonymousType1`2'> '<>9__10_1' + .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> '<>9__10_2' + .field public static class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> '<>9__10_3' + .field public static class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> '<>9__10_4' + .field public static class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> '<>9__10_5' + .field public static class [mscorlib]System.Func`2 '<>9__11_3' + .field public static class [mscorlib]System.Func`2f__AnonymousType6`2'> '<>9__11_0' + .field public static class [mscorlib]System.Func`2f__AnonymousType6`2',bool> '<>9__11_1' + .field public static class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> '<>9__11_2' + .field public static class [mscorlib]System.Func`2f__AnonymousType8`2'> '<>9__12_0' + .field public static class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> '<>9__12_1' + .field public static class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> '<>9__12_2' + .field public static class [mscorlib]System.Func`2f__AnonymousType10`2'> '<>9__13_0' + .field public static class [mscorlib]System.Func`2f__AnonymousType11`2'f__AnonymousType10`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> '<>9__13_2' + .field public static class [mscorlib]System.Func`2 '<>9__14_0' + .field public static class [mscorlib]System.Func`2 '<>9__14_1' + .field public static class [mscorlib]System.Func`3f__AnonymousType12`3'> '<>9__14_2' + .field public static class [mscorlib]System.Func`2 '<>9__15_0' + .field public static class [mscorlib]System.Func`2 '<>9__15_1' + .field public static class [mscorlib]System.Func`3,class '<>f__AnonymousType13`2'>> '<>9__15_2' + .field public static class [mscorlib]System.Func`2f__AnonymousType13`2'>,class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>> '<>9__15_3' + .field public static class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,bool> '<>9__15_4' + .field public static class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,class '<>f__AnonymousType15`2'> '<>9__15_5' + .field public static class [mscorlib]System.Func`2 '<>9__16_0' + .field public static class [mscorlib]System.Func`2 '<>9__16_1' .field public static class [mscorlib]System.Func`2 '<>9__17_0' - .field public static class [mscorlib]System.Func`2,class '<>f__AnonymousType14`2'> '<>9__17_1' - .field public static class [mscorlib]System.Func`2 '<>9__18_0' - .field public static class [mscorlib]System.Func`2 '<>9__18_1' + .field public static class [mscorlib]System.Func`2 '<>9__17_1' + .field public static class [mscorlib]System.Func`2 '<>9__18_0' + .field public static class [mscorlib]System.Func`2 '<>9__19_0' + .field public static class [mscorlib]System.Func`2,class '<>f__AnonymousType16`2'> '<>9__19_1' + .field public static class [mscorlib]System.Func`2 '<>9__20_0' + .field public static class [mscorlib]System.Func`2 '<>9__20_1' .method private hidebysig specialname rtspecialname static void .cctor() cil managed { @@ -3425,7 +3878,7 @@ } // end of method '<>c'::.ctor .method assembly hidebysig instance bool - 'b__5_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__6_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 16 (0x10) .maxstack 8 @@ -3435,10 +3888,10 @@ IL_000b: ldc.i4.s 10 IL_000d: cgt IL_000f: ret - } // end of method '<>c'::'b__5_0' + } // end of method '<>c'::'b__6_0' .method assembly hidebysig instance bool - 'b__5_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__6_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 17 (0x11) .maxstack 8 @@ -3448,20 +3901,20 @@ IL_000b: call bool [mscorlib]System.String::op_Equality(string, string) IL_0010: ret - } // end of method '<>c'::'b__5_1' + } // end of method '<>c'::'b__6_1' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__6_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__7_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Orders IL_0006: ret - } // end of method '<>c'::'b__6_0' + } // end of method '<>c'::'b__7_0' .method assembly hidebysig instance class '<>f__AnonymousType0`3' - 'b__6_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + 'b__7_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 24 (0x18) @@ -3476,20 +3929,20 @@ !1, !2) IL_0017: ret - } // end of method '<>c'::'b__6_1' + } // end of method '<>c'::'b__7_1' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__7_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__8_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Orders IL_0006: ret - } // end of method '<>c'::'b__7_0' + } // end of method '<>c'::'b__8_0' .method assembly hidebysig instance class '<>f__AnonymousType1`2' - 'b__7_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + 'b__8_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 8 (0x8) @@ -3499,10 +3952,10 @@ IL_0002: newobj instance void class '<>f__AnonymousType1`2'::.ctor(!0, !1) IL_0007: ret - } // end of method '<>c'::'b__7_1' + } // end of method '<>c'::'b__8_1' .method assembly hidebysig instance valuetype [mscorlib]System.Decimal - 'b__7_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed + 'b__8_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed { // Code size 12 (0xc) .maxstack 8 @@ -3510,10 +3963,10 @@ IL_0001: callvirt instance !1 class '<>f__AnonymousType1`2'::get_o() IL_0006: ldfld valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Total IL_000b: ret - } // end of method '<>c'::'b__7_2' + } // end of method '<>c'::'b__8_2' .method assembly hidebysig instance class '<>f__AnonymousType0`3' - 'b__7_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed + 'b__8_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed { // Code size 39 (0x27) .maxstack 8 @@ -3530,20 +3983,20 @@ !1, !2) IL_0026: ret - } // end of method '<>c'::'b__7_3' + } // end of method '<>c'::'b__8_3' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__8_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__9_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Orders IL_0006: ret - } // end of method '<>c'::'b__8_0' + } // end of method '<>c'::'b__9_0' .method assembly hidebysig instance class '<>f__AnonymousType1`2' - 'b__8_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + 'b__9_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 8 (0x8) @@ -3553,10 +4006,10 @@ IL_0002: newobj instance void class '<>f__AnonymousType1`2'::.ctor(!0, !1) IL_0007: ret - } // end of method '<>c'::'b__8_1' + } // end of method '<>c'::'b__9_1' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__8_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed + 'b__9_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed { // Code size 12 (0xc) .maxstack 8 @@ -3564,10 +4017,10 @@ IL_0001: callvirt instance !1 class '<>f__AnonymousType1`2'::get_o() IL_0006: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Details IL_000b: ret - } // end of method '<>c'::'b__8_2' + } // end of method '<>c'::'b__9_2' .method assembly hidebysig instance class '<>f__AnonymousType2`3' - 'b__8_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0', + 'b__9_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0', class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail d) cil managed { // Code size 34 (0x22) @@ -3584,21 +4037,21 @@ !1, !2) IL_0021: ret - } // end of method '<>c'::'b__8_3' + } // end of method '<>c'::'b__9_3' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__9_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__10_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Orders IL_0006: ret - } // end of method '<>c'::'b__9_0' + } // end of method '<>c'::'b__10_0' .method assembly hidebysig instance class '<>f__AnonymousType1`2' - 'b__9_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, - class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__10_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 8 (0x8) .maxstack 8 @@ -3607,10 +4060,10 @@ IL_0002: newobj instance void class '<>f__AnonymousType1`2'::.ctor(!0, !1) IL_0007: ret - } // end of method '<>c'::'b__9_1' + } // end of method '<>c'::'b__10_1' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__9_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed + 'b__10_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed { // Code size 12 (0xc) .maxstack 8 @@ -3618,11 +4071,11 @@ IL_0001: callvirt instance !1 class '<>f__AnonymousType1`2'::get_o() IL_0006: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Details IL_000b: ret - } // end of method '<>c'::'b__9_2' + } // end of method '<>c'::'b__10_2' .method assembly hidebysig instance class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail> - 'b__9_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0', - class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail d) cil managed + 'b__10_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0', + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail d) cil managed { // Code size 8 (0x8) .maxstack 8 @@ -3631,10 +4084,10 @@ IL_0002: newobj instance void class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>::.ctor(!0, !1) IL_0007: ret - } // end of method '<>c'::'b__9_3' + } // end of method '<>c'::'b__10_3' .method assembly hidebysig instance class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal> - 'b__9_4'(class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail> '<>h__TransparentIdentifier1') cil managed + 'b__10_4'(class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail> '<>h__TransparentIdentifier1') cil managed { // Code size 39 (0x27) .maxstack 8 @@ -3651,10 +4104,10 @@ IL_0021: newobj instance void class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>::.ctor(!0, !1) IL_0026: ret - } // end of method '<>c'::'b__9_4' + } // end of method '<>c'::'b__10_4' .method assembly hidebysig instance class '<>f__AnonymousType5`3' - 'b__9_5'(class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal> '<>h__TransparentIdentifier2') cil managed + 'b__10_5'(class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal> '<>h__TransparentIdentifier2') cil managed { // Code size 54 (0x36) .maxstack 8 @@ -3674,36 +4127,36 @@ !1, !2) IL_0035: ret - } // end of method '<>c'::'b__9_5' + } // end of method '<>c'::'b__10_5' .method assembly hidebysig instance class '<>f__AnonymousType6`2' - 'b__10_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__11_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 49 (0x31) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldarg.1 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Details - IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_3' + IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_3' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_3'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail) + IL_0015: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_3'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail) IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_3' + IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_3' IL_0026: call valuetype [mscorlib]System.Decimal [System.Core]System.Linq.Enumerable::Sum(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_002b: newobj instance void class '<>f__AnonymousType6`2'::.ctor(!0, !1) IL_0030: ret - } // end of method '<>c'::'b__10_0' + } // end of method '<>c'::'b__11_0' .method assembly hidebysig instance valuetype [mscorlib]System.Decimal - 'b__10_3'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail d) cil managed + 'b__11_3'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail d) cil managed { // Code size 23 (0x17) .maxstack 8 @@ -3715,10 +4168,10 @@ IL_0011: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) IL_0016: ret - } // end of method '<>c'::'b__10_3' + } // end of method '<>c'::'b__11_3' .method assembly hidebysig instance bool - 'b__10_1'(class '<>f__AnonymousType6`2' '<>h__TransparentIdentifier0') cil managed + 'b__11_1'(class '<>f__AnonymousType6`2' '<>h__TransparentIdentifier0') cil managed { // Code size 22 (0x16) .maxstack 8 @@ -3729,10 +4182,10 @@ IL_0010: call bool [mscorlib]System.Decimal::op_GreaterThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) IL_0015: ret - } // end of method '<>c'::'b__10_1' + } // end of method '<>c'::'b__11_1' .method assembly hidebysig instance class '<>f__AnonymousType7`2' - 'b__10_2'(class '<>f__AnonymousType6`2' '<>h__TransparentIdentifier0') cil managed + 'b__11_2'(class '<>f__AnonymousType6`2' '<>h__TransparentIdentifier0') cil managed { // Code size 23 (0x17) .maxstack 8 @@ -3744,10 +4197,10 @@ IL_0011: newobj instance void class '<>f__AnonymousType7`2'::.ctor(!0, !1) IL_0016: ret - } // end of method '<>c'::'b__10_2' + } // end of method '<>c'::'b__11_2' .method assembly hidebysig instance class '<>f__AnonymousType8`2' - 'b__11_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer a) cil managed + 'b__12_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer a) cil managed { // Code size 13 (0xd) .maxstack 8 @@ -3757,10 +4210,10 @@ IL_0007: newobj instance void class '<>f__AnonymousType8`2'::.ctor(!0, !1) IL_000c: ret - } // end of method '<>c'::'b__11_0' + } // end of method '<>c'::'b__12_0' .method assembly hidebysig instance class '<>f__AnonymousType9`2'f__AnonymousType8`2',string> - 'b__11_1'(class '<>f__AnonymousType8`2' '<>h__TransparentIdentifier0') cil managed + 'b__12_1'(class '<>f__AnonymousType8`2' '<>h__TransparentIdentifier0') cil managed { // Code size 18 (0x12) .maxstack 8 @@ -3771,10 +4224,10 @@ IL_000c: newobj instance void class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>::.ctor(!0, !1) IL_0011: ret - } // end of method '<>c'::'b__11_1' + } // end of method '<>c'::'b__12_1' .method assembly hidebysig instance string - 'b__11_2'(class '<>f__AnonymousType9`2'f__AnonymousType8`2',string> '<>h__TransparentIdentifier1') cil managed + 'b__12_2'(class '<>f__AnonymousType9`2'f__AnonymousType8`2',string> '<>h__TransparentIdentifier1') cil managed { // Code size 23 (0x17) .maxstack 8 @@ -3786,30 +4239,77 @@ IL_0011: call string [mscorlib]System.String::Concat(string, string) IL_0016: ret - } // end of method '<>c'::'b__11_2' + } // end of method '<>c'::'b__12_2' + + .method assembly hidebysig instance class '<>f__AnonymousType10`2' + 'b__13_0'(class [mscorlib]System.Reflection.PropertyInfo pi) cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ldarg.1 + IL_0002: callvirt instance string [mscorlib]System.Reflection.MemberInfo::get_Name() + IL_0007: newobj instance void class '<>f__AnonymousType10`2'::.ctor(!0, + !1) + IL_000c: ret + } // end of method '<>c'::'b__13_0' + + .method assembly hidebysig instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam + 'b__13_2'(class '<>f__AnonymousType11`2'f__AnonymousType10`2',object> '<>h__TransparentIdentifier1') cil managed + { + // Code size 66 (0x42) + .maxstack 5 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam V_0) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.1 + IL_0008: callvirt instance !0 class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>::'get_<>h__TransparentIdentifier0'() + IL_000d: callvirt instance !1 class '<>f__AnonymousType10`2'::get_pname() + IL_0012: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Name(string) + IL_0017: ldloc.0 + IL_0018: ldc.i4.1 + IL_0019: newarr [mscorlib]System.String + IL_001e: dup + IL_001f: ldc.i4.0 + IL_0020: ldarg.1 + IL_0021: callvirt instance !1 class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>::get_pvalue() + IL_0026: brfalse.s IL_0035 + + IL_0028: ldarg.1 + IL_0029: callvirt instance !1 class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>::get_pvalue() + IL_002e: callvirt instance string [mscorlib]System.Object::ToString() + IL_0033: br.s IL_003a + + IL_0035: ldstr "null" + IL_003a: stelem.ref + IL_003b: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Text(string[]) + IL_0040: ldloc.0 + IL_0041: ret + } // end of method '<>c'::'b__13_2' .method assembly hidebysig instance int32 - 'b__12_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__14_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::CustomerID IL_0006: ret - } // end of method '<>c'::'b__12_0' + } // end of method '<>c'::'b__14_0' .method assembly hidebysig instance int32 - 'b__12_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__14_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::CustomerID IL_0006: ret - } // end of method '<>c'::'b__12_1' + } // end of method '<>c'::'b__14_1' - .method assembly hidebysig instance class '<>f__AnonymousType10`3' - 'b__12_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + .method assembly hidebysig instance class '<>f__AnonymousType12`3' + 'b__14_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 24 (0x18) @@ -3820,91 +4320,91 @@ IL_0007: ldfld valuetype [mscorlib]System.DateTime ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::OrderDate IL_000c: ldarg.2 IL_000d: ldfld valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Total - IL_0012: newobj instance void class '<>f__AnonymousType10`3'::.ctor(!0, + IL_0012: newobj instance void class '<>f__AnonymousType12`3'::.ctor(!0, !1, !2) IL_0017: ret - } // end of method '<>c'::'b__12_2' + } // end of method '<>c'::'b__14_2' .method assembly hidebysig instance int32 - 'b__13_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__15_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::CustomerID IL_0006: ret - } // end of method '<>c'::'b__13_0' + } // end of method '<>c'::'b__15_0' .method assembly hidebysig instance int32 - 'b__13_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__15_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::CustomerID IL_0006: ret - } // end of method '<>c'::'b__13_1' + } // end of method '<>c'::'b__15_1' - .method assembly hidebysig instance class '<>f__AnonymousType11`2'> - 'b__13_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + .method assembly hidebysig instance class '<>f__AnonymousType13`2'> + 'b__15_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class [mscorlib]System.Collections.Generic.IEnumerable`1 co) cil managed { // Code size 8 (0x8) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldarg.2 - IL_0002: newobj instance void class '<>f__AnonymousType11`2'>::.ctor(!0, + IL_0002: newobj instance void class '<>f__AnonymousType13`2'>::.ctor(!0, !1) IL_0007: ret - } // end of method '<>c'::'b__13_2' + } // end of method '<>c'::'b__15_2' - .method assembly hidebysig instance class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32> - 'b__13_3'(class '<>f__AnonymousType11`2'> '<>h__TransparentIdentifier0') cil managed + .method assembly hidebysig instance class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32> + 'b__15_3'(class '<>f__AnonymousType13`2'> '<>h__TransparentIdentifier0') cil managed { // Code size 18 (0x12) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldarg.1 - IL_0002: callvirt instance !1 class '<>f__AnonymousType11`2'>::get_co() + IL_0002: callvirt instance !1 class '<>f__AnonymousType13`2'>::get_co() IL_0007: call int32 [System.Core]System.Linq.Enumerable::Count(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_000c: newobj instance void class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>::.ctor(!0, + IL_000c: newobj instance void class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>::.ctor(!0, !1) IL_0011: ret - } // end of method '<>c'::'b__13_3' + } // end of method '<>c'::'b__15_3' .method assembly hidebysig instance bool - 'b__13_4'(class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32> '<>h__TransparentIdentifier1') cil managed + 'b__15_4'(class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32> '<>h__TransparentIdentifier1') cil managed { // Code size 14 (0xe) .maxstack 8 IL_0000: ldarg.1 - IL_0001: callvirt instance !1 class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>::get_n() + IL_0001: callvirt instance !1 class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>::get_n() IL_0006: ldc.i4.s 10 IL_0008: clt IL_000a: ldc.i4.0 IL_000b: ceq IL_000d: ret - } // end of method '<>c'::'b__13_4' + } // end of method '<>c'::'b__15_4' - .method assembly hidebysig instance class '<>f__AnonymousType13`2' - 'b__13_5'(class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32> '<>h__TransparentIdentifier1') cil managed + .method assembly hidebysig instance class '<>f__AnonymousType15`2' + 'b__15_5'(class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32> '<>h__TransparentIdentifier1') cil managed { // Code size 28 (0x1c) .maxstack 8 IL_0000: ldarg.1 - IL_0001: callvirt instance !0 class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>::'get_<>h__TransparentIdentifier0'() - IL_0006: callvirt instance !0 class '<>f__AnonymousType11`2'>::get_c() + IL_0001: callvirt instance !0 class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>::'get_<>h__TransparentIdentifier0'() + IL_0006: callvirt instance !0 class '<>f__AnonymousType13`2'>::get_c() IL_000b: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_0010: ldarg.1 - IL_0011: callvirt instance !1 class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>::get_n() - IL_0016: newobj instance void class '<>f__AnonymousType13`2'::.ctor(!0, + IL_0011: callvirt instance !1 class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>::get_n() + IL_0016: newobj instance void class '<>f__AnonymousType15`2'::.ctor(!0, !1) IL_001b: ret - } // end of method '<>c'::'b__13_5' + } // end of method '<>c'::'b__15_5' .method assembly hidebysig instance string - 'b__14_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__16_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 12 (0xc) .maxstack 8 @@ -3912,40 +4412,40 @@ IL_0001: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Customer IL_0006: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_000b: ret - } // end of method '<>c'::'b__14_0' + } // end of method '<>c'::'b__16_0' .method assembly hidebysig instance valuetype [mscorlib]System.Decimal - 'b__14_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__16_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Total IL_0006: ret - } // end of method '<>c'::'b__14_1' + } // end of method '<>c'::'b__16_1' .method assembly hidebysig instance string - 'b__15_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__17_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Country IL_0006: ret - } // end of method '<>c'::'b__15_0' + } // end of method '<>c'::'b__17_0' .method assembly hidebysig instance string - 'b__15_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__17_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_0006: ret - } // end of method '<>c'::'b__15_1' + } // end of method '<>c'::'b__17_1' .method assembly hidebysig instance bool - 'b__16_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__18_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 17 (0x11) .maxstack 8 @@ -3955,20 +4455,20 @@ IL_000b: call bool [mscorlib]System.String::op_Equality(string, string) IL_0010: ret - } // end of method '<>c'::'b__16_0' + } // end of method '<>c'::'b__18_0' .method assembly hidebysig instance string - 'b__17_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__19_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Country IL_0006: ret - } // end of method '<>c'::'b__17_0' + } // end of method '<>c'::'b__19_0' - .method assembly hidebysig instance class '<>f__AnonymousType14`2' - 'b__17_1'(class [System.Core]System.Linq.IGrouping`2 g) cil managed + .method assembly hidebysig instance class '<>f__AnonymousType16`2' + 'b__19_1'(class [System.Core]System.Linq.IGrouping`2 g) cil managed { // Code size 18 (0x12) .maxstack 8 @@ -3976,48 +4476,48 @@ IL_0001: callvirt instance !0 class [System.Core]System.Linq.IGrouping`2::get_Key() IL_0006: ldarg.1 IL_0007: call int32 [System.Core]System.Linq.Enumerable::Count(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_000c: newobj instance void class '<>f__AnonymousType14`2'::.ctor(!0, + IL_000c: newobj instance void class '<>f__AnonymousType16`2'::.ctor(!0, !1) IL_0011: ret - } // end of method '<>c'::'b__17_1' + } // end of method '<>c'::'b__19_1' .method assembly hidebysig instance bool - 'b__18_0'(bool x) cil managed + 'b__20_0'(bool x) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: ldarg.1 IL_0001: ret - } // end of method '<>c'::'b__18_0' + } // end of method '<>c'::'b__20_0' .method assembly hidebysig instance bool - 'b__18_1'(bool x) cil managed + 'b__20_1'(bool x) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: ldarg.1 IL_0001: ret - } // end of method '<>c'::'b__18_1' + } // end of method '<>c'::'b__20_1' } // end of class '<>c' - .class auto ansi serializable sealed nested private beforefieldinit '<>c__19`2' + .class auto ansi serializable sealed nested private beforefieldinit '<>c__21`2' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field public static initonly class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2' '<>9' - .field public static class [mscorlib]System.Func`2f__AnonymousType15`2'> '<>9__19_0' - .field public static class [mscorlib]System.Func`2f__AnonymousType15`2',bool> '<>9__19_1' - .field public static class [mscorlib]System.Func`2f__AnonymousType15`2',!TB> '<>9__19_2' + .field public static initonly class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2' '<>9' + .field public static class [mscorlib]System.Func`2f__AnonymousType17`2'> '<>9__21_0' + .field public static class [mscorlib]System.Func`2f__AnonymousType17`2',bool> '<>9__21_1' + .field public static class [mscorlib]System.Func`2f__AnonymousType17`2',!TB> '<>9__21_2' .method private hidebysig specialname rtspecialname static void .cctor() cil managed { // Code size 11 (0xb) .maxstack 8 - IL_0000: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::.ctor() - IL_0005: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9' + IL_0000: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::.ctor() + IL_0005: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9' IL_000a: ret - } // end of method '<>c__19`2'::.cctor + } // end of method '<>c__21`2'::.cctor .method public hidebysig specialname rtspecialname instance void .ctor() cil managed @@ -4027,10 +4527,10 @@ IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret - } // end of method '<>c__19`2'::.ctor + } // end of method '<>c__21`2'::.ctor - .method assembly hidebysig instance class '<>f__AnonymousType15`2' - 'b__19_0'(!TA m) cil managed + .method assembly hidebysig instance class '<>f__AnonymousType17`2' + 'b__21_0'(!TA m) cil managed { // Code size 23 (0x17) .maxstack 8 @@ -4039,35 +4539,35 @@ IL_0002: box !TA IL_0007: isinst !TB IL_000c: unbox.any !TB - IL_0011: newobj instance void class '<>f__AnonymousType15`2'::.ctor(!0, + IL_0011: newobj instance void class '<>f__AnonymousType17`2'::.ctor(!0, !1) IL_0016: ret - } // end of method '<>c__19`2'::'b__19_0' + } // end of method '<>c__21`2'::'b__21_0' .method assembly hidebysig instance bool - 'b__19_1'(class '<>f__AnonymousType15`2' '<>h__TransparentIdentifier0') cil managed + 'b__21_1'(class '<>f__AnonymousType17`2' '<>h__TransparentIdentifier0') cil managed { // Code size 15 (0xf) .maxstack 8 IL_0000: ldarg.1 - IL_0001: callvirt instance !1 class '<>f__AnonymousType15`2'::get_t() + IL_0001: callvirt instance !1 class '<>f__AnonymousType17`2'::get_t() IL_0006: box !TB IL_000b: ldnull IL_000c: cgt.un IL_000e: ret - } // end of method '<>c__19`2'::'b__19_1' + } // end of method '<>c__21`2'::'b__21_1' .method assembly hidebysig instance !TB - 'b__19_2'(class '<>f__AnonymousType15`2' '<>h__TransparentIdentifier0') cil managed + 'b__21_2'(class '<>f__AnonymousType17`2' '<>h__TransparentIdentifier0') cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 - IL_0001: callvirt instance !1 class '<>f__AnonymousType15`2'::get_t() + IL_0001: callvirt instance !1 class '<>f__AnonymousType17`2'::get_t() IL_0006: ret - } // end of method '<>c__19`2'::'b__19_2' + } // end of method '<>c__21`2'::'b__21_2' - } // end of class '<>c__19`2' + } // end of class '<>c__21`2' .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 customers .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 orders @@ -4078,30 +4578,30 @@ .maxstack 3 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__5_0' + IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_0' IL_000b: dup IL_000c: brtrue.s IL_0025 IL_000e: pop IL_000f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0014: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__5_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__6_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_001f: dup - IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__5_0' + IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_0' IL_0025: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002a: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__5_1' + IL_002a: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_1' IL_002f: dup IL_0030: brtrue.s IL_0049 IL_0032: pop IL_0033: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0038: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__5_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0038: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__6_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_003e: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0043: dup - IL_0044: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__5_1' + IL_0044: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_1' IL_0049: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_004e: ret @@ -4114,29 +4614,29 @@ .maxstack 4 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0006: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_0' + IL_0006: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_0' IL_000b: dup IL_000c: brtrue.s IL_0025 IL_000e: pop IL_000f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0014: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__6_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, native int) IL_001f: dup - IL_0020: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_0' - IL_0025: ldsfld class [mscorlib]System.Func`3f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_1' + IL_0020: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_0' + IL_0025: ldsfld class [mscorlib]System.Func`3f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_1' IL_002a: dup IL_002b: brtrue.s IL_0044 IL_002d: pop IL_002e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0033: ldftn instance class '<>f__AnonymousType0`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__6_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0033: ldftn instance class '<>f__AnonymousType0`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0039: newobj instance void class [mscorlib]System.Func`3f__AnonymousType0`3'>::.ctor(object, native int) IL_003e: dup - IL_003f: stsfld class [mscorlib]System.Func`3f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_1' + IL_003f: stsfld class [mscorlib]System.Func`3f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_1' IL_0044: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType0`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) @@ -4150,56 +4650,56 @@ .maxstack 4 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0006: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_0' + IL_0006: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_0' IL_000b: dup IL_000c: brtrue.s IL_0025 IL_000e: pop IL_000f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0014: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, native int) IL_001f: dup - IL_0020: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_0' - IL_0025: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_1' + IL_0020: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_0' + IL_0025: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_1' IL_002a: dup IL_002b: brtrue.s IL_0044 IL_002d: pop IL_002e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0033: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0033: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0039: newobj instance void class [mscorlib]System.Func`3f__AnonymousType1`2'>::.ctor(object, native int) IL_003e: dup - IL_003f: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_1' + IL_003f: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_1' IL_0044: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType1`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) - IL_0049: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_2' + IL_0049: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_2' IL_004e: dup IL_004f: brtrue.s IL_0068 IL_0051: pop IL_0052: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0057: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_2'(class '<>f__AnonymousType1`2') + IL_0057: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_2'(class '<>f__AnonymousType1`2') IL_005d: newobj instance void class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal>::.ctor(object, native int) IL_0062: dup - IL_0063: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_2' + IL_0063: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_2' IL_0068: call class [System.Core]System.Linq.IOrderedEnumerable`1 [System.Core]System.Linq.Enumerable::OrderByDescendingf__AnonymousType1`2',valuetype [mscorlib]System.Decimal>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_006d: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_3' + IL_006d: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_3' IL_0072: dup IL_0073: brtrue.s IL_008c IL_0075: pop IL_0076: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_007b: ldftn instance class '<>f__AnonymousType0`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_3'(class '<>f__AnonymousType1`2') + IL_007b: ldftn instance class '<>f__AnonymousType0`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_3'(class '<>f__AnonymousType1`2') IL_0081: newobj instance void class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'>::.ctor(object, native int) IL_0086: dup - IL_0087: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_3' + IL_0087: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_3' IL_008c: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType1`2',class '<>f__AnonymousType0`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0091: ret @@ -4212,55 +4712,55 @@ .maxstack 4 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0006: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_0' + IL_0006: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_0' IL_000b: dup IL_000c: brtrue.s IL_0025 IL_000e: pop IL_000f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0014: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, native int) IL_001f: dup - IL_0020: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_0' - IL_0025: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_1' + IL_0020: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_0' + IL_0025: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_1' IL_002a: dup IL_002b: brtrue.s IL_0044 IL_002d: pop IL_002e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0033: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0033: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0039: newobj instance void class [mscorlib]System.Func`3f__AnonymousType1`2'>::.ctor(object, native int) IL_003e: dup - IL_003f: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_1' + IL_003f: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_1' IL_0044: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType1`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) - IL_0049: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_2' + IL_0049: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_2' IL_004e: dup IL_004f: brtrue.s IL_0068 IL_0051: pop IL_0052: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0057: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_2'(class '<>f__AnonymousType1`2') + IL_0057: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_2'(class '<>f__AnonymousType1`2') IL_005d: newobj instance void class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1>::.ctor(object, native int) IL_0062: dup - IL_0063: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_2' - IL_0068: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_3' + IL_0063: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_2' + IL_0068: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_3' IL_006d: dup IL_006e: brtrue.s IL_0087 IL_0070: pop IL_0071: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0076: ldftn instance class '<>f__AnonymousType2`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_3'(class '<>f__AnonymousType1`2', + IL_0076: ldftn instance class '<>f__AnonymousType2`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_3'(class '<>f__AnonymousType1`2', class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail) IL_007c: newobj instance void class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'>::.ctor(object, native int) IL_0081: dup - IL_0082: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_3' + IL_0082: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_3' IL_0087: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) @@ -4274,82 +4774,82 @@ .maxstack 4 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0006: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_0' + IL_0006: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_0' IL_000b: dup IL_000c: brtrue.s IL_0025 IL_000e: pop IL_000f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0014: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, native int) IL_001f: dup - IL_0020: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_0' - IL_0025: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_1' + IL_0020: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_0' + IL_0025: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_1' IL_002a: dup IL_002b: brtrue.s IL_0044 IL_002d: pop IL_002e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0033: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, - class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0033: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0039: newobj instance void class [mscorlib]System.Func`3f__AnonymousType1`2'>::.ctor(object, native int) IL_003e: dup - IL_003f: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_1' + IL_003f: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_1' IL_0044: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType1`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) - IL_0049: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_2' + IL_0049: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_2' IL_004e: dup IL_004f: brtrue.s IL_0068 IL_0051: pop IL_0052: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0057: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_2'(class '<>f__AnonymousType1`2') + IL_0057: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_2'(class '<>f__AnonymousType1`2') IL_005d: newobj instance void class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1>::.ctor(object, native int) IL_0062: dup - IL_0063: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_2' - IL_0068: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_3' + IL_0063: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_2' + IL_0068: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_3' IL_006d: dup IL_006e: brtrue.s IL_0087 IL_0070: pop IL_0071: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0076: ldftn instance class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_3'(class '<>f__AnonymousType1`2', - class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail) + IL_0076: ldftn instance class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_3'(class '<>f__AnonymousType1`2', + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail) IL_007c: newobj instance void class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>>::.ctor(object, native int) IL_0081: dup - IL_0082: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_3' + IL_0082: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_3' IL_0087: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) - IL_008c: ldsfld class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_4' + IL_008c: ldsfld class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_4' IL_0091: dup IL_0092: brtrue.s IL_00ab IL_0094: pop IL_0095: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_009a: ldftn instance class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_4'(class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>) + IL_009a: ldftn instance class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_4'(class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>) IL_00a0: newobj instance void class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>>::.ctor(object, native int) IL_00a5: dup - IL_00a6: stsfld class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_4' + IL_00a6: stsfld class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_4' IL_00ab: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_00b0: ldsfld class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_5' + IL_00b0: ldsfld class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_5' IL_00b5: dup IL_00b6: brtrue.s IL_00cf IL_00b8: pop IL_00b9: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_00be: ldftn instance class '<>f__AnonymousType5`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_5'(class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>) + IL_00be: ldftn instance class '<>f__AnonymousType5`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_5'(class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>) IL_00c4: newobj instance void class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'>::.ctor(object, native int) IL_00c9: dup - IL_00ca: stsfld class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_5' + IL_00ca: stsfld class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_5' IL_00cf: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_00d4: ret @@ -4362,43 +4862,43 @@ .maxstack 3 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_0006: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_0' + IL_0006: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_0' IL_000b: dup IL_000c: brtrue.s IL_0025 IL_000e: pop IL_000f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0014: ldftn instance class '<>f__AnonymousType6`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0014: ldftn instance class '<>f__AnonymousType6`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_001a: newobj instance void class [mscorlib]System.Func`2f__AnonymousType6`2'>::.ctor(object, native int) IL_001f: dup - IL_0020: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_0' + IL_0020: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_0' IL_0025: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType6`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002a: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2',bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_1' + IL_002a: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2',bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_1' IL_002f: dup IL_0030: brtrue.s IL_0049 IL_0032: pop IL_0033: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0038: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_1'(class '<>f__AnonymousType6`2') + IL_0038: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_1'(class '<>f__AnonymousType6`2') IL_003e: newobj instance void class [mscorlib]System.Func`2f__AnonymousType6`2',bool>::.ctor(object, native int) IL_0043: dup - IL_0044: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2',bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_1' + IL_0044: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2',bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_1' IL_0049: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Wheref__AnonymousType6`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_004e: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_2' + IL_004e: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_2' IL_0053: dup IL_0054: brtrue.s IL_006d IL_0056: pop IL_0057: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_005c: ldftn instance class '<>f__AnonymousType7`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_2'(class '<>f__AnonymousType6`2') + IL_005c: ldftn instance class '<>f__AnonymousType7`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_2'(class '<>f__AnonymousType6`2') IL_0062: newobj instance void class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'>::.ctor(object, native int) IL_0067: dup - IL_0068: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_2' + IL_0068: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_2' IL_006d: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType6`2',class '<>f__AnonymousType7`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0072: ret @@ -4411,48 +4911,93 @@ .maxstack 3 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0006: ldsfld class [mscorlib]System.Func`2f__AnonymousType8`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_0' + IL_0006: ldsfld class [mscorlib]System.Func`2f__AnonymousType8`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_0' IL_000b: dup IL_000c: brtrue.s IL_0025 IL_000e: pop IL_000f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0014: ldftn instance class '<>f__AnonymousType8`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn instance class '<>f__AnonymousType8`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2f__AnonymousType8`2'>::.ctor(object, native int) IL_001f: dup - IL_0020: stsfld class [mscorlib]System.Func`2f__AnonymousType8`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_0' + IL_0020: stsfld class [mscorlib]System.Func`2f__AnonymousType8`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_0' IL_0025: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType8`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002a: ldsfld class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_1' + IL_002a: ldsfld class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_1' IL_002f: dup IL_0030: brtrue.s IL_0049 IL_0032: pop IL_0033: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0038: ldftn instance class '<>f__AnonymousType9`2'f__AnonymousType8`2',string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_1'(class '<>f__AnonymousType8`2') + IL_0038: ldftn instance class '<>f__AnonymousType9`2'f__AnonymousType8`2',string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_1'(class '<>f__AnonymousType8`2') IL_003e: newobj instance void class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>>::.ctor(object, native int) IL_0043: dup - IL_0044: stsfld class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_1' + IL_0044: stsfld class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_1' IL_0049: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_004e: ldsfld class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_2' + IL_004e: ldsfld class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_2' IL_0053: dup IL_0054: brtrue.s IL_006d IL_0056: pop IL_0057: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_005c: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_2'(class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>) + IL_005c: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_2'(class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>) IL_0062: newobj instance void class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string>::.ctor(object, native int) IL_0067: dup - IL_0068: stsfld class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_2' + IL_0068: stsfld class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_2' IL_006d: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType9`2'f__AnonymousType8`2',string>,string>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0072: ret } // end of method QueryExpressions::MultipleLet + .method public hidebysig instance object + HibernateApplyGeneratorQuery() cil managed + { + // Code size 111 (0x6f) + .maxstack 3 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers + IL_0006: callvirt instance class [mscorlib]System.Type [mscorlib]System.Object::GetType() + IL_000b: callvirt instance class [mscorlib]System.Reflection.PropertyInfo[] [mscorlib]System.Type::GetProperties() + IL_0010: ldsfld class [mscorlib]System.Func`2f__AnonymousType10`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_0' + IL_0015: dup + IL_0016: brtrue.s IL_002f + + IL_0018: pop + IL_0019: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' + IL_001e: ldftn instance class '<>f__AnonymousType10`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_0'(class [mscorlib]System.Reflection.PropertyInfo) + IL_0024: newobj instance void class [mscorlib]System.Func`2f__AnonymousType10`2'>::.ctor(object, + native int) + IL_0029: dup + IL_002a: stsfld class [mscorlib]System.Func`2f__AnonymousType10`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_0' + IL_002f: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType10`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_0034: ldarg.0 + IL_0035: ldftn instance class '<>f__AnonymousType11`2'f__AnonymousType10`2',object> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__13_1'(class '<>f__AnonymousType10`2') + IL_003b: newobj instance void class [mscorlib]System.Func`2f__AnonymousType10`2',class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>>::.ctor(object, + native int) + IL_0040: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType10`2',class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_0045: ldsfld class [mscorlib]System.Func`2f__AnonymousType11`2'f__AnonymousType10`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_2' + IL_004a: dup + IL_004b: brtrue.s IL_0064 + + IL_004d: pop + IL_004e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' + IL_0053: ldftn instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_2'(class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>) + IL_0059: newobj instance void class [mscorlib]System.Func`2f__AnonymousType11`2'f__AnonymousType10`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam>::.ctor(object, + native int) + IL_005e: dup + IL_005f: stsfld class [mscorlib]System.Func`2f__AnonymousType11`2'f__AnonymousType10`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_2' + IL_0064: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType11`2'f__AnonymousType10`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_0069: call !!0[] [System.Core]System.Linq.Enumerable::ToArray(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_006e: ret + } // end of method QueryExpressions::HibernateApplyGeneratorQuery + .method public hidebysig instance object Join() cil managed { @@ -4462,41 +5007,41 @@ IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0006: ldarg.0 IL_0007: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_0' + IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_0' IL_0011: dup IL_0012: brtrue.s IL_002b IL_0014: pop IL_0015: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_001a: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_001a: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__14_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0020: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0025: dup - IL_0026: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_0' - IL_002b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_1' + IL_0026: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_0' + IL_002b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_1' IL_0030: dup IL_0031: brtrue.s IL_004a IL_0033: pop IL_0034: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0039: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0039: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__14_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_003f: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0044: dup - IL_0045: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_1' - IL_004a: ldsfld class [mscorlib]System.Func`3f__AnonymousType10`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_2' + IL_0045: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_1' + IL_004a: ldsfld class [mscorlib]System.Func`3f__AnonymousType12`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_2' IL_004f: dup IL_0050: brtrue.s IL_0069 IL_0052: pop IL_0053: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0058: ldftn instance class '<>f__AnonymousType10`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0058: ldftn instance class '<>f__AnonymousType12`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__14_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) - IL_005e: newobj instance void class [mscorlib]System.Func`3f__AnonymousType10`3'>::.ctor(object, + IL_005e: newobj instance void class [mscorlib]System.Func`3f__AnonymousType12`3'>::.ctor(object, native int) IL_0063: dup - IL_0064: stsfld class [mscorlib]System.Func`3f__AnonymousType10`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_2' - IL_0069: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Joinf__AnonymousType10`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0064: stsfld class [mscorlib]System.Func`3f__AnonymousType12`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_2' + IL_0069: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Joinf__AnonymousType12`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2, @@ -4513,83 +5058,83 @@ IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0006: ldarg.0 IL_0007: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_0' + IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_0' IL_0011: dup IL_0012: brtrue.s IL_002b IL_0014: pop IL_0015: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_001a: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_001a: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0020: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0025: dup - IL_0026: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_0' - IL_002b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_1' + IL_0026: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_0' + IL_002b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_1' IL_0030: dup IL_0031: brtrue.s IL_004a IL_0033: pop IL_0034: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0039: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0039: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_003f: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0044: dup - IL_0045: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_1' - IL_004a: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousType11`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_2' + IL_0045: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_1' + IL_004a: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousType13`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_2' IL_004f: dup IL_0050: brtrue.s IL_0069 IL_0052: pop IL_0053: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0058: ldftn instance class '<>f__AnonymousType11`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0058: ldftn instance class '<>f__AnonymousType13`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_005e: newobj instance void class [mscorlib]System.Func`3,class '<>f__AnonymousType11`2'>>::.ctor(object, + IL_005e: newobj instance void class [mscorlib]System.Func`3,class '<>f__AnonymousType13`2'>>::.ctor(object, native int) IL_0063: dup - IL_0064: stsfld class [mscorlib]System.Func`3,class '<>f__AnonymousType11`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_2' - IL_0069: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::GroupJoinf__AnonymousType11`2'>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0064: stsfld class [mscorlib]System.Func`3,class '<>f__AnonymousType13`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_2' + IL_0069: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::GroupJoinf__AnonymousType13`2'>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2, class [mscorlib]System.Func`3,!!3>) - IL_006e: ldsfld class [mscorlib]System.Func`2f__AnonymousType11`2'>,class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_3' + IL_006e: ldsfld class [mscorlib]System.Func`2f__AnonymousType13`2'>,class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_3' IL_0073: dup IL_0074: brtrue.s IL_008d IL_0076: pop IL_0077: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_007c: ldftn instance class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_3'(class '<>f__AnonymousType11`2'>) - IL_0082: newobj instance void class [mscorlib]System.Func`2f__AnonymousType11`2'>,class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>>::.ctor(object, + IL_007c: ldftn instance class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_3'(class '<>f__AnonymousType13`2'>) + IL_0082: newobj instance void class [mscorlib]System.Func`2f__AnonymousType13`2'>,class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>>::.ctor(object, native int) IL_0087: dup - IL_0088: stsfld class [mscorlib]System.Func`2f__AnonymousType11`2'>,class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_3' - IL_008d: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType11`2'>,class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0088: stsfld class [mscorlib]System.Func`2f__AnonymousType13`2'>,class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_3' + IL_008d: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType13`2'>,class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_0092: ldsfld class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_4' + IL_0092: ldsfld class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_4' IL_0097: dup IL_0098: brtrue.s IL_00b1 IL_009a: pop IL_009b: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_00a0: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_4'(class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>) - IL_00a6: newobj instance void class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,bool>::.ctor(object, + IL_00a0: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_4'(class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>) + IL_00a6: newobj instance void class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,bool>::.ctor(object, native int) IL_00ab: dup - IL_00ac: stsfld class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_4' - IL_00b1: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Wheref__AnonymousType12`2'f__AnonymousType11`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_00ac: stsfld class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_4' + IL_00b1: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Wheref__AnonymousType14`2'f__AnonymousType13`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_00b6: ldsfld class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,class '<>f__AnonymousType13`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_5' + IL_00b6: ldsfld class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,class '<>f__AnonymousType15`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_5' IL_00bb: dup IL_00bc: brtrue.s IL_00d5 IL_00be: pop IL_00bf: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_00c4: ldftn instance class '<>f__AnonymousType13`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_5'(class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>) - IL_00ca: newobj instance void class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,class '<>f__AnonymousType13`2'>::.ctor(object, + IL_00c4: ldftn instance class '<>f__AnonymousType15`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_5'(class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>) + IL_00ca: newobj instance void class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,class '<>f__AnonymousType15`2'>::.ctor(object, native int) IL_00cf: dup - IL_00d0: stsfld class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,class '<>f__AnonymousType13`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_5' - IL_00d5: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType12`2'f__AnonymousType11`2'>,int32>,class '<>f__AnonymousType13`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_00d0: stsfld class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,class '<>f__AnonymousType15`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_5' + IL_00d5: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType14`2'f__AnonymousType13`2'>,int32>,class '<>f__AnonymousType15`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_00da: ret } // end of method QueryExpressions::JoinInto @@ -4601,30 +5146,30 @@ .maxstack 3 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_0' + IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_0' IL_000b: dup IL_000c: brtrue.s IL_0025 IL_000e: pop IL_000f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0014: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__14_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0014: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__16_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_001a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_001f: dup - IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_0' + IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_0' IL_0025: call class [System.Core]System.Linq.IOrderedEnumerable`1 [System.Core]System.Linq.Enumerable::OrderBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002a: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_1' + IL_002a: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_1' IL_002f: dup IL_0030: brtrue.s IL_0049 IL_0032: pop IL_0033: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0038: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__14_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0038: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__16_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_003e: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0043: dup - IL_0044: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_1' + IL_0044: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_1' IL_0049: call class [System.Core]System.Linq.IOrderedEnumerable`1 [System.Core]System.Linq.Enumerable::ThenByDescending(class [System.Core]System.Linq.IOrderedEnumerable`1, class [mscorlib]System.Func`2) IL_004e: ret @@ -4637,28 +5182,28 @@ .maxstack 4 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_0' + IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_0' IL_000b: dup IL_000c: brtrue.s IL_0025 IL_000e: pop IL_000f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0014: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__17_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_001f: dup - IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_0' - IL_0025: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_1' + IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_0' + IL_0025: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_1' IL_002a: dup IL_002b: brtrue.s IL_0044 IL_002d: pop IL_002e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0033: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0033: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__17_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0039: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_003e: dup - IL_003f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_1' + IL_003f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_1' IL_0044: call class [mscorlib]System.Collections.Generic.IEnumerable`1> [System.Core]System.Linq.Enumerable::GroupBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2) @@ -4673,17 +5218,17 @@ IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0006: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Cast(class [mscorlib]System.Collections.IEnumerable) - IL_000b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_0' + IL_000b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_0' IL_0010: dup IL_0011: brtrue.s IL_002a IL_0013: pop IL_0014: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0019: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__16_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0019: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__18_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001f: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0024: dup - IL_0025: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_0' + IL_0025: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_0' IL_002a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_002f: ret @@ -4696,31 +5241,31 @@ .maxstack 3 IL_0000: ldarg.0 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_0' + IL_0006: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__19_0' IL_000b: dup IL_000c: brtrue.s IL_0025 IL_000e: pop IL_000f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0014: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__17_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0014: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__19_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_001f: dup - IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_0' + IL_0020: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__19_0' IL_0025: call class [mscorlib]System.Collections.Generic.IEnumerable`1> [System.Core]System.Linq.Enumerable::GroupBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002a: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType14`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_1' + IL_002a: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType16`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__19_1' IL_002f: dup IL_0030: brtrue.s IL_0049 IL_0032: pop IL_0033: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0038: ldftn instance class '<>f__AnonymousType14`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__17_1'(class [System.Core]System.Linq.IGrouping`2) - IL_003e: newobj instance void class [mscorlib]System.Func`2,class '<>f__AnonymousType14`2'>::.ctor(object, + IL_0038: ldftn instance class '<>f__AnonymousType16`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__19_1'(class [System.Core]System.Linq.IGrouping`2) + IL_003e: newobj instance void class [mscorlib]System.Func`2,class '<>f__AnonymousType16`2'>::.ctor(object, native int) IL_0043: dup - IL_0044: stsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType14`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_1' - IL_0049: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select,class '<>f__AnonymousType14`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0044: stsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType16`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__19_1' + IL_0049: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select,class '<>f__AnonymousType16`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_004e: ret } // end of method QueryExpressions::QueryContinuation @@ -4731,30 +5276,30 @@ // Code size 74 (0x4a) .maxstack 3 IL_0000: ldarg.1 - IL_0001: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_0' + IL_0001: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__20_0' IL_0006: dup IL_0007: brtrue.s IL_0020 IL_0009: pop IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_000f: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__18_0'(bool) + IL_000f: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__20_0'(bool) IL_0015: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_001a: dup - IL_001b: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_0' + IL_001b: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__20_0' IL_0020: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_0025: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_1' + IL_0025: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__20_1' IL_002a: dup IL_002b: brtrue.s IL_0044 IL_002d: pop IL_002e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0033: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__18_1'(bool) + IL_0033: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__20_1'(bool) IL_0039: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_003e: dup - IL_003f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_1' + IL_003f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__20_1' IL_0044: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0049: ret @@ -4766,44 +5311,44 @@ // Code size 110 (0x6e) .maxstack 3 IL_0000: ldarg.0 - IL_0001: ldsfld class [mscorlib]System.Func`2f__AnonymousType15`2'> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_0' + IL_0001: ldsfld class [mscorlib]System.Func`2f__AnonymousType17`2'> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_0' IL_0006: dup IL_0007: brtrue.s IL_0020 IL_0009: pop - IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9' - IL_000f: ldftn instance class '<>f__AnonymousType15`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'b__19_0'(!0) - IL_0015: newobj instance void class [mscorlib]System.Func`2f__AnonymousType15`2'>::.ctor(object, + IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9' + IL_000f: ldftn instance class '<>f__AnonymousType17`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'b__21_0'(!0) + IL_0015: newobj instance void class [mscorlib]System.Func`2f__AnonymousType17`2'>::.ctor(object, native int) IL_001a: dup - IL_001b: stsfld class [mscorlib]System.Func`2f__AnonymousType15`2'> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_0' - IL_0020: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType15`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + IL_001b: stsfld class [mscorlib]System.Func`2f__AnonymousType17`2'> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_0' + IL_0020: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType17`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, class [mscorlib]System.Func`2) - IL_0025: ldsfld class [mscorlib]System.Func`2f__AnonymousType15`2',bool> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_1' + IL_0025: ldsfld class [mscorlib]System.Func`2f__AnonymousType17`2',bool> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_1' IL_002a: dup IL_002b: brtrue.s IL_0044 IL_002d: pop - IL_002e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9' - IL_0033: ldftn instance bool class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'b__19_1'(class '<>f__AnonymousType15`2') - IL_0039: newobj instance void class [mscorlib]System.Func`2f__AnonymousType15`2',bool>::.ctor(object, + IL_002e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9' + IL_0033: ldftn instance bool class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'b__21_1'(class '<>f__AnonymousType17`2') + IL_0039: newobj instance void class [mscorlib]System.Func`2f__AnonymousType17`2',bool>::.ctor(object, native int) IL_003e: dup - IL_003f: stsfld class [mscorlib]System.Func`2f__AnonymousType15`2',bool> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_1' - IL_0044: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Wheref__AnonymousType15`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + IL_003f: stsfld class [mscorlib]System.Func`2f__AnonymousType17`2',bool> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_1' + IL_0044: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Wheref__AnonymousType17`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, class [mscorlib]System.Func`2) - IL_0049: ldsfld class [mscorlib]System.Func`2f__AnonymousType15`2',!1> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_2' + IL_0049: ldsfld class [mscorlib]System.Func`2f__AnonymousType17`2',!1> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_2' IL_004e: dup IL_004f: brtrue.s IL_0068 IL_0051: pop - IL_0052: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9' - IL_0057: ldftn instance !1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'b__19_2'(class '<>f__AnonymousType15`2') - IL_005d: newobj instance void class [mscorlib]System.Func`2f__AnonymousType15`2',!!TB>::.ctor(object, + IL_0052: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9' + IL_0057: ldftn instance !1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'b__21_2'(class '<>f__AnonymousType17`2') + IL_005d: newobj instance void class [mscorlib]System.Func`2f__AnonymousType17`2',!!TB>::.ctor(object, native int) IL_0062: dup - IL_0063: stsfld class [mscorlib]System.Func`2f__AnonymousType15`2',!1> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_2' - IL_0068: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType15`2',!!1>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + IL_0063: stsfld class [mscorlib]System.Func`2f__AnonymousType17`2',!1> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_2' + IL_0068: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType17`2',!!1>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, class [mscorlib]System.Func`2) IL_006d: ret } // end of method QueryExpressions::Cast @@ -4818,6 +5363,25 @@ IL_0006: ret } // end of method QueryExpressions::.ctor + .method private hidebysig instance class '<>f__AnonymousType11`2'f__AnonymousType10`2',object> + 'b__13_1'(class '<>f__AnonymousType10`2' '<>h__TransparentIdentifier0') cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ldarg.1 + IL_0002: callvirt instance !0 class '<>f__AnonymousType10`2'::get_pi() + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers + IL_000d: ldnull + IL_000e: callvirt instance object [mscorlib]System.Reflection.PropertyInfo::GetValue(object, + object[]) + IL_0013: newobj instance void class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>::.ctor(!0, + !1) + IL_0018: ret + } // end of method QueryExpressions::'b__13_1' + } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions .class public sequential ansi sealed beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.roslyn.il index bae2a044b..fe6097b4f 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.roslyn.il @@ -2160,7 +2160,394 @@ } // end of property '<>f__AnonymousType9`2'::c } // end of class '<>f__AnonymousType9`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType10`3'<'j__TPar','j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType10`2'<'j__TPar','j__TPar'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 1F 5C 7B 20 70 69 20 3D 20 7B 70 69 7D 2C // ...\{ pi = {pi}, + 20 70 6E 61 6D 65 20 3D 20 7B 70 6E 61 6D 65 7D // pname = {pname} + 20 7D 01 00 54 0E 04 54 79 70 65 10 3C 41 6E 6F // }..T..Type. + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .method public hidebysig specialname instance !'j__TPar' + get_pi() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousType10`2'::get_pi + + .method public hidebysig specialname instance !'j__TPar' + get_pname() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousType10`2'::get_pname + + .method public hidebysig specialname rtspecialname + instance void .ctor(!'j__TPar' pi, + !'j__TPar' pname) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ret + } // end of method '<>f__AnonymousType10`2'::.ctor + + .method public hidebysig virtual instance bool + Equals(object 'value') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 60 (0x3c) + .maxstack 3 + .locals init (class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_003a + + IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_000f: ldarg.0 + IL_0010: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0015: ldloc.0 + IL_0016: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0020: brfalse.s IL_003a + + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002d: ldloc.0 + IL_002e: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0038: br.s IL_003b + + IL_003a: ldc.i4.0 + IL_003b: ret + } // end of method '<>f__AnonymousType10`2'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 52 (0x34) + .maxstack 8 + IL_0000: ldc.i4 0xa7c79008 + IL_0005: ldc.i4 0xa5555529 + IL_000a: mul + IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0010: ldarg.0 + IL_0011: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_001b: add + IL_001c: ldc.i4 0xa5555529 + IL_0021: mul + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_0032: add + IL_0033: ret + } // end of method '<>f__AnonymousType10`2'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 136 (0x88) + .maxstack 7 + .locals init (!'j__TPar' V_0, + !'j__TPar' V_1, + !'j__TPar' V_2, + !'j__TPar' V_3) + IL_0000: ldnull + IL_0001: ldstr "{{ pi = {0}, pname = {1} }}" + IL_0006: ldc.i4.2 + IL_0007: newarr [mscorlib]System.Object + IL_000c: dup + IL_000d: ldc.i4.0 + IL_000e: ldarg.0 + IL_000f: ldfld !0 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0014: stloc.0 + IL_0015: ldloca.s V_0 + IL_0017: ldloca.s V_1 + IL_0019: initobj !'j__TPar' + IL_001f: ldloc.1 + IL_0020: box !'j__TPar' + IL_0025: brtrue.s IL_003b + + IL_0027: ldobj !'j__TPar' + IL_002c: stloc.1 + IL_002d: ldloca.s V_1 + IL_002f: ldloc.1 + IL_0030: box !'j__TPar' + IL_0035: brtrue.s IL_003b + + IL_0037: pop + IL_0038: ldnull + IL_0039: br.s IL_0046 + + IL_003b: constrained. !'j__TPar' + IL_0041: callvirt instance string [mscorlib]System.Object::ToString() + IL_0046: stelem.ref + IL_0047: dup + IL_0048: ldc.i4.1 + IL_0049: ldarg.0 + IL_004a: ldfld !1 class '<>f__AnonymousType10`2'j__TPar',!'j__TPar'>::'i__Field' + IL_004f: stloc.2 + IL_0050: ldloca.s V_2 + IL_0052: ldloca.s V_3 + IL_0054: initobj !'j__TPar' + IL_005a: ldloc.3 + IL_005b: box !'j__TPar' + IL_0060: brtrue.s IL_0076 + + IL_0062: ldobj !'j__TPar' + IL_0067: stloc.3 + IL_0068: ldloca.s V_3 + IL_006a: ldloc.3 + IL_006b: box !'j__TPar' + IL_0070: brtrue.s IL_0076 + + IL_0072: pop + IL_0073: ldnull + IL_0074: br.s IL_0081 + + IL_0076: constrained. !'j__TPar' + IL_007c: callvirt instance string [mscorlib]System.Object::ToString() + IL_0081: stelem.ref + IL_0082: call string [mscorlib]System.String::Format(class [mscorlib]System.IFormatProvider, + string, + object[]) + IL_0087: ret + } // end of method '<>f__AnonymousType10`2'::ToString + + .property instance !'j__TPar' pi() + { + .get instance !'j__TPar' '<>f__AnonymousType10`2'::get_pi() + } // end of property '<>f__AnonymousType10`2'::pi + .property instance !'j__TPar' pname() + { + .get instance !'j__TPar' '<>f__AnonymousType10`2'::get_pname() + } // end of property '<>f__AnonymousType10`2'::pname +} // end of class '<>f__AnonymousType10`2' + +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType11`2'<'<<>h__TransparentIdentifier0>j__TPar','j__TPar'> + extends [mscorlib]System.Object +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 53 5C 7B 20 3C 3E 68 5F 5F 54 72 61 6E 73 // ..S\{ <>h__Trans + 70 61 72 65 6E 74 49 64 65 6E 74 69 66 69 65 72 // parentIdentifier + 30 20 3D 20 7B 3C 3E 68 5F 5F 54 72 61 6E 73 70 // 0 = {<>h__Transp + 61 72 65 6E 74 49 64 65 6E 74 69 66 69 65 72 30 // arentIdentifier0 + 7D 2C 20 70 76 61 6C 75 65 20 3D 20 7B 70 76 61 // }, pvalue = {pva + 6C 75 65 7D 20 7D 01 00 54 0E 04 54 79 70 65 10 // lue} }..T..Type. + 3C 41 6E 6F 6E 79 6D 6F 75 73 20 54 79 70 65 3E ) // + .field private initonly !'<<>h__TransparentIdentifier0>j__TPar' '<<>h__TransparentIdentifier0>i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .field private initonly !'j__TPar' 'i__Field' + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .method public hidebysig specialname instance !'<<>h__TransparentIdentifier0>j__TPar' + 'get_<>h__TransparentIdentifier0'() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousType11`2'::'get_<>h__TransparentIdentifier0' + + .method public hidebysig specialname instance !'j__TPar' + get_pvalue() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0006: ret + } // end of method '<>f__AnonymousType11`2'::get_pvalue + + .method public hidebysig specialname rtspecialname + instance void .ctor(!'<<>h__TransparentIdentifier0>j__TPar' '<>h__TransparentIdentifier0', + !'j__TPar' pvalue) cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0014: ret + } // end of method '<>f__AnonymousType11`2'::.ctor + + .method public hidebysig virtual instance bool + Equals(object 'value') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 60 (0x3c) + .maxstack 3 + .locals init (class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> V_0) + IL_0000: ldarg.1 + IL_0001: isinst class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_003a + + IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::get_Default() + IL_000f: ldarg.0 + IL_0010: ldfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0015: ldloc.0 + IL_0016: ldfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::Equals(!0, + !0) + IL_0020: brfalse.s IL_003a + + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_002d: ldloc.0 + IL_002e: ldfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, + !0) + IL_0038: br.s IL_003b + + IL_003a: ldc.i4.0 + IL_003b: ret + } // end of method '<>f__AnonymousType11`2'::Equals + + .method public hidebysig virtual instance int32 + GetHashCode() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 52 (0x34) + .maxstack 8 + IL_0000: ldc.i4 0x6a08b9da + IL_0005: ldc.i4 0xa5555529 + IL_000a: mul + IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::get_Default() + IL_0010: ldarg.0 + IL_0011: ldfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::GetHashCode(!0) + IL_001b: add + IL_001c: ldc.i4 0xa5555529 + IL_0021: mul + IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) + IL_0032: add + IL_0033: ret + } // end of method '<>f__AnonymousType11`2'::GetHashCode + + .method public hidebysig virtual instance string + ToString() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 136 (0x88) + .maxstack 7 + .locals init (!'<<>h__TransparentIdentifier0>j__TPar' V_0, + !'<<>h__TransparentIdentifier0>j__TPar' V_1, + !'j__TPar' V_2, + !'j__TPar' V_3) + IL_0000: ldnull + IL_0001: ldstr "{{ <>h__TransparentIdentifier0 = {0}, pvalue = {1}" + + " }}" + IL_0006: ldc.i4.2 + IL_0007: newarr [mscorlib]System.Object + IL_000c: dup + IL_000d: ldc.i4.0 + IL_000e: ldarg.0 + IL_000f: ldfld !0 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0014: stloc.0 + IL_0015: ldloca.s V_0 + IL_0017: ldloca.s V_1 + IL_0019: initobj !'<<>h__TransparentIdentifier0>j__TPar' + IL_001f: ldloc.1 + IL_0020: box !'<<>h__TransparentIdentifier0>j__TPar' + IL_0025: brtrue.s IL_003b + + IL_0027: ldobj !'<<>h__TransparentIdentifier0>j__TPar' + IL_002c: stloc.1 + IL_002d: ldloca.s V_1 + IL_002f: ldloc.1 + IL_0030: box !'<<>h__TransparentIdentifier0>j__TPar' + IL_0035: brtrue.s IL_003b + + IL_0037: pop + IL_0038: ldnull + IL_0039: br.s IL_0046 + + IL_003b: constrained. !'<<>h__TransparentIdentifier0>j__TPar' + IL_0041: callvirt instance string [mscorlib]System.Object::ToString() + IL_0046: stelem.ref + IL_0047: dup + IL_0048: ldc.i4.1 + IL_0049: ldarg.0 + IL_004a: ldfld !1 class '<>f__AnonymousType11`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_004f: stloc.2 + IL_0050: ldloca.s V_2 + IL_0052: ldloca.s V_3 + IL_0054: initobj !'j__TPar' + IL_005a: ldloc.3 + IL_005b: box !'j__TPar' + IL_0060: brtrue.s IL_0076 + + IL_0062: ldobj !'j__TPar' + IL_0067: stloc.3 + IL_0068: ldloca.s V_3 + IL_006a: ldloc.3 + IL_006b: box !'j__TPar' + IL_0070: brtrue.s IL_0076 + + IL_0072: pop + IL_0073: ldnull + IL_0074: br.s IL_0081 + + IL_0076: constrained. !'j__TPar' + IL_007c: callvirt instance string [mscorlib]System.Object::ToString() + IL_0081: stelem.ref + IL_0082: call string [mscorlib]System.String::Format(class [mscorlib]System.IFormatProvider, + string, + object[]) + IL_0087: ret + } // end of method '<>f__AnonymousType11`2'::ToString + + .property instance !'<<>h__TransparentIdentifier0>j__TPar' + '<>h__TransparentIdentifier0'() + { + .get instance !'<<>h__TransparentIdentifier0>j__TPar' '<>f__AnonymousType11`2'::'get_<>h__TransparentIdentifier0'() + } // end of property '<>f__AnonymousType11`2'::'<>h__TransparentIdentifier0' + .property instance !'j__TPar' pvalue() + { + .get instance !'j__TPar' '<>f__AnonymousType11`2'::get_pvalue() + } // end of property '<>f__AnonymousType11`2'::pvalue +} // end of class '<>f__AnonymousType11`2' + +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType12`3'<'j__TPar','j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -2182,9 +2569,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType10`3'::get_Name + } // end of method '<>f__AnonymousType12`3'::get_Name .method public hidebysig specialname instance !'j__TPar' get_OrderDate() cil managed @@ -2192,9 +2579,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType10`3'::get_OrderDate + } // end of method '<>f__AnonymousType12`3'::get_OrderDate .method public hidebysig specialname instance !'j__TPar' get_Total() cil managed @@ -2202,9 +2589,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType10`3'::get_Total + } // end of method '<>f__AnonymousType12`3'::get_Total .method public hidebysig specialname rtspecialname instance void .ctor(!'j__TPar' Name, @@ -2218,15 +2605,15 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ldarg.0 IL_0015: ldarg.3 - IL_0016: stfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: stfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_001b: ret - } // end of method '<>f__AnonymousType10`3'::.ctor + } // end of method '<>f__AnonymousType12`3'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -2234,43 +2621,43 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 84 (0x54) .maxstack 3 - .locals init (class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0052 IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_0052 IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: brfalse.s IL_0052 IL_003a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_003f: ldarg.0 - IL_0040: ldfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0040: ldfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0045: ldloc.0 - IL_0046: ldfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0046: ldfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_004b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0050: br.s IL_0053 IL_0052: ldc.i4.0 IL_0053: ret - } // end of method '<>f__AnonymousType10`3'::Equals + } // end of method '<>f__AnonymousType12`3'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -2283,25 +2670,25 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ldc.i4 0xa5555529 IL_0038: mul IL_0039: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_003e: ldarg.0 - IL_003f: ldfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_003f: ldfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0044: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0049: add IL_004a: ret - } // end of method '<>f__AnonymousType10`3'::GetHashCode + } // end of method '<>f__AnonymousType12`3'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -2322,7 +2709,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -2348,7 +2735,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -2374,7 +2761,7 @@ IL_0082: dup IL_0083: ldc.i4.2 IL_0084: ldarg.0 - IL_0085: ldfld !2 class '<>f__AnonymousType10`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' + IL_0085: ldfld !2 class '<>f__AnonymousType12`3'j__TPar',!'j__TPar',!'j__TPar'>::'i__Field' IL_008a: stloc.s V_4 IL_008c: ldloca.s V_4 IL_008e: ldloca.s V_5 @@ -2401,24 +2788,24 @@ string, object[]) IL_00c6: ret - } // end of method '<>f__AnonymousType10`3'::ToString + } // end of method '<>f__AnonymousType12`3'::ToString .property instance !'j__TPar' Name() { - .get instance !'j__TPar' '<>f__AnonymousType10`3'::get_Name() - } // end of property '<>f__AnonymousType10`3'::Name + .get instance !'j__TPar' '<>f__AnonymousType12`3'::get_Name() + } // end of property '<>f__AnonymousType12`3'::Name .property instance !'j__TPar' OrderDate() { - .get instance !'j__TPar' '<>f__AnonymousType10`3'::get_OrderDate() - } // end of property '<>f__AnonymousType10`3'::OrderDate + .get instance !'j__TPar' '<>f__AnonymousType12`3'::get_OrderDate() + } // end of property '<>f__AnonymousType12`3'::OrderDate .property instance !'j__TPar' Total() { - .get instance !'j__TPar' '<>f__AnonymousType10`3'::get_Total() - } // end of property '<>f__AnonymousType10`3'::Total -} // end of class '<>f__AnonymousType10`3' + .get instance !'j__TPar' '<>f__AnonymousType12`3'::get_Total() + } // end of property '<>f__AnonymousType12`3'::Total +} // end of class '<>f__AnonymousType12`3' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType11`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType13`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -2436,9 +2823,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType11`2'::get_c + } // end of method '<>f__AnonymousType13`2'::get_c .method public hidebysig specialname instance !'j__TPar' get_co() cil managed @@ -2446,9 +2833,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType11`2'::get_co + } // end of method '<>f__AnonymousType13`2'::get_co .method public hidebysig specialname rtspecialname instance void .ctor(!'j__TPar' c, @@ -2461,12 +2848,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousType11`2'::.ctor + } // end of method '<>f__AnonymousType13`2'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -2474,34 +2861,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 60 (0x3c) .maxstack 3 - .locals init (class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_003a IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_003a IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: br.s IL_003b IL_003a: ldc.i4.0 IL_003b: ret - } // end of method '<>f__AnonymousType11`2'::Equals + } // end of method '<>f__AnonymousType13`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -2514,18 +2901,18 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ret - } // end of method '<>f__AnonymousType11`2'::GetHashCode + } // end of method '<>f__AnonymousType13`2'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -2544,7 +2931,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -2570,7 +2957,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType11`2'j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -2597,19 +2984,19 @@ string, object[]) IL_0087: ret - } // end of method '<>f__AnonymousType11`2'::ToString + } // end of method '<>f__AnonymousType13`2'::ToString .property instance !'j__TPar' c() { - .get instance !'j__TPar' '<>f__AnonymousType11`2'::get_c() - } // end of property '<>f__AnonymousType11`2'::c + .get instance !'j__TPar' '<>f__AnonymousType13`2'::get_c() + } // end of property '<>f__AnonymousType13`2'::c .property instance !'j__TPar' co() { - .get instance !'j__TPar' '<>f__AnonymousType11`2'::get_co() - } // end of property '<>f__AnonymousType11`2'::co -} // end of class '<>f__AnonymousType11`2' + .get instance !'j__TPar' '<>f__AnonymousType13`2'::get_co() + } // end of property '<>f__AnonymousType13`2'::co +} // end of class '<>f__AnonymousType13`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType12`2'<'<<>h__TransparentIdentifier0>j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType14`2'<'<<>h__TransparentIdentifier0>j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -2630,9 +3017,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType12`2'::'get_<>h__TransparentIdentifier0' + } // end of method '<>f__AnonymousType14`2'::'get_<>h__TransparentIdentifier0' .method public hidebysig specialname instance !'j__TPar' get_n() cil managed @@ -2640,9 +3027,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType12`2'::get_n + } // end of method '<>f__AnonymousType14`2'::get_n .method public hidebysig specialname rtspecialname instance void .ctor(!'<<>h__TransparentIdentifier0>j__TPar' '<>h__TransparentIdentifier0', @@ -2655,12 +3042,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousType12`2'::.ctor + } // end of method '<>f__AnonymousType14`2'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -2668,34 +3055,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 60 (0x3c) .maxstack 3 - .locals init (class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_003a IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_003a IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: br.s IL_003b IL_003a: ldc.i4.0 IL_003b: ret - } // end of method '<>f__AnonymousType12`2'::Equals + } // end of method '<>f__AnonymousType14`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -2708,18 +3095,18 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1h__TransparentIdentifier0>j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ret - } // end of method '<>f__AnonymousType12`2'::GetHashCode + } // end of method '<>f__AnonymousType14`2'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -2738,7 +3125,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'<<>h__TransparentIdentifier0>i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -2764,7 +3151,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType12`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType14`2'h__TransparentIdentifier0>j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -2791,20 +3178,20 @@ string, object[]) IL_0087: ret - } // end of method '<>f__AnonymousType12`2'::ToString + } // end of method '<>f__AnonymousType14`2'::ToString .property instance !'<<>h__TransparentIdentifier0>j__TPar' '<>h__TransparentIdentifier0'() { - .get instance !'<<>h__TransparentIdentifier0>j__TPar' '<>f__AnonymousType12`2'::'get_<>h__TransparentIdentifier0'() - } // end of property '<>f__AnonymousType12`2'::'<>h__TransparentIdentifier0' + .get instance !'<<>h__TransparentIdentifier0>j__TPar' '<>f__AnonymousType14`2'::'get_<>h__TransparentIdentifier0'() + } // end of property '<>f__AnonymousType14`2'::'<>h__TransparentIdentifier0' .property instance !'j__TPar' n() { - .get instance !'j__TPar' '<>f__AnonymousType12`2'::get_n() - } // end of property '<>f__AnonymousType12`2'::n -} // end of class '<>f__AnonymousType12`2' + .get instance !'j__TPar' '<>f__AnonymousType14`2'::get_n() + } // end of property '<>f__AnonymousType14`2'::n +} // end of class '<>f__AnonymousType14`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType13`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType15`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -2823,9 +3210,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType13`2'::get_Name + } // end of method '<>f__AnonymousType15`2'::get_Name .method public hidebysig specialname instance !'j__TPar' get_OrderCount() cil managed @@ -2833,9 +3220,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType13`2'::get_OrderCount + } // end of method '<>f__AnonymousType15`2'::get_OrderCount .method public hidebysig specialname rtspecialname instance void .ctor(!'j__TPar' Name, @@ -2848,12 +3235,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousType13`2'::.ctor + } // end of method '<>f__AnonymousType15`2'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -2861,34 +3248,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 60 (0x3c) .maxstack 3 - .locals init (class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_003a IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_003a IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: br.s IL_003b IL_003a: ldc.i4.0 IL_003b: ret - } // end of method '<>f__AnonymousType13`2'::Equals + } // end of method '<>f__AnonymousType15`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -2901,18 +3288,18 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ret - } // end of method '<>f__AnonymousType13`2'::GetHashCode + } // end of method '<>f__AnonymousType15`2'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -2931,7 +3318,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -2957,7 +3344,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType13`2'j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -2984,20 +3371,20 @@ string, object[]) IL_0087: ret - } // end of method '<>f__AnonymousType13`2'::ToString + } // end of method '<>f__AnonymousType15`2'::ToString .property instance !'j__TPar' Name() { - .get instance !'j__TPar' '<>f__AnonymousType13`2'::get_Name() - } // end of property '<>f__AnonymousType13`2'::Name + .get instance !'j__TPar' '<>f__AnonymousType15`2'::get_Name() + } // end of property '<>f__AnonymousType15`2'::Name .property instance !'j__TPar' OrderCount() { - .get instance !'j__TPar' '<>f__AnonymousType13`2'::get_OrderCount() - } // end of property '<>f__AnonymousType13`2'::OrderCount -} // end of class '<>f__AnonymousType13`2' + .get instance !'j__TPar' '<>f__AnonymousType15`2'::get_OrderCount() + } // end of property '<>f__AnonymousType15`2'::OrderCount +} // end of class '<>f__AnonymousType15`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType14`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType16`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -3016,9 +3403,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType14`2'::get_Country + } // end of method '<>f__AnonymousType16`2'::get_Country .method public hidebysig specialname instance !'j__TPar' get_CustCount() cil managed @@ -3026,9 +3413,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType14`2'::get_CustCount + } // end of method '<>f__AnonymousType16`2'::get_CustCount .method public hidebysig specialname rtspecialname instance void .ctor(!'j__TPar' Country, @@ -3041,12 +3428,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousType14`2'::.ctor + } // end of method '<>f__AnonymousType16`2'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -3054,34 +3441,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 60 (0x3c) .maxstack 3 - .locals init (class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_003a IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_003a IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: br.s IL_003b IL_003a: ldc.i4.0 IL_003b: ret - } // end of method '<>f__AnonymousType14`2'::Equals + } // end of method '<>f__AnonymousType16`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -3094,18 +3481,18 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ret - } // end of method '<>f__AnonymousType14`2'::GetHashCode + } // end of method '<>f__AnonymousType16`2'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -3124,7 +3511,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -3150,7 +3537,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType14`2'j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType16`2'j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -3177,20 +3564,20 @@ string, object[]) IL_0087: ret - } // end of method '<>f__AnonymousType14`2'::ToString + } // end of method '<>f__AnonymousType16`2'::ToString .property instance !'j__TPar' Country() { - .get instance !'j__TPar' '<>f__AnonymousType14`2'::get_Country() - } // end of property '<>f__AnonymousType14`2'::Country + .get instance !'j__TPar' '<>f__AnonymousType16`2'::get_Country() + } // end of property '<>f__AnonymousType16`2'::Country .property instance !'j__TPar' CustCount() { - .get instance !'j__TPar' '<>f__AnonymousType14`2'::get_CustCount() - } // end of property '<>f__AnonymousType14`2'::CustCount -} // end of class '<>f__AnonymousType14`2' + .get instance !'j__TPar' '<>f__AnonymousType16`2'::get_CustCount() + } // end of property '<>f__AnonymousType16`2'::CustCount +} // end of class '<>f__AnonymousType16`2' -.class private auto ansi sealed beforefieldinit '<>f__AnonymousType15`2'<'j__TPar','j__TPar'> +.class private auto ansi sealed beforefieldinit '<>f__AnonymousType17`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -3208,9 +3595,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType15`2'::get_m + } // end of method '<>f__AnonymousType17`2'::get_m .method public hidebysig specialname instance !'j__TPar' get_t() cil managed @@ -3218,9 +3605,9 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0001: ldfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0006: ret - } // end of method '<>f__AnonymousType15`2'::get_t + } // end of method '<>f__AnonymousType17`2'::get_t .method public hidebysig specialname rtspecialname instance void .ctor(!'j__TPar' m, @@ -3233,12 +3620,12 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0008: stfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: stfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: ret - } // end of method '<>f__AnonymousType15`2'::.ctor + } // end of method '<>f__AnonymousType17`2'::.ctor .method public hidebysig virtual instance bool Equals(object 'value') cil managed @@ -3246,34 +3633,34 @@ .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) // Code size 60 (0x3c) .maxstack 3 - .locals init (class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'> V_0) + .locals init (class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'> V_0) IL_0000: ldarg.1 - IL_0001: isinst class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'> + IL_0001: isinst class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_003a IL_000a: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_000f: ldarg.0 - IL_0010: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0010: ldfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0015: ldloc.0 - IL_0016: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0016: ldfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_001b: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0020: brfalse.s IL_003a IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: ldloc.0 - IL_002e: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_002e: ldfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0033: callvirt instance bool class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::Equals(!0, !0) IL_0038: br.s IL_003b IL_003a: ldc.i4.0 IL_003b: ret - } // end of method '<>f__AnonymousType15`2'::Equals + } // end of method '<>f__AnonymousType17`2'::Equals .method public hidebysig virtual instance int32 GetHashCode() cil managed @@ -3286,18 +3673,18 @@ IL_000a: mul IL_000b: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0010: ldarg.0 - IL_0011: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0011: ldfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0016: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_001b: add IL_001c: ldc.i4 0xa5555529 IL_0021: mul IL_0022: call class [mscorlib]System.Collections.Generic.EqualityComparer`1 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::get_Default() IL_0027: ldarg.0 - IL_0028: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_0028: ldfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_002d: callvirt instance int32 class [mscorlib]System.Collections.Generic.EqualityComparer`1j__TPar'>::GetHashCode(!0) IL_0032: add IL_0033: ret - } // end of method '<>f__AnonymousType15`2'::GetHashCode + } // end of method '<>f__AnonymousType17`2'::GetHashCode .method public hidebysig virtual instance string ToString() cil managed @@ -3316,7 +3703,7 @@ IL_000c: dup IL_000d: ldc.i4.0 IL_000e: ldarg.0 - IL_000f: ldfld !0 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_000f: ldfld !0 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_0014: stloc.0 IL_0015: ldloca.s V_0 IL_0017: ldloca.s V_1 @@ -3342,7 +3729,7 @@ IL_0047: dup IL_0048: ldc.i4.1 IL_0049: ldarg.0 - IL_004a: ldfld !1 class '<>f__AnonymousType15`2'j__TPar',!'j__TPar'>::'i__Field' + IL_004a: ldfld !1 class '<>f__AnonymousType17`2'j__TPar',!'j__TPar'>::'i__Field' IL_004f: stloc.2 IL_0050: ldloca.s V_2 IL_0052: ldloca.s V_3 @@ -3369,21 +3756,99 @@ string, object[]) IL_0087: ret - } // end of method '<>f__AnonymousType15`2'::ToString + } // end of method '<>f__AnonymousType17`2'::ToString .property instance !'j__TPar' m() { - .get instance !'j__TPar' '<>f__AnonymousType15`2'::get_m() - } // end of property '<>f__AnonymousType15`2'::m + .get instance !'j__TPar' '<>f__AnonymousType17`2'::get_m() + } // end of property '<>f__AnonymousType17`2'::m .property instance !'j__TPar' t() { - .get instance !'j__TPar' '<>f__AnonymousType15`2'::get_t() - } // end of property '<>f__AnonymousType15`2'::t -} // end of class '<>f__AnonymousType15`2' + .get instance !'j__TPar' '<>f__AnonymousType17`2'::get_t() + } // end of property '<>f__AnonymousType17`2'::t +} // end of class '<>f__AnonymousType17`2' .class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions extends [mscorlib]System.Object { + .class auto ansi nested public beforefieldinit HbmParam + extends [mscorlib]System.Object + { + .field private string 'k__BackingField' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .field private string[] 'k__BackingField' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .method public hidebysig specialname + instance string get_Name() 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: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0006: ret + } // end of method HbmParam::get_Name + + .method public hidebysig specialname + instance void set_Name(string 'value') 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: ldarg.1 + IL_0002: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0007: ret + } // end of method HbmParam::set_Name + + .method public hidebysig specialname + instance string[] get_Text() 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: ldfld string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0006: ret + } // end of method HbmParam::get_Text + + .method public hidebysig specialname + instance void set_Text(string[] 'value') 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: ldarg.1 + IL_0002: stfld string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::'k__BackingField' + IL_0007: ret + } // end of method HbmParam::set_Text + + .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 HbmParam::.ctor + + .property instance string Name() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::get_Name() + .set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Name(string) + } // end of property HbmParam::Name + .property instance string[] Text() + { + .get instance string[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::get_Text() + .set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Text(string[]) + } // end of property HbmParam::Text + } // end of class HbmParam + .class auto ansi nested public beforefieldinit Customer extends [mscorlib]System.Object { @@ -3450,49 +3915,51 @@ { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .field public static initonly class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' '<>9' - .field public static class [mscorlib]System.Func`2 '<>9__5_0' - .field public static class [mscorlib]System.Func`2 '<>9__5_1' - .field public static class [mscorlib]System.Func`2> '<>9__6_0' - .field public static class [mscorlib]System.Func`3f__AnonymousType0`3'> '<>9__6_1' + .field public static class [mscorlib]System.Func`2 '<>9__6_0' + .field public static class [mscorlib]System.Func`2 '<>9__6_1' .field public static class [mscorlib]System.Func`2> '<>9__7_0' - .field public static class [mscorlib]System.Func`3f__AnonymousType1`2'> '<>9__7_1' - .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> '<>9__7_2' - .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> '<>9__7_3' + .field public static class [mscorlib]System.Func`3f__AnonymousType0`3'> '<>9__7_1' .field public static class [mscorlib]System.Func`2> '<>9__8_0' .field public static class [mscorlib]System.Func`3f__AnonymousType1`2'> '<>9__8_1' - .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> '<>9__8_2' - .field public static class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> '<>9__8_3' + .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> '<>9__8_2' + .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> '<>9__8_3' .field public static class [mscorlib]System.Func`2> '<>9__9_0' .field public static class [mscorlib]System.Func`3f__AnonymousType1`2'> '<>9__9_1' .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> '<>9__9_2' - .field public static class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> '<>9__9_3' - .field public static class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> '<>9__9_4' - .field public static class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> '<>9__9_5' - .field public static class [mscorlib]System.Func`2 '<>9__10_3' - .field public static class [mscorlib]System.Func`2f__AnonymousType6`2'> '<>9__10_0' - .field public static class [mscorlib]System.Func`2f__AnonymousType6`2',bool> '<>9__10_1' - .field public static class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> '<>9__10_2' - .field public static class [mscorlib]System.Func`2f__AnonymousType8`2'> '<>9__11_0' - .field public static class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> '<>9__11_1' - .field public static class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> '<>9__11_2' - .field public static class [mscorlib]System.Func`2 '<>9__12_0' - .field public static class [mscorlib]System.Func`2 '<>9__12_1' - .field public static class [mscorlib]System.Func`3f__AnonymousType10`3'> '<>9__12_2' - .field public static class [mscorlib]System.Func`2 '<>9__13_0' - .field public static class [mscorlib]System.Func`2 '<>9__13_1' - .field public static class [mscorlib]System.Func`3,class '<>f__AnonymousType11`2'>> '<>9__13_2' - .field public static class [mscorlib]System.Func`2f__AnonymousType11`2'>,class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>> '<>9__13_3' - .field public static class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,bool> '<>9__13_4' - .field public static class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,class '<>f__AnonymousType13`2'> '<>9__13_5' - .field public static class [mscorlib]System.Func`2 '<>9__14_0' - .field public static class [mscorlib]System.Func`2 '<>9__14_1' - .field public static class [mscorlib]System.Func`2 '<>9__15_0' - .field public static class [mscorlib]System.Func`2 '<>9__15_1' - .field public static class [mscorlib]System.Func`2 '<>9__16_0' + .field public static class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> '<>9__9_3' + .field public static class [mscorlib]System.Func`2> '<>9__10_0' + .field public static class [mscorlib]System.Func`3f__AnonymousType1`2'> '<>9__10_1' + .field public static class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> '<>9__10_2' + .field public static class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> '<>9__10_3' + .field public static class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> '<>9__10_4' + .field public static class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> '<>9__10_5' + .field public static class [mscorlib]System.Func`2 '<>9__11_3' + .field public static class [mscorlib]System.Func`2f__AnonymousType6`2'> '<>9__11_0' + .field public static class [mscorlib]System.Func`2f__AnonymousType6`2',bool> '<>9__11_1' + .field public static class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> '<>9__11_2' + .field public static class [mscorlib]System.Func`2f__AnonymousType8`2'> '<>9__12_0' + .field public static class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> '<>9__12_1' + .field public static class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> '<>9__12_2' + .field public static class [mscorlib]System.Func`2f__AnonymousType10`2'> '<>9__13_0' + .field public static class [mscorlib]System.Func`2f__AnonymousType11`2'f__AnonymousType10`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> '<>9__13_2' + .field public static class [mscorlib]System.Func`2 '<>9__14_0' + .field public static class [mscorlib]System.Func`2 '<>9__14_1' + .field public static class [mscorlib]System.Func`3f__AnonymousType12`3'> '<>9__14_2' + .field public static class [mscorlib]System.Func`2 '<>9__15_0' + .field public static class [mscorlib]System.Func`2 '<>9__15_1' + .field public static class [mscorlib]System.Func`3,class '<>f__AnonymousType13`2'>> '<>9__15_2' + .field public static class [mscorlib]System.Func`2f__AnonymousType13`2'>,class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>> '<>9__15_3' + .field public static class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,bool> '<>9__15_4' + .field public static class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,class '<>f__AnonymousType15`2'> '<>9__15_5' + .field public static class [mscorlib]System.Func`2 '<>9__16_0' + .field public static class [mscorlib]System.Func`2 '<>9__16_1' .field public static class [mscorlib]System.Func`2 '<>9__17_0' - .field public static class [mscorlib]System.Func`2,class '<>f__AnonymousType14`2'> '<>9__17_1' - .field public static class [mscorlib]System.Func`2 '<>9__18_0' - .field public static class [mscorlib]System.Func`2 '<>9__18_1' + .field public static class [mscorlib]System.Func`2 '<>9__17_1' + .field public static class [mscorlib]System.Func`2 '<>9__18_0' + .field public static class [mscorlib]System.Func`2 '<>9__19_0' + .field public static class [mscorlib]System.Func`2,class '<>f__AnonymousType16`2'> '<>9__19_1' + .field public static class [mscorlib]System.Func`2 '<>9__20_0' + .field public static class [mscorlib]System.Func`2 '<>9__20_1' .method private hidebysig specialname rtspecialname static void .cctor() cil managed { @@ -3515,7 +3982,7 @@ } // end of method '<>c'::.ctor .method assembly hidebysig instance bool - 'b__5_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__6_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 16 (0x10) .maxstack 8 @@ -3525,10 +3992,10 @@ IL_000b: ldc.i4.s 10 IL_000d: cgt IL_000f: ret - } // end of method '<>c'::'b__5_0' + } // end of method '<>c'::'b__6_0' .method assembly hidebysig instance bool - 'b__5_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__6_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 17 (0x11) .maxstack 8 @@ -3538,20 +4005,20 @@ IL_000b: call bool [mscorlib]System.String::op_Equality(string, string) IL_0010: ret - } // end of method '<>c'::'b__5_1' + } // end of method '<>c'::'b__6_1' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__6_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__7_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Orders IL_0006: ret - } // end of method '<>c'::'b__6_0' + } // end of method '<>c'::'b__7_0' .method assembly hidebysig instance class '<>f__AnonymousType0`3' - 'b__6_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + 'b__7_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 24 (0x18) @@ -3566,20 +4033,20 @@ !1, !2) IL_0017: ret - } // end of method '<>c'::'b__6_1' + } // end of method '<>c'::'b__7_1' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__7_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__8_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Orders IL_0006: ret - } // end of method '<>c'::'b__7_0' + } // end of method '<>c'::'b__8_0' .method assembly hidebysig instance class '<>f__AnonymousType1`2' - 'b__7_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + 'b__8_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 8 (0x8) @@ -3589,10 +4056,10 @@ IL_0002: newobj instance void class '<>f__AnonymousType1`2'::.ctor(!0, !1) IL_0007: ret - } // end of method '<>c'::'b__7_1' + } // end of method '<>c'::'b__8_1' .method assembly hidebysig instance valuetype [mscorlib]System.Decimal - 'b__7_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed + 'b__8_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed { // Code size 12 (0xc) .maxstack 8 @@ -3600,10 +4067,10 @@ IL_0001: callvirt instance !1 class '<>f__AnonymousType1`2'::get_o() IL_0006: ldfld valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Total IL_000b: ret - } // end of method '<>c'::'b__7_2' + } // end of method '<>c'::'b__8_2' .method assembly hidebysig instance class '<>f__AnonymousType0`3' - 'b__7_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed + 'b__8_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed { // Code size 39 (0x27) .maxstack 8 @@ -3620,20 +4087,20 @@ !1, !2) IL_0026: ret - } // end of method '<>c'::'b__7_3' + } // end of method '<>c'::'b__8_3' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__8_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__9_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Orders IL_0006: ret - } // end of method '<>c'::'b__8_0' + } // end of method '<>c'::'b__9_0' .method assembly hidebysig instance class '<>f__AnonymousType1`2' - 'b__8_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + 'b__9_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 8 (0x8) @@ -3643,10 +4110,10 @@ IL_0002: newobj instance void class '<>f__AnonymousType1`2'::.ctor(!0, !1) IL_0007: ret - } // end of method '<>c'::'b__8_1' + } // end of method '<>c'::'b__9_1' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__8_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed + 'b__9_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed { // Code size 12 (0xc) .maxstack 8 @@ -3654,10 +4121,10 @@ IL_0001: callvirt instance !1 class '<>f__AnonymousType1`2'::get_o() IL_0006: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Details IL_000b: ret - } // end of method '<>c'::'b__8_2' + } // end of method '<>c'::'b__9_2' .method assembly hidebysig instance class '<>f__AnonymousType2`3' - 'b__8_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0', + 'b__9_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0', class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail d) cil managed { // Code size 34 (0x22) @@ -3674,21 +4141,21 @@ !1, !2) IL_0021: ret - } // end of method '<>c'::'b__8_3' + } // end of method '<>c'::'b__9_3' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__9_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__10_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Orders IL_0006: ret - } // end of method '<>c'::'b__9_0' + } // end of method '<>c'::'b__10_0' .method assembly hidebysig instance class '<>f__AnonymousType1`2' - 'b__9_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, - class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__10_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 8 (0x8) .maxstack 8 @@ -3697,10 +4164,10 @@ IL_0002: newobj instance void class '<>f__AnonymousType1`2'::.ctor(!0, !1) IL_0007: ret - } // end of method '<>c'::'b__9_1' + } // end of method '<>c'::'b__10_1' .method assembly hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 - 'b__9_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed + 'b__10_2'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0') cil managed { // Code size 12 (0xc) .maxstack 8 @@ -3708,11 +4175,11 @@ IL_0001: callvirt instance !1 class '<>f__AnonymousType1`2'::get_o() IL_0006: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Details IL_000b: ret - } // end of method '<>c'::'b__9_2' + } // end of method '<>c'::'b__10_2' .method assembly hidebysig instance class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail> - 'b__9_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0', - class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail d) cil managed + 'b__10_3'(class '<>f__AnonymousType1`2' '<>h__TransparentIdentifier0', + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail d) cil managed { // Code size 8 (0x8) .maxstack 8 @@ -3721,10 +4188,10 @@ IL_0002: newobj instance void class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>::.ctor(!0, !1) IL_0007: ret - } // end of method '<>c'::'b__9_3' + } // end of method '<>c'::'b__10_3' .method assembly hidebysig instance class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal> - 'b__9_4'(class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail> '<>h__TransparentIdentifier1') cil managed + 'b__10_4'(class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail> '<>h__TransparentIdentifier1') cil managed { // Code size 39 (0x27) .maxstack 8 @@ -3741,10 +4208,10 @@ IL_0021: newobj instance void class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>::.ctor(!0, !1) IL_0026: ret - } // end of method '<>c'::'b__9_4' + } // end of method '<>c'::'b__10_4' .method assembly hidebysig instance class '<>f__AnonymousType5`3' - 'b__9_5'(class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal> '<>h__TransparentIdentifier2') cil managed + 'b__10_5'(class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal> '<>h__TransparentIdentifier2') cil managed { // Code size 54 (0x36) .maxstack 8 @@ -3764,36 +4231,36 @@ !1, !2) IL_0035: ret - } // end of method '<>c'::'b__9_5' + } // end of method '<>c'::'b__10_5' .method assembly hidebysig instance class '<>f__AnonymousType6`2' - 'b__10_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__11_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 49 (0x31) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldarg.1 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Details - IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_3' + IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_3' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_3'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail) + IL_0015: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_3'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail) IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_3' + IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_3' IL_0026: call valuetype [mscorlib]System.Decimal [System.Core]System.Linq.Enumerable::Sum(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_002b: newobj instance void class '<>f__AnonymousType6`2'::.ctor(!0, !1) IL_0030: ret - } // end of method '<>c'::'b__10_0' + } // end of method '<>c'::'b__11_0' .method assembly hidebysig instance valuetype [mscorlib]System.Decimal - 'b__10_3'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail d) cil managed + 'b__11_3'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail d) cil managed { // Code size 23 (0x17) .maxstack 8 @@ -3805,10 +4272,10 @@ IL_0011: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) IL_0016: ret - } // end of method '<>c'::'b__10_3' + } // end of method '<>c'::'b__11_3' .method assembly hidebysig instance bool - 'b__10_1'(class '<>f__AnonymousType6`2' '<>h__TransparentIdentifier0') cil managed + 'b__11_1'(class '<>f__AnonymousType6`2' '<>h__TransparentIdentifier0') cil managed { // Code size 22 (0x16) .maxstack 8 @@ -3819,10 +4286,10 @@ IL_0010: call bool [mscorlib]System.Decimal::op_GreaterThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) IL_0015: ret - } // end of method '<>c'::'b__10_1' + } // end of method '<>c'::'b__11_1' .method assembly hidebysig instance class '<>f__AnonymousType7`2' - 'b__10_2'(class '<>f__AnonymousType6`2' '<>h__TransparentIdentifier0') cil managed + 'b__11_2'(class '<>f__AnonymousType6`2' '<>h__TransparentIdentifier0') cil managed { // Code size 23 (0x17) .maxstack 8 @@ -3834,10 +4301,10 @@ IL_0011: newobj instance void class '<>f__AnonymousType7`2'::.ctor(!0, !1) IL_0016: ret - } // end of method '<>c'::'b__10_2' + } // end of method '<>c'::'b__11_2' .method assembly hidebysig instance class '<>f__AnonymousType8`2' - 'b__11_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer a) cil managed + 'b__12_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer a) cil managed { // Code size 13 (0xd) .maxstack 8 @@ -3847,10 +4314,10 @@ IL_0007: newobj instance void class '<>f__AnonymousType8`2'::.ctor(!0, !1) IL_000c: ret - } // end of method '<>c'::'b__11_0' + } // end of method '<>c'::'b__12_0' .method assembly hidebysig instance class '<>f__AnonymousType9`2'f__AnonymousType8`2',string> - 'b__11_1'(class '<>f__AnonymousType8`2' '<>h__TransparentIdentifier0') cil managed + 'b__12_1'(class '<>f__AnonymousType8`2' '<>h__TransparentIdentifier0') cil managed { // Code size 18 (0x12) .maxstack 8 @@ -3861,10 +4328,10 @@ IL_000c: newobj instance void class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>::.ctor(!0, !1) IL_0011: ret - } // end of method '<>c'::'b__11_1' + } // end of method '<>c'::'b__12_1' .method assembly hidebysig instance string - 'b__11_2'(class '<>f__AnonymousType9`2'f__AnonymousType8`2',string> '<>h__TransparentIdentifier1') cil managed + 'b__12_2'(class '<>f__AnonymousType9`2'f__AnonymousType8`2',string> '<>h__TransparentIdentifier1') cil managed { // Code size 23 (0x17) .maxstack 8 @@ -3876,30 +4343,79 @@ IL_0011: call string [mscorlib]System.String::Concat(string, string) IL_0016: ret - } // end of method '<>c'::'b__11_2' + } // end of method '<>c'::'b__12_2' + + .method assembly hidebysig instance class '<>f__AnonymousType10`2' + 'b__13_0'(class [mscorlib]System.Reflection.PropertyInfo pi) cil managed + { + // Code size 13 (0xd) + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ldarg.1 + IL_0002: callvirt instance string [mscorlib]System.Reflection.MemberInfo::get_Name() + IL_0007: newobj instance void class '<>f__AnonymousType10`2'::.ctor(!0, + !1) + IL_000c: ret + } // end of method '<>c'::'b__13_0' + + .method assembly hidebysig instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam + 'b__13_2'(class '<>f__AnonymousType11`2'f__AnonymousType10`2',object> '<>h__TransparentIdentifier1') cil managed + { + // Code size 68 (0x44) + .maxstack 5 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam V_0) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::.ctor() + IL_0005: stloc.0 + IL_0006: ldloc.0 + IL_0007: ldarg.1 + IL_0008: callvirt instance !0 class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>::'get_<>h__TransparentIdentifier0'() + IL_000d: callvirt instance !1 class '<>f__AnonymousType10`2'::get_pname() + IL_0012: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Name(string) + IL_0017: nop + IL_0018: ldloc.0 + IL_0019: ldc.i4.1 + IL_001a: newarr [mscorlib]System.String + IL_001f: dup + IL_0020: ldc.i4.0 + IL_0021: ldarg.1 + IL_0022: callvirt instance !1 class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>::get_pvalue() + IL_0027: brfalse.s IL_0036 + + IL_0029: ldarg.1 + IL_002a: callvirt instance !1 class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>::get_pvalue() + IL_002f: callvirt instance string [mscorlib]System.Object::ToString() + IL_0034: br.s IL_003b + + IL_0036: ldstr "null" + IL_003b: stelem.ref + IL_003c: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam::set_Text(string[]) + IL_0041: nop + IL_0042: ldloc.0 + IL_0043: ret + } // end of method '<>c'::'b__13_2' .method assembly hidebysig instance int32 - 'b__12_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__14_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::CustomerID IL_0006: ret - } // end of method '<>c'::'b__12_0' + } // end of method '<>c'::'b__14_0' .method assembly hidebysig instance int32 - 'b__12_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__14_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::CustomerID IL_0006: ret - } // end of method '<>c'::'b__12_1' + } // end of method '<>c'::'b__14_1' - .method assembly hidebysig instance class '<>f__AnonymousType10`3' - 'b__12_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + .method assembly hidebysig instance class '<>f__AnonymousType12`3' + 'b__14_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 24 (0x18) @@ -3910,91 +4426,91 @@ IL_0007: ldfld valuetype [mscorlib]System.DateTime ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::OrderDate IL_000c: ldarg.2 IL_000d: ldfld valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Total - IL_0012: newobj instance void class '<>f__AnonymousType10`3'::.ctor(!0, + IL_0012: newobj instance void class '<>f__AnonymousType12`3'::.ctor(!0, !1, !2) IL_0017: ret - } // end of method '<>c'::'b__12_2' + } // end of method '<>c'::'b__14_2' .method assembly hidebysig instance int32 - 'b__13_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__15_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::CustomerID IL_0006: ret - } // end of method '<>c'::'b__13_0' + } // end of method '<>c'::'b__15_0' .method assembly hidebysig instance int32 - 'b__13_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__15_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::CustomerID IL_0006: ret - } // end of method '<>c'::'b__13_1' + } // end of method '<>c'::'b__15_1' - .method assembly hidebysig instance class '<>f__AnonymousType11`2'> - 'b__13_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, + .method assembly hidebysig instance class '<>f__AnonymousType13`2'> + 'b__15_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c, class [mscorlib]System.Collections.Generic.IEnumerable`1 co) cil managed { // Code size 8 (0x8) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldarg.2 - IL_0002: newobj instance void class '<>f__AnonymousType11`2'>::.ctor(!0, + IL_0002: newobj instance void class '<>f__AnonymousType13`2'>::.ctor(!0, !1) IL_0007: ret - } // end of method '<>c'::'b__13_2' + } // end of method '<>c'::'b__15_2' - .method assembly hidebysig instance class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32> - 'b__13_3'(class '<>f__AnonymousType11`2'> '<>h__TransparentIdentifier0') cil managed + .method assembly hidebysig instance class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32> + 'b__15_3'(class '<>f__AnonymousType13`2'> '<>h__TransparentIdentifier0') cil managed { // Code size 18 (0x12) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldarg.1 - IL_0002: callvirt instance !1 class '<>f__AnonymousType11`2'>::get_co() + IL_0002: callvirt instance !1 class '<>f__AnonymousType13`2'>::get_co() IL_0007: call int32 [System.Core]System.Linq.Enumerable::Count(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_000c: newobj instance void class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>::.ctor(!0, + IL_000c: newobj instance void class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>::.ctor(!0, !1) IL_0011: ret - } // end of method '<>c'::'b__13_3' + } // end of method '<>c'::'b__15_3' .method assembly hidebysig instance bool - 'b__13_4'(class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32> '<>h__TransparentIdentifier1') cil managed + 'b__15_4'(class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32> '<>h__TransparentIdentifier1') cil managed { // Code size 14 (0xe) .maxstack 8 IL_0000: ldarg.1 - IL_0001: callvirt instance !1 class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>::get_n() + IL_0001: callvirt instance !1 class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>::get_n() IL_0006: ldc.i4.s 10 IL_0008: clt IL_000a: ldc.i4.0 IL_000b: ceq IL_000d: ret - } // end of method '<>c'::'b__13_4' + } // end of method '<>c'::'b__15_4' - .method assembly hidebysig instance class '<>f__AnonymousType13`2' - 'b__13_5'(class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32> '<>h__TransparentIdentifier1') cil managed + .method assembly hidebysig instance class '<>f__AnonymousType15`2' + 'b__15_5'(class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32> '<>h__TransparentIdentifier1') cil managed { // Code size 28 (0x1c) .maxstack 8 IL_0000: ldarg.1 - IL_0001: callvirt instance !0 class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>::'get_<>h__TransparentIdentifier0'() - IL_0006: callvirt instance !0 class '<>f__AnonymousType11`2'>::get_c() + IL_0001: callvirt instance !0 class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>::'get_<>h__TransparentIdentifier0'() + IL_0006: callvirt instance !0 class '<>f__AnonymousType13`2'>::get_c() IL_000b: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_0010: ldarg.1 - IL_0011: callvirt instance !1 class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>::get_n() - IL_0016: newobj instance void class '<>f__AnonymousType13`2'::.ctor(!0, + IL_0011: callvirt instance !1 class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>::get_n() + IL_0016: newobj instance void class '<>f__AnonymousType15`2'::.ctor(!0, !1) IL_001b: ret - } // end of method '<>c'::'b__13_5' + } // end of method '<>c'::'b__15_5' .method assembly hidebysig instance string - 'b__14_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__16_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 12 (0xc) .maxstack 8 @@ -4002,40 +4518,40 @@ IL_0001: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Customer IL_0006: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_000b: ret - } // end of method '<>c'::'b__14_0' + } // end of method '<>c'::'b__16_0' .method assembly hidebysig instance valuetype [mscorlib]System.Decimal - 'b__14_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed + 'b__16_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order o) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order::Total IL_0006: ret - } // end of method '<>c'::'b__14_1' + } // end of method '<>c'::'b__16_1' .method assembly hidebysig instance string - 'b__15_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__17_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Country IL_0006: ret - } // end of method '<>c'::'b__15_0' + } // end of method '<>c'::'b__17_0' .method assembly hidebysig instance string - 'b__15_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__17_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Name IL_0006: ret - } // end of method '<>c'::'b__15_1' + } // end of method '<>c'::'b__17_1' .method assembly hidebysig instance bool - 'b__16_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__18_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 17 (0x11) .maxstack 8 @@ -4045,20 +4561,20 @@ IL_000b: call bool [mscorlib]System.String::op_Equality(string, string) IL_0010: ret - } // end of method '<>c'::'b__16_0' + } // end of method '<>c'::'b__18_0' .method assembly hidebysig instance string - 'b__17_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed + 'b__19_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer c) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer::Country IL_0006: ret - } // end of method '<>c'::'b__17_0' + } // end of method '<>c'::'b__19_0' - .method assembly hidebysig instance class '<>f__AnonymousType14`2' - 'b__17_1'(class [System.Core]System.Linq.IGrouping`2 g) cil managed + .method assembly hidebysig instance class '<>f__AnonymousType16`2' + 'b__19_1'(class [System.Core]System.Linq.IGrouping`2 g) cil managed { // Code size 18 (0x12) .maxstack 8 @@ -4066,48 +4582,48 @@ IL_0001: callvirt instance !0 class [System.Core]System.Linq.IGrouping`2::get_Key() IL_0006: ldarg.1 IL_0007: call int32 [System.Core]System.Linq.Enumerable::Count(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_000c: newobj instance void class '<>f__AnonymousType14`2'::.ctor(!0, + IL_000c: newobj instance void class '<>f__AnonymousType16`2'::.ctor(!0, !1) IL_0011: ret - } // end of method '<>c'::'b__17_1' + } // end of method '<>c'::'b__19_1' .method assembly hidebysig instance bool - 'b__18_0'(bool x) cil managed + 'b__20_0'(bool x) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: ldarg.1 IL_0001: ret - } // end of method '<>c'::'b__18_0' + } // end of method '<>c'::'b__20_0' .method assembly hidebysig instance bool - 'b__18_1'(bool x) cil managed + 'b__20_1'(bool x) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: ldarg.1 IL_0001: ret - } // end of method '<>c'::'b__18_1' + } // end of method '<>c'::'b__20_1' } // end of class '<>c' - .class auto ansi serializable sealed nested private beforefieldinit '<>c__19`2' + .class auto ansi serializable sealed nested private beforefieldinit '<>c__21`2' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .field public static initonly class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2' '<>9' - .field public static class [mscorlib]System.Func`2f__AnonymousType15`2'> '<>9__19_0' - .field public static class [mscorlib]System.Func`2f__AnonymousType15`2',bool> '<>9__19_1' - .field public static class [mscorlib]System.Func`2f__AnonymousType15`2',!TB> '<>9__19_2' + .field public static initonly class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2' '<>9' + .field public static class [mscorlib]System.Func`2f__AnonymousType17`2'> '<>9__21_0' + .field public static class [mscorlib]System.Func`2f__AnonymousType17`2',bool> '<>9__21_1' + .field public static class [mscorlib]System.Func`2f__AnonymousType17`2',!TB> '<>9__21_2' .method private hidebysig specialname rtspecialname static void .cctor() cil managed { // Code size 11 (0xb) .maxstack 8 - IL_0000: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::.ctor() - IL_0005: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9' + IL_0000: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::.ctor() + IL_0005: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9' IL_000a: ret - } // end of method '<>c__19`2'::.cctor + } // end of method '<>c__21`2'::.cctor .method public hidebysig specialname rtspecialname instance void .ctor() cil managed @@ -4118,10 +4634,10 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: ret - } // end of method '<>c__19`2'::.ctor + } // end of method '<>c__21`2'::.ctor - .method assembly hidebysig instance class '<>f__AnonymousType15`2' - 'b__19_0'(!TA m) cil managed + .method assembly hidebysig instance class '<>f__AnonymousType17`2' + 'b__21_0'(!TA m) cil managed { // Code size 23 (0x17) .maxstack 8 @@ -4130,35 +4646,35 @@ IL_0002: box !TA IL_0007: isinst !TB IL_000c: unbox.any !TB - IL_0011: newobj instance void class '<>f__AnonymousType15`2'::.ctor(!0, + IL_0011: newobj instance void class '<>f__AnonymousType17`2'::.ctor(!0, !1) IL_0016: ret - } // end of method '<>c__19`2'::'b__19_0' + } // end of method '<>c__21`2'::'b__21_0' .method assembly hidebysig instance bool - 'b__19_1'(class '<>f__AnonymousType15`2' '<>h__TransparentIdentifier0') cil managed + 'b__21_1'(class '<>f__AnonymousType17`2' '<>h__TransparentIdentifier0') cil managed { // Code size 15 (0xf) .maxstack 8 IL_0000: ldarg.1 - IL_0001: callvirt instance !1 class '<>f__AnonymousType15`2'::get_t() + IL_0001: callvirt instance !1 class '<>f__AnonymousType17`2'::get_t() IL_0006: box !TB IL_000b: ldnull IL_000c: cgt.un IL_000e: ret - } // end of method '<>c__19`2'::'b__19_1' + } // end of method '<>c__21`2'::'b__21_1' .method assembly hidebysig instance !TB - 'b__19_2'(class '<>f__AnonymousType15`2' '<>h__TransparentIdentifier0') cil managed + 'b__21_2'(class '<>f__AnonymousType17`2' '<>h__TransparentIdentifier0') cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 - IL_0001: callvirt instance !1 class '<>f__AnonymousType15`2'::get_t() + IL_0001: callvirt instance !1 class '<>f__AnonymousType17`2'::get_t() IL_0006: ret - } // end of method '<>c__19`2'::'b__19_2' + } // end of method '<>c__21`2'::'b__21_2' - } // end of class '<>c__19`2' + } // end of class '<>c__21`2' .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 customers .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 orders @@ -4171,30 +4687,30 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__5_0' + IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__5_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0015: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__6_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__5_0' + IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_0' IL_0026: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__5_1' + IL_002b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_1' IL_0030: dup IL_0031: brtrue.s IL_004a IL_0033: pop IL_0034: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0039: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__5_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0039: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__6_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_003f: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0044: dup - IL_0045: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__5_1' + IL_0045: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_1' IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_004f: stloc.0 @@ -4213,29 +4729,29 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0007: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_0' + IL_0007: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__6_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0015: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001b: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_0' - IL_0026: ldsfld class [mscorlib]System.Func`3f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_1' + IL_0021: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_0' + IL_0026: ldsfld class [mscorlib]System.Func`3f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_1' IL_002b: dup IL_002c: brtrue.s IL_0045 IL_002e: pop IL_002f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0034: ldftn instance class '<>f__AnonymousType0`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__6_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0034: ldftn instance class '<>f__AnonymousType0`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_003a: newobj instance void class [mscorlib]System.Func`3f__AnonymousType0`3'>::.ctor(object, native int) IL_003f: dup - IL_0040: stsfld class [mscorlib]System.Func`3f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__6_1' + IL_0040: stsfld class [mscorlib]System.Func`3f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_1' IL_0045: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType0`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) @@ -4255,56 +4771,56 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0007: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_0' + IL_0007: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0015: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001b: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_0' - IL_0026: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_1' + IL_0021: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_0' + IL_0026: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_1' IL_002b: dup IL_002c: brtrue.s IL_0045 IL_002e: pop IL_002f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0034: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0034: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_003a: newobj instance void class [mscorlib]System.Func`3f__AnonymousType1`2'>::.ctor(object, native int) IL_003f: dup - IL_0040: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_1' + IL_0040: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_1' IL_0045: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType1`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) - IL_004a: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_2' + IL_004a: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_2' IL_004f: dup IL_0050: brtrue.s IL_0069 IL_0052: pop IL_0053: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0058: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_2'(class '<>f__AnonymousType1`2') + IL_0058: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_2'(class '<>f__AnonymousType1`2') IL_005e: newobj instance void class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal>::.ctor(object, native int) IL_0063: dup - IL_0064: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_2' + IL_0064: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_2' IL_0069: call class [System.Core]System.Linq.IOrderedEnumerable`1 [System.Core]System.Linq.Enumerable::OrderByDescendingf__AnonymousType1`2',valuetype [mscorlib]System.Decimal>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_006e: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_3' + IL_006e: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_3' IL_0073: dup IL_0074: brtrue.s IL_008d IL_0076: pop IL_0077: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_007c: ldftn instance class '<>f__AnonymousType0`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__7_3'(class '<>f__AnonymousType1`2') + IL_007c: ldftn instance class '<>f__AnonymousType0`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_3'(class '<>f__AnonymousType1`2') IL_0082: newobj instance void class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'>::.ctor(object, native int) IL_0087: dup - IL_0088: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__7_3' + IL_0088: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class '<>f__AnonymousType0`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_3' IL_008d: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType1`2',class '<>f__AnonymousType0`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0092: stloc.0 @@ -4323,55 +4839,55 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0007: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_0' + IL_0007: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0015: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001b: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_0' - IL_0026: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_1' + IL_0021: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_0' + IL_0026: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_1' IL_002b: dup IL_002c: brtrue.s IL_0045 IL_002e: pop IL_002f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0034: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0034: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_003a: newobj instance void class [mscorlib]System.Func`3f__AnonymousType1`2'>::.ctor(object, native int) IL_003f: dup - IL_0040: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_1' + IL_0040: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_1' IL_0045: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType1`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) - IL_004a: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_2' + IL_004a: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_2' IL_004f: dup IL_0050: brtrue.s IL_0069 IL_0052: pop IL_0053: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0058: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_2'(class '<>f__AnonymousType1`2') + IL_0058: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_2'(class '<>f__AnonymousType1`2') IL_005e: newobj instance void class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1>::.ctor(object, native int) IL_0063: dup - IL_0064: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_2' - IL_0069: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_3' + IL_0064: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_2' + IL_0069: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_3' IL_006e: dup IL_006f: brtrue.s IL_0088 IL_0071: pop IL_0072: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0077: ldftn instance class '<>f__AnonymousType2`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__8_3'(class '<>f__AnonymousType1`2', + IL_0077: ldftn instance class '<>f__AnonymousType2`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_3'(class '<>f__AnonymousType1`2', class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail) IL_007d: newobj instance void class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'>::.ctor(object, native int) IL_0082: dup - IL_0083: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__8_3' + IL_0083: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_3' IL_0088: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType2`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) @@ -4391,82 +4907,82 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0007: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_0' + IL_0007: ldsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0015: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001b: newobj instance void class [mscorlib]System.Func`2>::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_0' - IL_0026: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_1' + IL_0021: stsfld class [mscorlib]System.Func`2> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_0' + IL_0026: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_1' IL_002b: dup IL_002c: brtrue.s IL_0045 IL_002e: pop IL_002f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0034: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, - class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0034: ldftn instance class '<>f__AnonymousType1`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_003a: newobj instance void class [mscorlib]System.Func`3f__AnonymousType1`2'>::.ctor(object, native int) IL_003f: dup - IL_0040: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_1' + IL_0040: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_1' IL_0045: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType1`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) - IL_004a: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_2' + IL_004a: ldsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_2' IL_004f: dup IL_0050: brtrue.s IL_0069 IL_0052: pop IL_0053: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0058: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_2'(class '<>f__AnonymousType1`2') + IL_0058: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_2'(class '<>f__AnonymousType1`2') IL_005e: newobj instance void class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1>::.ctor(object, native int) IL_0063: dup - IL_0064: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_2' - IL_0069: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_3' + IL_0064: stsfld class [mscorlib]System.Func`2f__AnonymousType1`2',class [mscorlib]System.Collections.Generic.IEnumerable`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_2' + IL_0069: ldsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_3' IL_006e: dup IL_006f: brtrue.s IL_0088 IL_0071: pop IL_0072: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0077: ldftn instance class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_3'(class '<>f__AnonymousType1`2', - class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail) + IL_0077: ldftn instance class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_3'(class '<>f__AnonymousType1`2', + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail) IL_007d: newobj instance void class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>>::.ctor(object, native int) IL_0082: dup - IL_0083: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_3' + IL_0083: stsfld class [mscorlib]System.Func`3f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_3' IL_0088: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::SelectManyf__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail,class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2>, class [mscorlib]System.Func`3) - IL_008d: ldsfld class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_4' + IL_008d: ldsfld class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_4' IL_0092: dup IL_0093: brtrue.s IL_00ac IL_0095: pop IL_0096: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_009b: ldftn instance class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_4'(class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>) + IL_009b: ldftn instance class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_4'(class '<>f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>) IL_00a1: newobj instance void class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>>::.ctor(object, native int) IL_00a6: dup - IL_00a7: stsfld class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_4' + IL_00a7: stsfld class [mscorlib]System.Func`2f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_4' IL_00ac: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_00b1: ldsfld class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_5' + IL_00b1: ldsfld class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_5' IL_00b6: dup IL_00b7: brtrue.s IL_00d0 IL_00b9: pop IL_00ba: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_00bf: ldftn instance class '<>f__AnonymousType5`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__9_5'(class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>) + IL_00bf: ldftn instance class '<>f__AnonymousType5`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_5'(class '<>f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>) IL_00c5: newobj instance void class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'>::.ctor(object, native int) IL_00ca: dup - IL_00cb: stsfld class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__9_5' + IL_00cb: stsfld class [mscorlib]System.Func`2f__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_5' IL_00d0: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType4`2'f__AnonymousType3`2'f__AnonymousType1`2',class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/OrderDetail>,valuetype [mscorlib]System.Decimal>,class '<>f__AnonymousType5`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_00d5: stloc.0 @@ -4485,43 +5001,43 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_0007: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_0' + IL_0007: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance class '<>f__AnonymousType6`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0015: ldftn instance class '<>f__AnonymousType6`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_001b: newobj instance void class [mscorlib]System.Func`2f__AnonymousType6`2'>::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_0' + IL_0021: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_0' IL_0026: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType6`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002b: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2',bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_1' + IL_002b: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2',bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_1' IL_0030: dup IL_0031: brtrue.s IL_004a IL_0033: pop IL_0034: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0039: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_1'(class '<>f__AnonymousType6`2') + IL_0039: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_1'(class '<>f__AnonymousType6`2') IL_003f: newobj instance void class [mscorlib]System.Func`2f__AnonymousType6`2',bool>::.ctor(object, native int) IL_0044: dup - IL_0045: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2',bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_1' + IL_0045: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2',bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_1' IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Wheref__AnonymousType6`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_004f: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_2' + IL_004f: ldsfld class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_2' IL_0054: dup IL_0055: brtrue.s IL_006e IL_0057: pop IL_0058: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_005d: ldftn instance class '<>f__AnonymousType7`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__10_2'(class '<>f__AnonymousType6`2') + IL_005d: ldftn instance class '<>f__AnonymousType7`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_2'(class '<>f__AnonymousType6`2') IL_0063: newobj instance void class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'>::.ctor(object, native int) IL_0068: dup - IL_0069: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__10_2' + IL_0069: stsfld class [mscorlib]System.Func`2f__AnonymousType6`2',class '<>f__AnonymousType7`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_2' IL_006e: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType6`2',class '<>f__AnonymousType7`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0073: stloc.0 @@ -4540,43 +5056,43 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0007: ldsfld class [mscorlib]System.Func`2f__AnonymousType8`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_0' + IL_0007: ldsfld class [mscorlib]System.Func`2f__AnonymousType8`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance class '<>f__AnonymousType8`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0015: ldftn instance class '<>f__AnonymousType8`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001b: newobj instance void class [mscorlib]System.Func`2f__AnonymousType8`2'>::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2f__AnonymousType8`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_0' + IL_0021: stsfld class [mscorlib]System.Func`2f__AnonymousType8`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_0' IL_0026: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType8`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002b: ldsfld class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_1' + IL_002b: ldsfld class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_1' IL_0030: dup IL_0031: brtrue.s IL_004a IL_0033: pop IL_0034: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0039: ldftn instance class '<>f__AnonymousType9`2'f__AnonymousType8`2',string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_1'(class '<>f__AnonymousType8`2') + IL_0039: ldftn instance class '<>f__AnonymousType9`2'f__AnonymousType8`2',string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_1'(class '<>f__AnonymousType8`2') IL_003f: newobj instance void class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>>::.ctor(object, native int) IL_0044: dup - IL_0045: stsfld class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_1' + IL_0045: stsfld class [mscorlib]System.Func`2f__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_1' IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType8`2',class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_004f: ldsfld class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_2' + IL_004f: ldsfld class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_2' IL_0054: dup IL_0055: brtrue.s IL_006e IL_0057: pop IL_0058: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_005d: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__11_2'(class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>) + IL_005d: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_2'(class '<>f__AnonymousType9`2'f__AnonymousType8`2',string>) IL_0063: newobj instance void class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string>::.ctor(object, native int) IL_0068: dup - IL_0069: stsfld class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__11_2' + IL_0069: stsfld class [mscorlib]System.Func`2f__AnonymousType9`2'f__AnonymousType8`2',string>,string> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_2' IL_006e: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType9`2'f__AnonymousType8`2',string>,string>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0073: stloc.0 @@ -4586,6 +5102,57 @@ IL_0077: ret } // end of method QueryExpressions::MultipleLet + .method public hidebysig instance object + HibernateApplyGeneratorQuery() cil managed + { + // Code size 116 (0x74) + .maxstack 3 + .locals init (object V_0) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers + IL_0007: callvirt instance class [mscorlib]System.Type [mscorlib]System.Object::GetType() + IL_000c: callvirt instance class [mscorlib]System.Reflection.PropertyInfo[] [mscorlib]System.Type::GetProperties() + IL_0011: ldsfld class [mscorlib]System.Func`2f__AnonymousType10`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_0' + IL_0016: dup + IL_0017: brtrue.s IL_0030 + + IL_0019: pop + IL_001a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' + IL_001f: ldftn instance class '<>f__AnonymousType10`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_0'(class [mscorlib]System.Reflection.PropertyInfo) + IL_0025: newobj instance void class [mscorlib]System.Func`2f__AnonymousType10`2'>::.ctor(object, + native int) + IL_002a: dup + IL_002b: stsfld class [mscorlib]System.Func`2f__AnonymousType10`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_0' + IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType10`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_0035: ldarg.0 + IL_0036: ldftn instance class '<>f__AnonymousType11`2'f__AnonymousType10`2',object> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::'b__13_1'(class '<>f__AnonymousType10`2') + IL_003c: newobj instance void class [mscorlib]System.Func`2f__AnonymousType10`2',class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>>::.ctor(object, + native int) + IL_0041: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType10`2',class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_0046: ldsfld class [mscorlib]System.Func`2f__AnonymousType11`2'f__AnonymousType10`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_2' + IL_004b: dup + IL_004c: brtrue.s IL_0065 + + IL_004e: pop + IL_004f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' + IL_0054: ldftn instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_2'(class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>) + IL_005a: newobj instance void class [mscorlib]System.Func`2f__AnonymousType11`2'f__AnonymousType10`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam>::.ctor(object, + native int) + IL_005f: dup + IL_0060: stsfld class [mscorlib]System.Func`2f__AnonymousType11`2'f__AnonymousType10`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_2' + IL_0065: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType11`2'f__AnonymousType10`2',object>,class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/HbmParam>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + class [mscorlib]System.Func`2) + IL_006a: call !!0[] [System.Core]System.Linq.Enumerable::ToArray(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_006f: stloc.0 + IL_0070: br.s IL_0072 + + IL_0072: ldloc.0 + IL_0073: ret + } // end of method QueryExpressions::HibernateApplyGeneratorQuery + .method public hidebysig instance object Join() cil managed { @@ -4597,41 +5164,41 @@ IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0007: ldarg.0 IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_000d: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_0' + IL_000d: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_0' IL_0012: dup IL_0013: brtrue.s IL_002c IL_0015: pop IL_0016: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_001b: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_001b: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__14_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0021: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0026: dup - IL_0027: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_0' - IL_002c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_1' + IL_0027: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_0' + IL_002c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_1' IL_0031: dup IL_0032: brtrue.s IL_004b IL_0034: pop IL_0035: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_003a: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_003a: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__14_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0040: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0045: dup - IL_0046: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_1' - IL_004b: ldsfld class [mscorlib]System.Func`3f__AnonymousType10`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_2' + IL_0046: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_1' + IL_004b: ldsfld class [mscorlib]System.Func`3f__AnonymousType12`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_2' IL_0050: dup IL_0051: brtrue.s IL_006a IL_0053: pop IL_0054: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0059: ldftn instance class '<>f__AnonymousType10`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__12_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0059: ldftn instance class '<>f__AnonymousType12`3' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__14_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) - IL_005f: newobj instance void class [mscorlib]System.Func`3f__AnonymousType10`3'>::.ctor(object, + IL_005f: newobj instance void class [mscorlib]System.Func`3f__AnonymousType12`3'>::.ctor(object, native int) IL_0064: dup - IL_0065: stsfld class [mscorlib]System.Func`3f__AnonymousType10`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__12_2' - IL_006a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Joinf__AnonymousType10`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0065: stsfld class [mscorlib]System.Func`3f__AnonymousType12`3'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_2' + IL_006a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Joinf__AnonymousType12`3'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2, @@ -4654,83 +5221,83 @@ IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0007: ldarg.0 IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_000d: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_0' + IL_000d: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_0' IL_0012: dup IL_0013: brtrue.s IL_002c IL_0015: pop IL_0016: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_001b: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_001b: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0021: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0026: dup - IL_0027: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_0' - IL_002c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_1' + IL_0027: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_0' + IL_002c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_1' IL_0031: dup IL_0032: brtrue.s IL_004b IL_0034: pop IL_0035: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_003a: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_003a: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_0040: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0045: dup - IL_0046: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_1' - IL_004b: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousType11`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_2' + IL_0046: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_1' + IL_004b: ldsfld class [mscorlib]System.Func`3,class '<>f__AnonymousType13`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_2' IL_0050: dup IL_0051: brtrue.s IL_006a IL_0053: pop IL_0054: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0059: ldftn instance class '<>f__AnonymousType11`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, + IL_0059: ldftn instance class '<>f__AnonymousType13`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_2'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_005f: newobj instance void class [mscorlib]System.Func`3,class '<>f__AnonymousType11`2'>>::.ctor(object, + IL_005f: newobj instance void class [mscorlib]System.Func`3,class '<>f__AnonymousType13`2'>>::.ctor(object, native int) IL_0064: dup - IL_0065: stsfld class [mscorlib]System.Func`3,class '<>f__AnonymousType11`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_2' - IL_006a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::GroupJoinf__AnonymousType11`2'>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0065: stsfld class [mscorlib]System.Func`3,class '<>f__AnonymousType13`2'>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_2' + IL_006a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::GroupJoinf__AnonymousType13`2'>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2, class [mscorlib]System.Func`3,!!3>) - IL_006f: ldsfld class [mscorlib]System.Func`2f__AnonymousType11`2'>,class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_3' + IL_006f: ldsfld class [mscorlib]System.Func`2f__AnonymousType13`2'>,class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_3' IL_0074: dup IL_0075: brtrue.s IL_008e IL_0077: pop IL_0078: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_007d: ldftn instance class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_3'(class '<>f__AnonymousType11`2'>) - IL_0083: newobj instance void class [mscorlib]System.Func`2f__AnonymousType11`2'>,class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>>::.ctor(object, + IL_007d: ldftn instance class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_3'(class '<>f__AnonymousType13`2'>) + IL_0083: newobj instance void class [mscorlib]System.Func`2f__AnonymousType13`2'>,class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>>::.ctor(object, native int) IL_0088: dup - IL_0089: stsfld class [mscorlib]System.Func`2f__AnonymousType11`2'>,class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_3' - IL_008e: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType11`2'>,class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0089: stsfld class [mscorlib]System.Func`2f__AnonymousType13`2'>,class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_3' + IL_008e: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType13`2'>,class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_0093: ldsfld class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_4' + IL_0093: ldsfld class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_4' IL_0098: dup IL_0099: brtrue.s IL_00b2 IL_009b: pop IL_009c: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_00a1: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_4'(class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>) - IL_00a7: newobj instance void class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,bool>::.ctor(object, + IL_00a1: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_4'(class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>) + IL_00a7: newobj instance void class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,bool>::.ctor(object, native int) IL_00ac: dup - IL_00ad: stsfld class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_4' - IL_00b2: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Wheref__AnonymousType12`2'f__AnonymousType11`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_00ad: stsfld class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_4' + IL_00b2: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Wheref__AnonymousType14`2'f__AnonymousType13`2'>,int32>>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_00b7: ldsfld class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,class '<>f__AnonymousType13`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_5' + IL_00b7: ldsfld class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,class '<>f__AnonymousType15`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_5' IL_00bc: dup IL_00bd: brtrue.s IL_00d6 IL_00bf: pop IL_00c0: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_00c5: ldftn instance class '<>f__AnonymousType13`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__13_5'(class '<>f__AnonymousType12`2'f__AnonymousType11`2'>,int32>) - IL_00cb: newobj instance void class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,class '<>f__AnonymousType13`2'>::.ctor(object, + IL_00c5: ldftn instance class '<>f__AnonymousType15`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_5'(class '<>f__AnonymousType14`2'f__AnonymousType13`2'>,int32>) + IL_00cb: newobj instance void class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,class '<>f__AnonymousType15`2'>::.ctor(object, native int) IL_00d0: dup - IL_00d1: stsfld class [mscorlib]System.Func`2f__AnonymousType12`2'f__AnonymousType11`2'>,int32>,class '<>f__AnonymousType13`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__13_5' - IL_00d6: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType12`2'f__AnonymousType11`2'>,int32>,class '<>f__AnonymousType13`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_00d1: stsfld class [mscorlib]System.Func`2f__AnonymousType14`2'f__AnonymousType13`2'>,int32>,class '<>f__AnonymousType15`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_5' + IL_00d6: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Selectf__AnonymousType14`2'f__AnonymousType13`2'>,int32>,class '<>f__AnonymousType15`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_00db: stloc.0 IL_00dc: br.s IL_00de @@ -4748,30 +5315,30 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::orders - IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_0' + IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__14_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0015: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__16_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_0' + IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_0' IL_0026: call class [System.Core]System.Linq.IOrderedEnumerable`1 [System.Core]System.Linq.Enumerable::OrderBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_1' + IL_002b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_1' IL_0030: dup IL_0031: brtrue.s IL_004a IL_0033: pop IL_0034: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0039: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__14_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) + IL_0039: ldftn instance valuetype [mscorlib]System.Decimal ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__16_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Order) IL_003f: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0044: dup - IL_0045: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__14_1' + IL_0045: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_1' IL_004a: call class [System.Core]System.Linq.IOrderedEnumerable`1 [System.Core]System.Linq.Enumerable::ThenByDescending(class [System.Core]System.Linq.IOrderedEnumerable`1, class [mscorlib]System.Func`2) IL_004f: stloc.0 @@ -4790,28 +5357,28 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_0' + IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0015: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__17_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_0' - IL_0026: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_1' + IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_0' + IL_0026: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_1' IL_002b: dup IL_002c: brtrue.s IL_0045 IL_002e: pop IL_002f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0034: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__15_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0034: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__17_1'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_003a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_003f: dup - IL_0040: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__15_1' + IL_0040: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_1' IL_0045: call class [mscorlib]System.Collections.Generic.IEnumerable`1> [System.Core]System.Linq.Enumerable::GroupBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2, class [mscorlib]System.Func`2) @@ -4832,17 +5399,17 @@ IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers IL_0007: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Cast(class [mscorlib]System.Collections.IEnumerable) - IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_0' + IL_000c: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_0' IL_0011: dup IL_0012: brtrue.s IL_002b IL_0014: pop IL_0015: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_001a: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__16_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_001a: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__18_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_0020: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0025: dup - IL_0026: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__16_0' + IL_0026: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_0' IL_002b: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0030: stloc.0 @@ -4861,31 +5428,31 @@ IL_0000: nop IL_0001: ldarg.0 IL_0002: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers - IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_0' + IL_0007: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__19_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0015: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__17_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) + IL_0015: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__19_0'(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/Customer) IL_001b: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_0' + IL_0021: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__19_0' IL_0026: call class [mscorlib]System.Collections.Generic.IEnumerable`1> [System.Core]System.Linq.Enumerable::GroupBy(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_002b: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType14`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_1' + IL_002b: ldsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType16`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__19_1' IL_0030: dup IL_0031: brtrue.s IL_004a IL_0033: pop IL_0034: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0039: ldftn instance class '<>f__AnonymousType14`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__17_1'(class [System.Core]System.Linq.IGrouping`2) - IL_003f: newobj instance void class [mscorlib]System.Func`2,class '<>f__AnonymousType14`2'>::.ctor(object, + IL_0039: ldftn instance class '<>f__AnonymousType16`2' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__19_1'(class [System.Core]System.Linq.IGrouping`2) + IL_003f: newobj instance void class [mscorlib]System.Func`2,class '<>f__AnonymousType16`2'>::.ctor(object, native int) IL_0044: dup - IL_0045: stsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType14`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__17_1' - IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select,class '<>f__AnonymousType14`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, + IL_0045: stsfld class [mscorlib]System.Func`2,class '<>f__AnonymousType16`2'> ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__19_1' + IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select,class '<>f__AnonymousType16`2'>(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_004f: stloc.0 IL_0050: br.s IL_0052 @@ -4902,30 +5469,30 @@ .locals init (object V_0) IL_0000: nop IL_0001: ldarg.1 - IL_0002: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_0' + IL_0002: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__20_0' IL_0007: dup IL_0008: brtrue.s IL_0021 IL_000a: pop IL_000b: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0010: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__18_0'(bool) + IL_0010: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__20_0'(bool) IL_0016: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_001b: dup - IL_001c: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_0' + IL_001c: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__20_0' IL_0021: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) - IL_0026: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_1' + IL_0026: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__20_1' IL_002b: dup IL_002c: brtrue.s IL_0045 IL_002e: pop IL_002f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9' - IL_0034: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__18_1'(bool) + IL_0034: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'b__20_1'(bool) IL_003a: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_003f: dup - IL_0040: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__18_1' + IL_0040: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c'::'<>9__20_1' IL_0045: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Select(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_004a: stloc.0 @@ -4943,44 +5510,44 @@ .locals init (valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 V_0) IL_0000: nop IL_0001: ldarg.0 - IL_0002: ldsfld class [mscorlib]System.Func`2f__AnonymousType15`2'> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_0' + IL_0002: ldsfld class [mscorlib]System.Func`2f__AnonymousType17`2'> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_0' IL_0007: dup IL_0008: brtrue.s IL_0021 IL_000a: pop - IL_000b: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9' - IL_0010: ldftn instance class '<>f__AnonymousType15`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'b__19_0'(!0) - IL_0016: newobj instance void class [mscorlib]System.Func`2f__AnonymousType15`2'>::.ctor(object, + IL_000b: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9' + IL_0010: ldftn instance class '<>f__AnonymousType17`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'b__21_0'(!0) + IL_0016: newobj instance void class [mscorlib]System.Func`2f__AnonymousType17`2'>::.ctor(object, native int) IL_001b: dup - IL_001c: stsfld class [mscorlib]System.Func`2f__AnonymousType15`2'> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_0' - IL_0021: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType15`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + IL_001c: stsfld class [mscorlib]System.Func`2f__AnonymousType17`2'> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_0' + IL_0021: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType17`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, class [mscorlib]System.Func`2) - IL_0026: ldsfld class [mscorlib]System.Func`2f__AnonymousType15`2',bool> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_1' + IL_0026: ldsfld class [mscorlib]System.Func`2f__AnonymousType17`2',bool> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_1' IL_002b: dup IL_002c: brtrue.s IL_0045 IL_002e: pop - IL_002f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9' - IL_0034: ldftn instance bool class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'b__19_1'(class '<>f__AnonymousType15`2') - IL_003a: newobj instance void class [mscorlib]System.Func`2f__AnonymousType15`2',bool>::.ctor(object, + IL_002f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9' + IL_0034: ldftn instance bool class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'b__21_1'(class '<>f__AnonymousType17`2') + IL_003a: newobj instance void class [mscorlib]System.Func`2f__AnonymousType17`2',bool>::.ctor(object, native int) IL_003f: dup - IL_0040: stsfld class [mscorlib]System.Func`2f__AnonymousType15`2',bool> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_1' - IL_0045: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Wheref__AnonymousType15`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + IL_0040: stsfld class [mscorlib]System.Func`2f__AnonymousType17`2',bool> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_1' + IL_0045: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Wheref__AnonymousType17`2'>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, class [mscorlib]System.Func`2) - IL_004a: ldsfld class [mscorlib]System.Func`2f__AnonymousType15`2',!1> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_2' + IL_004a: ldsfld class [mscorlib]System.Func`2f__AnonymousType17`2',!1> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_2' IL_004f: dup IL_0050: brtrue.s IL_0069 IL_0052: pop - IL_0053: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9' - IL_0058: ldftn instance !1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'b__19_2'(class '<>f__AnonymousType15`2') - IL_005e: newobj instance void class [mscorlib]System.Func`2f__AnonymousType15`2',!!TB>::.ctor(object, + IL_0053: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2' class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9' + IL_0058: ldftn instance !1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'b__21_2'(class '<>f__AnonymousType17`2') + IL_005e: newobj instance void class [mscorlib]System.Func`2f__AnonymousType17`2',!!TB>::.ctor(object, native int) IL_0063: dup - IL_0064: stsfld class [mscorlib]System.Func`2f__AnonymousType15`2',!1> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__19`2'::'<>9__19_2' - IL_0069: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType15`2',!!1>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, + IL_0064: stsfld class [mscorlib]System.Func`2f__AnonymousType17`2',!1> class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions/'<>c__21`2'::'<>9__21_2' + IL_0069: call valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.MaybeExtensions::Selectf__AnonymousType17`2',!!1>(valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1, class [mscorlib]System.Func`2) IL_006e: stloc.0 IL_006f: br.s IL_0071 @@ -5000,6 +5567,25 @@ IL_0007: ret } // end of method QueryExpressions::.ctor + .method private hidebysig instance class '<>f__AnonymousType11`2'f__AnonymousType10`2',object> + 'b__13_1'(class '<>f__AnonymousType10`2' '<>h__TransparentIdentifier0') cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ldarg.1 + IL_0002: callvirt instance !0 class '<>f__AnonymousType10`2'::get_pi() + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions::customers + IL_000d: ldnull + IL_000e: callvirt instance object [mscorlib]System.Reflection.PropertyInfo::GetValue(object, + object[]) + IL_0013: newobj instance void class '<>f__AnonymousType11`2'f__AnonymousType10`2',object>::.ctor(!0, + !1) + IL_0018: ret + } // end of method QueryExpressions::'b__13_1' + } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.QueryExpressions .class public sequential ansi sealed beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.Maybe`1 diff --git a/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemLoaderTests.cs b/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemLoaderTests.cs new file mode 100644 index 000000000..59ec45de0 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemLoaderTests.cs @@ -0,0 +1,1784 @@ +// Copyright (c) 2010-2018 AlphaSierraPapa for the SharpDevelop Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of this +// software and associated documentation files (the "Software"), to deal in the Software +// without restriction, including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all copies or +// substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using ICSharpCode.Decompiler.Semantics; +using ICSharpCode.Decompiler.TypeSystem; +using ICSharpCode.Decompiler.TypeSystem.Implementation; +using NUnit.Framework; + +namespace ICSharpCode.Decompiler.Tests.TypeSystem +{ + public class TypeSystemLoaderTests + { + static readonly Lazy mscorlib = new Lazy( + delegate { + return new CecilLoader().LoadAssemblyFile(typeof(object).Assembly.Location); + }); + + static readonly Lazy systemCore = new Lazy( + delegate { + return new CecilLoader().LoadAssemblyFile(typeof(System.Linq.Enumerable).Assembly.Location); + }); + + public static IUnresolvedAssembly Mscorlib { get { return mscorlib.Value; } } + public static IUnresolvedAssembly SystemCore { get { return systemCore.Value; } } + + [OneTimeSetUp] + public void FixtureSetUp() + { + // use "IncludeInternalMembers" so that Cecil results match C# parser results + CecilLoader loader = new CecilLoader() { IncludeInternalMembers = true }; + IUnresolvedAssembly asm = loader.LoadAssemblyFile(typeof(SimplePublicClass).Assembly.Location); + compilation = new SimpleCompilation(asm, Mscorlib); + } + + protected ICompilation compilation; + + protected ITypeDefinition GetTypeDefinition(Type type) + { + return compilation.FindType(type).GetDefinition(); + } + + [Test] + public void SimplePublicClassTest() + { + ITypeDefinition c = GetTypeDefinition(typeof(SimplePublicClass)); + Assert.AreEqual(typeof(SimplePublicClass).Name, c.Name); + Assert.AreEqual(typeof(SimplePublicClass).FullName, c.FullName); + Assert.AreEqual(typeof(SimplePublicClass).Namespace, c.Namespace); + Assert.AreEqual(typeof(SimplePublicClass).FullName, c.ReflectionName); + + Assert.AreEqual(Accessibility.Public, c.Accessibility); + Assert.IsFalse(c.IsAbstract); + Assert.IsFalse(c.IsSealed); + Assert.IsFalse(c.IsStatic); + Assert.IsFalse(c.IsShadowing); + } + + [Test] + public void SimplePublicClassMethodTest() + { + ITypeDefinition c = GetTypeDefinition(typeof(SimplePublicClass)); + + IMethod method = c.Methods.Single(m => m.Name == "Method"); + Assert.AreEqual(typeof(SimplePublicClass).FullName + ".Method", method.FullName); + Assert.AreSame(c, method.DeclaringType); + Assert.AreEqual(Accessibility.Public, method.Accessibility); + Assert.AreEqual(SymbolKind.Method, method.SymbolKind); + Assert.IsFalse(method.IsVirtual); + Assert.IsFalse(method.IsStatic); + Assert.AreEqual(0, method.Parameters.Count); + Assert.AreEqual(0, method.Attributes.Count); + Assert.IsTrue(method.HasBody); + Assert.IsNull(method.AccessorOwner); + } + + [Test] + public void DynamicType() + { + ITypeDefinition testClass = GetTypeDefinition(typeof(DynamicTest)); + Assert.AreEqual(SpecialType.Dynamic, testClass.Properties.Single().ReturnType); + Assert.AreEqual(0, testClass.Properties.Single().Attributes.Count); + } +#if !__MonoCS__ + + [Test] + public void DynamicTypeInGenerics() + { + ITypeDefinition testClass = GetTypeDefinition(typeof(DynamicTest)); + + IMethod m1 = testClass.Methods.Single(me => me.Name == "DynamicGenerics1"); + Assert.AreEqual("System.Collections.Generic.List`1[[dynamic]]", m1.ReturnType.ReflectionName); + Assert.AreEqual("System.Action`3[[System.Object],[dynamic[]],[System.Object]]", m1.Parameters[0].Type.ReflectionName); + + IMethod m2 = testClass.Methods.Single(me => me.Name == "DynamicGenerics2"); + Assert.AreEqual("System.Action`3[[System.Object],[dynamic],[System.Object]]", m2.Parameters[0].Type.ReflectionName); + + IMethod m3 = testClass.Methods.Single(me => me.Name == "DynamicGenerics3"); + Assert.AreEqual("System.Action`3[[System.Int32],[dynamic],[System.Object]]", m3.Parameters[0].Type.ReflectionName); + + IMethod m4 = testClass.Methods.Single(me => me.Name == "DynamicGenerics4"); + Assert.AreEqual("System.Action`3[[System.Int32[]],[dynamic],[System.Object]]", m4.Parameters[0].Type.ReflectionName); + + IMethod m5 = testClass.Methods.Single(me => me.Name == "DynamicGenerics5"); + Assert.AreEqual("System.Action`3[[System.Int32*[]],[dynamic],[System.Object]]", m5.Parameters[0].Type.ReflectionName); + + IMethod m6 = testClass.Methods.Single(me => me.Name == "DynamicGenerics6"); + Assert.AreEqual("System.Action`3[[System.Object],[dynamic],[System.Object]]&", m6.Parameters[0].Type.ReflectionName); + + IMethod m7 = testClass.Methods.Single(me => me.Name == "DynamicGenerics7"); + Assert.AreEqual("System.Action`3[[System.Int32[][,]],[dynamic],[System.Object]]", m7.Parameters[0].Type.ReflectionName); + } +#endif + + [Test] + public void DynamicParameterHasNoAttributes() + { + ITypeDefinition testClass = GetTypeDefinition(typeof(DynamicTest)); + IMethod m1 = testClass.Methods.Single(me => me.Name == "DynamicGenerics1"); + Assert.AreEqual(0, m1.Parameters[0].Attributes.Count); + } + + [Test] + public void AssemblyAttribute() + { + var attributes = compilation.MainAssembly.AssemblyAttributes; + var typeTest = attributes.Single(a => a.AttributeType.FullName == typeof(TypeTestAttribute).FullName); + Assert.AreEqual(3, typeTest.PositionalArguments.Count); + // first argument is (int)42 + Assert.AreEqual(42, (int)typeTest.PositionalArguments[0].ConstantValue); + // second argument is typeof(System.Action<>) + TypeOfResolveResult rt = (TypeOfResolveResult)typeTest.PositionalArguments[1]; + Assert.IsFalse(rt.ReferencedType is ParameterizedType); // rt must not be constructed - it's just an unbound type + Assert.AreEqual("System.Action", rt.ReferencedType.FullName); + Assert.AreEqual(1, rt.ReferencedType.TypeParameterCount); + // third argument is typeof(IDictionary>) + rt = (TypeOfResolveResult)typeTest.PositionalArguments[2]; + ParameterizedType crt = (ParameterizedType)rt.ReferencedType; + Assert.AreEqual("System.Collections.Generic.IDictionary", crt.FullName); + Assert.AreEqual("System.String", crt.TypeArguments[0].FullName); + // we know the name for TestAttribute, but not necessarily the namespace, as NUnit is not in the compilation + Assert.AreEqual("System.Collections.Generic.IList", crt.TypeArguments[1].FullName); + var testAttributeType = ((ParameterizedType)crt.TypeArguments[1]).TypeArguments.Single(); + Assert.AreEqual("TestAttribute", testAttributeType.Name); + Assert.AreEqual(TypeKind.Unknown, testAttributeType.Kind); + // (more accurately, we know the namespace and reflection name if the type was loaded by cecil, + // but not if we parsed it from C#) + } + + [Test] + public void TypeForwardedTo_Attribute() + { + var attributes = compilation.MainAssembly.AssemblyAttributes; + var forwardAttribute = attributes.Single(a => a.AttributeType.FullName == typeof(TypeForwardedToAttribute).FullName); + Assert.AreEqual(1, forwardAttribute.PositionalArguments.Count); + TypeOfResolveResult rt = (TypeOfResolveResult)forwardAttribute.PositionalArguments[0]; + Assert.AreEqual("System.Func`2", rt.ReferencedType.ReflectionName); + } + + [Test] + public void TestClassTypeParameters() + { + var testClass = GetTypeDefinition(typeof(GenericClass<,>)); + Assert.AreEqual(SymbolKind.TypeDefinition, testClass.TypeParameters[0].OwnerType); + Assert.AreEqual(SymbolKind.TypeDefinition, testClass.TypeParameters[1].OwnerType); + Assert.AreSame(testClass.TypeParameters[1], testClass.TypeParameters[0].DirectBaseTypes.First()); + } + + [Test] + public void TestMethod() + { + var testClass = GetTypeDefinition(typeof(GenericClass<,>)); + + IMethod m = testClass.Methods.Single(me => me.Name == "TestMethod"); + Assert.AreEqual("K", m.TypeParameters[0].Name); + Assert.AreEqual("V", m.TypeParameters[1].Name); + Assert.AreEqual(SymbolKind.Method, m.TypeParameters[0].OwnerType); + Assert.AreEqual(SymbolKind.Method, m.TypeParameters[1].OwnerType); + + Assert.AreEqual("System.IComparable`1[[``1]]", m.TypeParameters[0].DirectBaseTypes.First().ReflectionName); + Assert.AreSame(m.TypeParameters[0], m.TypeParameters[1].DirectBaseTypes.First()); + } + + [Test] + public void GetIndex() + { + var testClass = GetTypeDefinition(typeof(GenericClass<,>)); + + IMethod m = testClass.Methods.Single(me => me.Name == "GetIndex"); + Assert.AreEqual("T", m.TypeParameters[0].Name); + Assert.AreEqual(SymbolKind.Method, m.TypeParameters[0].OwnerType); + Assert.AreSame(m, m.TypeParameters[0].Owner); + + ParameterizedType constraint = (ParameterizedType)m.TypeParameters[0].DirectBaseTypes.First(); + Assert.AreEqual("IEquatable", constraint.Name); + Assert.AreEqual(1, constraint.TypeParameterCount); + Assert.AreEqual(1, constraint.TypeArguments.Count); + Assert.AreSame(m.TypeParameters[0], constraint.TypeArguments[0]); + Assert.AreSame(m.TypeParameters[0], m.Parameters[0].Type); + } + + [Test] + public void GetIndexSpecializedTypeParameter() + { + var testClass = GetTypeDefinition(typeof(GenericClass<,>)); + var methodDef = testClass.Methods.Single(me => me.Name == "GetIndex"); + var m = methodDef.Specialize(new TypeParameterSubstitution( + new[] { compilation.FindType(KnownTypeCode.Int16), compilation.FindType(KnownTypeCode.Int32) }, + null + )); + + Assert.AreEqual("T", m.TypeParameters[0].Name); + Assert.AreEqual(SymbolKind.Method, m.TypeParameters[0].OwnerType); + Assert.AreSame(m, m.TypeParameters[0].Owner); + + ParameterizedType constraint = (ParameterizedType)m.TypeParameters[0].DirectBaseTypes.First(); + Assert.AreEqual("IEquatable", constraint.Name); + Assert.AreEqual(1, constraint.TypeParameterCount); + Assert.AreEqual(1, constraint.TypeArguments.Count); + Assert.AreSame(m.TypeParameters[0], constraint.TypeArguments[0]); + Assert.AreSame(m.TypeParameters[0], m.Parameters[0].Type); + } + + [Test] + public void GetIndexDoubleSpecialization() + { + var testClass = GetTypeDefinition(typeof(GenericClass<,>)); + // GenericClass.GetIndex + var methodDef = testClass.Methods.Single(me => me.Name == "GetIndex"); + + // GenericClass.GetIndex + var m1 = methodDef.Specialize(new TypeParameterSubstitution( + new[] { testClass.TypeParameters[1], testClass.TypeParameters[0] }, + new[] { testClass.TypeParameters[0] } + )); + // GenericClass.GetIndex + var m2 = m1.Specialize(new TypeParameterSubstitution( + new[] { compilation.FindType(KnownTypeCode.Int32), compilation.FindType(KnownTypeCode.String) }, + null + )); + + // GenericClass.GetIndex + var m12 = methodDef.Specialize(new TypeParameterSubstitution( + new[] { compilation.FindType(KnownTypeCode.String), compilation.FindType(KnownTypeCode.Int32) }, + new[] { compilation.FindType(KnownTypeCode.Int32) } + )); + Assert.AreEqual(m12, m2); + } + + [Test] + public void SpecializedMethod_AccessorOwner() + { + // NRefactory bug #143 - Accessor Owner throws null reference exception in some cases now + var method = compilation.FindType(typeof(GenericClass)).GetMethods(m => m.Name == "GetIndex").Single(); + Assert.IsNull(method.AccessorOwner); + } + + [Test] + public void Specialized_GetIndex_ToMemberReference() + { + var method = compilation.FindType(typeof(GenericClass)).GetMethods(m => m.Name == "GetIndex").Single(); + Assert.AreSame(method.TypeParameters[0], method.Parameters[0].Type); + Assert.AreSame(method, method.TypeParameters[0].Owner); + Assert.IsInstanceOf(method); + //Assert.IsFalse(method.IsParameterized); // the method itself is not specialized + Assert.AreEqual(method.TypeParameters, method.TypeArguments); + } + + [Test] + public void Specialized_GetIndex_SpecializeWithIdentityHasNoEffect() + { + var genericClass = compilation.FindType(typeof(GenericClass)); + IType[] methodTypeArguments = { DummyTypeParameter.GetMethodTypeParameter(0) }; + var method = genericClass.GetMethods(methodTypeArguments, m => m.Name == "GetIndex").Single(); + // GenericClass.GetIndex() + Assert.AreSame(method, method.TypeParameters[0].Owner); + Assert.AreNotEqual(method.TypeParameters[0], method.TypeArguments[0]); + Assert.IsNull(((ITypeParameter)method.TypeArguments[0]).Owner); + // Now apply identity substitution: + var method2 = method.Specialize(TypeParameterSubstitution.Identity); + Assert.AreSame(method2, method2.TypeParameters[0].Owner); + Assert.AreNotEqual(method2.TypeParameters[0], method2.TypeArguments[0]); + Assert.IsNull(((ITypeParameter)method2.TypeArguments[0]).Owner); + + Assert.AreEqual(method, method2); + } + + [Test] + public void GenericEnum() + { + var testClass = GetTypeDefinition(typeof(GenericClass<,>.NestedEnum)); + Assert.AreEqual(2, testClass.TypeParameterCount); + } + + [Test] + public void FieldInGenericClassWithNestedEnumType() + { + var testClass = GetTypeDefinition(typeof(GenericClass<,>)); + var enumClass = GetTypeDefinition(typeof(GenericClass<,>.NestedEnum)); + var field = testClass.Fields.Single(f => f.Name == "EnumField"); + Assert.AreEqual(new ParameterizedType(enumClass, testClass.TypeParameters), field.ReturnType); + } + + [Test] + public void GenericEnumMemberReturnType() + { + var enumClass = GetTypeDefinition(typeof(GenericClass<,>.NestedEnum)); + var field = enumClass.Fields.Single(f => f.Name == "EnumMember"); + Assert.AreEqual(new ParameterizedType(enumClass, enumClass.TypeParameters), field.ReturnType); + } + + [Test] + public void PropertyWithProtectedSetter() + { + var testClass = GetTypeDefinition(typeof(PropertyTest)); + IProperty p = testClass.Properties.Single(pr => pr.Name == "PropertyWithProtectedSetter"); + Assert.IsTrue(p.CanGet); + Assert.IsTrue(p.CanSet); + Assert.AreEqual(Accessibility.Public, p.Accessibility); + Assert.AreEqual(Accessibility.Public, p.Getter.Accessibility); + Assert.AreEqual(Accessibility.Protected, p.Setter.Accessibility); + } + + [Test] + public void PropertyWithPrivateSetter() + { + var testClass = GetTypeDefinition(typeof(PropertyTest)); + IProperty p = testClass.Properties.Single(pr => pr.Name == "PropertyWithPrivateSetter"); + Assert.IsTrue(p.CanGet); + Assert.IsTrue(p.CanSet); + Assert.AreEqual(Accessibility.Public, p.Accessibility); + Assert.AreEqual(Accessibility.Public, p.Getter.Accessibility); + Assert.AreEqual(Accessibility.Private, p.Setter.Accessibility); + Assert.IsTrue(p.Getter.HasBody); + } + + [Test] + public void PropertyWithPrivateGetter() + { + var testClass = GetTypeDefinition(typeof(PropertyTest)); + IProperty p = testClass.Properties.Single(pr => pr.Name == "PropertyWithPrivateGetter"); + Assert.IsTrue(p.CanGet); + Assert.IsTrue(p.CanSet); + Assert.AreEqual(Accessibility.Public, p.Accessibility); + Assert.AreEqual(Accessibility.Private, p.Getter.Accessibility); + Assert.AreEqual(Accessibility.Public, p.Setter.Accessibility); + Assert.IsTrue(p.Getter.HasBody); + } + + [Test] + public void PropertyWithoutSetter() + { + var testClass = GetTypeDefinition(typeof(PropertyTest)); + IProperty p = testClass.Properties.Single(pr => pr.Name == "PropertyWithoutSetter"); + Assert.IsTrue(p.CanGet); + Assert.IsFalse(p.CanSet); + Assert.AreEqual(Accessibility.Public, p.Accessibility); + Assert.AreEqual(Accessibility.Public, p.Getter.Accessibility); + Assert.IsNull(p.Setter); + } + + [Test] + public void Indexer() + { + var testClass = GetTypeDefinition(typeof(PropertyTest)); + IProperty p = testClass.Properties.Single(pr => pr.IsIndexer); + Assert.AreEqual("Item", p.Name); + Assert.AreEqual(new[] { "index" }, p.Parameters.Select(x => x.Name).ToArray()); + } + + [Test] + public void IndexerGetter() + { + var testClass = GetTypeDefinition(typeof(PropertyTest)); + IProperty p = testClass.Properties.Single(pr => pr.IsIndexer); + Assert.IsTrue(p.CanGet); + Assert.AreEqual(SymbolKind.Accessor, p.Getter.SymbolKind); + Assert.AreEqual("get_Item", p.Getter.Name); + Assert.AreEqual(Accessibility.Public, p.Getter.Accessibility); + Assert.AreEqual(new[] { "index" }, p.Getter.Parameters.Select(x => x.Name).ToArray()); + Assert.AreEqual("System.String", p.Getter.ReturnType.ReflectionName); + Assert.AreEqual(p, p.Getter.AccessorOwner); + } + + [Test] + public void IndexerSetter() + { + var testClass = GetTypeDefinition(typeof(PropertyTest)); + IProperty p = testClass.Properties.Single(pr => pr.IsIndexer); + Assert.IsTrue(p.CanSet); + Assert.AreEqual(SymbolKind.Accessor, p.Setter.SymbolKind); + Assert.AreEqual("set_Item", p.Setter.Name); + Assert.AreEqual(Accessibility.Public, p.Setter.Accessibility); + Assert.AreEqual(new[] { "index", "value" }, p.Setter.Parameters.Select(x => x.Name).ToArray()); + Assert.AreEqual(TypeKind.Void, p.Setter.ReturnType.Kind); + } + + [Test] + public void GenericPropertyGetter() + { + var type = compilation.FindType(typeof(GenericClass)); + var prop = type.GetProperties(p => p.Name == "Property").Single(); + Assert.AreEqual("System.String", prop.Getter.ReturnType.ReflectionName); + Assert.IsTrue(prop.Getter.IsAccessor); + Assert.AreEqual(prop, prop.Getter.AccessorOwner); + } + + [Test] + public void EnumTest() + { + var e = GetTypeDefinition(typeof(MyEnum)); + Assert.AreEqual(TypeKind.Enum, e.Kind); + Assert.AreEqual(false, e.IsReferenceType); + Assert.AreEqual("System.Int16", e.EnumUnderlyingType.ReflectionName); + Assert.AreEqual(new[] { "System.Enum" }, e.DirectBaseTypes.Select(t => t.ReflectionName).ToArray()); + } + + [Test] + public void EnumFieldsTest() + { + var e = GetTypeDefinition(typeof(MyEnum)); + IField[] fields = e.Fields.ToArray(); + Assert.AreEqual(5, fields.Length); + + foreach (IField f in fields) { + Assert.IsTrue(f.IsStatic); + Assert.IsTrue(f.IsConst); + Assert.AreEqual(Accessibility.Public, f.Accessibility); + Assert.AreSame(e, f.Type); + Assert.AreEqual(typeof(short), f.ConstantValue.GetType()); + } + + Assert.AreEqual("First", fields[0].Name); + Assert.AreEqual(0, fields[0].ConstantValue); + + Assert.AreEqual("Second", fields[1].Name); + Assert.AreSame(e, fields[1].Type); + Assert.AreEqual(1, fields[1].ConstantValue); + + Assert.AreEqual("Flag1", fields[2].Name); + Assert.AreEqual(0x10, fields[2].ConstantValue); + + Assert.AreEqual("Flag2", fields[3].Name); + Assert.AreEqual(0x20, fields[3].ConstantValue); + + Assert.AreEqual("CombinedFlags", fields[4].Name); + Assert.AreEqual(0x30, fields[4].ConstantValue); + } + + [Test] + public void GetNestedTypesFromBaseClassTest() + { + ITypeDefinition d = GetTypeDefinition(typeof(Derived<,>)); + + IType pBase = d.DirectBaseTypes.Single(); + Assert.AreEqual(typeof(Base<>).FullName + "[[`1]]", pBase.ReflectionName); + // Base[`1].GetNestedTypes() = { Base`1+Nested`1[`1, unbound] } + Assert.AreEqual(new[] { typeof(Base<>.Nested<>).FullName + "[[`1],[]]" }, + pBase.GetNestedTypes().Select(n => n.ReflectionName).ToArray()); + + // Derived.GetNestedTypes() = { Base`1+Nested`1[`1, unbound] } + Assert.AreEqual(new[] { typeof(Base<>.Nested<>).FullName + "[[`1],[]]" }, + d.GetNestedTypes().Select(n => n.ReflectionName).ToArray()); + // This is 'leaking' the type parameter from B as is usual when retrieving any members from an unbound type. + } + + [Test] + public void ParameterizedTypeGetNestedTypesFromBaseClassTest() + { + // Derived[string,int].GetNestedTypes() = { Base`1+Nested`1[int, unbound] } + var d = compilation.FindType(typeof(Derived)); + Assert.AreEqual(new[] { typeof(Base<>.Nested<>).FullName + "[[System.Int32],[]]" }, + d.GetNestedTypes().Select(n => n.ReflectionName).ToArray()); + } + + [Test] + public void ConstraintsOnOverrideAreInherited() + { + ITypeDefinition d = GetTypeDefinition(typeof(Derived<,>)); + ITypeParameter tp = d.Methods.Single(m => m.Name == "GenericMethodWithConstraints").TypeParameters.Single(); + Assert.AreEqual("Y", tp.Name); + Assert.IsFalse(tp.HasValueTypeConstraint); + Assert.IsFalse(tp.HasReferenceTypeConstraint); + Assert.IsTrue(tp.HasDefaultConstructorConstraint); + Assert.AreEqual(new string[] { "System.Collections.Generic.IComparer`1[[`1]]", "System.Object" }, + tp.DirectBaseTypes.Select(t => t.ReflectionName).ToArray()); + } + + [Test] + public void DefaultConstructorAddedToStruct() + { + var ctors = compilation.FindType(typeof(MyStructWithCtor)).GetConstructors(); + Assert.AreEqual(2, ctors.Count()); + Assert.IsFalse(ctors.Any(c => c.IsStatic)); + Assert.IsTrue(ctors.All(c => c.ReturnType.Kind == TypeKind.Void)); + Assert.IsTrue(ctors.All(c => c.Accessibility == Accessibility.Public)); + } + + [Test] + public void NoDefaultConstructorAddedToClass() + { + var ctors = compilation.FindType(typeof(MyClassWithCtor)).GetConstructors(); + Assert.AreEqual(Accessibility.Private, ctors.Single().Accessibility); + Assert.AreEqual(1, ctors.Single().Parameters.Count); + } + + [Test] + public void DefaultConstructorOnAbstractClassIsProtected() + { + var ctors = compilation.FindType(typeof(AbstractClass)).GetConstructors(); + Assert.AreEqual(0, ctors.Single().Parameters.Count); + Assert.AreEqual(Accessibility.Protected, ctors.Single().Accessibility); + } + + [Test] + public void SerializableAttribute() + { + IAttribute attr = GetTypeDefinition(typeof(NonCustomAttributes)).Attributes.Single(); + Assert.AreEqual("System.SerializableAttribute", attr.AttributeType.FullName); + } + + [Test] + public void NonSerializedAttribute() + { + IField field = GetTypeDefinition(typeof(NonCustomAttributes)).Fields.Single(f => f.Name == "NonSerializedField"); + Assert.AreEqual("System.NonSerializedAttribute", field.Attributes.Single().AttributeType.FullName); + } + + [Test] + public void ExplicitStructLayoutAttribute() + { + IAttribute attr = GetTypeDefinition(typeof(ExplicitFieldLayoutStruct)).Attributes.Single(); + Assert.AreEqual("System.Runtime.InteropServices.StructLayoutAttribute", attr.AttributeType.FullName); + ResolveResult arg1 = attr.PositionalArguments.Single(); + Assert.AreEqual("System.Runtime.InteropServices.LayoutKind", arg1.Type.FullName); + Assert.AreEqual((int)LayoutKind.Explicit, arg1.ConstantValue); + + var arg2 = attr.NamedArguments[0]; + Assert.AreEqual("CharSet", arg2.Key.Name); + Assert.AreEqual("System.Runtime.InteropServices.CharSet", arg2.Value.Type.FullName); + Assert.AreEqual((int)CharSet.Unicode, arg2.Value.ConstantValue); + + var arg3 = attr.NamedArguments[1]; + Assert.AreEqual("Pack", arg3.Key.Name); + Assert.AreEqual("System.Int32", arg3.Value.Type.FullName); + Assert.AreEqual(8, arg3.Value.ConstantValue); + } + + [Test] + public void FieldOffsetAttribute() + { + IField field = GetTypeDefinition(typeof(ExplicitFieldLayoutStruct)).Fields.Single(f => f.Name == "Field0"); + Assert.AreEqual("System.Runtime.InteropServices.FieldOffsetAttribute", field.Attributes.Single().AttributeType.FullName); + ResolveResult arg = field.Attributes.Single().PositionalArguments.Single(); + Assert.AreEqual("System.Int32", arg.Type.FullName); + Assert.AreEqual(0, arg.ConstantValue); + + field = GetTypeDefinition(typeof(ExplicitFieldLayoutStruct)).Fields.Single(f => f.Name == "Field100"); + Assert.AreEqual("System.Runtime.InteropServices.FieldOffsetAttribute", field.Attributes.Single().AttributeType.FullName); + arg = field.Attributes.Single().PositionalArguments.Single(); + Assert.AreEqual("System.Int32", arg.Type.FullName); + Assert.AreEqual(100, arg.ConstantValue); + } + + [Test] + public void DllImportAttribute() + { + IMethod method = GetTypeDefinition(typeof(NonCustomAttributes)).Methods.Single(m => m.Name == "DllMethod"); + IAttribute dllImport = method.Attributes.Single(); + Assert.AreEqual("System.Runtime.InteropServices.DllImportAttribute", dllImport.AttributeType.FullName); + Assert.AreEqual("unmanaged.dll", dllImport.PositionalArguments[0].ConstantValue); + Assert.AreEqual((int)CharSet.Unicode, dllImport.NamedArguments.Single().Value.ConstantValue); + } + + [Test] + public void InOutParametersOnRefMethod() + { + IParameter p = GetTypeDefinition(typeof(NonCustomAttributes)).Methods.Single(m => m.Name == "DllMethod").Parameters.Single(); + Assert.IsTrue(p.IsRef); + Assert.IsFalse(p.IsOut); + Assert.AreEqual(2, p.Attributes.Count); + Assert.AreEqual("System.Runtime.InteropServices.InAttribute", p.Attributes[0].AttributeType.FullName); + Assert.AreEqual("System.Runtime.InteropServices.OutAttribute", p.Attributes[1].AttributeType.FullName); + } + + [Test] + public void MarshalAsAttributeOnMethod() + { + IMethod method = GetTypeDefinition(typeof(NonCustomAttributes)).Methods.Single(m => m.Name == "DllMethod"); + IAttribute marshalAs = method.ReturnTypeAttributes.Single(); + Assert.AreEqual((int)UnmanagedType.Bool, marshalAs.PositionalArguments.Single().ConstantValue); + } + + [Test] + public void MethodWithOutParameter() + { + IParameter p = GetTypeDefinition(typeof(ParameterTests)).Methods.Single(m => m.Name == "MethodWithOutParameter").Parameters.Single(); + Assert.IsFalse(p.IsOptional); + Assert.IsFalse(p.IsRef); + Assert.IsTrue(p.IsOut); + Assert.AreEqual(0, p.Attributes.Count); + Assert.IsTrue(p.Type.Kind == TypeKind.ByReference); + } + + [Test] + public void MethodWithParamsArray() + { + IParameter p = GetTypeDefinition(typeof(ParameterTests)).Methods.Single(m => m.Name == "MethodWithParamsArray").Parameters.Single(); + Assert.IsFalse(p.IsOptional); + Assert.IsFalse(p.IsRef); + Assert.IsFalse(p.IsOut); + Assert.IsTrue(p.IsParams); + Assert.AreEqual(0, p.Attributes.Count); + Assert.IsTrue(p.Type.Kind == TypeKind.Array); + } + + [Test] + public void MethodWithOptionalParameter() + { + IParameter p = GetTypeDefinition(typeof(ParameterTests)).Methods.Single(m => m.Name == "MethodWithOptionalParameter").Parameters.Single(); + Assert.IsTrue(p.IsOptional); + Assert.IsFalse(p.IsRef); + Assert.IsFalse(p.IsOut); + Assert.IsFalse(p.IsParams); + Assert.AreEqual(0, p.Attributes.Count); + Assert.AreEqual(4, p.ConstantValue); + } + + [Test] + public void MethodWithExplicitOptionalParameter() + { + IParameter p = GetTypeDefinition(typeof(ParameterTests)).Methods.Single(m => m.Name == "MethodWithExplicitOptionalParameter").Parameters.Single(); + Assert.IsTrue(p.IsOptional); + Assert.IsFalse(p.IsRef); + Assert.IsFalse(p.IsOut); + Assert.IsFalse(p.IsParams); + // explicit optional parameter appears in type system if it's read from C#, but not when read from IL + //Assert.AreEqual(1, p.Attributes.Count); + } + + [Test] + public void MethodWithEnumOptionalParameter() + { + IParameter p = GetTypeDefinition(typeof(ParameterTests)).Methods.Single(m => m.Name == "MethodWithEnumOptionalParameter").Parameters.Single(); + Assert.IsTrue(p.IsOptional); + Assert.IsFalse(p.IsRef); + Assert.IsFalse(p.IsOut); + Assert.IsFalse(p.IsParams); + Assert.AreEqual(0, p.Attributes.Count); + Assert.AreEqual((int)StringComparison.OrdinalIgnoreCase, p.ConstantValue); + } + + [Test] + public void MethodWithOptionalNullableParameter() + { + IParameter p = GetTypeDefinition(typeof(ParameterTests)).Methods.Single(m => m.Name == "MethodWithOptionalNullableParameter").Parameters.Single(); + Assert.IsTrue(p.IsOptional); + Assert.IsFalse(p.IsRef); + Assert.IsFalse(p.IsOut); + Assert.IsFalse(p.IsParams); + Assert.AreEqual(0, p.Attributes.Count); + Assert.IsNull(p.ConstantValue); + } + + [Test] + public void MethodWithOptionalLongParameter() + { + IParameter p = GetTypeDefinition(typeof(ParameterTests)).Methods.Single(m => m.Name == "MethodWithOptionalLongParameter").Parameters.Single(); + Assert.IsTrue(p.IsOptional); + Assert.IsFalse(p.IsRef); + Assert.IsFalse(p.IsOut); + Assert.IsFalse(p.IsParams); + Assert.AreEqual(1L, p.ConstantValue); + Assert.AreEqual(typeof(long), p.ConstantValue.GetType()); + } + + [Test] + public void MethodWithOptionalNullableLongParameter() + { + IParameter p = GetTypeDefinition(typeof(ParameterTests)).Methods.Single(m => m.Name == "MethodWithOptionalNullableLongParameter").Parameters.Single(); + Assert.IsTrue(p.IsOptional); + Assert.IsFalse(p.IsRef); + Assert.IsFalse(p.IsOut); + Assert.IsFalse(p.IsParams); + Assert.AreEqual(1L, p.ConstantValue); + Assert.AreEqual(typeof(long), p.ConstantValue.GetType()); + } + + [Test] + public void VarArgsMethod() + { + IParameter p = GetTypeDefinition(typeof(ParameterTests)).Methods.Single(m => m.Name == "VarArgsMethod").Parameters.Single(); + Assert.IsFalse(p.IsOptional); + Assert.IsFalse(p.IsRef); + Assert.IsFalse(p.IsOut); + Assert.IsFalse(p.IsParams); + Assert.AreEqual(TypeKind.ArgList, p.Type.Kind); + Assert.AreEqual("", p.Name); + } + + [Test] + public void VarArgsCtor() + { + IParameter p = GetTypeDefinition(typeof(VarArgsCtor)).Methods.Single(m => m.IsConstructor).Parameters.Single(); + Assert.IsFalse(p.IsOptional); + Assert.IsFalse(p.IsRef); + Assert.IsFalse(p.IsOut); + Assert.IsFalse(p.IsParams); + Assert.AreEqual(TypeKind.ArgList, p.Type.Kind); + Assert.AreEqual("", p.Name); + } + + [Test] + public void GenericDelegate_Variance() + { + ITypeDefinition type = GetTypeDefinition(typeof(GenericDelegate<,>)); + Assert.AreEqual(VarianceModifier.Contravariant, type.TypeParameters[0].Variance); + Assert.AreEqual(VarianceModifier.Covariant, type.TypeParameters[1].Variance); + + Assert.AreSame(type.TypeParameters[1], type.TypeParameters[0].DirectBaseTypes.FirstOrDefault()); + } + + [Test] + public void GenericDelegate_ReferenceTypeConstraints() + { + ITypeDefinition type = GetTypeDefinition(typeof(GenericDelegate<,>)); + Assert.IsFalse(type.TypeParameters[0].HasReferenceTypeConstraint); + Assert.IsTrue(type.TypeParameters[1].HasReferenceTypeConstraint); + + Assert.IsNull(type.TypeParameters[0].IsReferenceType); + Assert.AreEqual(true, type.TypeParameters[1].IsReferenceType); + } + + [Test] + public void GenericDelegate_GetInvokeMethod() + { + IType type = compilation.FindType(typeof(GenericDelegate)); + IMethod m = type.GetDelegateInvokeMethod(); + Assert.AreEqual("Invoke", m.Name); + Assert.AreEqual("System.Object", m.ReturnType.FullName); + Assert.AreEqual("System.String", m.Parameters[0].Type.FullName); + } + + [Test] + public void ComInterfaceTest() + { + ITypeDefinition type = GetTypeDefinition(typeof(IAssemblyEnum)); + // [ComImport] + Assert.AreEqual(1, type.Attributes.Count(a => a.AttributeType.FullName == typeof(ComImportAttribute).FullName)); + + IMethod m = type.Methods.Single(); + Assert.AreEqual("GetNextAssembly", m.Name); + Assert.AreEqual(Accessibility.Public, m.Accessibility); + Assert.IsTrue(m.IsAbstract); + Assert.IsFalse(m.IsVirtual); + Assert.IsFalse(m.IsSealed); + } + + [Test] + public void InnerClassInGenericClassIsReferencedUsingParameterizedType() + { + ITypeDefinition type = GetTypeDefinition(typeof(OuterGeneric<>)); + IField field1 = type.Fields.Single(f => f.Name == "Field1"); + IField field2 = type.Fields.Single(f => f.Name == "Field2"); + IField field3 = type.Fields.Single(f => f.Name == "Field3"); + + // types must be self-parameterized + Assert.AreEqual("ICSharpCode.Decompiler.Tests.TypeSystem.OuterGeneric`1+Inner[[`0]]", field1.Type.ReflectionName); + Assert.AreEqual("ICSharpCode.Decompiler.Tests.TypeSystem.OuterGeneric`1+Inner[[`0]]", field2.Type.ReflectionName); + Assert.AreEqual("ICSharpCode.Decompiler.Tests.TypeSystem.OuterGeneric`1+Inner[[ICSharpCode.Decompiler.Tests.TypeSystem.OuterGeneric`1+Inner[[`0]]]]", field3.Type.ReflectionName); + } + + [Test] + public void FlagsOnInterfaceMembersAreCorrect() + { + ITypeDefinition type = GetTypeDefinition(typeof(IInterfaceWithProperty)); + var p = type.Properties.Single(); + Assert.AreEqual(false, p.IsIndexer); + Assert.AreEqual(true, p.IsAbstract); + Assert.AreEqual(true, p.IsOverridable); + Assert.AreEqual(false, p.IsOverride); + Assert.AreEqual(true, p.IsPublic); + Assert.AreEqual(true, p.Getter.IsAbstract); + Assert.AreEqual(true, p.Getter.IsOverridable); + Assert.AreEqual(false, p.Getter.IsOverride); + Assert.AreEqual(true, p.Getter.IsPublic); + Assert.AreEqual(false, p.Getter.HasBody); + Assert.AreEqual(true, p.Setter.IsAbstract); + Assert.AreEqual(true, p.Setter.IsOverridable); + Assert.AreEqual(false, p.Setter.IsOverride); + Assert.AreEqual(true, p.Setter.IsPublic); + Assert.AreEqual(false, p.Setter.HasBody); + + type = GetTypeDefinition(typeof(IInterfaceWithIndexers)); + p = type.Properties.Single(x => x.Parameters.Count == 2); + Assert.AreEqual(true, p.IsIndexer); + Assert.AreEqual(true, p.IsAbstract); + Assert.AreEqual(true, p.IsOverridable); + Assert.AreEqual(false, p.IsOverride); + Assert.AreEqual(true, p.IsPublic); + Assert.AreEqual(true, p.Getter.IsAbstract); + Assert.AreEqual(true, p.Getter.IsOverridable); + Assert.AreEqual(false, p.Getter.IsOverride); + Assert.AreEqual(true, p.Getter.IsPublic); + Assert.AreEqual(true, p.Setter.IsAbstract); + Assert.AreEqual(true, p.Setter.IsOverridable); + Assert.AreEqual(false, p.Setter.IsOverride); + Assert.AreEqual(true, p.Setter.IsPublic); + + type = GetTypeDefinition(typeof(IHasEvent)); + var e = type.Events.Single(); + Assert.AreEqual(true, e.IsAbstract); + Assert.AreEqual(true, e.IsOverridable); + Assert.AreEqual(false, e.IsOverride); + Assert.AreEqual(true, e.IsPublic); + Assert.AreEqual(true, e.AddAccessor.IsAbstract); + Assert.AreEqual(true, e.AddAccessor.IsOverridable); + Assert.AreEqual(false, e.AddAccessor.IsOverride); + Assert.AreEqual(true, e.AddAccessor.IsPublic); + Assert.AreEqual(true, e.RemoveAccessor.IsAbstract); + Assert.AreEqual(true, e.RemoveAccessor.IsOverridable); + Assert.AreEqual(false, e.RemoveAccessor.IsOverride); + Assert.AreEqual(true, e.RemoveAccessor.IsPublic); + + type = GetTypeDefinition(typeof(IDisposable)); + var m = type.Methods.Single(); + Assert.AreEqual(true, m.IsAbstract); + Assert.AreEqual(true, m.IsOverridable); + Assert.AreEqual(false, m.IsOverride); + Assert.AreEqual(true, m.IsPublic); + } + + [Test] + public void InnerClassInGenericClass_TypeParameterOwner() + { + ITypeDefinition type = GetTypeDefinition(typeof(OuterGeneric<>.Inner)); + Assert.AreSame(type.DeclaringTypeDefinition.TypeParameters[0], type.TypeParameters[0]); + Assert.AreSame(type.DeclaringTypeDefinition, type.TypeParameters[0].Owner); + } + + [Test] + public void InnerClassInGenericClass_ReferencesTheOuterClass_Field() + { + ITypeDefinition type = GetTypeDefinition(typeof(OuterGeneric<>.Inner)); + IField f = type.Fields.Single(); + Assert.AreEqual("ICSharpCode.Decompiler.Tests.TypeSystem.OuterGeneric`1[[`0]]", f.Type.ReflectionName); + } + + [Test] + public void InnerClassInGenericClass_ReferencesTheOuterClass_Parameter() + { + ITypeDefinition type = GetTypeDefinition(typeof(OuterGeneric<>.Inner)); + IParameter p = type.Methods.Single(m => m.IsConstructor).Parameters.Single(); + Assert.AreEqual("ICSharpCode.Decompiler.Tests.TypeSystem.OuterGeneric`1[[`0]]", p.Type.ReflectionName); + } + + ResolveResult GetParamsAttributeArgument(int index) + { + ITypeDefinition type = GetTypeDefinition(typeof(ParamsAttribute)); + var arr = (ArrayCreateResolveResult)type.Attributes.Single().PositionalArguments.Single(); + Assert.AreEqual(5, arr.InitializerElements.Count); + Assert.AreEqual(1, arr.SizeArguments.Count); + Assert.AreEqual(5, arr.SizeArguments[0].ConstantValue); + return arr.InitializerElements[index]; + } + + ResolveResult Unbox(ResolveResult resolveResult) + { + ConversionResolveResult crr = (ConversionResolveResult)resolveResult; + Assert.AreEqual(TypeKind.Class, crr.Type.Kind); + Assert.AreEqual("System.Object", crr.Type.FullName); + Assert.AreEqual(Conversion.BoxingConversion, crr.Conversion); + return crr.Input; + } + + [Test] + public void ParamsAttribute_Integer() + { + ResolveResult rr = Unbox(GetParamsAttributeArgument(0)); + Assert.AreEqual("System.Int32", rr.Type.FullName); + Assert.AreEqual(1, rr.ConstantValue); + } + + [Test] + public void ParamsAttribute_Enum() + { + ResolveResult rr = Unbox(GetParamsAttributeArgument(1)); + Assert.AreEqual("System.StringComparison", rr.Type.FullName); + Assert.AreEqual((int)StringComparison.CurrentCulture, rr.ConstantValue); + } + + [Test] + public void ParamsAttribute_NullReference() + { + ResolveResult rr = GetParamsAttributeArgument(2); + Assert.AreEqual("System.Object", rr.Type.FullName); + Assert.IsTrue(rr.IsCompileTimeConstant); + Assert.IsNull(rr.ConstantValue); + } + + [Test] + public void ParamsAttribute_Double() + { + ResolveResult rr = Unbox(GetParamsAttributeArgument(3)); + Assert.AreEqual("System.Double", rr.Type.FullName); + Assert.AreEqual(4.0, rr.ConstantValue); + } + + [Test] + public void ParamsAttribute_String() + { + ConversionResolveResult rr = (ConversionResolveResult)GetParamsAttributeArgument(4); + Assert.AreEqual("System.Object", rr.Type.FullName); + Assert.AreEqual("System.String", rr.Input.Type.FullName); + Assert.AreEqual("Test", rr.Input.ConstantValue); + } + + [Test] + public void ParamsAttribute_Property() + { + ITypeDefinition type = GetTypeDefinition(typeof(ParamsAttribute)); + IProperty prop = type.Properties.Single(p => p.Name == "Property"); + var attr = prop.Attributes.Single(); + Assert.AreEqual(type, attr.AttributeType); + + var normalArguments = ((ArrayCreateResolveResult)attr.PositionalArguments.Single()).InitializerElements; + Assert.AreEqual(0, normalArguments.Count); + + var namedArg = attr.NamedArguments.Single(); + Assert.AreEqual(prop, namedArg.Key); + var arrayElements = ((ArrayCreateResolveResult)namedArg.Value).InitializerElements; + Assert.AreEqual(2, arrayElements.Count); + } + + [Test] + public void ParamsAttribute_Getter_ReturnType() + { + ITypeDefinition type = GetTypeDefinition(typeof(ParamsAttribute)); + IProperty prop = type.Properties.Single(p => p.Name == "Property"); + Assert.AreEqual(0, prop.Getter.Attributes.Count); + Assert.AreEqual(1, prop.Getter.ReturnTypeAttributes.Count); + } + + [Test] + public void DoubleAttribute_ImplicitNumericConversion() + { + ITypeDefinition type = GetTypeDefinition(typeof(DoubleAttribute)); + var arg = type.Attributes.Single().PositionalArguments.ElementAt(0); + Assert.AreEqual("System.Double", arg.Type.ReflectionName); + Assert.AreEqual(1.0, arg.ConstantValue); + } + + [Test] + public void ImplicitImplementationOfUnifiedMethods() + { + ITypeDefinition type = GetTypeDefinition(typeof(ImplementationOfUnifiedMethods)); + IMethod test = type.Methods.Single(m => m.Name == "Test"); + Assert.AreEqual(2, test.ImplementedInterfaceMembers.Count); + Assert.AreEqual("Int32", ((IMethod)test.ImplementedInterfaceMembers[0]).Parameters.Single().Type.Name); + Assert.AreEqual("Int32", ((IMethod)test.ImplementedInterfaceMembers[1]).Parameters.Single().Type.Name); + Assert.AreEqual("T", ((IMethod)test.ImplementedInterfaceMembers[0].MemberDefinition).Parameters.Single().Type.Name); + Assert.AreEqual("S", ((IMethod)test.ImplementedInterfaceMembers[1].MemberDefinition).Parameters.Single().Type.Name); + } + + [Test] + public void StaticityOfEventAccessors() + { + // https://github.com/icsharpcode/NRefactory/issues/20 + ITypeDefinition type = GetTypeDefinition(typeof(ClassWithStaticAndNonStaticMembers)); + var evt1 = type.Events.Single(e => e.Name == "Event1"); + Assert.IsTrue(evt1.IsStatic); + Assert.IsTrue(evt1.AddAccessor.IsStatic); + Assert.IsTrue(evt1.RemoveAccessor.IsStatic); + + var evt2 = type.Events.Single(e => e.Name == "Event2"); + Assert.IsFalse(evt2.IsStatic); + Assert.IsFalse(evt2.AddAccessor.IsStatic); + Assert.IsFalse(evt2.RemoveAccessor.IsStatic); + + var evt3 = type.Events.Single(e => e.Name == "Event3"); + Assert.IsTrue(evt3.IsStatic); + Assert.IsTrue(evt3.AddAccessor.IsStatic); + Assert.IsTrue(evt3.RemoveAccessor.IsStatic); + + var evt4 = type.Events.Single(e => e.Name == "Event4"); + Assert.IsFalse(evt4.IsStatic); + Assert.IsFalse(evt4.AddAccessor.IsStatic); + Assert.IsFalse(evt4.RemoveAccessor.IsStatic); + } + + [Test] + public void StaticityOfPropertyAccessors() + { + // https://github.com/icsharpcode/NRefactory/issues/20 + ITypeDefinition type = GetTypeDefinition(typeof(ClassWithStaticAndNonStaticMembers)); + var prop1 = type.Properties.Single(e => e.Name == "Prop1"); + Assert.IsTrue(prop1.IsStatic); + Assert.IsTrue(prop1.Getter.IsStatic); + Assert.IsTrue(prop1.Setter.IsStatic); + + var prop2 = type.Properties.Single(e => e.Name == "Prop2"); + Assert.IsFalse(prop2.IsStatic); + Assert.IsFalse(prop2.Getter.IsStatic); + Assert.IsFalse(prop2.Setter.IsStatic); + + var prop3 = type.Properties.Single(e => e.Name == "Prop3"); + Assert.IsTrue(prop3.IsStatic); + Assert.IsTrue(prop3.Getter.IsStatic); + Assert.IsTrue(prop3.Setter.IsStatic); + + var prop4 = type.Properties.Single(e => e.Name == "Prop4"); + Assert.IsFalse(prop4.IsStatic); + Assert.IsFalse(prop4.Getter.IsStatic); + Assert.IsFalse(prop4.Setter.IsStatic); + } + + [Test] + public void PropertyAccessorsHaveBody() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassWithStaticAndNonStaticMembers)); + foreach (var prop in type.Properties) { + Assert.IsTrue(prop.Getter.HasBody, prop.Getter.Name); + Assert.IsTrue(prop.Setter.HasBody, prop.Setter.Name); + } + } + + [Test] + public void EventAccessorNames() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassWithStaticAndNonStaticMembers)); + var customEvent = type.Events.Single(e => e.Name == "Event1"); + Assert.AreEqual("add_Event1", customEvent.AddAccessor.Name); + Assert.AreEqual("remove_Event1", customEvent.RemoveAccessor.Name); + + var normalEvent = type.Events.Single(e => e.Name == "Event3"); + Assert.AreEqual("add_Event3", normalEvent.AddAccessor.Name); + Assert.AreEqual("remove_Event3", normalEvent.RemoveAccessor.Name); + } + + [Test] + public void EventAccessorHaveBody() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassWithStaticAndNonStaticMembers)); + foreach (var ev in type.Events) { + Assert.IsTrue(ev.AddAccessor.HasBody, ev.AddAccessor.Name); + Assert.IsTrue(ev.RemoveAccessor.HasBody, ev.RemoveAccessor.Name); + } + } + + [Test] + public void InterfacePropertyAccessorsShouldNotBeOverrides() + { + ITypeDefinition type = GetTypeDefinition(typeof(IInterfaceWithProperty)); + var prop = type.Properties.Single(p => p.Name == "Prop"); + Assert.That(prop.Getter.IsOverride, Is.False); + Assert.That(prop.Getter.IsOverridable, Is.True); + Assert.That(prop.Setter.IsOverride, Is.False); + Assert.That(prop.Setter.IsOverridable, Is.True); + } + + [Test] + public void VirtualPropertyAccessorsShouldNotBeOverrides() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassWithVirtualProperty)); + var prop = type.Properties.Single(p => p.Name == "Prop"); + Assert.That(prop.Getter.IsOverride, Is.False); + Assert.That(prop.Getter.IsOverridable, Is.True); + Assert.That(prop.Setter.IsOverride, Is.False); + Assert.That(prop.Setter.IsOverridable, Is.True); + } + + [Test] + public void ClassThatOverridesGetterOnly() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatOverridesGetterOnly)); + var prop = type.Properties.Single(p => p.Name == "Prop"); + Assert.AreEqual(Accessibility.Public, prop.Accessibility); + Assert.AreEqual(Accessibility.Public, prop.Getter.Accessibility); + } + + [Test] + public void ClassThatOverridesSetterOnly() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatOverridesSetterOnly)); + var prop = type.Properties.Single(p => p.Name == "Prop"); + Assert.AreEqual(Accessibility.Public, prop.Accessibility); + Assert.AreEqual(Accessibility.Protected, prop.Setter.Accessibility); + } + + [Test] + public void PropertyAccessorsShouldBeReportedAsImplementingInterfaceAccessors() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatImplementsProperty)); + var prop = type.Properties.Single(p => p.Name == "Prop"); + Assert.That(prop.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithProperty.Prop" })); + Assert.That(prop.Getter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithProperty.get_Prop" })); + Assert.That(prop.Setter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithProperty.set_Prop" })); + } + + [Test] + public void PropertyThatImplementsInterfaceIsNotVirtual() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatImplementsProperty)); + var prop = type.Properties.Single(p => p.Name == "Prop"); + Assert.IsFalse(prop.IsVirtual); + Assert.IsFalse(prop.IsOverridable); + Assert.IsFalse(prop.IsSealed); + } + + [Test] + public void Property_SealedOverride() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatOverridesAndSealsVirtualProperty)); + var prop = type.Properties.Single(p => p.Name == "Prop"); + Assert.IsFalse(prop.IsVirtual); + Assert.IsTrue(prop.IsOverride); + Assert.IsTrue(prop.IsSealed); + Assert.IsFalse(prop.IsOverridable); + } + + [Test] + public void IndexerAccessorsShouldBeReportedAsImplementingTheCorrectInterfaceAccessors() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatImplementsIndexers)); + var ix1 = type.Properties.Single(p => p.Parameters.Count == 1 && p.Parameters[0].Type.GetDefinition().KnownTypeCode == KnownTypeCode.Int32); + var ix2 = type.Properties.Single(p => p.Parameters.Count == 1 && p.Parameters[0].Type.GetDefinition().KnownTypeCode == KnownTypeCode.String); + var ix3 = type.Properties.Single(p => p.Parameters.Count == 2); + + Assert.That(ix1.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EquivalentTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithIndexers.Item", "ICSharpCode.Decompiler.Tests.TypeSystem.IGenericInterfaceWithIndexer`1.Item" })); + Assert.That(ix1.ImplementedInterfaceMembers.All(p => ((IProperty)p).Parameters.Select(x => x.Type.GetDefinition().KnownTypeCode).SequenceEqual(new[] { KnownTypeCode.Int32 }))); + Assert.That(ix1.Getter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EquivalentTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithIndexers.get_Item", "ICSharpCode.Decompiler.Tests.TypeSystem.IGenericInterfaceWithIndexer`1.get_Item" })); + Assert.That(ix1.Getter.ImplementedInterfaceMembers.All(m => ((IMethod)m).Parameters.Select(p => p.Type.GetDefinition().KnownTypeCode).SequenceEqual(new[] { KnownTypeCode.Int32 }))); + Assert.That(ix1.Setter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EquivalentTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithIndexers.set_Item", "ICSharpCode.Decompiler.Tests.TypeSystem.IGenericInterfaceWithIndexer`1.set_Item" })); + Assert.That(ix1.Setter.ImplementedInterfaceMembers.All(m => ((IMethod)m).Parameters.Select(p => p.Type.GetDefinition().KnownTypeCode).SequenceEqual(new[] { KnownTypeCode.Int32, KnownTypeCode.Int32 }))); + + Assert.That(ix2.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithIndexers.Item" })); + Assert.That(ix2.ImplementedInterfaceMembers.All(p => ((IProperty)p).Parameters.Select(x => x.Type.GetDefinition().KnownTypeCode).SequenceEqual(new[] { KnownTypeCode.String }))); + Assert.That(ix2.Getter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithIndexers.get_Item" })); + Assert.That(ix2.Getter.ImplementedInterfaceMembers.All(m => ((IMethod)m).Parameters.Select(p => p.Type.GetDefinition().KnownTypeCode).SequenceEqual(new[] { KnownTypeCode.String }))); + Assert.That(ix2.Setter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithIndexers.set_Item" })); + Assert.That(ix2.Setter.ImplementedInterfaceMembers.All(m => ((IMethod)m).Parameters.Select(p => p.Type.GetDefinition().KnownTypeCode).SequenceEqual(new[] { KnownTypeCode.String, KnownTypeCode.Int32 }))); + + Assert.That(ix3.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithIndexers.Item" })); + Assert.That(ix3.ImplementedInterfaceMembers.All(p => ((IProperty)p).Parameters.Select(x => x.Type.GetDefinition().KnownTypeCode).SequenceEqual(new[] { KnownTypeCode.Int32, KnownTypeCode.Int32 }))); + Assert.That(ix3.Getter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithIndexers.get_Item" })); + Assert.That(ix3.Getter.ImplementedInterfaceMembers.All(m => ((IMethod)m).Parameters.Select(p => p.Type.GetDefinition().KnownTypeCode).SequenceEqual(new[] { KnownTypeCode.Int32, KnownTypeCode.Int32 }))); + Assert.That(ix3.Setter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithIndexers.set_Item" })); + Assert.That(ix3.Setter.ImplementedInterfaceMembers.All(m => ((IMethod)m).Parameters.Select(p => p.Type.GetDefinition().KnownTypeCode).SequenceEqual(new[] { KnownTypeCode.Int32, KnownTypeCode.Int32, KnownTypeCode.Int32 }))); + } + + [Test] + public void ExplicitIndexerImplementationReturnsTheCorrectMembers() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatImplementsIndexersExplicitly)); + + Assert.That(type.Properties.All(p => p.SymbolKind == SymbolKind.Indexer)); + Assert.That(type.Properties.All(p => p.ImplementedInterfaceMembers.Count == 1)); + Assert.That(type.Properties.All(p => p.Getter.ImplementedInterfaceMembers.Count == 1)); + Assert.That(type.Properties.All(p => p.Setter.ImplementedInterfaceMembers.Count == 1)); + } + + [Test] + public void ExplicitDisposableImplementation() + { + ITypeDefinition disposable = GetTypeDefinition(typeof(ExplicitDisposableImplementation)); + IMethod method = disposable.Methods.Single(m => !m.IsConstructor); + Assert.IsTrue(method.IsExplicitInterfaceImplementation); + Assert.AreEqual("System.IDisposable.Dispose", method.ImplementedInterfaceMembers.Single().FullName); + } + + [Test] + public void ExplicitImplementationOfUnifiedMethods() + { + IType type = compilation.FindType(typeof(ExplicitGenericInterfaceImplementationWithUnifiableMethods)); + Assert.AreEqual(2, type.GetMethods(m => m.IsExplicitInterfaceImplementation).Count()); + foreach (IMethod method in type.GetMethods(m => m.IsExplicitInterfaceImplementation)) { + Assert.AreEqual(1, method.ImplementedInterfaceMembers.Count, method.ToString()); + Assert.AreEqual("System.Int32", method.Parameters.Single().Type.ReflectionName); + IMethod interfaceMethod = (IMethod)method.ImplementedInterfaceMembers.Single(); + Assert.AreEqual("System.Int32", interfaceMethod.Parameters.Single().Type.ReflectionName); + var genericParamType = ((IMethod)method.MemberDefinition).Parameters.Single().Type; + var interfaceGenericParamType = ((IMethod)interfaceMethod.MemberDefinition).Parameters.Single().Type; + Assert.AreEqual(TypeKind.TypeParameter, genericParamType.Kind); + Assert.AreEqual(TypeKind.TypeParameter, interfaceGenericParamType.Kind); + Assert.AreEqual(genericParamType.ReflectionName, interfaceGenericParamType.ReflectionName); + } + } + + [Test] + public void ExplicitGenericInterfaceImplementation() + { + ITypeDefinition impl = GetTypeDefinition(typeof(ExplicitGenericInterfaceImplementation)); + IType genericInterfaceOfString = compilation.FindType(typeof(IGenericInterface)); + IMethod implMethod1 = impl.Methods.Single(m => !m.IsConstructor && !m.Parameters[1].IsRef); + IMethod implMethod2 = impl.Methods.Single(m => !m.IsConstructor && m.Parameters[1].IsRef); + Assert.IsTrue(implMethod1.IsExplicitInterfaceImplementation); + Assert.IsTrue(implMethod2.IsExplicitInterfaceImplementation); + + IMethod interfaceMethod1 = (IMethod)implMethod1.ImplementedInterfaceMembers.Single(); + Assert.AreEqual(genericInterfaceOfString, interfaceMethod1.DeclaringType); + Assert.IsTrue(!interfaceMethod1.Parameters[1].IsRef); + + IMethod interfaceMethod2 = (IMethod)implMethod2.ImplementedInterfaceMembers.Single(); + Assert.AreEqual(genericInterfaceOfString, interfaceMethod2.DeclaringType); + Assert.IsTrue(interfaceMethod2.Parameters[1].IsRef); + } + + [Test] + public void ExplicitlyImplementedPropertiesShouldBeReportedAsBeingImplemented() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatImplementsPropertyExplicitly)); + var prop = type.Properties.Single(); + Assert.That(prop.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithProperty.Prop" })); + Assert.That(prop.Getter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithProperty.get_Prop" })); + Assert.That(prop.Setter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IInterfaceWithProperty.set_Prop" })); + } + + [Test] + public void ExplicitlyImplementedPropertiesShouldHaveExplicitlyImplementedAccessors() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatImplementsPropertyExplicitly)); + var prop = type.Properties.Single(); + Assert.IsTrue(prop.IsExplicitInterfaceImplementation); + Assert.IsTrue(prop.Getter.IsExplicitInterfaceImplementation); + Assert.IsTrue(prop.Setter.IsExplicitInterfaceImplementation); + } + + [Test] + public void EventAccessorsShouldBeReportedAsImplementingInterfaceAccessors() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatImplementsEvent)); + var evt = type.Events.Single(p => p.Name == "Event"); + Assert.That(evt.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IHasEvent.Event" })); + Assert.That(evt.AddAccessor.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IHasEvent.add_Event" })); + Assert.That(evt.RemoveAccessor.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IHasEvent.remove_Event" })); + } + + [Test] + public void EventAccessorsShouldBeReportedAsImplementingInterfaceAccessorsWhenCustomAccessorMethodsAreUsed() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatImplementsEventWithCustomAccessors)); + var evt = type.Events.Single(p => p.Name == "Event"); + Assert.That(evt.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IHasEvent.Event" })); + Assert.That(evt.AddAccessor.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IHasEvent.add_Event" })); + Assert.That(evt.RemoveAccessor.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IHasEvent.remove_Event" })); + } + + [Test] + public void ExplicitlyImplementedEventsShouldBeReportedAsBeingImplemented() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassThatImplementsEventExplicitly)); + var evt = type.Events.Single(); + Assert.That(evt.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IHasEvent.Event" })); + Assert.That(evt.AddAccessor.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IHasEvent.add_Event" })); + Assert.That(evt.RemoveAccessor.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.Decompiler.Tests.TypeSystem.IHasEvent.remove_Event" })); + } + + [Test] + public void MembersDeclaredInDerivedInterfacesDoNotImplementBaseMembers() + { + ITypeDefinition type = GetTypeDefinition(typeof(IShadowTestDerived)); + var method = type.Methods.Single(m => m.Name == "Method"); + var indexer = type.Properties.Single(p => p.IsIndexer); + var prop = type.Properties.Single(p => p.Name == "Prop"); + var evt = type.Events.Single(e => e.Name == "Evt"); + + Assert.That(method.ImplementedInterfaceMembers, Is.Empty); + Assert.That(indexer.ImplementedInterfaceMembers, Is.Empty); + Assert.That(indexer.Getter.ImplementedInterfaceMembers, Is.Empty); + Assert.That(indexer.Setter.ImplementedInterfaceMembers, Is.Empty); + Assert.That(prop.ImplementedInterfaceMembers, Is.Empty); + Assert.That(prop.Getter.ImplementedInterfaceMembers, Is.Empty); + Assert.That(prop.Setter.ImplementedInterfaceMembers, Is.Empty); + Assert.That(evt.ImplementedInterfaceMembers, Is.Empty); + Assert.That(evt.AddAccessor.ImplementedInterfaceMembers, Is.Empty); + Assert.That(evt.RemoveAccessor.ImplementedInterfaceMembers, Is.Empty); + } + + [Test] + public void StaticClassTest() + { + ITypeDefinition type = GetTypeDefinition(typeof(StaticClass)); + Assert.IsTrue(type.IsAbstract); + Assert.IsTrue(type.IsSealed); + Assert.IsTrue(type.IsStatic); + } + + [Test] + public void NoDefaultConstructorOnStaticClassTest() + { + ITypeDefinition type = GetTypeDefinition(typeof(StaticClass)); + Assert.AreEqual(0, type.GetConstructors().Count()); + } + + [Test] + public void IndexerNonDefaultName() + { + ITypeDefinition type = GetTypeDefinition(typeof(IndexerNonDefaultName)); + var indexer = type.GetProperties(p => p.IsIndexer).Single(); + Assert.AreEqual("Foo", indexer.Name); + } + + [Test] + public void TestNullableDefaultParameter() + { + ITypeDefinition type = GetTypeDefinition(typeof(ClassWithMethodThatHasNullableDefaultParameter)); + var method = type.GetMethods().Single(m => m.Name == "Foo"); + Assert.AreEqual(42, method.Parameters.Single().ConstantValue); + } + + [Test] + public void AccessibilityTests() + { + ITypeDefinition type = GetTypeDefinition(typeof(AccessibilityTest)); + Assert.AreEqual(Accessibility.Public, type.Methods.Single(m => m.Name == "Public").Accessibility); + Assert.AreEqual(Accessibility.Internal, type.Methods.Single(m => m.Name == "Internal").Accessibility); + Assert.AreEqual(Accessibility.ProtectedOrInternal, type.Methods.Single(m => m.Name == "ProtectedInternal").Accessibility); + Assert.AreEqual(Accessibility.ProtectedOrInternal, type.Methods.Single(m => m.Name == "InternalProtected").Accessibility); + Assert.AreEqual(Accessibility.Protected, type.Methods.Single(m => m.Name == "Protected").Accessibility); + Assert.AreEqual(Accessibility.Private, type.Methods.Single(m => m.Name == "Private").Accessibility); + Assert.AreEqual(Accessibility.Private, type.Methods.Single(m => m.Name == "None").Accessibility); + } + + private void AssertConstantField(ITypeDefinition type, string name, T expected) + { + var f = type.GetFields().Single(x => x.Name == name); + Assert.IsTrue(f.IsConst); + Assert.AreEqual(expected, f.ConstantValue); + } + + [Test] + public unsafe void ConstantFieldsCreatedWithNew() + { + ITypeDefinition type = GetTypeDefinition(typeof(ConstantFieldTest)); + AssertConstantField(type, "CNewb", new byte()); + AssertConstantField(type, "CNewsb", new sbyte()); + AssertConstantField(type, "CNewc", new char()); + AssertConstantField(type, "CNews", new short()); + AssertConstantField(type, "CNewus", new ushort()); + AssertConstantField(type, "CNewi", new int()); + AssertConstantField(type, "CNewui", new uint()); + AssertConstantField(type, "CNewl", new long()); + AssertConstantField(type, "CNewul", new ulong()); + AssertConstantField(type, "CNewd", new double()); + AssertConstantField(type, "CNewf", new float()); + AssertConstantField(type, "CNewm", new decimal()); + } + + + [Test] + public void ConstantFieldsSizeOf() + { + ITypeDefinition type = GetTypeDefinition(typeof(ConstantFieldTest)); + AssertConstantField(type, "SOsb", sizeof(sbyte)); + AssertConstantField(type, "SOb", sizeof(byte)); + AssertConstantField(type, "SOs", sizeof(short)); + AssertConstantField(type, "SOus", sizeof(ushort)); + AssertConstantField(type, "SOi", sizeof(int)); + AssertConstantField(type, "SOui", sizeof(uint)); + AssertConstantField(type, "SOl", sizeof(long)); + AssertConstantField(type, "SOul", sizeof(ulong)); + AssertConstantField(type, "SOc", sizeof(char)); + AssertConstantField(type, "SOf", sizeof(float)); + AssertConstantField(type, "SOd", sizeof(double)); + AssertConstantField(type, "SObl", sizeof(bool)); + AssertConstantField(type, "SOe", sizeof(MyEnum)); + } + + [Test] + public void ConstantEnumFromThisAssembly() + { + ITypeDefinition type = GetTypeDefinition(typeof(ConstantFieldTest)); + IField field = type.Fields.Single(f => f.Name == "EnumFromThisAssembly"); + Assert.IsTrue(field.IsConst); + Assert.AreEqual((short)MyEnum.Second, field.ConstantValue); + } + + [Test] + public void ConstantEnumFromAnotherAssembly() + { + ITypeDefinition type = GetTypeDefinition(typeof(ConstantFieldTest)); + IField field = type.Fields.Single(f => f.Name == "EnumFromAnotherAssembly"); + Assert.IsTrue(field.IsConst); + Assert.AreEqual((int)StringComparison.OrdinalIgnoreCase, field.ConstantValue); + } + + [Test] + public void DefaultOfEnum() + { + ITypeDefinition type = GetTypeDefinition(typeof(ConstantFieldTest)); + IField field = type.Fields.Single(f => f.Name == "DefaultOfEnum"); + Assert.IsTrue(field.IsConst); + Assert.AreEqual((short)default(MyEnum), field.ConstantValue); + } + + [Test] + public void ExplicitImplementation() + { + var type = GetTypeDefinition(typeof(ExplicitImplementationTests)); + var itype = GetTypeDefinition(typeof(IExplicitImplementationTests)); + + var methods = type.GetMethods(m => m.Name == "M").ToList(); + var imethod = itype.GetMethods(m => m.Name == "M").Single(); + Assert.That(methods.Select(m => m.ImplementedInterfaceMembers.Count).ToList(), Is.EquivalentTo(new[] { 0, 1 })); + Assert.AreEqual(methods.SelectMany(m => m.ImplementedInterfaceMembers).Single(), imethod); + + var properties = type.GetProperties(p => p.Name == "P").ToList(); + var iproperty = itype.GetProperties(m => m.Name == "P").Single(); + Assert.That(properties.Select(p => p.ImplementedInterfaceMembers.Count).ToList(), Is.EquivalentTo(new[] { 0, 1 })); + Assert.AreEqual(properties.SelectMany(p => p.ImplementedInterfaceMembers).Single(), iproperty); + Assert.That(properties.Select(p => p.Getter.ImplementedInterfaceMembers.Count).ToList(), Is.EquivalentTo(new[] { 0, 1 })); + Assert.AreEqual(properties.SelectMany(p => p.Getter.ImplementedInterfaceMembers).Single(), iproperty.Getter); + Assert.That(properties.Select(p => p.Setter.ImplementedInterfaceMembers.Count).ToList(), Is.EquivalentTo(new[] { 0, 1 })); + Assert.AreEqual(properties.SelectMany(p => p.Setter.ImplementedInterfaceMembers).Single(), iproperty.Setter); + + var indexers = type.GetProperties(p => p.Name == "Item").ToList(); + var iindexer = itype.GetProperties(m => m.Name == "Item").Single(); + Assert.That(indexers.Select(p => p.ImplementedInterfaceMembers.Count).ToList(), Is.EquivalentTo(new[] { 0, 1 })); + Assert.AreEqual(indexers.SelectMany(p => p.ImplementedInterfaceMembers).Single(), iindexer); + Assert.That(indexers.Select(p => p.Getter.ImplementedInterfaceMembers.Count).ToList(), Is.EquivalentTo(new[] { 0, 1 })); + Assert.AreEqual(indexers.SelectMany(p => p.Getter.ImplementedInterfaceMembers).Single(), iindexer.Getter); + Assert.That(indexers.Select(p => p.Setter.ImplementedInterfaceMembers.Count).ToList(), Is.EquivalentTo(new[] { 0, 1 })); + Assert.AreEqual(indexers.SelectMany(p => p.Setter.ImplementedInterfaceMembers).Single(), iindexer.Setter); + + var events = type.GetEvents(e => e.Name == "E").ToList(); + var ievent = itype.GetEvents(m => m.Name == "E").Single(); + Assert.That(events.Select(e => e.ImplementedInterfaceMembers.Count).ToList(), Is.EquivalentTo(new[] { 0, 1 })); + Assert.AreEqual(events.SelectMany(e => e.ImplementedInterfaceMembers).Single(), ievent); + Assert.That(events.Select(e => e.AddAccessor.ImplementedInterfaceMembers.Count).ToList(), Is.EquivalentTo(new[] { 0, 1 })); + Assert.AreEqual(events.SelectMany(e => e.AddAccessor.ImplementedInterfaceMembers).Single(), ievent.AddAccessor); + Assert.That(events.Select(e => e.RemoveAccessor.ImplementedInterfaceMembers.Count).ToList(), Is.EquivalentTo(new[] { 0, 1 })); + Assert.AreEqual(events.SelectMany(e => e.RemoveAccessor.ImplementedInterfaceMembers).Single(), ievent.RemoveAccessor); + } + + + [Test] + public void MarshalTests() + { + ITypeDefinition c = compilation.FindType(typeof(IMarshalAsTests)).GetDefinition(); + Assert.AreEqual(1, c.GetMethods(m => m.Name == "GetCollectionByQuery2").Count()); + } + + + [Test] + public void AttributesUsingNestedMembers() + { + var type = GetTypeDefinition(typeof(ClassWithAttributesUsingNestedMembers)); + var inner = type.GetNestedTypes().Single(t => t.Name == "Inner"); + var myAttribute = type.GetNestedTypes().Single(t => t.Name == "MyAttribute"); + var typeTypeTestAttr = type.Attributes.Single(a => a.AttributeType.Name == "TypeTestAttribute"); + Assert.AreEqual(42, typeTypeTestAttr.PositionalArguments[0].ConstantValue); + Assert.IsInstanceOf(typeTypeTestAttr.PositionalArguments[1]); + Assert.AreEqual(inner, ((TypeOfResolveResult)typeTypeTestAttr.PositionalArguments[1]).ReferencedType); + var typeMyAttr = type.Attributes.Single(a => a.AttributeType.Name == "MyAttribute"); + Assert.AreEqual(myAttribute, typeMyAttr.AttributeType); + + var prop = type.GetProperties().Single(p => p.Name == "P"); + var propTypeTestAttr = prop.Attributes.Single(a => a.AttributeType.Name == "TypeTestAttribute"); + Assert.AreEqual(42, propTypeTestAttr.PositionalArguments[0].ConstantValue); + Assert.IsInstanceOf(propTypeTestAttr.PositionalArguments[1]); + Assert.AreEqual(inner, ((TypeOfResolveResult)propTypeTestAttr.PositionalArguments[1]).ReferencedType); + var propMyAttr = prop.Attributes.Single(a => a.AttributeType.Name == "MyAttribute"); + Assert.AreEqual(myAttribute, propMyAttr.AttributeType); + + var attributedInner = (ITypeDefinition)type.GetNestedTypes().Single(t => t.Name == "AttributedInner"); + var innerTypeTestAttr = attributedInner.Attributes.Single(a => a.AttributeType.Name == "TypeTestAttribute"); + Assert.AreEqual(42, innerTypeTestAttr.PositionalArguments[0].ConstantValue); + Assert.IsInstanceOf(innerTypeTestAttr.PositionalArguments[1]); + Assert.AreEqual(inner, ((TypeOfResolveResult)innerTypeTestAttr.PositionalArguments[1]).ReferencedType); + var innerMyAttr = attributedInner.Attributes.Single(a => a.AttributeType.Name == "MyAttribute"); + Assert.AreEqual(myAttribute, innerMyAttr.AttributeType); + + var attributedInner2 = (ITypeDefinition)type.GetNestedTypes().Single(t => t.Name == "AttributedInner2"); + var inner2 = attributedInner2.GetNestedTypes().Single(t => t.Name == "Inner"); + var myAttribute2 = attributedInner2.GetNestedTypes().Single(t => t.Name == "MyAttribute"); + var inner2TypeTestAttr = attributedInner2.Attributes.Single(a => a.AttributeType.Name == "TypeTestAttribute"); + Assert.AreEqual(43, inner2TypeTestAttr.PositionalArguments[0].ConstantValue); + Assert.IsInstanceOf(inner2TypeTestAttr.PositionalArguments[1]); + Assert.AreEqual(inner2, ((TypeOfResolveResult)inner2TypeTestAttr.PositionalArguments[1]).ReferencedType); + var inner2MyAttr = attributedInner2.Attributes.Single(a => a.AttributeType.Name == "MyAttribute"); + Assert.AreEqual(myAttribute2, inner2MyAttr.AttributeType); + } + + [Test] + public void ClassWithAttributeOnTypeParameter() + { + var tp = GetTypeDefinition(typeof(ClassWithAttributeOnTypeParameter<>)).TypeParameters.Single(); + var attr = tp.Attributes.Single(); + Assert.AreEqual("DoubleAttribute", attr.AttributeType.Name); + } + + [Test] + public void InheritanceTest() + { + ITypeDefinition c = compilation.FindType(typeof(SystemException)).GetDefinition(); + ITypeDefinition c2 = compilation.FindType(typeof(Exception)).GetDefinition(); + Assert.IsNotNull(c, "c is null"); + Assert.IsNotNull(c2, "c2 is null"); + //Assert.AreEqual(3, c.BaseTypes.Count); // Inherited interfaces are not reported by Cecil + // which matches the behaviour of our C#/VB parsers + Assert.AreEqual("System.Exception", c.DirectBaseTypes.First().FullName); + Assert.AreSame(c2, c.DirectBaseTypes.First()); + + string[] superTypes = c.GetAllBaseTypes().Select(t => t.ReflectionName).ToArray(); + Assert.AreEqual(new string[] { + "System.Object", + "System.Runtime.Serialization.ISerializable", "System.Runtime.InteropServices._Exception", + "System.Exception", "System.SystemException" + }, superTypes); + } + + [Test] + public void GenericPropertyTest() + { + ITypeDefinition c = compilation.FindType(typeof(Comparer<>)).GetDefinition(); + IProperty def = c.Properties.Single(p => p.Name == "Default"); + ParameterizedType pt = (ParameterizedType)def.ReturnType; + Assert.AreEqual("System.Collections.Generic.Comparer", pt.FullName); + Assert.AreEqual(c.TypeParameters[0], pt.TypeArguments[0]); + } + + [Test] + public void PointerTypeTest() + { + ITypeDefinition c = compilation.FindType(typeof(IntPtr)).GetDefinition(); + IMethod toPointer = c.Methods.Single(p => p.Name == "ToPointer"); + Assert.AreEqual("System.Void*", toPointer.ReturnType.ReflectionName); + Assert.IsTrue(toPointer.ReturnType is PointerType); + Assert.AreEqual("System.Void", ((PointerType)toPointer.ReturnType).ElementType.FullName); + } + + [Test] + public void DateTimeDefaultConstructor() + { + ITypeDefinition c = compilation.FindType(typeof(DateTime)).GetDefinition(); + Assert.AreEqual(1, c.Methods.Count(m => m.IsConstructor && m.Parameters.Count == 0)); + Assert.AreEqual(1, c.GetConstructors().Count(m => m.Parameters.Count == 0)); + } + + [Test] + public void NoEncodingInfoDefaultConstructor() + { + ITypeDefinition c = compilation.FindType(typeof(EncodingInfo)).GetDefinition(); + // EncodingInfo only has an internal constructor + Assert.IsFalse(c.Methods.Any(m => m.IsConstructor)); + // and no implicit ctor should be added: + Assert.AreEqual(0, c.GetConstructors().Count()); + } + + [Test] + public void StaticModifierTest() + { + ITypeDefinition c = compilation.FindType(typeof(Environment)).GetDefinition(); + Assert.IsNotNull(c, "System.Environment not found"); + Assert.IsTrue(c.IsAbstract, "class should be abstract"); + Assert.IsTrue(c.IsSealed, "class should be sealed"); + Assert.IsTrue(c.IsStatic, "class should be static"); + } + + [Test] + public void InnerClassReferenceTest() + { + ITypeDefinition c = compilation.FindType(typeof(Environment)).GetDefinition(); + Assert.IsNotNull(c, "System.Environment not found"); + IType rt = c.Methods.First(m => m.Name == "GetFolderPath").Parameters[0].Type; + Assert.AreSame(c.NestedTypes.Single(ic => ic.Name == "SpecialFolder"), rt); + } + + [Test] + public void NestedTypesTest() + { + ITypeDefinition c = compilation.FindType(typeof(Environment.SpecialFolder)).GetDefinition(); + Assert.IsNotNull(c, "c is null"); + Assert.AreEqual("System.Environment.SpecialFolder", c.FullName); + Assert.AreEqual("System.Environment+SpecialFolder", c.ReflectionName); + } + + [Test] + public void VoidHasNoMembers() + { + ITypeDefinition c = compilation.FindType(typeof(void)).GetDefinition(); + Assert.IsNotNull(c, "System.Void not found"); + Assert.AreEqual(0, c.GetMethods().Count()); + Assert.AreEqual(0, c.GetProperties().Count()); + Assert.AreEqual(0, c.GetEvents().Count()); + Assert.AreEqual(0, c.GetFields().Count()); + } + + [Test] + public void Void_SerializableAttribute() + { + ITypeDefinition c = compilation.FindType(typeof(void)).GetDefinition(); + var attr = c.Attributes.Single(a => a.AttributeType.FullName == "System.SerializableAttribute"); + Assert.AreEqual(0, attr.Constructor.Parameters.Count); + Assert.AreEqual(0, attr.PositionalArguments.Count); + Assert.AreEqual(0, attr.NamedArguments.Count); + } + + [Test] + public void Void_StructLayoutAttribute() + { + ITypeDefinition c = compilation.FindType(typeof(void)).GetDefinition(); + var attr = c.Attributes.Single(a => a.AttributeType.FullName == "System.Runtime.InteropServices.StructLayoutAttribute"); + Assert.AreEqual(1, attr.Constructor.Parameters.Count); + Assert.AreEqual(1, attr.PositionalArguments.Count); + Assert.AreEqual(0, attr.PositionalArguments[0].ConstantValue); + Assert.AreEqual(1, attr.NamedArguments.Count); + Assert.AreEqual("System.Runtime.InteropServices.StructLayoutAttribute.Size", attr.NamedArguments[0].Key.FullName); + Assert.AreEqual(1, attr.NamedArguments[0].Value.ConstantValue); + } + + [Test] + public void Void_ComVisibleAttribute() + { + ITypeDefinition c = compilation.FindType(typeof(void)).GetDefinition(); + var attr = c.Attributes.Single(a => a.AttributeType.FullName == "System.Runtime.InteropServices.ComVisibleAttribute"); + Assert.AreEqual(1, attr.Constructor.Parameters.Count); + Assert.AreEqual(1, attr.PositionalArguments.Count); + Assert.AreEqual(true, attr.PositionalArguments[0].ConstantValue); + Assert.AreEqual(0, attr.NamedArguments.Count); + } + + [Test] + public void NestedClassInGenericClassTest() + { + ITypeDefinition dictionary = compilation.FindType(typeof(Dictionary<,>)).GetDefinition(); + Assert.IsNotNull(dictionary); + ITypeDefinition valueCollection = compilation.FindType(typeof(Dictionary<,>.ValueCollection)).GetDefinition(); + Assert.IsNotNull(valueCollection); + var dictionaryRT = new ParameterizedType(dictionary, new[] { compilation.FindType(typeof(string)).GetDefinition(), compilation.FindType(typeof(int)).GetDefinition() }); + IProperty valueProperty = dictionaryRT.GetProperties(p => p.Name == "Values").Single(); + IType parameterizedValueCollection = valueProperty.ReturnType; + Assert.AreEqual("System.Collections.Generic.Dictionary`2+ValueCollection[[System.String],[System.Int32]]", parameterizedValueCollection.ReflectionName); + Assert.AreSame(valueCollection, parameterizedValueCollection.GetDefinition()); + } + + [Test] + public void ValueCollectionCountModifiers() + { + ITypeDefinition valueCollection = compilation.FindType(typeof(Dictionary<,>.ValueCollection)).GetDefinition(); + Assert.AreEqual(Accessibility.Public, valueCollection.Accessibility); + Assert.IsTrue(valueCollection.IsSealed); + Assert.IsFalse(valueCollection.IsAbstract); + Assert.IsFalse(valueCollection.IsStatic); + + IProperty count = valueCollection.Properties.Single(p => p.Name == "Count"); + Assert.AreEqual(Accessibility.Public, count.Accessibility); + // It's sealed on the IL level; but in C# it's just a normal non-virtual method that happens to implement an interface + Assert.IsFalse(count.IsSealed); + Assert.IsFalse(count.IsVirtual); + Assert.IsFalse(count.IsAbstract); + } + + [Test] + public void MathAcosModifiers() + { + ITypeDefinition math = compilation.FindType(typeof(Math)).GetDefinition(); + Assert.AreEqual(Accessibility.Public, math.Accessibility); + Assert.IsTrue(math.IsSealed); + Assert.IsTrue(math.IsAbstract); + Assert.IsTrue(math.IsStatic); + + IMethod acos = math.Methods.Single(p => p.Name == "Acos"); + Assert.AreEqual(Accessibility.Public, acos.Accessibility); + Assert.IsTrue(acos.IsStatic); + Assert.IsFalse(acos.IsAbstract); + Assert.IsFalse(acos.IsSealed); + Assert.IsFalse(acos.IsVirtual); + Assert.IsFalse(acos.IsOverride); + } + + [Test] + public void EncodingModifiers() + { + ITypeDefinition encoding = compilation.FindType(typeof(Encoding)).GetDefinition(); + Assert.AreEqual(Accessibility.Public, encoding.Accessibility); + Assert.IsFalse(encoding.IsSealed); + Assert.IsTrue(encoding.IsAbstract); + + IMethod getDecoder = encoding.Methods.Single(p => p.Name == "GetDecoder"); + Assert.AreEqual(Accessibility.Public, getDecoder.Accessibility); + Assert.IsFalse(getDecoder.IsStatic); + Assert.IsFalse(getDecoder.IsAbstract); + Assert.IsFalse(getDecoder.IsSealed); + Assert.IsTrue(getDecoder.IsVirtual); + Assert.IsFalse(getDecoder.IsOverride); + + IMethod getMaxByteCount = encoding.Methods.Single(p => p.Name == "GetMaxByteCount"); + Assert.AreEqual(Accessibility.Public, getMaxByteCount.Accessibility); + Assert.IsFalse(getMaxByteCount.IsStatic); + Assert.IsTrue(getMaxByteCount.IsAbstract); + Assert.IsFalse(getMaxByteCount.IsSealed); + Assert.IsFalse(getMaxByteCount.IsVirtual); + Assert.IsFalse(getMaxByteCount.IsOverride); + + IProperty encoderFallback = encoding.Properties.Single(p => p.Name == "EncoderFallback"); + Assert.AreEqual(Accessibility.Public, encoderFallback.Accessibility); + Assert.IsFalse(encoderFallback.IsStatic); + Assert.IsFalse(encoderFallback.IsAbstract); + Assert.IsFalse(encoderFallback.IsSealed); + Assert.IsFalse(encoderFallback.IsVirtual); + Assert.IsFalse(encoderFallback.IsOverride); + } + + [Test] + public void UnicodeEncodingModifiers() + { + ITypeDefinition encoding = compilation.FindType(typeof(UnicodeEncoding)).GetDefinition(); + Assert.AreEqual(Accessibility.Public, encoding.Accessibility); + Assert.IsFalse(encoding.IsSealed); + Assert.IsFalse(encoding.IsAbstract); + + IMethod getDecoder = encoding.Methods.Single(p => p.Name == "GetDecoder"); + Assert.AreEqual(Accessibility.Public, getDecoder.Accessibility); + Assert.IsFalse(getDecoder.IsStatic); + Assert.IsFalse(getDecoder.IsAbstract); + Assert.IsFalse(getDecoder.IsSealed); + Assert.IsFalse(getDecoder.IsVirtual); + Assert.IsTrue(getDecoder.IsOverride); + } + + [Test] + public void UTF32EncodingModifiers() + { + ITypeDefinition encoding = compilation.FindType(typeof(UTF32Encoding)).GetDefinition(); + Assert.AreEqual(Accessibility.Public, encoding.Accessibility); + Assert.IsTrue(encoding.IsSealed); + Assert.IsFalse(encoding.IsAbstract); + + IMethod getDecoder = encoding.Methods.Single(p => p.Name == "GetDecoder"); + Assert.AreEqual(Accessibility.Public, getDecoder.Accessibility); + Assert.IsFalse(getDecoder.IsStatic); + Assert.IsFalse(getDecoder.IsAbstract); + Assert.IsFalse(getDecoder.IsSealed); + Assert.IsFalse(getDecoder.IsVirtual); + Assert.IsTrue(getDecoder.IsOverride); + } + + [Test] + public void FindRedirectedType() + { + var compilationWithSystemCore = new SimpleCompilation(SystemCore, Mscorlib); + + var typeRef = ReflectionHelper.ParseReflectionName("System.Func`2, System.Core"); + ITypeDefinition c = typeRef.Resolve(compilationWithSystemCore.TypeResolveContext).GetDefinition(); + Assert.IsNotNull(c, "System.Func<,> not found"); + Assert.AreEqual("mscorlib", c.ParentAssembly.AssemblyName); + } + + public void DelegateIsClass() + { + var @delegate = compilation.FindType(KnownTypeCode.Delegate).GetDefinition(); + Assert.AreEqual(TypeKind.Class, @delegate); + Assert.IsFalse(@delegate.IsSealed); + } + + public void MulticastDelegateIsClass() + { + var multicastDelegate = compilation.FindType(KnownTypeCode.MulticastDelegate).GetDefinition(); + Assert.AreEqual(TypeKind.Class, multicastDelegate); + Assert.IsFalse(multicastDelegate.IsSealed); + } + } +} diff --git a/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemTestCase.cs b/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemTestCase.cs new file mode 100644 index 000000000..abe89eed3 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemTestCase.cs @@ -0,0 +1,675 @@ +// Copyright (c) 2010-2018 AlphaSierraPapa for the SharpDevelop Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of this +// software and associated documentation files (the "Software"), to deal in the Software +// without restriction, including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all copies or +// substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; + +[assembly: ICSharpCode.Decompiler.Tests.TypeSystem.TypeTestAttribute( + 42, typeof(System.Action<>), typeof(IDictionary>))] + +[assembly: TypeForwardedTo(typeof(Func<,>))] + +namespace ICSharpCode.Decompiler.Tests.TypeSystem +{ + public delegate S GenericDelegate(T input) where T : S where S : class; + + public class SimplePublicClass + { + public void Method() { } + } + + public class TypeTestAttribute : Attribute + { + public TypeTestAttribute(int a1, Type a2, Type a3) { } + } + + [Params(1, StringComparison.CurrentCulture, null, 4.0, "Test")] + public class ParamsAttribute : Attribute + { + public ParamsAttribute(params object[] x) { } + + [Params(Property = new string[] { "a", "b" })] + public string[] Property { + [return: Params("Attribute on return type of getter")] + get { return null; } + set { } + } + } + + [Double(1)] + public class DoubleAttribute : Attribute + { + public DoubleAttribute(double val) { } + } + + public unsafe class DynamicTest + { + public dynamic SimpleProperty { get; set; } + + public List DynamicGenerics1(Action param) { return null; } + public void DynamicGenerics2(Action param) { } + public void DynamicGenerics3(Action param) { } + public void DynamicGenerics4(Action param) { } + public void DynamicGenerics5(Action param) { } + public void DynamicGenerics6(ref Action param) { } + public void DynamicGenerics7(Action param) { } + } + + public class GenericClass where A : B + { + public void TestMethod(string param) where V : K where K : IComparable { } + public void GetIndex(T element) where T : IEquatable { } + + public NestedEnum EnumField; + + public A Property { get; set; } + + public enum NestedEnum + { + EnumMember + } + } + + public class PropertyTest + { + public int PropertyWithProtectedSetter { get; protected set; } + + public object PropertyWithPrivateSetter { get; private set; } + + public object PropertyWithoutSetter { get { return null; } } + + public object PropertyWithPrivateGetter { private get; set; } + + public string this[int index] { get { return "Test"; } set { } } + } + + public enum MyEnum : short + { + First, + Second, + Flag1 = 0x10, + Flag2 = 0x20, + CombinedFlags = Flag1 | Flag2 + } + + public class Base + { + public class Nested { } + + public virtual void GenericMethodWithConstraints(T a) where X : IComparer, new() { } + } + public class Derived : Base + { + public override void GenericMethodWithConstraints(B a) { } + } + + public struct MyStructWithCtor + { + public MyStructWithCtor(int a) { } + } + + public class MyClassWithCtor + { + private MyClassWithCtor(int a) { } + } + + [Serializable] + public class NonCustomAttributes + { + [NonSerialized] + public readonly int NonSerializedField; + + [DllImport("unmanaged.dll", CharSet = CharSet.Unicode)] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool DllMethod([In, Out] ref int p); + } + + [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Unicode, Pack = 8)] + public struct ExplicitFieldLayoutStruct + { + [FieldOffset(0)] + public int Field0; + + [FieldOffset(100)] + public int Field100; + } + + public class ParameterTests + { + public void MethodWithOutParameter(out int x) { x = 0; } + public void MethodWithParamsArray(params object[] x) { } + public void MethodWithOptionalParameter(int x = 4) { } + public void MethodWithExplicitOptionalParameter([Optional] int x) { } + public void MethodWithEnumOptionalParameter(StringComparison x = StringComparison.OrdinalIgnoreCase) { } + public void MethodWithOptionalNullableParameter(int? x = null) { } + public void MethodWithOptionalLongParameter(long x = 1) { } + public void MethodWithOptionalNullableLongParameter(long? x = 1) { } + public void VarArgsMethod(__arglist) { } + } + + public class VarArgsCtor + { + public VarArgsCtor(__arglist) { } + } + + [ComImport(), Guid("21B8916C-F28E-11D2-A473-00C04F8EF448"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + public interface IAssemblyEnum + { + [PreserveSig()] + int GetNextAssembly(uint dwFlags); + } + + public class OuterGeneric + { + public class Inner + { + public OuterGeneric referenceToOuter; + public Inner(OuterGeneric referenceToOuter) { } + } + + public OuterGeneric.Inner Field1; + public Inner Field2; + public OuterGeneric.Inner>.Inner Field3; + } + + public class ExplicitDisposableImplementation : IDisposable + { + void IDisposable.Dispose() { } + } + + public interface IGenericInterface + { + void Test(T a, S b) where S : T; + void Test(T a, ref S b); + } + + public class ExplicitGenericInterfaceImplementation : IGenericInterface + { + void IGenericInterface.Test(string a, T b) { } + void IGenericInterface.Test(string a, ref T b) { } + } + + public interface IGenericInterfaceWithUnifiableMethods + { + void Test(T a); + void Test(S a); + } + + public class ImplementationOfUnifiedMethods : IGenericInterfaceWithUnifiableMethods + { + public void Test(int a) { } + } + + public class ExplicitGenericInterfaceImplementationWithUnifiableMethods : IGenericInterfaceWithUnifiableMethods + { + void IGenericInterfaceWithUnifiableMethods.Test(T a) { } + void IGenericInterfaceWithUnifiableMethods.Test(S a) { } + } + + public partial class PartialClass + { + partial void PartialMethodWithImplementation(int a); + + partial void PartialMethodWithImplementation(System.Int32 a) + { + } + + partial void PartialMethodWithImplementation(string a); + + partial void PartialMethodWithImplementation(System.String a) + { + } + + partial void PartialMethodWithoutImplementation(); + } + + public class ClassWithStaticAndNonStaticMembers + { + public static event System.EventHandler Event1 { add { } remove { } } + public event System.EventHandler Event2 { add { } remove { } } +#pragma warning disable 67 + public static event System.EventHandler Event3; + public event System.EventHandler Event4; + + public static int Prop1 { get { return 0; } set { } } + public int Prop2 { get { return 0; } set { } } + public static int Prop3 { get; set; } + public int Prop4 { get; set; } + } + + public interface IInterfaceWithProperty + { + int Prop { get; set; } + } + + public class ClassWithVirtualProperty + { + public virtual int Prop { get; protected set; } + } + + public class ClassThatOverridesAndSealsVirtualProperty : ClassWithVirtualProperty + { + public sealed override int Prop { get; protected set; } + } + + public class ClassThatOverridesGetterOnly : ClassWithVirtualProperty + { + public override int Prop { get { return 1; } } + } + + public class ClassThatOverridesSetterOnly : ClassThatOverridesGetterOnly + { + public override int Prop { protected set { } } + } + + public class ClassThatImplementsProperty : IInterfaceWithProperty + { + public int Prop { get; set; } + } + + public class ClassThatImplementsPropertyExplicitly : IInterfaceWithProperty + { + int IInterfaceWithProperty.Prop { get; set; } + } + + public interface IInterfaceWithIndexers + { + int this[int x] { get; set; } + int this[string x] { get; set; } + int this[int x, int y] { get; set; } + } + + public interface IGenericInterfaceWithIndexer + { + int this[T x] { get; set; } + } + + public class ClassThatImplementsIndexers : IInterfaceWithIndexers, IGenericInterfaceWithIndexer + { + public int this[int x] { get { return 0; } set { } } + public int this[string x] { get { return 0; } set { } } + public int this[int x, int y] { get { return 0; } set { } } + } + + public class ClassThatImplementsIndexersExplicitly : IInterfaceWithIndexers, IGenericInterfaceWithIndexer + { + int IInterfaceWithIndexers.this[int x] { get { return 0; } set { } } + int IGenericInterfaceWithIndexer.this[int x] { get { return 0; } set { } } + int IInterfaceWithIndexers.this[string x] { get { return 0; } set { } } + int IInterfaceWithIndexers.this[int x, int y] { get { return 0; } set { } } + } + + public interface IHasEvent + { + event EventHandler Event; + } + + public class ClassThatImplementsEvent : IHasEvent + { + public event EventHandler Event; + } + + public class ClassThatImplementsEventWithCustomAccessors : IHasEvent + { + public event EventHandler Event { add { } remove { } } + } + + public class ClassThatImplementsEventExplicitly : IHasEvent + { + event EventHandler IHasEvent.Event { add { } remove { } } + } + + public interface IShadowTestBase + { + void Method(); + int this[int i] { get; set; } + int Prop { get; set; } + event EventHandler Evt; + } + + public interface IShadowTestDerived : IShadowTestBase + { + new void Method(); + new int this[int i] { get; set; } + new int Prop { get; set; } + new event EventHandler Evt; + } + + public static class StaticClass { } + public abstract class AbstractClass { } + + public class IndexerNonDefaultName + { + [IndexerName("Foo")] + public int this[int index] { + get { return 0; } + } + } + + public class ClassWithMethodThatHasNullableDefaultParameter + { + public void Foo(int? bar = 42) { } + } + + public class AccessibilityTest + { + public void Public() { } + internal void Internal() { } + protected internal void ProtectedInternal() { } + internal protected void InternalProtected() { } + protected void Protected() { } + private void Private() { } + void None() { } + } + + public class ConstantFieldTest + { + public const byte Cb = 42; + public const sbyte Csb = 42; + public const char Cc = '\x42'; + public const short Cs = 42; + public const ushort Cus = 42; + public const int Ci = 42; + public const uint Cui = 42; + public const long Cl = 42; + public const ulong Cul = 42; + public const double Cd = 42; + public const float Cf = 42; + public const decimal Cm = 42; + public const string S = "hello, world"; + public const string NullString = null; + + public const MyEnum EnumFromThisAssembly = MyEnum.Second; + public const StringComparison EnumFromAnotherAssembly = StringComparison.OrdinalIgnoreCase; + public const MyEnum DefaultOfEnum = default(MyEnum); + + public const int SOsb = sizeof(sbyte); + public const int SOb = sizeof(byte); + public const int SOs = sizeof(short); + public const int SOus = sizeof(ushort); + public const int SOi = sizeof(int); + public const int SOui = sizeof(uint); + public const int SOl = sizeof(long); + public const int SOul = sizeof(ulong); + public const int SOc = sizeof(char); + public const int SOf = sizeof(float); + public const int SOd = sizeof(double); + public const int SObl = sizeof(bool); + public const int SOe = sizeof(MyEnum); + + + public const byte CNewb = new byte(); + public const sbyte CNewsb = new sbyte(); + public const char CNewc = new char(); + public const short CNews = new short(); + public const ushort CNewus = new ushort(); + public const int CNewi = new int(); + public const uint CNewui = new uint(); + public const long CNewl = new long(); + public const ulong CNewul = new ulong(); + public const double CNewd = new double(); + public const float CNewf = new float(); + public const decimal CNewm = new decimal(); + } + + public interface IExplicitImplementationTests + { + void M(int a); + int P { get; set; } + event Action E; + int this[int x] { get; set; } + } + + public class ExplicitImplementationTests : IExplicitImplementationTests + { + public void M(int a) { } + public int P { get; set; } + public event Action E; + public int this[int x] { get { return 0; } set { } } + + void IExplicitImplementationTests.M(int a) { } + int IExplicitImplementationTests.P { get; set; } + event Action IExplicitImplementationTests.E { add { } remove { } } + int IExplicitImplementationTests.this[int x] { get { return 0; } set { } } + } + + [TypeTest(C, typeof(Inner), typeof(int)), My] + public class ClassWithAttributesUsingNestedMembers + { + sealed class MyAttribute : Attribute { } + + const int C = 42; + class Inner + { + } + + [TypeTest(C, typeof(Inner), typeof(int)), My] + public int P { get; set; } + + [TypeTest(C, typeof(Inner), typeof(int)), My] + class AttributedInner + { + } + + [TypeTest(C, typeof(Inner), typeof(int)), My] + class AttributedInner2 + { + sealed class MyAttribute : Attribute { } + + const int C = 43; + class Inner { } + } + } + + public class ClassWithAttributeOnTypeParameter<[Double(2)] T> { } + + [Guid("790C6E0B-9194-4cc9-9426-A48A63185696"), InterfaceType(ComInterfaceType.InterfaceIsDual)] + [ComImport] + public interface IMarshalAsTests + { + [DispId(48)] + void AliasComponent([MarshalAs(UnmanagedType.BStr)] [In] string bstrSrcApplicationIDOrName, [MarshalAs(UnmanagedType.BStr)] [In] string bstrCLSIDOrProgID, [MarshalAs(UnmanagedType.BStr)] [In] string bstrDestApplicationIDOrName, [MarshalAs(UnmanagedType.BStr)] [In] string bstrNewProgId, [MarshalAs(UnmanagedType.BStr)] [In] string bstrNewClsid); + + [DispId(33)] + [return: MarshalAs(UnmanagedType.VariantBool)] + bool AreApplicationInstancesPaused([MarshalAs(UnmanagedType.LPStruct)] [In] object pVarApplicationInstanceID); + + [DispId(19)] + void BackupREGDB([MarshalAs(UnmanagedType.BStr)] [In] string bstrBackupFilePath); + + [DispId(2)] + [return: MarshalAs(UnmanagedType.Interface)] + object Connect([MarshalAs(UnmanagedType.BStr)] [In] string connectStr); + + [DispId(45)] + void CopyApplications([MarshalAs(UnmanagedType.BStr)] [In] string bstrSourcePartitionIDOrName, [MarshalAs(UnmanagedType.LPStruct)] [In] object pVarApplicationID, [MarshalAs(UnmanagedType.BStr)] [In] string bstrDestinationPartitionIDOrName); + + [DispId(46)] + void CopyComponents([MarshalAs(UnmanagedType.BStr)] [In] string bstrSourceApplicationIDOrName, [MarshalAs(UnmanagedType.LPStruct)] [In] object pVarCLSIDOrProgID, [MarshalAs(UnmanagedType.BStr)] [In] string bstrDestinationApplicationIDOrName); + + [DispId(36)] + void CreateServiceForApplication([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationIDOrName, [MarshalAs(UnmanagedType.BStr)] [In] string bstrServiceName, [MarshalAs(UnmanagedType.BStr)] [In] string bstrStartType, [MarshalAs(UnmanagedType.BStr)] [In] string bstrErrorControl, [MarshalAs(UnmanagedType.BStr)] [In] string bstrDependencies, [MarshalAs(UnmanagedType.BStr)] [In] string bstrRunAs, [MarshalAs(UnmanagedType.BStr)] [In] string bstrPassword, [MarshalAs(UnmanagedType.VariantBool)] [In] bool bDesktopOk); + + [DispId(40)] + void CurrentPartition([MarshalAs(UnmanagedType.BStr)] [In] string bstrPartitionIDOrName); + + [DispId(41)] + [return: MarshalAs(UnmanagedType.BStr)] + string CurrentPartitionID(); + + [DispId(42)] + [return: MarshalAs(UnmanagedType.BStr)] + string CurrentPartitionName(); + + [DispId(37)] + void DeleteServiceForApplication([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationIDOrName); + + [DispId(34)] + [return: MarshalAs(UnmanagedType.BStr)] + string DumpApplicationInstance([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationInstanceID, [MarshalAs(UnmanagedType.BStr)] [In] string bstrDirectory, [MarshalAs(UnmanagedType.I4)] [In] int lMaxImages); + + [DispId(9)] + void ExportApplication([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplIdOrName, [MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationFile, [In] int lOptions); + + [DispId(54)] + void ExportPartition([MarshalAs(UnmanagedType.BStr)] [In] string bstrPartitionIDOrName, [MarshalAs(UnmanagedType.BStr)] [In] string bstrPartitionFileName, [MarshalAs(UnmanagedType.I4)] [In] int lOptions); + + [DispId(44)] + void FlushPartitionCache(); + + [DispId(28)] + [return: MarshalAs(UnmanagedType.BStr)] + string GetApplicationInstanceIDFromProcessID([MarshalAs(UnmanagedType.I4)] [In] int lProcessID); + + [DispId(1)] + [return: MarshalAs(UnmanagedType.Interface)] + object GetCollection([MarshalAs(UnmanagedType.BStr)] [In] string bstrCollName); + + [DispId(5)] + [return: MarshalAs(UnmanagedType.Interface)] + object GetCollectionByQuery([MarshalAs(UnmanagedType.BStr)] [In] string collName, [MarshalAs(UnmanagedType.SafeArray)] [In] ref object[] aQuery); + + [DispId(27)] + [return: MarshalAs(UnmanagedType.Interface)] + object GetCollectionByQuery2([MarshalAs(UnmanagedType.BStr)] [In] string bstrCollectionName, [MarshalAs(UnmanagedType.LPStruct)] [In] object pVarQueryStrings); + + [DispId(57)] + [return: MarshalAs(UnmanagedType.I4)] + int GetComponentVersionCount([MarshalAs(UnmanagedType.BStr)] [In] string bstrCLSIDOrProgID); + + [DispId(26)] + void GetEventClassesForIID([In] string bstrIID, [MarshalAs(UnmanagedType.SafeArray)] [In] [Out] ref object[] varCLSIDS, [MarshalAs(UnmanagedType.SafeArray)] [In] [Out] ref object[] varProgIDs, [MarshalAs(UnmanagedType.SafeArray)] [In] [Out] ref object[] varDescriptions); + + [DispId(17)] + void GetMultipleComponentsInfo([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplIdOrName, [In] object varFileNames, [MarshalAs(UnmanagedType.SafeArray)] out object[] varCLSIDS, [MarshalAs(UnmanagedType.SafeArray)] out object[] varClassNames, [MarshalAs(UnmanagedType.SafeArray)] out object[] varFileFlags, [MarshalAs(UnmanagedType.SafeArray)] out object[] varComponentFlags); + + [DispId(38)] + [return: MarshalAs(UnmanagedType.BStr)] + string GetPartitionID([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationIDOrName); + + [DispId(39)] + [return: MarshalAs(UnmanagedType.BStr)] + string GetPartitionName([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationIDOrName); + + [DispId(43)] + [return: MarshalAs(UnmanagedType.BStr)] + string GlobalPartitionID(); + + [DispId(6)] + void ImportComponent([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplIdOrName, [MarshalAs(UnmanagedType.BStr)] [In] string bstrCLSIDOrProgId); + + [DispId(52)] + void ImportComponents([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationIDOrName, [MarshalAs(UnmanagedType.LPStruct)] [In] object pVarCLSIDOrProgID, [MarshalAs(UnmanagedType.LPStruct)] [In] object pVarComponentType); + + [DispId(50)] + void ImportUnconfiguredComponents([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationIDOrName, [MarshalAs(UnmanagedType.LPStruct)] [In] object pVarCLSIDOrProgID, [MarshalAs(UnmanagedType.LPStruct)] [In] object pVarComponentType); + + [DispId(10)] + void InstallApplication([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationFile, [MarshalAs(UnmanagedType.BStr)] [In] string bstrDestinationDirectory, [In] int lOptions, [MarshalAs(UnmanagedType.BStr)] [In] string bstrUserId, [MarshalAs(UnmanagedType.BStr)] [In] string bstrPassword, [MarshalAs(UnmanagedType.BStr)] [In] string bstrRSN); + + [DispId(7)] + void InstallComponent([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplIdOrName, [MarshalAs(UnmanagedType.BStr)] [In] string bstrDLL, [MarshalAs(UnmanagedType.BStr)] [In] string bstrTLB, [MarshalAs(UnmanagedType.BStr)] [In] string bstrPSDLL); + + [DispId(25)] + void InstallEventClass([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplIdOrName, [MarshalAs(UnmanagedType.BStr)] [In] string bstrDLL, [MarshalAs(UnmanagedType.BStr)] [In] string bstrTLB, [MarshalAs(UnmanagedType.BStr)] [In] string bstrPSDLL); + + [DispId(16)] + void InstallMultipleComponents([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplIdOrName, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] [In] ref object[] fileNames, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] [In] ref object[] CLSIDS); + + [DispId(24)] + void InstallMultipleEventClasses([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplIdOrName, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] [In] ref object[] fileNames, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] [In] ref object[] CLSIDS); + + [DispId(55)] + void InstallPartition([MarshalAs(UnmanagedType.BStr)] [In] string bstrFileName, [MarshalAs(UnmanagedType.BStr)] [In] string bstrDestDirectory, [MarshalAs(UnmanagedType.I4)] [In] int lOptions, [MarshalAs(UnmanagedType.BStr)] [In] string bstrUserID, [MarshalAs(UnmanagedType.BStr)] [In] string bstrPassword, [MarshalAs(UnmanagedType.BStr)] [In] string bstrRSN); + + [DispId(53)] + [return: MarshalAs(UnmanagedType.VariantBool)] + bool Is64BitCatalogServer(); + + [DispId(35)] + [return: MarshalAs(UnmanagedType.VariantBool)] + bool IsApplicationInstanceDumpSupported(); + + [DispId(49)] + [return: MarshalAs(UnmanagedType.Interface)] + object IsSafeToDelete([MarshalAs(UnmanagedType.BStr)] [In] string bstrDllName); + + [DispId(3)] + int MajorVersion(); + + [DispId(4)] + int MinorVersion(); + + [DispId(47)] + void MoveComponents([MarshalAs(UnmanagedType.BStr)] [In] string bstrSourceApplicationIDOrName, [MarshalAs(UnmanagedType.LPStruct)] [In] object pVarCLSIDOrProgID, [MarshalAs(UnmanagedType.BStr)] [In] string bstrDestinationApplicationIDOrName); + + [DispId(30)] + void PauseApplicationInstances([MarshalAs(UnmanagedType.LPStruct)] [In] object pVarApplicationInstanceID); + + [DispId(51)] + void PromoteUnconfiguredComponents([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationIDOrName, [MarshalAs(UnmanagedType.LPStruct)] [In] object pVarCLSIDOrProgID, [MarshalAs(UnmanagedType.LPStruct)] [In] object pVarComponentType); + + [DispId(21)] + void QueryApplicationFile([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationFile, [MarshalAs(UnmanagedType.BStr)] out string bstrApplicationName, [MarshalAs(UnmanagedType.BStr)] out string bstrApplicationDescription, [MarshalAs(UnmanagedType.VariantBool)] out bool bHasUsers, [MarshalAs(UnmanagedType.VariantBool)] out bool bIsProxy, [MarshalAs(UnmanagedType.SafeArray)] out object[] varFileNames); + + [DispId(56)] + [return: MarshalAs(UnmanagedType.IDispatch)] + object QueryApplicationFile2([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplicationFile); + + [DispId(32)] + void RecycleApplicationInstances([MarshalAs(UnmanagedType.LPStruct)] [In] object pVarApplicationInstanceID, [MarshalAs(UnmanagedType.I4)] [In] int lReasonCode); + + [DispId(18)] + void RefreshComponents(); + + [DispId(12)] + void RefreshRouter(); + + [DispId(14)] + void Reserved1(); + + [DispId(15)] + void Reserved2(); + + [DispId(20)] + void RestoreREGDB([MarshalAs(UnmanagedType.BStr)] [In] string bstrBackupFilePath); + + [DispId(31)] + void ResumeApplicationInstances([MarshalAs(UnmanagedType.LPStruct)] [In] object pVarApplicationInstanceID); + + [DispId(23)] + int ServiceCheck([In] int lService); + + [DispId(8)] + void ShutdownApplication([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplIdOrName); + + [DispId(29)] + void ShutdownApplicationInstances([MarshalAs(UnmanagedType.LPStruct)] [In] object pVarApplicationInstanceID); + + [DispId(22)] + void StartApplication([MarshalAs(UnmanagedType.BStr)] [In] string bstrApplIdOrName); + + [DispId(13)] + void StartRouter(); + + [DispId(11)] + void StopRouter(); + } +} diff --git a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs index adc19a08d..d5e141cd8 100644 --- a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs @@ -1311,7 +1311,7 @@ namespace ICSharpCode.Decompiler.CSharp // A = inputType.GetSize() // B = inputStackType.GetSize() // C = inst.TargetType.GetSize(). - // We know that C <= B (otherwise this wouldn't be the truncation case). + // We know that C < B (otherwise this wouldn't be the truncation case). // 1) If C < B < A, we just combine the two truncations into one. // 2) If C < B = A, there's no input conversion, just the truncation // 3) If C <= A < B, all the extended bits get removed again by the truncation. diff --git a/ICSharpCode.Decompiler/CSharp/Resolver/CSharpOperators.cs b/ICSharpCode.Decompiler/CSharp/Resolver/CSharpOperators.cs index ecc3d6f47..70b93a011 100644 --- a/ICSharpCode.Decompiler/CSharp/Resolver/CSharpOperators.cs +++ b/ICSharpCode.Decompiler/CSharp/Resolver/CSharpOperators.cs @@ -214,16 +214,6 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver get { return compilation.MainAssembly; } } - ISymbolReference ISymbol.ToReference() - { - throw new NotSupportedException(); - } - - IMemberReference IMember.ToReference() - { - throw new NotSupportedException(); - } - TypeParameterSubstitution IMember.Substitution { get { return TypeParameterSubstitution.Identity; diff --git a/ICSharpCode.Decompiler/CSharp/Resolver/ReducedExtensionMethod.cs b/ICSharpCode.Decompiler/CSharp/Resolver/ReducedExtensionMethod.cs index 95bb91b3f..b55d43dab 100644 --- a/ICSharpCode.Decompiler/CSharp/Resolver/ReducedExtensionMethod.cs +++ b/ICSharpCode.Decompiler/CSharp/Resolver/ReducedExtensionMethod.cs @@ -66,44 +66,6 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver } #region IMember implementation - - [Serializable] - public sealed class ReducedExtensionMethodMemberReference : IMemberReference - { - readonly IMethod baseMethod; - - public ReducedExtensionMethodMemberReference (IMethod baseMethod) - { - this.baseMethod = baseMethod; - } - - public IMember Resolve(ITypeResolveContext context) - { - return new ReducedExtensionMethod ((IMethod)baseMethod.ToReference ().Resolve (context)); - } - - ISymbol ISymbolReference.Resolve(ITypeResolveContext context) - { - return Resolve(context); - } - - public ITypeReference DeclaringTypeReference { - get { - return baseMethod.ToReference ().DeclaringTypeReference; - } - } - } - - public IMemberReference ToReference() - { - return new ReducedExtensionMethodMemberReference (baseMethod); - } - - ISymbolReference ISymbol.ToReference() - { - return ToReference(); - } - public IMember MemberDefinition { get { return baseMethod.MemberDefinition; diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs index e86971177..49c6372cf 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs @@ -549,26 +549,25 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax if (!UseSpecialConstants) { // +Infty, -Infty and NaN, cannot be represented in their encoded form. // Use an equivalent arithmetic expression instead. - var resolver = this.resolver ?? new CSharpResolver(type.GetDefinition().Compilation); if (info.Type == KnownTypeCode.Double) { switch ((double)constant) { case double.NegativeInfinity: // (-1.0 / 0.0) var left = new PrimitiveExpression(-1.0).WithoutILInstruction().WithRR(new ConstantResolveResult(type, -1.0)); var right = new PrimitiveExpression(0.0).WithoutILInstruction().WithRR(new ConstantResolveResult(type, 0.0)); expression = new BinaryOperatorExpression(left, BinaryOperatorType.Divide, right).WithoutILInstruction() - .WithRR(resolver.ResolveBinaryOperator(BinaryOperatorType.Divide, left.ResolveResult, right.ResolveResult)); + .WithRR(new ConstantResolveResult(type, double.NegativeInfinity)); return true; case double.PositiveInfinity: // (1.0 / 0.0) left = new PrimitiveExpression(1.0).WithoutILInstruction().WithRR(new ConstantResolveResult(type, 1.0)); right = new PrimitiveExpression(0.0).WithoutILInstruction().WithRR(new ConstantResolveResult(type, 0.0)); expression = new BinaryOperatorExpression(left, BinaryOperatorType.Divide, right).WithoutILInstruction() - .WithRR(resolver.ResolveBinaryOperator(BinaryOperatorType.Divide, left.ResolveResult, right.ResolveResult)); + .WithRR(new ConstantResolveResult(type, double.PositiveInfinity)); return true; case double.NaN: // (0.0 / 0.0) left = new PrimitiveExpression(0.0).WithoutILInstruction().WithRR(new ConstantResolveResult(type, 0.0)); right = new PrimitiveExpression(0.0).WithoutILInstruction().WithRR(new ConstantResolveResult(type, 0.0)); expression = new BinaryOperatorExpression(left, BinaryOperatorType.Divide, right).WithoutILInstruction() - .WithRR(resolver.ResolveBinaryOperator(BinaryOperatorType.Divide, left.ResolveResult, right.ResolveResult)); + .WithRR(new ConstantResolveResult(type, double.NaN)); return true; } } @@ -578,19 +577,19 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax var left = new PrimitiveExpression(-1.0f).WithoutILInstruction().WithRR(new ConstantResolveResult(type, -1.0f)); var right = new PrimitiveExpression(0.0f).WithoutILInstruction().WithRR(new ConstantResolveResult(type, 0.0f)); expression = new BinaryOperatorExpression(left, BinaryOperatorType.Divide, right).WithoutILInstruction() - .WithRR(resolver.ResolveBinaryOperator(BinaryOperatorType.Divide, left.ResolveResult, right.ResolveResult)); + .WithRR(new ConstantResolveResult(type, float.NegativeInfinity)); return true; case float.PositiveInfinity: // (1.0f / 0.0f) left = new PrimitiveExpression(1.0f).WithoutILInstruction().WithRR(new ConstantResolveResult(type, 1.0f)); right = new PrimitiveExpression(0.0f).WithoutILInstruction().WithRR(new ConstantResolveResult(type, 0.0f)); expression = new BinaryOperatorExpression(left, BinaryOperatorType.Divide, right).WithoutILInstruction() - .WithRR(resolver.ResolveBinaryOperator(BinaryOperatorType.Divide, left.ResolveResult, right.ResolveResult)); + .WithRR(new ConstantResolveResult(type, float.PositiveInfinity)); return true; case float.NaN: // (0.0f / 0.0f) left = new PrimitiveExpression(0.0f).WithoutILInstruction().WithRR(new ConstantResolveResult(type, 0.0f)); right = new PrimitiveExpression(0.0f).WithoutILInstruction().WithRR(new ConstantResolveResult(type, 0.0f)); expression = new BinaryOperatorExpression(left, BinaryOperatorType.Divide, right).WithoutILInstruction() - .WithRR(resolver.ResolveBinaryOperator(BinaryOperatorType.Divide, left.ResolveResult, right.ResolveResult)); + .WithRR(new ConstantResolveResult(type, float.NaN)); return true; } } diff --git a/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs b/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs index 429f9fc89..694fb6de5 100644 --- a/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs @@ -198,8 +198,8 @@ namespace ICSharpCode.Decompiler.CSharp } return this; } - if (targetType.Kind == TypeKind.Unknown) { - return this; // don't attempt to insert cast to '?' + if (targetType.Kind == TypeKind.Unknown || targetType.Kind == TypeKind.Void) { + return this; // don't attempt to insert cast to '?' or 'void' as these are not valid. } if (Expression is UnaryOperatorExpression uoe && uoe.Operator == UnaryOperatorType.NullConditional && targetType.IsReferenceType == true) { // "(T)(x?).AccessChain" is invalid, but "((T)x)?.AccessChain" is valid and equivalent diff --git a/ICSharpCode.Decompiler/CSharp/TypeSystem/ResolvedUsingScope.cs b/ICSharpCode.Decompiler/CSharp/TypeSystem/ResolvedUsingScope.cs index 707972dfa..0d70e8cc6 100644 --- a/ICSharpCode.Decompiler/CSharp/TypeSystem/ResolvedUsingScope.cs +++ b/ICSharpCode.Decompiler/CSharp/TypeSystem/ResolvedUsingScope.cs @@ -201,11 +201,6 @@ namespace ICSharpCode.Decompiler.CSharp.TypeSystem { return null; } - - public ISymbolReference ToReference() - { - return new MergedNamespaceReference(ExternAlias, ((INamespace)this).FullName); - } } } } diff --git a/ICSharpCode.Decompiler/Documentation/IdStringMemberReference.cs b/ICSharpCode.Decompiler/Documentation/IdStringMemberReference.cs index 4ca902a8f..b1eb9c6c0 100644 --- a/ICSharpCode.Decompiler/Documentation/IdStringMemberReference.cs +++ b/ICSharpCode.Decompiler/Documentation/IdStringMemberReference.cs @@ -68,10 +68,5 @@ namespace ICSharpCode.Decompiler.Documentation } return null; } - - ISymbol ISymbolReference.Resolve(ITypeResolveContext context) - { - return Resolve(context); - } } } diff --git a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj index acd1777b7..8f815392c 100644 --- a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj +++ b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj @@ -507,7 +507,6 @@ - @@ -523,7 +522,6 @@ - @@ -552,7 +550,6 @@ - diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/AwaitInCatchTransform.cs b/ICSharpCode.Decompiler/IL/ControlFlow/AwaitInCatchTransform.cs index 808df4464..b9efda882 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/AwaitInCatchTransform.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/AwaitInCatchTransform.cs @@ -139,8 +139,8 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow return false; if (!catchBlock.Instructions.Last().MatchBranch(out var jumpTableStartBlock)) return false; - if (catchBlock.Instructions.Count > 2) { - objectVariableStore = (StLoc)catchBlock.Instructions[catchBlock.Instructions.Count - 3]; + if (catchBlock.Instructions.Count > 2 && catchBlock.Instructions[catchBlock.Instructions.Count - 3] is StLoc stloc) { + objectVariableStore = stloc; } var identifierVariableAssignment = catchBlock.Instructions.SecondToLastOrDefault(); if (!identifierVariableAssignment.MatchStLoc(out identifierVariable, out var value) || !value.MatchLdcI4(out id)) @@ -221,17 +221,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow var tempStore = globalCopyVar.LoadInstructions[0].Parent as StLoc; if (tempStore == null || !MatchExceptionCaptureBlock(tempStore, out var exitOfFinally, out var afterFinally, out var blocksToRemove)) continue; - if (afterFinally.Instructions.Count < 2) - continue; - int offset = 0; - if (afterFinally.Instructions[0].MatchLdLoc(out var identifierVariable)) { - if (identifierVariable.LoadCount != 1 || identifierVariable.StoreCount != 1) - continue; - offset = 1; - } - if (!afterFinally.Instructions[offset].MatchStLoc(out var globalCopyVarSplitted, out var ldnull) || !ldnull.MatchLdNull()) - continue; - if (globalCopyVarSplitted.StoreCount != 1 || globalCopyVarSplitted.LoadCount != 0) + if (!MatchAfterFinallyBlock(ref afterFinally, blocksToRemove, out bool removeFirstInstructionInAfterFinally)) continue; var cfg = new ControlFlowGraph(container, context.CancellationToken); var exitOfFinallyNode = cfg.GetNode(exitOfFinally); @@ -269,9 +259,11 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow } var finallyContainer = new BlockContainer(); entryPointOfFinally.Remove(); - if (offset == 1) + if (removeFirstInstructionInAfterFinally) afterFinally.Instructions.RemoveAt(0); changedContainers.Add(container); + var outer = BlockContainer.FindClosestContainer(container.Parent); + if (outer != null) changedContainers.Add(outer); finallyContainer.Blocks.Add(entryPointOfFinally); exitOfFinally.Instructions.RemoveRange(tempStore.ChildIndex, 3); exitOfFinally.Instructions.Add(new Leave(finallyContainer)); @@ -366,5 +358,47 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow blocksToRemove.Add(captureBlock); return true; } + + static bool MatchAfterFinallyBlock(ref Block afterFinally, List blocksToRemove, out bool removeFirstInstructionInAfterFinally) + { + removeFirstInstructionInAfterFinally = false; + if (afterFinally.Instructions.Count < 2) + return false; + ILVariable globalCopyVarSplitted; + switch (afterFinally.Instructions[0]) { + case IfInstruction ifInst: + if (ifInst.Condition.MatchCompEquals(out var load, out var ldone) && ldone.MatchLdcI4(1) && load.MatchLdLoc(out var variable)) { + if (!ifInst.TrueInst.MatchBranch(out var targetBlock)) + return false; + blocksToRemove.Add(afterFinally); + afterFinally = targetBlock; + return true; + } else if (ifInst.Condition.MatchCompNotEquals(out load, out ldone) && ldone.MatchLdcI4(1) && load.MatchLdLoc(out variable)) { + if (!afterFinally.Instructions[1].MatchBranch(out var targetBlock)) + return false; + blocksToRemove.Add(afterFinally); + afterFinally = targetBlock; + return true; + } + return false; + case LdLoc ldLoc: + if (ldLoc.Variable.LoadCount != 1 || ldLoc.Variable.StoreCount != 1) + return false; + if (!afterFinally.Instructions[1].MatchStLoc(out globalCopyVarSplitted, out var ldnull) || !ldnull.MatchLdNull()) + return false; + removeFirstInstructionInAfterFinally = true; + break; + case StLoc stloc: + globalCopyVarSplitted = stloc.Variable; + if (!stloc.Value.MatchLdNull()) + return false; + break; + default: + return false; + } + if (globalCopyVarSplitted.StoreCount != 1 || globalCopyVarSplitted.LoadCount != 0) + return false; + return true; + } } } diff --git a/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs b/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs index 11da394b8..3451c2ec6 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs @@ -134,34 +134,35 @@ namespace ICSharpCode.Decompiler.IL.Transforms if (!IsDelegateConstruction(value)) return null; var targetMethod = ((IInstructionWithMethodOperand)value.Arguments[1]).Method; - if (IsAnonymousMethod(decompilationContext.CurrentTypeDefinition, targetMethod)) { - target = value.Arguments[0]; - var methodDefinition = (Mono.Cecil.MethodDefinition)context.TypeSystem.GetCecil(targetMethod); - var localTypeSystem = context.TypeSystem.GetSpecializingTypeSystem(targetMethod.Substitution); - var ilReader = new ILReader(localTypeSystem); - ilReader.UseDebugSymbols = context.Settings.UseDebugSymbols; - var function = ilReader.ReadIL(methodDefinition.Body, context.CancellationToken); - function.DelegateType = value.Method.DeclaringType; - function.CheckInvariant(ILPhase.Normal); - - var contextPrefix = targetMethod.Name; - foreach (ILVariable v in function.Variables.Where(v => v.Kind != VariableKind.Parameter)) { - v.Name = contextPrefix + v.Name; - } + if (!IsAnonymousMethod(decompilationContext.CurrentTypeDefinition, targetMethod)) + return null; + target = value.Arguments[0]; + var methodDefinition = (Mono.Cecil.MethodDefinition)context.TypeSystem.GetCecil(targetMethod); + if (methodDefinition == null) + return null; + var localTypeSystem = context.TypeSystem.GetSpecializingTypeSystem(targetMethod.Substitution); + var ilReader = new ILReader(localTypeSystem); + ilReader.UseDebugSymbols = context.Settings.UseDebugSymbols; + var function = ilReader.ReadIL(methodDefinition.Body, context.CancellationToken); + function.DelegateType = value.Method.DeclaringType; + function.CheckInvariant(ILPhase.Normal); - var nestedContext = new ILTransformContext(function, localTypeSystem, context.Settings) { - CancellationToken = context.CancellationToken, - DecompileRun = context.DecompileRun - }; - function.RunTransforms(CSharpDecompiler.GetILTransforms().TakeWhile(t => !(t is DelegateConstruction)), nestedContext); - function.AcceptVisitor(new ReplaceDelegateTargetVisitor(target, function.Variables.SingleOrDefault(v => v.Index == -1 && v.Kind == VariableKind.Parameter))); - // handle nested lambdas - ((IILTransform)new DelegateConstruction()).Run(function, nestedContext); - function.AddILRange(target.ILRange); - function.AddILRange(value.Arguments[1].ILRange); - return function; + var contextPrefix = targetMethod.Name; + foreach (ILVariable v in function.Variables.Where(v => v.Kind != VariableKind.Parameter)) { + v.Name = contextPrefix + v.Name; } - return null; + + var nestedContext = new ILTransformContext(function, localTypeSystem, context.Settings) { + CancellationToken = context.CancellationToken, + DecompileRun = context.DecompileRun + }; + function.RunTransforms(CSharpDecompiler.GetILTransforms().TakeWhile(t => !(t is DelegateConstruction)), nestedContext); + function.AcceptVisitor(new ReplaceDelegateTargetVisitor(target, function.Variables.SingleOrDefault(v => v.Index == -1 && v.Kind == VariableKind.Parameter))); + // handle nested lambdas + ((IILTransform)new DelegateConstruction()).Run(function, nestedContext); + function.AddILRange(target.ILRange); + function.AddILRange(value.Arguments[1].ILRange); + return function; } /// diff --git a/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs b/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs index 2649cf16b..6acfb731a 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs @@ -51,7 +51,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms bool modified = false; int i = 0; while (i < block.Instructions.Count) { - if (InlineOneIfPossible(block, i, aggressive: IsCatchWhenBlock(block), context: context)) { + if (InlineOneIfPossible(block, i, aggressive: IsCatchWhenBlock(block) || IsInConstructorInitializer(i, block), context: context)) { modified = true; i = Math.Max(0, i - 1); // Go back one step @@ -62,6 +62,23 @@ namespace ICSharpCode.Decompiler.IL.Transforms return modified; } + static bool IsInConstructorInitializer(int i, Block block) + { + var inst = block.Instructions[i]; + var topLevelBlock = inst.Ancestors.OfType().LastOrDefault(); + var function = topLevelBlock.Ancestors.OfType().FirstOrDefault(f => f.Parent == null); + if (topLevelBlock == null || function == null || !function.Method.IsConstructor) + return false; + var topLevelInst = inst.Ancestors.FirstOrDefault(instr => instr.Parent == topLevelBlock); + var ctorCall = function.Descendants.OfType().FirstOrDefault(call => !(call is NewObj) + && call.Method.IsConstructor + && call.Method.DeclaringType.IsReferenceType == true + && call.Parent is Block); + if (topLevelInst == null || ctorCall == null) + return false; + return topLevelInst.ILRange.InclusiveEnd < ctorCall.ILRange.Start; + } + static bool IsCatchWhenBlock(Block block) { var container = BlockContainer.FindClosestContainer(block); diff --git a/ICSharpCode.Decompiler/IL/Transforms/ProxyCallReplacer.cs b/ICSharpCode.Decompiler/IL/Transforms/ProxyCallReplacer.cs index 425c6eafb..74349e47c 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/ProxyCallReplacer.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/ProxyCallReplacer.cs @@ -1,4 +1,5 @@ -using System.Diagnostics; +using System; +using System.Diagnostics; using System.Linq; using System.Reflection.Metadata; using ICSharpCode.Decompiler.TypeSystem; @@ -91,5 +92,15 @@ namespace ICSharpCode.Decompiler.IL.Transforms } return false; } + + static bool IsDefinedInCurrentOrOuterClass(IMethod method, ITypeDefinition declaringTypeDefinition) + { + while (declaringTypeDefinition != null) { + if (method.DeclaringTypeDefinition == declaringTypeDefinition) + return true; + declaringTypeDefinition = declaringTypeDefinition.DeclaringTypeDefinition; + } + return false; + } } } diff --git a/ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs b/ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs index 7fd1219fe..c44f9a5a4 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs @@ -50,11 +50,11 @@ namespace ICSharpCode.Decompiler.IL.Transforms IType instType; switch (initInst) { case NewObj newObjInst: - if (newObjInst.ILStackWasEmpty && v.Kind == VariableKind.Local && !context.Function.Method.IsConstructor) { + if (newObjInst.ILStackWasEmpty && v.Kind == VariableKind.Local && !context.Function.Method.IsConstructor && !context.Function.Method.IsCompilerGeneratedOrIsInCompilerGeneratedClass()) { // on statement level (no other expressions on IL stack), // prefer to keep local variables (but not stack slots), // unless we are in a constructor (where inlining object initializers might be critical - // for the base ctor call) + // for the base ctor call) or a compiler-generated delegate method, which might be used in a query expression. return false; } // Do not try to transform display class usages or delegate construction. @@ -119,7 +119,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms switch (body.Instructions[i + pos]) { case CallInstruction call: if (!(call is CallVirt || call is Call)) continue; - var newCall = (CallInstruction)call.Clone(); + var newCall = call; var newTarget = newCall.Arguments[0]; foreach (var load in newTarget.Descendants.OfType()) if ((load is LdLoc || load is LdLoca) && load.Variable == v) @@ -127,14 +127,14 @@ namespace ICSharpCode.Decompiler.IL.Transforms initializerBlock.Instructions.Add(newCall); break; case StObj stObj: - var newStObj = (StObj)stObj.Clone(); + var newStObj = stObj; foreach (var load in newStObj.Target.Descendants.OfType()) if ((load is LdLoc || load is LdLoca) && load.Variable == v) load.Variable = finalSlot; initializerBlock.Instructions.Add(newStObj); break; case StLoc stLoc: - var newStLoc = (StLoc)stLoc.Clone(); + var newStLoc = stLoc; initializerBlock.Instructions.Add(newStLoc); break; } diff --git a/ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs b/ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs index 137e8a635..0dfe08e47 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs @@ -809,11 +809,12 @@ namespace ICSharpCode.Decompiler.IL.Transforms return (null, SpecialType.UnknownType); if (!MatchArgumentList(invocation.Arguments[1], out var arguments)) return (null, SpecialType.UnknownType); + ArrayType arrayType = new ArrayType(context.BlockContext.TypeSystem.Compilation, type); if (arguments.Count == 0) - return (null, SpecialType.UnknownType); + return (new NewArr(type, new LdcI4(0)), arrayType); var block = (Block)invocation.Arguments[1]; var function = lambdaStack.Peek(); - var variable = function.RegisterVariable(VariableKind.InitializerTarget, new ArrayType(context.BlockContext.TypeSystem.Compilation, type)); + var variable = function.RegisterVariable(VariableKind.InitializerTarget, arrayType); Block initializer = new Block(BlockKind.ArrayInitializer); int i = 0; initializer.Instructions.Add(new StLoc(variable, new NewArr(type, new LdcI4(arguments.Count)))); diff --git a/ICSharpCode.Decompiler/NRExtensions.cs b/ICSharpCode.Decompiler/NRExtensions.cs index 7e85f9b37..a2ff9ba22 100644 --- a/ICSharpCode.Decompiler/NRExtensions.cs +++ b/ICSharpCode.Decompiler/NRExtensions.cs @@ -68,7 +68,7 @@ namespace ICSharpCode.Decompiler public static bool HasGeneratedName(this IType type) { - return type.Name.StartsWith("<", StringComparison.Ordinal); + return type.Name.StartsWith("<", StringComparison.Ordinal) || type.Name.Contains("<"); } public static bool IsAnonymousType(this IType type) diff --git a/ICSharpCode.Decompiler/TypeSystem/CecilLoader.cs b/ICSharpCode.Decompiler/TypeSystem/CecilLoader.cs deleted file mode 100644 index fa6d3cd32..000000000 --- a/ICSharpCode.Decompiler/TypeSystem/CecilLoader.cs +++ /dev/null @@ -1,1704 +0,0 @@ -// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this -// software and associated documentation files (the "Software"), to deal in the Software -// without restriction, including without limitation the rights to use, copy, modify, merge, -// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons -// to whom the Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all copies or -// substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Reflection.Metadata; -using System.Reflection.PortableExecutable; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Threading; -using ICSharpCode.Decompiler.TypeSystem.Implementation; -using ICSharpCode.Decompiler.Util; - -using static ICSharpCode.Decompiler.Metadata.MetadataExtensions; - -namespace ICSharpCode.Decompiler.TypeSystem -{ - /// - /// Allows loading an IProjectContent from an already compiled assembly. - /// - /// Instance methods are not thread-safe; you need to create multiple instances of CecilLoader - /// if you want to load multiple project contents in parallel. - public sealed class MetadataLoader - { - #region Options - - /// - /// Specifies whether to include internal members. The default is false. - /// - public bool IncludeInternalMembers { get; set; } - - /// - /// Gets/Sets the cancellation token used by the assembly loader. - /// - public CancellationToken CancellationToken { get; set; } - - InterningProvider interningProvider = new SimpleInterningProvider(); - - /// - /// Gets/Sets the interning provider. - /// - public InterningProvider InterningProvider { - get { return interningProvider; } - set { - if (value == null) - throw new ArgumentNullException(); - interningProvider = value; - } - } - - /// - /// Specifies whether to use lazy loading. The default is false. - /// If this property is set to true, the CecilLoader will not copy all the relevant information - /// out of the Cecil object model, but will maintain references to the Cecil objects. - /// This speeds up the loading process and avoids loading unnecessary information, but it causes - /// the Cecil objects to stay in memory (which can significantly increase memory usage). - /// It also prevents serialization of the Cecil-loaded type system. - /// - /// - /// Because the type system can be used on multiple threads, but Cecil is not - /// thread-safe for concurrent read access, the CecilLoader will lock on the instance - /// for every delay-loading operation. - /// If you access the Cecil objects directly in your application, you may need to take the same lock. - /// - public bool LazyLoad { get; set; } - - /// - /// This delegate gets executed whenever an entity was loaded. - /// - /// - /// This callback may be to build a dictionary that maps between - /// entities and cecil objects. - /// Warning: if delay-loading is used and the type system is accessed by multiple threads, - /// the callback may be invoked concurrently on multiple threads. - /// - public Action OnEntityLoaded { get; set; } - - bool shortenInterfaceImplNames = true; - - /// - /// Specifies whether method names of explicit interface-implementations should be shortened. - /// - /// This is important when working with parser-initialized type-systems in order to be consistent. - public bool ShortenInterfaceImplNames { - get { - return shortenInterfaceImplNames; - } - set { - shortenInterfaceImplNames = value; - } - } - #endregion - - MetadataReader currentModule; - DefaultUnresolvedAssembly currentAssembly; - - /// - /// Initializes a new instance of the class. - /// - public MetadataLoader() - { - } - - /// - /// Creates a nested CecilLoader for lazy-loading. - /// - private MetadataLoader(MetadataLoader loader) - { - // use a shared typeSystemTranslationTable - this.IncludeInternalMembers = loader.IncludeInternalMembers; - this.LazyLoad = loader.LazyLoad; - this.OnEntityLoaded = loader.OnEntityLoaded; - this.ShortenInterfaceImplNames = loader.ShortenInterfaceImplNames; - this.currentModule = loader.currentModule; - this.currentAssembly = loader.currentAssembly; - // don't use interning - the interning provider is most likely not thread-safe - this.interningProvider = InterningProvider.Dummy; - // don't use cancellation for delay-loaded members - } - - #region Load From AssemblyDefinition - /// - /// Loads a module definition into a project content. - /// - /// Unresolved type system representing the assembly - public IUnresolvedAssembly LoadModule(MetadataReader module) - { - this.currentModule = module; - - // Read assembly and module attributes - IList assemblyAttributes = new List(); - IList moduleAttributes = new List(); - AssemblyDefinition assemblyDefinition = default(AssemblyDefinition); - if (currentModule.IsAssembly) { - AddAttributes(currentModule.GetAssemblyDefinition(), assemblyAttributes); - } - AddAttributes(Handle.ModuleDefinition, moduleAttributes); - - assemblyAttributes = interningProvider.InternList(assemblyAttributes); - moduleAttributes = interningProvider.InternList(moduleAttributes); - - this.currentAssembly = new DefaultUnresolvedAssembly(currentModule.IsAssembly ? currentModule.GetFullAssemblyName() : currentModule.GetString(currentModule.GetModuleDefinition().Name)); - currentAssembly.AssemblyAttributes.AddRange(assemblyAttributes); - currentAssembly.ModuleAttributes.AddRange(assemblyAttributes); - - // Register type forwarders: - foreach (ExportedTypeHandle t in currentModule.ExportedTypes) { - var type = currentModule.GetExportedType(t); - if (type.IsForwarder) { - throw new NotImplementedException();/* - switch (type.Implementation.Kind) { - case HandleKind.AssemblyFile: - throw new NotImplementedException(); // type is defined in another module. - case HandleKind.ExportedType: - - break; - case HandleKind.AssemblyReference: - break; - } - int typeParameterCount; - string ns = currentModule.GetString(type.Namespace); - string name = ReflectionHelper.SplitTypeParameterCountFromReflectionName(currentModule.GetString(type.Name), out typeParameterCount); - ns = interningProvider.Intern(ns); - name = interningProvider.Intern(name); - - var typeRef = new GetClassTypeReference(, ns, name, typeParameterCount); - typeRef = interningProvider.Intern(typeRef); - var key = new TopLevelTypeName(ns, name, typeParameterCount); - currentAssembly.AddTypeForwarder(key, typeRef);*/ - } - } - - // Create and register all types: - MetadataLoader cecilLoaderCloneForLazyLoading = LazyLoad ? new MetadataLoader(this) : null; - List cecilTypeDefs = new List(); - List typeDefs = new List(); - foreach (TypeDefinitionHandle h in module.TypeDefinitions) { - this.CancellationToken.ThrowIfCancellationRequested(); - var td = module.GetTypeDefinition(h); - if (this.IncludeInternalMembers || (td.Attributes & TypeAttributes.VisibilityMask) == TypeAttributes.Public) { - string name = module.GetString(td.Name); - if (name.Length == 0) - continue; - - if (this.LazyLoad) { - var t = new LazySRMTypeDefinition(cecilLoaderCloneForLazyLoading, module, h); - currentAssembly.AddTypeDefinition(t); - RegisterCecilObject(t, h); - } else { - var t = CreateTopLevelTypeDefinition(td); - cecilTypeDefs.Add(h); - typeDefs.Add(t); - currentAssembly.AddTypeDefinition(t); - // The registration will happen after the members are initialized - } - } - } - // Initialize the type's members: - for (int i = 0; i < typeDefs.Count; i++) { - InitTypeDefinition(cecilTypeDefs[i], typeDefs[i]); - } - - //AddToTypeSystemTranslationTable(this.currentAssembly, assemblyDefinition); - // Freezing the assembly here is important: - // otherwise it will be frozen when a compilation is first created - // from it. But freezing has the effect of changing some collection instances - // (to ReadOnlyCollection). This hidden mutation was causing a crash - // when the FastSerializer was saving the assembly at the same time as - // the first compilation was created from it. - // By freezing the assembly now, we ensure it is usable on multiple - // threads without issues. - currentAssembly.Freeze(); - - var result = this.currentAssembly; - this.currentAssembly = null; - this.currentModule = null; - return result; - } - - /// - /// Sets the current module. - /// This causes ReadTypeReference() to use for references - /// in that module. - /// - public void SetCurrentModule(MetadataReader module) - { - this.currentModule = module; - } - - /// - /// Loads a type from Cecil. - /// - /// The Cecil TypeDefinition. - /// ITypeDefinition representing the Cecil type. - public IUnresolvedTypeDefinition LoadType(TypeDefinitionHandle typeDefinition) - { - if (typeDefinition.IsNil) - throw new ArgumentNullException(nameof(typeDefinition)); - var td = CreateTopLevelTypeDefinition(currentModule.GetTypeDefinition(typeDefinition)); - InitTypeDefinition(typeDefinition, td); - return td; - } - #endregion - - #region Load Assembly From Disk - public IUnresolvedAssembly LoadAssemblyFile(string fileName) - { - if (fileName == null) - throw new ArgumentNullException(nameof(fileName)); - using (var module = new PEReader(new FileStream(fileName, FileMode.Open))) - return LoadModule(module.GetMetadataReader()); - } - #endregion - - #region Read Type Reference - /// - /// Reads a type reference. - /// - /// The Cecil type reference that should be converted into - /// a type system type reference. - /// Attributes associated with the Cecil type reference. - /// This is used to support the 'dynamic' type. - /// Whether this TypeReference is from a context where - /// IsValueType is set correctly. - public ITypeReference ReadTypeReference(EntityHandle type, CustomAttributeHandleCollection typeAttributes = default(CustomAttributeHandleCollection), bool isFromSignature = false) - { - int typeIndex = 0; - return CreateType(type, typeAttributes, ref typeIndex, isFromSignature); - } - - class DynamicTypeVisitor : TypeVisitor - { - public override IType VisitPointerType(PointerType type) - { - return base.VisitPointerType(type); - } - } - - ITypeReference CreateType(EntityHandle type, CustomAttributeHandleCollection typeAttributes, ref int typeIndex, bool isFromSignature) - { - ITypeReference CreateTypeReference(TypeReferenceHandle handle) - { - var t = currentModule.GetTypeReference(handle); - var asmref = handle.GetDeclaringAssembly(currentModule); - if (asmref.IsNil) - return new GetClassTypeReference(handle.GetFullTypeName(currentModule), DefaultAssemblyReference.CurrentAssembly); - var asm = currentModule.GetAssemblyReference(asmref); - return new GetClassTypeReference(handle.GetFullTypeName(currentModule), new DefaultAssemblyReference(currentModule.GetString(asm.Name))); - } - - switch (type.Kind) { - case HandleKind.TypeSpecification: - return new SignatureTypeReference((TypeSpecificationHandle)type, currentModule); - case HandleKind.TypeReference: - return CreateTypeReference((TypeReferenceHandle)type); - case HandleKind.TypeDefinition: - return new DefaultUnresolvedTypeDefinition(type.GetFullTypeName(currentModule).ReflectionName); - default: - throw new NotSupportedException(); - } - } - - sealed class TypeDefTokenTypeReference : ITypeReference - { - readonly EntityHandle token; - - public TypeDefTokenTypeReference(EntityHandle token) - { - if (token.Kind != HandleKind.TypeDefinition) - throw new ArgumentException(nameof(token), "must be TypeDef token"); - this.token = token; - } - - public IType Resolve(ITypeResolveContext context) - { - ITypeDefinition td = context.CurrentAssembly.ResolveTypeDefToken(token); - if (td != null) - return td; - return SpecialType.UnknownType; - } - } - #endregion - - #region Read Attributes - #region Assembly Attributes - static readonly ITypeReference assemblyVersionAttributeTypeRef = typeof(System.Reflection.AssemblyVersionAttribute).ToTypeReference(); - - void AddAttributes(AssemblyDefinition assembly, IList outputList) - { - AddCustomAttributes(currentModule.GetCustomAttributes((EntityHandle)Handle.AssemblyDefinition), outputList); - AddSecurityAttributes(assembly.GetDeclarativeSecurityAttributes(), outputList); - - // AssemblyVersionAttribute - if (assembly.Version != null) { - var assemblyVersion = new DefaultUnresolvedAttribute(assemblyVersionAttributeTypeRef, new[] { KnownTypeReference.String }); - assemblyVersion.PositionalArguments.Add(CreateSimpleConstantValue(KnownTypeReference.String, assembly.Version.ToString())); - outputList.Add(interningProvider.Intern(assemblyVersion)); - } - } - - IConstantValue CreateSimpleConstantValue(ITypeReference type, object value) - { - return interningProvider.Intern(new SimpleConstantValue(type, interningProvider.InternValue(value))); - } - #endregion - - #region Module Attributes - void AddAttributes(ModuleDefinitionHandle module, IList outputList) - { - AddCustomAttributes(currentModule.GetCustomAttributes(module), outputList); - } - #endregion - - #region Parameter Attributes - static readonly IUnresolvedAttribute inAttribute = new DefaultUnresolvedAttribute(typeof(InAttribute).ToTypeReference()); - static readonly IUnresolvedAttribute outAttribute = new DefaultUnresolvedAttribute(typeof(OutAttribute).ToTypeReference()); - - void AddAttributes(Parameter parameter, DefaultUnresolvedParameter targetParameter) - { - if (!targetParameter.IsOut) { - if ((parameter.Attributes & ParameterAttributes.In) == ParameterAttributes.In) - targetParameter.Attributes.Add(inAttribute); - if ((parameter.Attributes & ParameterAttributes.Out) == ParameterAttributes.Out) - targetParameter.Attributes.Add(outAttribute); - } - AddCustomAttributes(parameter.GetCustomAttributes(), targetParameter.Attributes); - AddMarshalInfo(parameter.GetMarshallingDescriptor(), targetParameter.Attributes); - } - #endregion - - #region Method Attributes - static readonly ITypeReference dllImportAttributeTypeRef = typeof(DllImportAttribute).ToTypeReference(); - static readonly SimpleConstantValue trueValue = new SimpleConstantValue(KnownTypeReference.Boolean, true); - static readonly SimpleConstantValue falseValue = new SimpleConstantValue(KnownTypeReference.Boolean, false); - static readonly ITypeReference callingConventionTypeRef = typeof(CallingConvention).ToTypeReference(); - static readonly IUnresolvedAttribute preserveSigAttribute = new DefaultUnresolvedAttribute(typeof(PreserveSigAttribute).ToTypeReference()); - static readonly ITypeReference methodImplAttributeTypeRef = typeof(MethodImplAttribute).ToTypeReference(); - static readonly ITypeReference methodImplOptionsTypeRef = typeof(MethodImplOptions).ToTypeReference(); - - bool HasAnyAttributes(MethodDefinition methodDefinition) - { - if ((methodDefinition.Attributes & MethodAttributes.PinvokeImpl) == MethodAttributes.PinvokeImpl) - return true; - if ((methodDefinition.ImplAttributes & ~MethodImplAttributes.CodeTypeMask) != 0) - return true; - if (methodDefinition.GetParameters().Count > 0) { - var retParam = currentModule.GetParameter(methodDefinition.GetParameters().First()); - - if (retParam.GetCustomAttributes().Count > 0) - return true; - if ((retParam.Attributes & ParameterAttributes.HasFieldMarshal) == ParameterAttributes.HasFieldMarshal) - return true; - } - return methodDefinition.GetCustomAttributes().Count > 0; - } - - void AddAttributes(MethodDefinition methodDefinition, IList attributes, IList returnTypeAttributes) - { - MethodImplAttributes implAttributes = methodDefinition.ImplAttributes & ~MethodImplAttributes.CodeTypeMask; - - #region DllImportAttribute - var info = methodDefinition.GetImport(); - if ((methodDefinition.Attributes & MethodAttributes.PinvokeImpl) == MethodAttributes.PinvokeImpl && !info.Module.IsNil) { - var dllImport = new DefaultUnresolvedAttribute(dllImportAttributeTypeRef, new[] { KnownTypeReference.String }); - dllImport.PositionalArguments.Add(CreateSimpleConstantValue(KnownTypeReference.String, currentModule.GetString(currentModule.GetModuleReference(info.Module).Name))); - - if ((info.Attributes & MethodImportAttributes.BestFitMappingDisable) == MethodImportAttributes.BestFitMappingDisable) - dllImport.AddNamedFieldArgument("BestFitMapping", falseValue); - if ((info.Attributes & MethodImportAttributes.BestFitMappingEnable) == MethodImportAttributes.BestFitMappingEnable) - dllImport.AddNamedFieldArgument("BestFitMapping", trueValue); - - CallingConvention callingConvention; - switch (info.Attributes & MethodImportAttributes.CallingConventionMask) { - case 0: - Debug.WriteLine ($"P/Invoke calling convention not set on: {methodDefinition.GetDeclaringType().GetFullTypeName(currentModule).ToString()}.{currentModule.GetString(methodDefinition.Name)}"); - callingConvention = 0; - break; - case MethodImportAttributes.CallingConventionCDecl: - callingConvention = CallingConvention.Cdecl; - break; - case MethodImportAttributes.CallingConventionFastCall: - callingConvention = CallingConvention.FastCall; - break; - case MethodImportAttributes.CallingConventionStdCall: - callingConvention = CallingConvention.StdCall; - break; - case MethodImportAttributes.CallingConventionThisCall: - callingConvention = CallingConvention.ThisCall; - break; - case MethodImportAttributes.CallingConventionWinApi: - callingConvention = CallingConvention.Winapi; - break; - default: - throw new NotSupportedException("unknown calling convention"); - } - if (callingConvention != CallingConvention.Winapi) - dllImport.AddNamedFieldArgument("CallingConvention", CreateSimpleConstantValue(callingConventionTypeRef, (int)callingConvention)); - - CharSet charSet = CharSet.None; - switch (info.Attributes & MethodImportAttributes.CharSetMask) { - case MethodImportAttributes.CharSetAnsi: - charSet = CharSet.Ansi; - break; - case MethodImportAttributes.CharSetAuto: - charSet = CharSet.Auto; - break; - case MethodImportAttributes.CharSetUnicode: - charSet = CharSet.Unicode; - break; - } - if (charSet != CharSet.None) - dllImport.AddNamedFieldArgument("CharSet", CreateSimpleConstantValue(charSetTypeRef, (int)charSet)); - - if (!info.Name.IsNil && info.Name != methodDefinition.Name) - dllImport.AddNamedFieldArgument("EntryPoint", CreateSimpleConstantValue(KnownTypeReference.String, currentModule.GetString(info.Name))); - - if ((info.Attributes & MethodImportAttributes.ExactSpelling) == MethodImportAttributes.ExactSpelling) - dllImport.AddNamedFieldArgument("ExactSpelling", trueValue); - - if ((implAttributes & MethodImplAttributes.PreserveSig) == MethodImplAttributes.PreserveSig) - implAttributes &= ~MethodImplAttributes.PreserveSig; - else - dllImport.AddNamedFieldArgument("PreserveSig", falseValue); - - if ((info.Attributes & MethodImportAttributes.SetLastError) == MethodImportAttributes.SetLastError) - dllImport.AddNamedFieldArgument("SetLastError", trueValue); - - if ((info.Attributes & MethodImportAttributes.ThrowOnUnmappableCharDisable) == MethodImportAttributes.ThrowOnUnmappableCharDisable) - dllImport.AddNamedFieldArgument("ThrowOnUnmappableChar", falseValue); - if ((info.Attributes & MethodImportAttributes.ThrowOnUnmappableCharEnable) == MethodImportAttributes.ThrowOnUnmappableCharEnable) - dllImport.AddNamedFieldArgument("ThrowOnUnmappableChar", trueValue); - - attributes.Add(interningProvider.Intern(dllImport)); - } - #endregion - - #region PreserveSigAttribute - if (implAttributes == MethodImplAttributes.PreserveSig) { - attributes.Add(preserveSigAttribute); - implAttributes = 0; - } - #endregion - - #region MethodImplAttribute - if (implAttributes != 0) { - var methodImpl = new DefaultUnresolvedAttribute(methodImplAttributeTypeRef, new[] { methodImplOptionsTypeRef }); - methodImpl.PositionalArguments.Add(CreateSimpleConstantValue(methodImplOptionsTypeRef, (int)implAttributes)); - attributes.Add(interningProvider.Intern(methodImpl)); - } - #endregion - - AddCustomAttributes(methodDefinition.GetCustomAttributes(), attributes); - AddSecurityAttributes(methodDefinition.GetDeclarativeSecurityAttributes(), attributes); - if (methodDefinition.GetParameters().Count > 0) { - var retParam = currentModule.GetParameter(methodDefinition.GetParameters().First()); - var marshallingDesc = retParam.GetMarshallingDescriptor(); - - if (!marshallingDesc.IsNil) { - returnTypeAttributes.Add(ConvertMarshalInfo(currentModule.GetBlobReader(marshallingDesc))); - } - - AddCustomAttributes(retParam.GetCustomAttributes(), returnTypeAttributes); - } - } - #endregion - - #region Type Attributes - static readonly DefaultUnresolvedAttribute serializableAttribute = new DefaultUnresolvedAttribute(typeof(SerializableAttribute).ToTypeReference()); - static readonly DefaultUnresolvedAttribute comImportAttribute = new DefaultUnresolvedAttribute(typeof(ComImportAttribute).ToTypeReference()); - static readonly ITypeReference structLayoutAttributeTypeRef = typeof(StructLayoutAttribute).ToTypeReference(); - static readonly ITypeReference layoutKindTypeRef = typeof(LayoutKind).ToTypeReference(); - static readonly ITypeReference charSetTypeRef = typeof(CharSet).ToTypeReference(); - - void AddAttributes(TypeDefinition typeDefinition, IUnresolvedTypeDefinition targetEntity) - { - // SerializableAttribute - if ((typeDefinition.Attributes & TypeAttributes.Serializable) != 0) - targetEntity.Attributes.Add(serializableAttribute); - - // ComImportAttribute - if ((typeDefinition.Attributes & TypeAttributes.Import) != 0) - targetEntity.Attributes.Add(comImportAttribute); - - #region StructLayoutAttribute - LayoutKind layoutKind = LayoutKind.Auto; - switch (typeDefinition.Attributes & TypeAttributes.LayoutMask) { - case TypeAttributes.SequentialLayout: - layoutKind = LayoutKind.Sequential; - break; - case TypeAttributes.ExplicitLayout: - layoutKind = LayoutKind.Explicit; - break; - } - CharSet charSet = CharSet.None; - switch (typeDefinition.Attributes & TypeAttributes.StringFormatMask) { - case TypeAttributes.AnsiClass: - charSet = CharSet.Ansi; - break; - case TypeAttributes.AutoClass: - charSet = CharSet.Auto; - break; - case TypeAttributes.UnicodeClass: - charSet = CharSet.Unicode; - break; - } - var layout = typeDefinition.GetLayout(); - LayoutKind defaultLayoutKind = (typeDefinition.IsValueType(currentModule) && !typeDefinition.IsEnum(currentModule)) ? LayoutKind.Sequential : LayoutKind.Auto; - if (layoutKind != defaultLayoutKind || charSet != CharSet.Ansi || layout.PackingSize > 0 || layout.Size > 0) { - DefaultUnresolvedAttribute structLayout = new DefaultUnresolvedAttribute(structLayoutAttributeTypeRef, new[] { layoutKindTypeRef }); - structLayout.PositionalArguments.Add(CreateSimpleConstantValue(layoutKindTypeRef, (int)layoutKind)); - if (charSet != CharSet.Ansi) { - structLayout.AddNamedFieldArgument("CharSet", CreateSimpleConstantValue(charSetTypeRef, (int)charSet)); - } - if (layout.PackingSize > 0) { - structLayout.AddNamedFieldArgument("Pack", CreateSimpleConstantValue(KnownTypeReference.Int32, (int)layout.PackingSize)); - } - if (layout.Size > 0) { - structLayout.AddNamedFieldArgument("Size", CreateSimpleConstantValue(KnownTypeReference.Int32, (int)layout.Size)); - } - targetEntity.Attributes.Add(interningProvider.Intern(structLayout)); - } - #endregion - - AddCustomAttributes(typeDefinition.GetCustomAttributes(), targetEntity.Attributes); - AddSecurityAttributes(typeDefinition.GetDeclarativeSecurityAttributes(), targetEntity.Attributes); - } - #endregion - - #region Field Attributes - static readonly ITypeReference fieldOffsetAttributeTypeRef = typeof(FieldOffsetAttribute).ToTypeReference(); - static readonly IUnresolvedAttribute nonSerializedAttribute = new DefaultUnresolvedAttribute(typeof(NonSerializedAttribute).ToTypeReference()); - - void AddAttributes(FieldDefinition fieldDefinition, IUnresolvedEntity targetEntity) - { - // FieldOffsetAttribute - int offset = fieldDefinition.GetOffset(); - if (offset != -1) { - DefaultUnresolvedAttribute fieldOffset = new DefaultUnresolvedAttribute(fieldOffsetAttributeTypeRef, new[] { KnownTypeReference.Int32 }); - fieldOffset.PositionalArguments.Add(CreateSimpleConstantValue(KnownTypeReference.Int32, offset)); - targetEntity.Attributes.Add(interningProvider.Intern(fieldOffset)); - } - - // NonSerializedAttribute - if ((fieldDefinition.Attributes & FieldAttributes.NotSerialized) != 0) { - targetEntity.Attributes.Add(nonSerializedAttribute); - } - AddMarshalInfo(fieldDefinition.GetMarshallingDescriptor(), targetEntity.Attributes); - AddCustomAttributes(fieldDefinition.GetCustomAttributes(), targetEntity.Attributes); - } - #endregion - - #region Event Attributes - void AddAttributes(EventDefinition eventDefinition, IUnresolvedEntity targetEntity) - { - AddCustomAttributes(eventDefinition.GetCustomAttributes(), targetEntity.Attributes); - } - #endregion - - #region Property Attributes - void AddAttributes(PropertyDefinition propertyDefinition, IUnresolvedEntity targetEntity) - { - AddCustomAttributes(propertyDefinition.GetCustomAttributes(), targetEntity.Attributes); - } - #endregion - - #region Type Parameter Attributes - void AddAttributes(GenericParameter genericParameter, IUnresolvedTypeParameter targetTP) - { - AddCustomAttributes(genericParameter.GetCustomAttributes(), targetTP.Attributes); - } - #endregion - - #region MarshalAsAttribute (ConvertMarshalInfo) - static readonly ITypeReference marshalAsAttributeTypeRef = typeof(MarshalAsAttribute).ToTypeReference(); - static readonly ITypeReference unmanagedTypeTypeRef = typeof(UnmanagedType).ToTypeReference(); - - void AddMarshalInfo(BlobHandle marshalInfo, IList target) - { - if (marshalInfo.IsNil) return; - - } - - IUnresolvedAttribute ConvertMarshalInfo(System.Reflection.Metadata.BlobReader marshalInfo) - { - int type = marshalInfo.ReadByte(); - DefaultUnresolvedAttribute attr = new DefaultUnresolvedAttribute(marshalAsAttributeTypeRef, new[] { unmanagedTypeTypeRef }); - attr.PositionalArguments.Add(CreateSimpleConstantValue(unmanagedTypeTypeRef, type)); - - int size; - switch (type) { - case 0x1e: // FixedArray - if (!marshalInfo.TryReadCompressedInteger(out size)) - size = 0; - type = marshalInfo.ReadByte(); - if (type != 0x66) // None - attr.AddNamedFieldArgument("ArraySubType", CreateSimpleConstantValue(unmanagedTypeTypeRef, type)); - break; - case 0x1d: // SafeArray - VarEnum varType = (VarEnum)marshalInfo.ReadByte(); - if (varType != VarEnum.VT_EMPTY) - attr.AddNamedFieldArgument("SafeArraySubType", CreateSimpleConstantValue(typeof(VarEnum).ToTypeReference(), (int)varType)); - break; - case 0x2a: // NATIVE_TYPE_ARRAY - if (marshalInfo.RemainingBytes > 0) { - type = marshalInfo.ReadByte(); - } else { - type = 0x66; // Cecil uses NativeType.None as default. - } - if (type != 0x50) // Max - attr.AddNamedFieldArgument("ArraySubType", CreateSimpleConstantValue(unmanagedTypeTypeRef, type)); - int sizeParameterIndex = marshalInfo.TryReadCompressedInteger(out int value) ? value : -1; - size = marshalInfo.TryReadCompressedInteger(out value) ? value : -1; - int sizeParameterMultiplier = marshalInfo.TryReadCompressedInteger(out value) ? value : -1; - if (size >= 0) - attr.AddNamedFieldArgument("SizeConst", CreateSimpleConstantValue(KnownTypeReference.Int32, size)); - if (sizeParameterMultiplier != 0 && sizeParameterIndex >= 0) - attr.AddNamedFieldArgument("SizeParamIndex", CreateSimpleConstantValue(KnownTypeReference.Int16, (short)sizeParameterIndex)); - break; - case 0x2c: // CustomMarshaler - string guidValue = marshalInfo.ReadSerializedString(); - string unmanagedType = marshalInfo.ReadSerializedString(); - string managedType = marshalInfo.ReadSerializedString(); - string cookie = marshalInfo.ReadSerializedString(); - if (managedType != null) - attr.AddNamedFieldArgument("MarshalType", CreateSimpleConstantValue(KnownTypeReference.String, managedType)); - if (!string.IsNullOrEmpty(cookie)) - attr.AddNamedFieldArgument("MarshalCookie", CreateSimpleConstantValue(KnownTypeReference.String, cookie)); - break; - case 0x17: // FixedSysString - attr.AddNamedFieldArgument("SizeConst", CreateSimpleConstantValue(KnownTypeReference.Int32, marshalInfo.ReadCompressedInteger())); - break; - } - - return InterningProvider.Intern(attr); - } - #endregion - - #region Custom Attributes (ReadAttribute) - void AddCustomAttributes(CustomAttributeHandleCollection attributes, IList targetCollection) - { - foreach (var handle in attributes) { - var attribute = currentModule.GetCustomAttribute(handle); - var typeHandle = attribute.GetAttributeType(currentModule); - switch (typeHandle.GetFullTypeName(currentModule).ReflectionName) { - case "System.Runtime.CompilerServices.DynamicAttribute": - case "System.Runtime.CompilerServices.ExtensionAttribute": - case "System.Runtime.CompilerServices.DecimalConstantAttribute": - case "System.ParamArrayAttribute": - continue; - } - targetCollection.Add(ReadAttribute(attribute)); - } - } - - public IUnresolvedAttribute ReadAttribute(CustomAttribute attribute) - { - ITypeReference attributeType = ReadTypeReference(attribute.GetAttributeType(currentModule)); - return interningProvider.Intern(new MetadataUnresolvedAttributeBlob(currentModule, attributeType, attribute)); - } - #endregion - - #region Security Attributes - /// - /// Reads a security declaration. - /// - public IList ReadSecurityDeclaration(DeclarativeSecurityAttributeHandleCollection secDecl) - { - var result = new List(); - AddSecurityAttributes(secDecl, result); - return result; - } - - void AddSecurityAttributes(DeclarativeSecurityAttributeHandleCollection securityDeclarations, IList targetCollection) - { - foreach (var secDecl in securityDeclarations) { - if (secDecl.IsNil) continue; - AddSecurityAttributes(currentModule.GetDeclarativeSecurityAttribute(secDecl), targetCollection); - } - } - - void AddSecurityAttributes(DeclarativeSecurityAttribute secDecl, IList targetCollection) - { - var blob = currentModule.GetBlobBytes(secDecl.PermissionSet); - var blobSecDecl = new UnresolvedSecurityDeclarationBlob((int)secDecl.Action, blob); - targetCollection.AddRange(blobSecDecl.UnresolvedAttributes); - } - #endregion - #endregion - - #region Read Type Definition - DefaultUnresolvedTypeDefinition CreateTopLevelTypeDefinition(TypeDefinition typeDefinition) - { - string name = ReflectionHelper.SplitTypeParameterCountFromReflectionName(currentModule.GetString(typeDefinition.Name)); - var td = new DefaultUnresolvedTypeDefinition(currentModule.GetString(typeDefinition.Namespace), name); - //td.MetadataToken = ... - InitTypeParameters(currentModule, typeDefinition, td.TypeParameters); - return td; - } - - static void InitTypeParameters(MetadataReader currentModule, TypeDefinition typeDefinition, IList typeParameters) - { - // Type parameters are initialized within the constructor so that the class can be put into the type storage - // before the rest of the initialization runs - this allows it to be available for early binding as soon as possible. - var genericParams = typeDefinition.GetGenericParameters(); - for (int i = 0; i < genericParams.Count; i++) { - var gp = currentModule.GetGenericParameter(genericParams[i]); - if (gp.Index != i) - throw new InvalidOperationException("g.Position != i"); - typeParameters.Add(new DefaultUnresolvedTypeParameter( - SymbolKind.TypeDefinition, i, currentModule.GetString(gp.Name))); - } - } - - void InitTypeParameterConstraints(TypeDefinition typeDefinition, IList typeParameters) - { - var genericParams = typeDefinition.GetGenericParameters().ToArray(); - for (int i = 0; i < typeParameters.Count; i++) { - var tp = (DefaultUnresolvedTypeParameter)typeParameters[i]; - var gp = currentModule.GetGenericParameter(genericParams[i]); - AddConstraints(tp, gp); - AddAttributes(gp, tp); - tp.ApplyInterningProvider(interningProvider); - } - } - - void InitTypeDefinition(TypeDefinitionHandle handle, DefaultUnresolvedTypeDefinition td) - { - var typeDefinition = currentModule.GetTypeDefinition(handle); - td.Kind = GetTypeKind(currentModule, typeDefinition); - InitTypeModifiers(typeDefinition, td); - InitTypeParameterConstraints(typeDefinition, td.TypeParameters); - - // nested types can be initialized only after generic parameters were created - InitNestedTypes(handle, td, td.NestedTypes); - AddAttributes(typeDefinition, td); - td.HasExtensionMethods = HasExtensionAttribute(currentModule, typeDefinition.GetCustomAttributes()); - - InitBaseTypes(handle, td.BaseTypes); - - td.AddDefaultConstructorIfRequired = (td.Kind == TypeKind.Struct || td.Kind == TypeKind.Enum); - InitMembers(typeDefinition, td, td.Members); - td.ApplyInterningProvider(interningProvider); - td.Freeze(); - RegisterCecilObject(td, handle); - } - - void InitBaseTypes(TypeDefinitionHandle handle, IList baseTypes) - { - var typeDefinition = currentModule.GetTypeDefinition(handle); - // set base classes - if (typeDefinition.IsEnum(currentModule)) { - foreach (FieldDefinitionHandle h in typeDefinition.GetFields()) { - var enumField = currentModule.GetFieldDefinition(h); - if ((enumField.Attributes & FieldAttributes.Static) == 0) { - baseTypes.Add(enumField.DecodeSignature(new TypeReferenceSignatureDecoder(), default(Unit))); - break; - } - } - } else { - if (typeDefinition.BaseType != null) { - baseTypes.Add(ReadTypeReference(typeDefinition.BaseType)); - } - foreach (var h in typeDefinition.GetInterfaceImplementations()) { - var iface = currentModule.GetInterfaceImplementation(h); - baseTypes.Add(ReadTypeReference(iface.Interface, iface.GetCustomAttributes())); - } - } - } - - void InitNestedTypes(TypeDefinitionHandle typeDefinitionHandle, IUnresolvedTypeDefinition declaringTypeDefinition, IList nestedTypes) - { - var typeDefinition = currentModule.GetTypeDefinition(typeDefinitionHandle); - foreach (TypeDefinitionHandle h in typeDefinition.GetNestedTypes()) { - var nestedTypeDef = currentModule.GetTypeDefinition(h); - TypeAttributes visibility = nestedTypeDef.Attributes & TypeAttributes.VisibilityMask; - if (this.IncludeInternalMembers - || visibility == TypeAttributes.NestedPublic - || visibility == TypeAttributes.NestedFamily - || visibility == TypeAttributes.NestedFamORAssem) - { - string name = currentModule.GetString(nestedTypeDef.Name); - int pos = name.LastIndexOf('/'); - if (pos > 0) - name = name.Substring(pos + 1); - name = ReflectionHelper.SplitTypeParameterCountFromReflectionName(name); - var nestedType = new DefaultUnresolvedTypeDefinition(declaringTypeDefinition, name); - nestedType.MetadataToken = h; - InitTypeParameters(currentModule, nestedTypeDef, nestedType.TypeParameters); - nestedTypes.Add(nestedType); - InitTypeDefinition(h, nestedType); - } - } - } - - static TypeKind GetTypeKind(MetadataReader module, TypeDefinition typeDefinition) - { - // set classtype - if ((typeDefinition.Attributes & TypeAttributes.ClassSemanticsMask) == TypeAttributes.Interface) { - return TypeKind.Interface; - } else if (typeDefinition.IsEnum(module)) { - return TypeKind.Enum; - } else if (typeDefinition.IsValueType(module)) { - return TypeKind.Struct; - } else if (IsDelegate(module, typeDefinition)) { - return TypeKind.Delegate; - } else if (IsModule(module, typeDefinition)) { - return TypeKind.Module; - } else { - return TypeKind.Class; - } - } - - static void InitTypeModifiers(TypeDefinition typeDefinition, AbstractUnresolvedEntity td) - { - td.IsSealed = (typeDefinition.Attributes & TypeAttributes.Sealed) == TypeAttributes.Sealed; - td.IsAbstract = (typeDefinition.Attributes & TypeAttributes.Abstract) == TypeAttributes.Abstract; - switch (typeDefinition.Attributes & TypeAttributes.VisibilityMask) { - case TypeAttributes.NotPublic: - case TypeAttributes.NestedAssembly: - td.Accessibility = Accessibility.Internal; - break; - case TypeAttributes.Public: - case TypeAttributes.NestedPublic: - td.Accessibility = Accessibility.Public; - break; - case TypeAttributes.NestedPrivate: - td.Accessibility = Accessibility.Private; - break; - case TypeAttributes.NestedFamily: - td.Accessibility = Accessibility.Protected; - break; - case TypeAttributes.NestedFamANDAssem: - td.Accessibility = Accessibility.ProtectedAndInternal; - break; - case TypeAttributes.NestedFamORAssem: - td.Accessibility = Accessibility.ProtectedOrInternal; - break; - } - } - - static bool IsDelegate(MetadataReader currentModule, TypeDefinition type) - { - if (type.BaseType != null) { - var baseTypeName = type.BaseType.GetFullTypeName(currentModule).ToString(); - if (baseTypeName == "System.MulticastDelegate") - return true; - var thisTypeName = type.GetFullTypeName(currentModule).ToString(); - if (baseTypeName == "Delegate" && thisTypeName != "System.MulticastDelegate") - return true; - } - return false; - } - - static bool IsModule(MetadataReader reader, TypeDefinition type) - { - foreach (var h in type.GetCustomAttributes()) { - var attType = reader.GetCustomAttribute(h).GetAttributeType(reader).GetFullTypeName(reader); - if (attType.ToString() == "Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute" - || attType.ToString() == "System.Runtime.CompilerServices.CompilerGlobalScopeAttribute") - { - return true; - } - } - return false; - } - - void InitMembers(TypeDefinition typeDefinition, IUnresolvedTypeDefinition td, IList members) - { - foreach (MethodDefinitionHandle h in typeDefinition.GetMethods()) { - var method = currentModule.GetMethodDefinition(h); - /*if (IsVisible(method.Attributes) && !IsAccessor(h.GetMethodSemanticsAttributes(currentModule))) { - SymbolKind type = SymbolKind.Method; - if ((method.Attributes & MethodAttributes.SpecialName) != 0) { - if (method.IsConstructor(currentModule)) - type = SymbolKind.Constructor; - else if (currentModule.GetString(method.Name).StartsWith("op_", StringComparison.Ordinal)) - type = SymbolKind.Operator; - } - members.Add(ReadMethod(h, td, type)); - }*/ - } - foreach (FieldDefinitionHandle h in typeDefinition.GetFields()) { - var field = currentModule.GetFieldDefinition(h); - if (IsVisible(field.Attributes) && (field.Attributes & FieldAttributes.SpecialName) != 0) { - members.Add(ReadField(h, td)); - } - } - string defaultMemberName = GetDefaultMemberName(currentModule, typeDefinition); - foreach (PropertyDefinitionHandle handle in typeDefinition.GetProperties()) { - var property = currentModule.GetPropertyDefinition(handle); - bool getterVisible = !property.GetAccessors().Getter.IsNil && IsVisible(currentModule.GetMethodDefinition(property.GetAccessors().Getter).Attributes); - bool setterVisible = !property.GetAccessors().Setter.IsNil && IsVisible(currentModule.GetMethodDefinition(property.GetAccessors().Setter).Attributes); - if (getterVisible || setterVisible) { - var accessor = property.GetAccessors().Getter.IsNil ? property.GetAccessors().Setter : property.GetAccessors().Getter; - SymbolKind type = SymbolKind.Property; - if (handle.HasParameters(currentModule)) { - // Try to detect indexer: - if (currentModule.GetString(property.Name) == defaultMemberName) { - type = SymbolKind.Indexer; // normal indexer - } else if (currentModule.GetString(property.Name).EndsWith(".Item", StringComparison.Ordinal) && accessor.HasOverrides(currentModule)) { - // explicit interface implementation of indexer - type = SymbolKind.Indexer; - // We can't really tell parameterized properties and indexers apart in this case without - // resolving the interface, so we rely on the "Item" naming convention instead. - } - } - members.Add(ReadProperty(handle, td, type)); - } - } - foreach (EventDefinitionHandle h in typeDefinition.GetEvents()) { - var ev = currentModule.GetEventDefinition(h); - if (ev.GetAccessors().Adder.IsNil) continue; - var addMethod = currentModule.GetMethodDefinition(ev.GetAccessors().Adder); - if (IsVisible(addMethod.Attributes)) { - members.Add(ReadEvent(h, td)); - } - } - } - - static string GetDefaultMemberName(MetadataReader reader, TypeDefinition typeDefinition) - { - foreach (var h in typeDefinition.GetCustomAttributes()) { - var a = reader.GetCustomAttribute(h); - var type = a.GetAttributeType(reader).GetFullTypeName(reader); - if (type.ToString() != typeof(System.Reflection.DefaultMemberAttribute).FullName) - continue; - var value = a.DecodeValue(new TypeSystemAttributeTypeProvider(minimalCorlibContext)); - if (value.FixedArguments.Length == 1 && value.FixedArguments[0].Value is string name) - return name; - } - return null; - } - - static bool IsAccessor(MethodSemanticsAttributes semantics) - { - return semantics != MethodSemanticsAttributes.Other; - } - #endregion - - #region Lazy-Loaded Type Definition - sealed class LazySRMTypeDefinition : AbstractUnresolvedEntity, IUnresolvedTypeDefinition - { - // loader + cecilTypeDef, used for lazy-loading; and set to null after lazy loading is complete - readonly MetadataLoader loader; - readonly MetadataReader module; - - readonly string namespaceName; - readonly TypeKind kind; - readonly IList typeParameters; - - // lazy-loaded fields - IList baseTypes; - IList nestedTypes; - IList members; - - public LazySRMTypeDefinition(MetadataLoader loader, MetadataReader module, TypeDefinitionHandle typeDefinition) - { - this.loader = loader; - this.MetadataToken = typeDefinition; - this.SymbolKind = SymbolKind.TypeDefinition; - var td = module.GetTypeDefinition(typeDefinition); - this.namespaceName = module.GetString(td.Namespace); - this.Name = ReflectionHelper.SplitTypeParameterCountFromReflectionName(module.GetString(td.Name)); - var tps = new List(); - InitTypeParameters(module, td, tps); - this.typeParameters = FreezableHelper.FreezeList(tps); - - this.kind = GetTypeKind(module, td); - InitTypeModifiers(td, this); - loader.InitTypeParameterConstraints(td, typeParameters); - - loader.AddAttributes(td, this); - flags[FlagHasExtensionMethods] = HasExtensionAttribute(module, td.GetCustomAttributes()); - - this.ApplyInterningProvider(loader.interningProvider); - this.Freeze(); - } - - public override string Namespace { - get { return namespaceName; } - set { throw new NotSupportedException(); } - } - - public override string ReflectionName { - get { return this.FullTypeName.ReflectionName; } - } - - public FullTypeName FullTypeName { - get { - return new TopLevelTypeName(namespaceName, this.Name, typeParameters.Count); - } - } - - public TypeKind Kind { - get { return kind; } - } - - public IList TypeParameters { - get { return typeParameters; } - } - - public IList BaseTypes { - get { - var result = LazyInit.VolatileRead(ref this.baseTypes); - if (result != null) { - return result; - } else { - return LazyInit.GetOrSet(ref this.baseTypes, TryInitBaseTypes()); - } - } - } - - IList TryInitBaseTypes() - { - lock (loader.currentModule) { - var result = new List(); - loader.InitBaseTypes((TypeDefinitionHandle)MetadataToken, result); - return FreezableHelper.FreezeList(result); - } - } - - public IList NestedTypes { - get { - var result = LazyInit.VolatileRead(ref this.nestedTypes); - if (result != null) { - return result; - } else { - return LazyInit.GetOrSet(ref this.nestedTypes, TryInitNestedTypes()); - } - } - } - - IList TryInitNestedTypes() - { - lock (loader.currentModule) { - var result = new List(); - loader.InitNestedTypes((TypeDefinitionHandle)MetadataToken, this, result); - return FreezableHelper.FreezeList(result); - } - } - - public IList Members { - get { - var result = LazyInit.VolatileRead(ref this.members); - if (result != null) { - return result; - } else { - return LazyInit.GetOrSet(ref this.members, TryInitMembers()); - } - } - } - - IList TryInitMembers() - { - lock (loader.currentModule) { - if (this.members != null) - return this.members; - var result = new List(); - var td = module.GetTypeDefinition((TypeDefinitionHandle)MetadataToken); - loader.InitMembers(td, this, result); - return FreezableHelper.FreezeList(result); - } - } - - public IEnumerable Methods { - get { return Members.OfType(); } - } - - public IEnumerable Properties { - get { return Members.OfType(); } - } - - public IEnumerable Fields { - get { return Members.OfType(); } - } - - public IEnumerable Events { - get { return Members.OfType(); } - } - - public bool AddDefaultConstructorIfRequired { - get { return kind == TypeKind.Struct || kind == TypeKind.Enum; } - } - - public bool? HasExtensionMethods { - get { return flags[FlagHasExtensionMethods]; } - // we always return true or false, never null. - // FlagHasNoExtensionMethods is unused in LazyCecilTypeDefinition - } - - public bool IsPartial { - get { return false; } - } - - public override object Clone() - { - throw new NotSupportedException(); - } - - public IType Resolve(ITypeResolveContext context) - { - if (context == null) - throw new ArgumentNullException("context"); - if (context.CurrentAssembly == null) - throw new ArgumentException("An ITypeDefinition cannot be resolved in a context without a current assembly."); - return context.CurrentAssembly.GetTypeDefinition(this.FullTypeName) - ?? (IType)new UnknownType(this.Namespace, this.Name, this.TypeParameters.Count); - } - - public ITypeResolveContext CreateResolveContext(ITypeResolveContext parentContext) - { - return parentContext; - } - } - #endregion - - #region Read Method - public IUnresolvedMethod ReadMethod(MethodDefinitionHandle method, IUnresolvedTypeDefinition parentType, SymbolKind methodType = SymbolKind.Method) - { - return ReadMethod(method, parentType, methodType, null); - } - - IUnresolvedMethod ReadMethod(MethodDefinitionHandle handle, IUnresolvedTypeDefinition parentType, SymbolKind methodType, IUnresolvedMember accessorOwner) - { - if (handle.IsNil) - return null; - var method = currentModule.GetMethodDefinition(handle); - DefaultUnresolvedMethod m = new DefaultUnresolvedMethod(parentType, currentModule.GetString(method.Name)); - m.SymbolKind = methodType; - m.AccessorOwner = accessorOwner; - m.HasBody = (method.Attributes & MethodAttributes.Abstract) == 0 && - (method.Attributes & MethodAttributes.PinvokeImpl) == 0 && - (method.ImplAttributes & MethodImplAttributes.InternalCall) == 0 && - (method.ImplAttributes & MethodImplAttributes.Native) == 0 && - (method.ImplAttributes & MethodImplAttributes.Unmanaged) == 0 && - (method.ImplAttributes & MethodImplAttributes.Runtime) == 0; - var genParams = method.GetGenericParameters(); - if (genParams.Count > 0) { - for (int i = 0; i < genParams.Count; i++) { - var gp = currentModule.GetGenericParameter(genParams[i]); - if (gp.Index != i) - throw new InvalidOperationException("gp.Index != i"); - m.TypeParameters.Add(new DefaultUnresolvedTypeParameter( - SymbolKind.Method, i, currentModule.GetString(gp.Name))); - } - for (int i = 0; i < genParams.Count; i++) { - var gp = currentModule.GetGenericParameter(genParams[i]); - var tp = (DefaultUnresolvedTypeParameter)m.TypeParameters[i]; - AddConstraints(tp, gp); - AddAttributes(gp, tp); - tp.ApplyInterningProvider(interningProvider); - } - } - - var declaringType = currentModule.GetTypeDefinition(method.GetDeclaringType()); - var reader = currentModule.GetBlobReader(method.Signature); - var signature = method.DecodeSignature(new TypeReferenceSignatureDecoder(), default(Unit)); - - m.ReturnType = signature.ReturnType; - - if (HasAnyAttributes(method)) - AddAttributes(method, m.Attributes, m.ReturnTypeAttributes); - TranslateModifiers(handle, m); - - int j = 0; - foreach (var par in method.GetParameters()) { - m.Parameters.Add(ReadParameter(par, signature.ParameterTypes[j])); - j++; - } - - if (signature.Header.CallingConvention == SignatureCallingConvention.VarArgs) { - m.Parameters.Add(new DefaultUnresolvedParameter(SpecialType.ArgList, string.Empty)); - } - - // mark as extension method if the attribute is set - if ((method.Attributes & MethodAttributes.Static) == MethodAttributes.Static && HasExtensionAttribute(currentModule, method.GetCustomAttributes())) { - m.IsExtensionMethod = true; - } - /* TODO overrides - int lastDot = m.Name.LastIndexOf('.'); - if (lastDot >= 0 && method.HasOverrides) { - // To be consistent with the parser-initialized type system, shorten the method name: - if (ShortenInterfaceImplNames) - m.Name = method.Name.Substring(lastDot + 1); - m.IsExplicitInterfaceImplementation = true; - foreach (var or in method.Overrides) { - m.ExplicitInterfaceImplementations.Add(new DefaultMemberReference( - accessorOwner != null ? SymbolKind.Accessor : SymbolKind.Method, - ReadTypeReference(or.DeclaringType), - or.Name, or.GenericParameters.Count, m.Parameters.Select(p => p.Type).ToList())); - } - }*/ - - FinishReadMember(m, handle); - return m; - } - - static bool HasExtensionAttribute(MetadataReader currentModule, CustomAttributeHandleCollection attributes) - { - foreach (var h in attributes) { - var attr = currentModule.GetCustomAttribute(h); - var type = attr.GetAttributeType(currentModule); - if (type.GetFullTypeName(currentModule).ToString() == "System.Runtime.CompilerServices.ExtensionAttribute") - return true; - } - return false; - } - - bool IsVisible(MethodAttributes att) - { - att &= MethodAttributes.MemberAccessMask; - return IncludeInternalMembers - || att == MethodAttributes.Public - || att == MethodAttributes.Family - || att == MethodAttributes.FamORAssem; - } - - static Accessibility GetAccessibility(MethodAttributes attr) - { - switch (attr & MethodAttributes.MemberAccessMask) { - case MethodAttributes.Public: - return Accessibility.Public; - case MethodAttributes.FamANDAssem: - return Accessibility.ProtectedAndInternal; - case MethodAttributes.Assembly: - return Accessibility.Internal; - case MethodAttributes.Family: - return Accessibility.Protected; - case MethodAttributes.FamORAssem: - return Accessibility.ProtectedOrInternal; - default: - return Accessibility.Private; - } - } - - void TranslateModifiers(MethodDefinitionHandle handle, AbstractUnresolvedMember m) - { - var method = currentModule.GetMethodDefinition(handle); - if (m.DeclaringTypeDefinition.Kind == TypeKind.Interface) { - // interface members don't have modifiers, but we want to handle them as "public abstract" - m.Accessibility = Accessibility.Public; - m.IsAbstract = true; - } else { - m.Accessibility = GetAccessibility(method.Attributes); - if ((method.Attributes & MethodAttributes.Abstract) == MethodAttributes.Abstract) { - m.IsAbstract = true; - m.IsOverride = (method.Attributes & MethodAttributes.NewSlot) != MethodAttributes.NewSlot; - } else if ((method.Attributes & MethodAttributes.Final) == MethodAttributes.Final) { - if ((method.Attributes & MethodAttributes.NewSlot) != MethodAttributes.NewSlot) { - m.IsSealed = true; - m.IsOverride = true; - } - } else if ((method.Attributes & MethodAttributes.Virtual) == MethodAttributes.Virtual) { - if ((method.Attributes & MethodAttributes.NewSlot) == MethodAttributes.NewSlot) - m.IsVirtual = true; - else - m.IsOverride = true; - } - m.IsStatic = (method.Attributes & MethodAttributes.Static) == MethodAttributes.Static; - } - } - #endregion - - #region Read Parameter - public IUnresolvedParameter ReadParameter(ParameterHandle handle, ITypeReference type) - { - if (handle.IsNil) - throw new ArgumentNullException(nameof(handle)); - var parameter = currentModule.GetParameter(handle); - var p = new DefaultUnresolvedParameter(type, interningProvider.Intern(currentModule.GetString(parameter.Name))); - - if (type is ByReferenceTypeReference) { - if ((parameter.Attributes & ParameterAttributes.In) == 0 && (parameter.Attributes & ParameterAttributes.Out) != 0) - p.IsOut = true; - else - p.IsRef = true; - } - AddAttributes(parameter, p); - - if ((parameter.Attributes & ParameterAttributes.Optional) != 0) { - var constantHandle = parameter.GetDefaultValue(); - if (!constantHandle.IsNil) { - var constant = currentModule.GetConstant(constantHandle); - var blobReader = currentModule.GetBlobReader(constant.Value); - p.DefaultValue = CreateSimpleConstantValue(type, blobReader.ReadConstant(constant.TypeCode)); - } - } - - if (type is ArrayTypeReference) { - foreach (CustomAttributeHandle h in parameter.GetCustomAttributes()) { - var att = currentModule.GetCustomAttribute(h); - if (att.GetAttributeType(currentModule).GetFullTypeName(currentModule).ToString() == typeof(ParamArrayAttribute).FullName) { - p.IsParams = true; - break; - } - } - } - - return interningProvider.Intern(p); - } - #endregion - - #region Read Field - bool IsVisible(FieldAttributes att) - { - att &= FieldAttributes.FieldAccessMask; - return IncludeInternalMembers - || att == FieldAttributes.Public - || att == FieldAttributes.Family - || att == FieldAttributes.FamORAssem; - } - /* - decimal? TryDecodeDecimalConstantAttribute(CustomAttribute attribute) - { - if (attribute.ConstructorArguments.Count != 5) - return null; - - BlobReader reader = new BlobReader(attribute.GetBlob(), null); - if (reader.ReadUInt16() != 0x0001) { - Debug.WriteLine("Unknown blob prolog"); - return null; - } - - // DecimalConstantAttribute has the arguments (byte scale, byte sign, uint hi, uint mid, uint low) or (byte scale, byte sign, int hi, int mid, int low) - // Both of these invoke the Decimal constructor (int lo, int mid, int hi, bool isNegative, byte scale) with explicit argument conversions if required. - var ctorArgs = new object[attribute.ConstructorArguments.Count]; - for (int i = 0; i < ctorArgs.Length; i++) { - switch (attribute.ConstructorArguments[i].Type.FullName) { - case "System.Byte": - ctorArgs[i] = reader.ReadByte(); - break; - case "System.Int32": - ctorArgs[i] = reader.ReadInt32(); - break; - case "System.UInt32": - ctorArgs[i] = unchecked((int)reader.ReadUInt32()); - break; - default: - return null; - } - } - - if (!ctorArgs.Select(a => a.GetType()).SequenceEqual(new[] { typeof(byte), typeof(byte), typeof(int), typeof(int), typeof(int) })) - return null; - - return new decimal((int)ctorArgs[4], (int)ctorArgs[3], (int)ctorArgs[2], (byte)ctorArgs[1] != 0, (byte)ctorArgs[0]); - } - */ - - public IUnresolvedField ReadField(FieldDefinitionHandle handle, IUnresolvedTypeDefinition parentType) - { - if (handle.IsNil) - throw new ArgumentNullException(nameof(handle)); - if (parentType == null) - throw new ArgumentNullException(nameof(parentType)); - - var field = currentModule.GetFieldDefinition(handle); - DefaultUnresolvedField f = new DefaultUnresolvedField(parentType, currentModule.GetString(field.Name)); - f.Accessibility = GetAccessibility(field.Attributes); - f.IsReadOnly = (field.Attributes & FieldAttributes.InitOnly) == FieldAttributes.InitOnly; - f.IsStatic = (field.Attributes & FieldAttributes.Static) == FieldAttributes.Static; - f.ReturnType = ResolveDynamicTypes(field.DecodeSignature(new TypeReferenceSignatureDecoder(), default(Unit)), field.GetCustomAttributes()); - var constantHandle = field.GetDefaultValue(); - if (!constantHandle.IsNil) { - var constant = currentModule.GetConstant(constantHandle); - var blobReader = currentModule.GetBlobReader(constant.Value); - f.ConstantValue = CreateSimpleConstantValue(f.ReturnType, blobReader.ReadConstant(constant.TypeCode)); - } else { - // TODO decimal constants - /*var decConstant = field.CustomAttributes.FirstOrDefault(a => a.AttributeType.FullName == "System.Runtime.CompilerServices.DecimalConstantAttribute"); - if (decConstant != null) { - var constValue = TryDecodeDecimalConstantAttribute(decConstant); - if (constValue != null) - f.ConstantValue = CreateSimpleConstantValue(f.ReturnType, constValue); - }*/ - } - AddAttributes(field, f); - - if (f.ReturnType is ModifiedTypeReference mod - && mod.IsRequired - && mod.ModifierType is GetClassTypeReference modifier - && modifier.FullTypeName.ToString() == typeof(IsVolatile).FullName) { - f.IsVolatile = true; - } - - FinishReadMember(f, handle); - return f; - } - - static Accessibility GetAccessibility(FieldAttributes attr) - { - switch (attr & FieldAttributes.FieldAccessMask) { - case FieldAttributes.Public: - return Accessibility.Public; - case FieldAttributes.FamANDAssem: - return Accessibility.ProtectedAndInternal; - case FieldAttributes.Assembly: - return Accessibility.Internal; - case FieldAttributes.Family: - return Accessibility.Protected; - case FieldAttributes.FamORAssem: - return Accessibility.ProtectedOrInternal; - default: - return Accessibility.Private; - } - } - #endregion - - #region Resolve dynamic type - ITypeReference ResolveDynamicTypes(ITypeReference type, CustomAttributeHandleCollection attributes) - { - int typeIndex = 0; - return ResolveDynamicTypes(type, attributes, ref typeIndex); - } - - ITypeReference ResolveDynamicTypes(ITypeReference type, CustomAttributeHandleCollection attributes, ref int typeIndex) - { - // TODO : interning?? - ITypeReference replacement; - switch (type) { - case ByReferenceTypeReference brtr: - typeIndex++; - replacement = ResolveDynamicTypes(brtr.ElementType, attributes, ref typeIndex); - if (replacement == brtr.ElementType) - return brtr; - else - return new ByReferenceTypeReference(replacement); - case PointerTypeReference ptr: - typeIndex++; - replacement = ResolveDynamicTypes(ptr.ElementType, attributes, ref typeIndex); - if (replacement == ptr.ElementType) - return ptr; - else - return new PointerTypeReference(replacement); - case TypeParameterReference tpr: - return tpr; - case ParameterizedTypeReference genericType: - ITypeReference baseType = ResolveDynamicTypes(genericType.GenericType, attributes, ref typeIndex); - ITypeReference[] para = new ITypeReference[genericType.TypeArguments.Count]; - for (int i = 0; i < para.Length; ++i) { - typeIndex++; - para[i] = ResolveDynamicTypes(genericType.TypeArguments[i], attributes, ref typeIndex); - } - return new ParameterizedTypeReference(baseType, para); - case NestedTypeReference ntr: - replacement = ResolveDynamicTypes(ntr.DeclaringTypeReference, attributes, ref typeIndex); - if (replacement == ntr.DeclaringTypeReference) - return ntr; - else - return new NestedTypeReference(replacement, ntr.Name, ntr.AdditionalTypeParameterCount); - case GetClassTypeReference gctr: - return gctr; - case KnownTypeReference ktr: - if (ktr.KnownTypeCode == KnownTypeCode.Object && HasDynamicAttribute(attributes, typeIndex)) - return SpecialType.Dynamic.ToTypeReference(); - else - return ktr; - default: - return type; - } - } - - static readonly ITypeResolveContext minimalCorlibContext = new SimpleTypeResolveContext(MinimalCorlib.Instance.CreateCompilation()); - - bool HasDynamicAttribute(CustomAttributeHandleCollection attributes, int typeIndex) - { - foreach (CustomAttributeHandle handle in attributes) { - var a = currentModule.GetCustomAttribute(handle); - var type = a.GetAttributeType(currentModule); - if (type.GetFullTypeName(currentModule).ToString() == "System.Runtime.CompilerServices.DynamicAttribute") { - var ctor = a.DecodeValue(new TypeSystemAttributeTypeProvider(minimalCorlibContext)); - if (ctor.FixedArguments.Length == 1) { - if (ctor.FixedArguments[0].Value is bool[] values && typeIndex < values.Length) - return values[typeIndex]; - } - return true; - } - } - return false; - } - #endregion - - #region Type Parameter Constraints - void AddConstraints(DefaultUnresolvedTypeParameter tp, GenericParameter g) - { - switch (g.Attributes & GenericParameterAttributes.VarianceMask) { - case GenericParameterAttributes.Contravariant: - tp.Variance = VarianceModifier.Contravariant; - break; - case GenericParameterAttributes.Covariant: - tp.Variance = VarianceModifier.Covariant; - break; - } - - tp.HasReferenceTypeConstraint = (g.Attributes & GenericParameterAttributes.ReferenceTypeConstraint) != 0; - tp.HasValueTypeConstraint = (g.Attributes & GenericParameterAttributes.NotNullableValueTypeConstraint) != 0; - tp.HasDefaultConstructorConstraint = (g.Attributes & GenericParameterAttributes.DefaultConstructorConstraint) != 0; - - foreach (GenericParameterConstraintHandle h in g.GetConstraints()) { - var constraint = currentModule.GetGenericParameterConstraint(h); - tp.Constraints.Add(ReadTypeReference(constraint.Type)); - } - } - #endregion - - #region Read Property - - Accessibility MergePropertyAccessibility (Accessibility left, Accessibility right) - { - if (left == Accessibility.Public || right == Accessibility.Public) - return Accessibility.Public; - - if (left == Accessibility.ProtectedOrInternal || right == Accessibility.ProtectedOrInternal) - return Accessibility.ProtectedOrInternal; - - if (left == Accessibility.Protected && right == Accessibility.Internal || - left == Accessibility.Internal && right == Accessibility.Protected) - return Accessibility.ProtectedOrInternal; - - if (left == Accessibility.Protected || right == Accessibility.Protected) - return Accessibility.Protected; - - if (left == Accessibility.Internal || right == Accessibility.Internal) - return Accessibility.Internal; - - if (left == Accessibility.ProtectedAndInternal || right == Accessibility.ProtectedAndInternal) - return Accessibility.ProtectedAndInternal; - - return left; - } - - public IUnresolvedProperty ReadProperty(PropertyDefinitionHandle handle, IUnresolvedTypeDefinition parentType, SymbolKind propertyType = SymbolKind.Property) - { - if (handle.IsNil) - throw new ArgumentNullException(nameof(handle)); - if (parentType == null) - throw new ArgumentNullException(nameof(parentType)); - var property = currentModule.GetPropertyDefinition(handle); - var propertyName = currentModule.GetString(property.Name); - DefaultUnresolvedProperty p = new DefaultUnresolvedProperty(parentType, propertyName); - p.SymbolKind = propertyType; - var accessors = property.GetAccessors(); - TranslateModifiers(accessors.Getter.IsNil ? accessors.Setter : accessors.Getter, p); - if (!accessors.Getter.IsNil && !accessors.Setter.IsNil) - p.Accessibility = MergePropertyAccessibility(GetAccessibility(currentModule.GetMethodDefinition(accessors.Getter).Attributes), GetAccessibility (currentModule.GetMethodDefinition(accessors.Setter).Attributes)); - - var signature = property.DecodeSignature(new TypeReferenceSignatureDecoder(), default(Unit)); - p.ReturnType = signature.ReturnType; - - p.Getter = ReadMethod(accessors.Getter, parentType, SymbolKind.Accessor, p); - p.Setter = ReadMethod(accessors.Setter, parentType, SymbolKind.Accessor, p); - - ParameterHandleCollection parameterHandles = default(ParameterHandleCollection); - int parameterCount = 0; - if (!accessors.Getter.IsNil) { - var getter = currentModule.GetMethodDefinition(accessors.Getter); - parameterHandles = getter.GetParameters(); - parameterCount = parameterHandles.Count; - } else { - if (!accessors.Setter.IsNil) { - var setter = currentModule.GetMethodDefinition(accessors.Setter); - parameterHandles = setter.GetParameters(); - parameterCount = parameterHandles.Count - 1; - } - } - - int i = 0; - foreach (var par in parameterHandles) { - if (i >= parameterCount) break; - p.Parameters.Add(ReadParameter(par, signature.ParameterTypes[i])); - i++; - } - AddAttributes(property, p); - - var accessor = p.Getter ?? p.Setter; - if (accessor != null && accessor.IsExplicitInterfaceImplementation) { - if (ShortenInterfaceImplNames) - p.Name = propertyName.Substring(propertyName.LastIndexOf('.') + 1); - p.IsExplicitInterfaceImplementation = true; - foreach (var mr in accessor.ExplicitInterfaceImplementations) { - p.ExplicitInterfaceImplementations.Add(new AccessorOwnerMemberReference(mr)); - } - } - - FinishReadMember(p, handle); - return p; - } - #endregion - - #region Read Event - public IUnresolvedEvent ReadEvent(EventDefinitionHandle ev, IUnresolvedTypeDefinition parentType) - { - if (ev.IsNil) - throw new ArgumentNullException(nameof(ev)); - if (parentType == null) - throw new ArgumentNullException(nameof(parentType)); - - var ed = currentModule.GetEventDefinition(ev); - var eventName = currentModule.GetString(ed.Name); - - DefaultUnresolvedEvent e = new DefaultUnresolvedEvent(parentType, eventName); - var accessors = ed.GetAccessors(); - TranslateModifiers(accessors.Adder, e); - e.ReturnType = ReadTypeReference(ed.Type, typeAttributes: ed.GetCustomAttributes()); - - e.AddAccessor = ReadMethod(accessors.Adder, parentType, SymbolKind.Accessor, e); - e.RemoveAccessor = ReadMethod(accessors.Remover, parentType, SymbolKind.Accessor, e); - e.InvokeAccessor = ReadMethod(accessors.Raiser, parentType, SymbolKind.Accessor, e); - - AddAttributes(ed, e); - - var accessor = e.AddAccessor ?? e.RemoveAccessor ?? e.InvokeAccessor; - if (accessor != null && accessor.IsExplicitInterfaceImplementation) { - if (ShortenInterfaceImplNames) - e.Name = eventName.Substring(eventName.LastIndexOf('.') + 1); - e.IsExplicitInterfaceImplementation = true; - foreach (var mr in accessor.ExplicitInterfaceImplementations) { - e.ExplicitInterfaceImplementations.Add(new AccessorOwnerMemberReference(mr)); - } - } - - FinishReadMember(e, ev); - - return e; - } - #endregion - - #region FinishReadMember / Interning - void FinishReadMember(AbstractUnresolvedMember member, EntityHandle cecilDefinition) - { - member.MetadataToken = cecilDefinition; - member.ApplyInterningProvider(interningProvider); - member.Freeze(); - RegisterCecilObject(member, cecilDefinition); - } - #endregion - - #region Type system translation table - void RegisterCecilObject(IUnresolvedEntity typeSystemObject, EntityHandle cecilObject) - { - OnEntityLoaded?.Invoke(typeSystemObject, cecilObject); - } - #endregion - } -} diff --git a/ICSharpCode.Decompiler/TypeSystem/IField.cs b/ICSharpCode.Decompiler/TypeSystem/IField.cs index f590c8aa5..f54219a3a 100644 --- a/ICSharpCode.Decompiler/TypeSystem/IField.cs +++ b/ICSharpCode.Decompiler/TypeSystem/IField.cs @@ -85,7 +85,5 @@ namespace ICSharpCode.Decompiler.TypeSystem /// If this is true, then ConstantValue contains the size of the buffer. /// bool IsFixed { get; } - - new IMemberReference ToReference(); // solve ambiguity between IMember.ToReference() and IVariable.ToReference() } } diff --git a/ICSharpCode.Decompiler/TypeSystem/IMember.cs b/ICSharpCode.Decompiler/TypeSystem/IMember.cs index 16f06e2f7..ad1e46e51 100644 --- a/ICSharpCode.Decompiler/TypeSystem/IMember.cs +++ b/ICSharpCode.Decompiler/TypeSystem/IMember.cs @@ -81,7 +81,7 @@ namespace ICSharpCode.Decompiler.TypeSystem IMember CreateResolved(ITypeResolveContext context); } - public interface IMemberReference : ISymbolReference + public interface IMemberReference { /// /// Gets the declaring type reference for the member. @@ -100,7 +100,7 @@ namespace ICSharpCode.Decompiler.TypeSystem /// /// Returns the resolved member, or null if the member could not be found. /// - new IMember Resolve(ITypeResolveContext context); + IMember Resolve(ITypeResolveContext context); } /// @@ -159,15 +159,6 @@ namespace ICSharpCode.Decompiler.TypeSystem /// bool IsOverridable { get; } - /// - /// Creates a member reference that can be used to rediscover this member in another compilation. - /// - /// - /// If this member is specialized using open generic types, the resulting member reference will need to be looked up in an appropriate generic context. - /// Otherwise, the main resolve context of a compilation is sufficient. - /// - new IMemberReference ToReference(); - /// /// Gets the substitution belonging to this specialized member. /// Returns TypeParameterSubstitution.Identity for not specialized members. diff --git a/ICSharpCode.Decompiler/TypeSystem/ISymbol.cs b/ICSharpCode.Decompiler/TypeSystem/ISymbol.cs index 12a765b85..e13851394 100644 --- a/ICSharpCode.Decompiler/TypeSystem/ISymbol.cs +++ b/ICSharpCode.Decompiler/TypeSystem/ISymbol.cs @@ -84,15 +84,5 @@ namespace ICSharpCode.Decompiler.TypeSystem /// Gets the short name of the symbol. /// string Name { get; } - - /// - /// Creates a symbol reference that can be used to rediscover this symbol in another compilation. - /// - ISymbolReference ToReference(); - } - - public interface ISymbolReference - { - ISymbol Resolve(ITypeResolveContext context); } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedEntity.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedEntity.cs index 10e7c22e5..09429b556 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedEntity.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedEntity.cs @@ -60,8 +60,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation public IReadOnlyList Attributes { get; protected set; } - public abstract ISymbolReference ToReference(); - public bool IsStatic { get { return unresolved.IsStatic; } } public bool IsAbstract { get { return unresolved.IsAbstract; } } public bool IsSealed { get { return unresolved.IsSealed; } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedMember.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedMember.cs index 73d38c0b3..d930a6ec9 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedMember.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedMember.cs @@ -113,22 +113,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation public abstract IMember Specialize(TypeParameterSubstitution substitution); - IMemberReference IMember.ToReference() - { - return (IMemberReference)ToReference(); - } - - public override ISymbolReference ToReference() - { - var declType = this.DeclaringType; - var declTypeRef = declType != null ? declType.ToTypeReference() : SpecialType.UnknownType; - if (IsExplicitInterfaceImplementation && ImplementedInterfaceMembers.Count == 1) { - return new ExplicitInterfaceImplementationMemberReference(declTypeRef, ImplementedInterfaceMembers[0].ToReference()); - } else { - return new DefaultMemberReference(this.SymbolKind, declTypeRef, this.Name); - } - } - internal IMethod GetAccessor(ref IMethod accessorField, IUnresolvedMethod unresolvedAccessor) { if (unresolvedAccessor == null) diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedTypeParameter.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedTypeParameter.cs index 63db9706c..dcf47f9ea 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedTypeParameter.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractResolvedTypeParameter.cs @@ -364,41 +364,10 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation { return this == other; // use reference equality for type parameters } - - public virtual ISymbolReference ToReference() - { - if (owner == null) - return TypeParameterReference.Create(ownerType, index); - return new OwnedTypeParameterReference(owner.ToReference(), index); - } public override string ToString() { return this.ReflectionName + " (owner=" + owner + ")"; } } - - public sealed class OwnedTypeParameterReference : ISymbolReference - { - ISymbolReference owner; - int index; - - public OwnedTypeParameterReference(ISymbolReference owner, int index) - { - if (owner == null) - throw new ArgumentNullException("owner"); - this.owner = owner; - this.index = index; - } - - public ISymbol Resolve(ITypeResolveContext context) - { - var entity = owner.Resolve(context) as IEntity; - if (entity is ITypeDefinition) - return ((ITypeDefinition)entity).TypeParameters[index]; - if (entity is IMethod) - return ((IMethod)entity).TypeParameters[index]; - return null; - } - } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractUnresolvedMember.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractUnresolvedMember.cs index 955295a34..a99cde01a 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractUnresolvedMember.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/AbstractUnresolvedMember.cs @@ -152,11 +152,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation return Resolve(ExtendContextForType(context, this.DeclaringTypeDefinition), this.SymbolKind, this.Name, interfaceTypeReference); } - ISymbol ISymbolReference.Resolve(ITypeResolveContext context) - { - return ((IUnresolvedMember)this).Resolve(context); - } - protected static ITypeResolveContext ExtendContextForType(ITypeResolveContext assemblyContext, IUnresolvedTypeDefinition typeDef) { if (typeDef == null) diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/AccessorOwnerMemberReference.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/AccessorOwnerMemberReference.cs index bd126a3cc..efd95d849 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/AccessorOwnerMemberReference.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/AccessorOwnerMemberReference.cs @@ -47,10 +47,5 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation else return null; } - - ISymbol ISymbolReference.Resolve(ITypeResolveContext context) - { - return ((IMemberReference)this).Resolve(context); - } } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultMemberReference.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultMemberReference.cs index 49f277bd3..1da5bd448 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultMemberReference.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultMemberReference.cs @@ -99,11 +99,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation return null; } - ISymbol ISymbolReference.Resolve(ITypeResolveContext context) - { - return ((IMemberReference)this).Resolve(context); - } - int ISupportsInterning.GetHashCodeForInterning() { return (int)symbolKind ^ typeReference.GetHashCode() ^ name.GetHashCode() ^ parameterTypes.GetHashCode(); diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultParameter.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultParameter.cs index 1ef38d722..8580c9d2d 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultParameter.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultParameter.cs @@ -133,63 +133,5 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation } return b.ToString(); } - - public ISymbolReference ToReference() - { - if (owner == null) - return new ParameterReference(type.ToTypeReference(), name, isRef, isOut, isParams, isOptional, defaultValue); - return new OwnedParameterReference(owner.ToReference(), owner.Parameters.IndexOf(this)); - } - } - - sealed class OwnedParameterReference : ISymbolReference - { - readonly IMemberReference memberReference; - readonly int index; - - public OwnedParameterReference(IMemberReference member, int index) - { - if (member == null) - throw new ArgumentNullException("member"); - this.memberReference = member; - this.index = index; - } - - public ISymbol Resolve(ITypeResolveContext context) - { - IParameterizedMember member = memberReference.Resolve(context) as IParameterizedMember; - if (member != null && index >= 0 && index < member.Parameters.Count) - return member.Parameters[index]; - else - return null; - } - } - - public sealed class ParameterReference : ISymbolReference - { - readonly ITypeReference type; - readonly string name; - readonly bool isRef, isOut, isParams, isOptional; - readonly object defaultValue; - - public ParameterReference(ITypeReference type, string name, bool isRef, bool isOut, bool isParams, bool isOptional, object defaultValue) - { - if (type == null) - throw new ArgumentNullException("type"); - if (name == null) - throw new ArgumentNullException("name"); - this.type = type; - this.name = name; - this.isRef = isRef; - this.isOut = isOut; - this.isParams = isParams; - this.isOptional = isOptional; - this.defaultValue = defaultValue; - } - - public ISymbol Resolve(ITypeResolveContext context) - { - return new DefaultParameter(type.Resolve(context), name, isRef: isRef, isOut: isOut, isParams: isParams, isOptional: isOptional, defaultValue: defaultValue); - } } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedField.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedField.cs index 3bc84af40..f0f8cba79 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedField.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedField.cs @@ -81,10 +81,5 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation substitution = new TypeParameterSubstitution(substitution.ClassTypeArguments, EmptyList.Instance); return new SpecializedField(this, substitution); } - - IMemberReference IField.ToReference() - { - return (IMemberReference)ToReference(); - } } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedMethod.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedMethod.cs index 40e6764fe..130356be8 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedMethod.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedMethod.cs @@ -228,19 +228,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation } } - public override ISymbolReference ToReference() - { - var declType = this.DeclaringType; - var declTypeRef = declType != null ? declType.ToTypeReference() : SpecialType.UnknownType; - if (IsExplicitInterfaceImplementation && ImplementedInterfaceMembers.Count == 1) { - return new ExplicitInterfaceImplementationMemberReference(declTypeRef, ImplementedInterfaceMembers[0].ToReference()); - } else { - return new DefaultMemberReference( - this.SymbolKind, declTypeRef, this.Name, this.TypeParameters.Count, - this.Parameters.Select(p => p.Type.ToTypeReference()).ToList()); - } - } - public override IMember Specialize(TypeParameterSubstitution substitution) { if (TypeParameterSubstitution.Identity.Equals(substitution)) diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedProperty.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedProperty.cs index 115753dfa..5afaf4e3a 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedProperty.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedProperty.cs @@ -84,19 +84,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation get { return unresolved.IsIndexer; } } - public override ISymbolReference ToReference() - { - var declType = this.DeclaringType; - var declTypeRef = declType != null ? declType.ToTypeReference() : SpecialType.UnknownType; - if (IsExplicitInterfaceImplementation && ImplementedInterfaceMembers.Count == 1) { - return new ExplicitInterfaceImplementationMemberReference(declTypeRef, ImplementedInterfaceMembers[0].ToReference()); - } else { - return new DefaultMemberReference( - this.SymbolKind, declTypeRef, this.Name, 0, - this.Parameters.Select(p => p.Type.ToTypeReference()).ToList()); - } - } - public override IMember Specialize(TypeParameterSubstitution substitution) { if (TypeParameterSubstitution.Identity.Equals(substitution) diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedTypeDefinition.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedTypeDefinition.cs index 21eef9fb5..fccdad52b 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedTypeDefinition.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultResolvedTypeDefinition.cs @@ -633,11 +633,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation } } - ISymbolReference ISymbol.ToReference() - { - return (ISymbolReference)ToTypeReference(); - } - public IEnumerable GetNestedTypes(Predicate filter = null, GetMemberOptions options = GetMemberOptions.None) { const GetMemberOptions opt = GetMemberOptions.IgnoreInheritedMembers | GetMemberOptions.ReturnMemberDefinitions; diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultUnresolvedAssembly.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultUnresolvedAssembly.cs index 7ac52f2f7..12ae00679 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultUnresolvedAssembly.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultUnresolvedAssembly.cs @@ -559,68 +559,7 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation else return null; } - - public ISymbolReference ToReference() - { - return new NamespaceReference(new DefaultAssemblyReference(assembly.AssemblyName), ns.FullName); - } - } - } - } - - public sealed class NamespaceReference : ISymbolReference - { - IAssemblyReference assemblyReference; - string fullName; - - public NamespaceReference(IAssemblyReference assemblyReference, string fullName) - { - if (assemblyReference == null) - throw new ArgumentNullException("assemblyReference"); - this.assemblyReference = assemblyReference; - this.fullName = fullName; - } - - public ISymbol Resolve(ITypeResolveContext context) - { - IAssembly assembly = assemblyReference.Resolve(context); - INamespace parent = assembly.RootNamespace; - - string[] parts = fullName.Split('.'); - - int i = 0; - while (i < parts.Length && parent != null) { - parent = parent.GetChildNamespace(parts[i]); - i++; - } - - return parent; - } - } - - public sealed class MergedNamespaceReference : ISymbolReference - { - string externAlias; - string fullName; - - public MergedNamespaceReference(string externAlias, string fullName) - { - this.externAlias = externAlias; - this.fullName = fullName; - } - - public ISymbol Resolve(ITypeResolveContext context) - { - string[] parts = fullName.Split('.'); - INamespace parent = context.Compilation.GetNamespaceForExternAlias(externAlias); - - int i = 0; - while (i < parts.Length && parent != null) { - parent = parent.GetChildNamespace(parts[i]); - i++; } - - return parent; } } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultUnresolvedParameter.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultUnresolvedParameter.cs index ad8b8bb9c..4b7077759 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultUnresolvedParameter.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultUnresolvedParameter.cs @@ -252,13 +252,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation { return DefaultParameter.ToString(this); } - - public ISymbolReference ToReference() - { - if (Owner == null) - return new ParameterReference(Type.ToTypeReference(), Name, IsRef, IsOut, IsParams, true, ConstantValue); - return new OwnedParameterReference(Owner.ToReference(), Owner.Parameters.IndexOf(this)); - } } } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultVariable.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultVariable.cs index 01399bbe6..e92327673 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultVariable.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/DefaultVariable.cs @@ -67,35 +67,5 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation public SymbolKind SymbolKind { get { return SymbolKind.Variable; } } - - public ISymbolReference ToReference() - { - return new VariableReference(type.ToTypeReference(), name, isConst, constantValue); - } - } - - public sealed class VariableReference : ISymbolReference - { - ITypeReference variableTypeReference; - string name; - bool isConst; - object constantValue; - - public VariableReference(ITypeReference variableTypeReference, string name, bool isConst, object constantValue) - { - if (variableTypeReference == null) - throw new ArgumentNullException("variableTypeReference"); - if (name == null) - throw new ArgumentNullException("name"); - this.variableTypeReference = variableTypeReference; - this.name = name; - this.isConst = isConst; - this.constantValue = constantValue; - } - - public ISymbol Resolve(ITypeResolveContext context) - { - return new DefaultVariable(variableTypeReference.Resolve(context), name, isConst, constantValue); - } } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/DummyTypeParameter.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/DummyTypeParameter.cs index 94928c156..0b838a03a 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/DummyTypeParameter.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/DummyTypeParameter.cs @@ -237,10 +237,5 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation bool ITypeParameter.HasValueTypeConstraint { get { return false; } } - - public ISymbolReference ToReference() - { - return new TypeParameterReference(ownerType, index); - } } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/ExplicitInterfaceImplementationMemberReference.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/ExplicitInterfaceImplementationMemberReference.cs deleted file mode 100644 index d33173730..000000000 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/ExplicitInterfaceImplementationMemberReference.cs +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this -// software and associated documentation files (the "Software"), to deal in the Software -// without restriction, including without limitation the rights to use, copy, modify, merge, -// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons -// to whom the Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all copies or -// substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. - -using System; -using System.Collections.Generic; -using System.Linq; - -namespace ICSharpCode.Decompiler.TypeSystem.Implementation -{ - /// - /// References a member that is an explicit interface implementation. - /// - /// - /// Resolving an ExplicitInterfaceImplementationMemberReference requires a context - /// that provides enough information for resolving the declaring type reference - /// and the interface member reference. - /// Note that the interface member reference is resolved in 'context.WithCurrentTypeDefinition(declaringType.GetDefinition())' - /// - this is done to ensure that open generics in the interface member reference resolve to the type parameters of the - /// declaring type. - /// - [Serializable] - public sealed class ExplicitInterfaceImplementationMemberReference : IMemberReference - { - ITypeReference typeReference; - IMemberReference interfaceMemberReference; - - public ExplicitInterfaceImplementationMemberReference(ITypeReference typeReference, IMemberReference interfaceMemberReference) - { - if (typeReference == null) - throw new ArgumentNullException("typeReference"); - if (interfaceMemberReference == null) - throw new ArgumentNullException("interfaceMemberReference"); - this.typeReference = typeReference; - this.interfaceMemberReference = interfaceMemberReference; - } - - public ITypeReference DeclaringTypeReference { - get { return typeReference; } - } - - public IMember Resolve(ITypeResolveContext context) - { - IType declaringType = typeReference.Resolve(context); - IMember interfaceMember = interfaceMemberReference.Resolve(context.WithCurrentTypeDefinition(declaringType.GetDefinition())); - if (interfaceMember == null) - return null; - IEnumerable members; - if (interfaceMember.SymbolKind == SymbolKind.Accessor) { - members = declaringType.GetAccessors( - m => m.IsExplicitInterfaceImplementation, - GetMemberOptions.IgnoreInheritedMembers); - } else { - members = declaringType.GetMembers( - m => m.SymbolKind == interfaceMember.SymbolKind && m.IsExplicitInterfaceImplementation, - GetMemberOptions.IgnoreInheritedMembers); - } - return members.FirstOrDefault(m => m.ImplementedInterfaceMembers.Count == 1 && interfaceMember.Equals(m.ImplementedInterfaceMembers[0])); - } - - ISymbol ISymbolReference.Resolve(ITypeResolveContext context) - { - return Resolve(context); - } - } -} diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/GetClassTypeReference.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/GetClassTypeReference.cs index 42265828c..c934e2ff9 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/GetClassTypeReference.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/GetClassTypeReference.cs @@ -24,7 +24,7 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation /// Type Reference used when the fully qualified type name is known. /// [Serializable] - public sealed class GetClassTypeReference : ITypeReference, ISymbolReference, ISupportsInterning + public sealed class GetClassTypeReference : ITypeReference, ISupportsInterning { readonly IAssemblyReference assembly; readonly FullTypeName fullTypeName; @@ -124,14 +124,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation return type ?? new UnknownType(fullTypeName, isReferenceType); } - ISymbol ISymbolReference.Resolve(ITypeResolveContext context) - { - var type = Resolve(context); - if (type is ITypeDefinition) - return (ISymbol)type; - return null; - } - public override string ToString() { return fullTypeName.ToString() + (assembly != null ? ", " + assembly.ToString() : null); diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/MergedNamespace.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/MergedNamespace.cs index 07bb87ff5..c98f7285a 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/MergedNamespace.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/MergedNamespace.cs @@ -155,10 +155,5 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation return string.Format(CultureInfo.InvariantCulture, "[MergedNamespace {0}{1} (from {2} assemblies)]", externAlias != null ? externAlias + "::" : null, this.FullName, this.namespaces.Length); } - - public ISymbolReference ToReference() - { - return new MergedNamespaceReference(externAlias, FullName); - } } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/NestedTypeReference.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/NestedTypeReference.cs index 3cfd69a43..a1646e1fd 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/NestedTypeReference.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/NestedTypeReference.cs @@ -24,7 +24,7 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation /// Type reference used to reference nested types. /// [Serializable] - public sealed class NestedTypeReference : ITypeReference, ISymbolReference, ISupportsInterning + public sealed class NestedTypeReference : ITypeReference, ISupportsInterning { readonly ITypeReference declaringTypeRef; readonly string name; @@ -78,14 +78,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation return new UnknownType(null, name, additionalTypeParameterCount); } - ISymbol ISymbolReference.Resolve(ITypeResolveContext context) - { - var type = Resolve(context); - if (type is ITypeDefinition) - return (ISymbol)type; - return null; - } - public override string ToString() { if (additionalTypeParameterCount == 0) diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedMember.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedMember.cs index 86bbcb72f..47004626f 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedMember.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedMember.cs @@ -58,27 +58,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation this.substitution = TypeParameterSubstitution.Compose(newSubstitution, this.substitution); } - public virtual IMemberReference ToReference() - { - return new SpecializingMemberReference( - baseMember.ToReference(), - ToTypeReference(substitution.ClassTypeArguments), - null); - } - - ISymbolReference ISymbol.ToReference() - { - return ToReference(); - } - - internal static IList ToTypeReference(IReadOnlyList typeArguments) - { - if (typeArguments == null) - return null; - else - return typeArguments.Select(t => t.ToTypeReference()).ToArray(); - } - internal IMethod WrapAccessor(ref IMethod cachingField, IMethod accessorDefinition) { if (accessorDefinition == null) diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedMethod.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedMethod.cs index 7e883cfab..fda5f6983 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedMethod.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializedMethod.cs @@ -147,29 +147,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation accessorOwner = value; } } - - public override IMemberReference ToReference() - { - // Pass the MethodTypeArguments to the SpecializingMemberReference only if - // the generic method itself is parameterized, not if the generic method is only - // specialized with class type arguments. - - // This is necessary due to this part of the ToReference() contract: - // If this member is specialized using open generic types, the resulting member reference will need to be looked up in an appropriate generic context. - // Otherwise, the main resolve context of a compilation is sufficient. - // -> - // This means that if the method itself isn't specialized, - // we must not include TypeParameterReferences for the specialized type parameters - // in the resulting member reference. - if (isParameterized) { - return new SpecializingMemberReference( - baseMember.ToReference(), - ToTypeReference(base.Substitution.ClassTypeArguments), - ToTypeReference(base.Substitution.MethodTypeArguments)); - } else { - return base.ToReference(); - } - } public override bool Equals(object obj) { diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializingMemberReference.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializingMemberReference.cs deleted file mode 100644 index 46c846632..000000000 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/SpecializingMemberReference.cs +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this -// software and associated documentation files (the "Software"), to deal in the Software -// without restriction, including without limitation the rights to use, copy, modify, merge, -// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons -// to whom the Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all copies or -// substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. - -using System; -using System.Collections.Generic; - -namespace ICSharpCode.Decompiler.TypeSystem.Implementation -{ - [Serializable] - public sealed class SpecializingMemberReference : IMemberReference - { - IMemberReference memberDefinitionReference; - IList classTypeArgumentReferences; - IList methodTypeArgumentReferences; - - public SpecializingMemberReference(IMemberReference memberDefinitionReference, IList classTypeArgumentReferences = null, IList methodTypeArgumentReferences = null) - { - if (memberDefinitionReference == null) - throw new ArgumentNullException("memberDefinitionReference"); - this.memberDefinitionReference = memberDefinitionReference; - this.classTypeArgumentReferences = classTypeArgumentReferences; - this.methodTypeArgumentReferences = methodTypeArgumentReferences; - } - - public IMember Resolve(ITypeResolveContext context) - { - var memberDefinition = memberDefinitionReference.Resolve(context); - if (memberDefinition == null) - return null; - return memberDefinition.Specialize( - new TypeParameterSubstitution( - classTypeArgumentReferences != null ? classTypeArgumentReferences.Resolve(context) : null, - methodTypeArgumentReferences != null ? methodTypeArgumentReferences.Resolve(context) : null - ) - ); - } - - ISymbol ISymbolReference.Resolve(ITypeResolveContext context) - { - return Resolve(context); - } - - public ITypeReference DeclaringTypeReference { - get { - if (classTypeArgumentReferences != null) - return new ParameterizedTypeReference(memberDefinitionReference.DeclaringTypeReference, classTypeArgumentReferences); - else - return memberDefinitionReference.DeclaringTypeReference; - } - } - } -} diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/TypeParameterReference.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/TypeParameterReference.cs index 712d536bc..f328d3615 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/TypeParameterReference.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/TypeParameterReference.cs @@ -23,7 +23,7 @@ using ICSharpCode.Decompiler.Util; namespace ICSharpCode.Decompiler.TypeSystem.Implementation { [Serializable] - public sealed class TypeParameterReference : ITypeReference, ISymbolReference + public sealed class TypeParameterReference : ITypeReference { static readonly TypeParameterReference[] classTypeParameterReferences = new TypeParameterReference[8]; static readonly TypeParameterReference[] methodTypeParameterReferences = new TypeParameterReference[8]; @@ -80,11 +80,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation } } - ISymbol ISymbolReference.Resolve(ITypeResolveContext context) - { - return Resolve(context) as ISymbol; - } - public override string ToString() { if (ownerType == SymbolKind.Method) diff --git a/ICSharpCode.Decompiler/TypeSystem/ProjectReference.cs b/ICSharpCode.Decompiler/TypeSystem/ProjectReference.cs deleted file mode 100644 index a74670df1..000000000 --- a/ICSharpCode.Decompiler/TypeSystem/ProjectReference.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this -// software and associated documentation files (the "Software"), to deal in the Software -// without restriction, including without limitation the rights to use, copy, modify, merge, -// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons -// to whom the Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all copies or -// substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. - -using System; - -namespace ICSharpCode.Decompiler.TypeSystem -{ - /// - /// References another project content in the same solution. - /// Using the class requires that you - /// - [Serializable] - public class ProjectReference : IAssemblyReference - { - readonly string projectFileName; - - /// - /// Creates a new reference to the specified project (must be part of the same solution). - /// - /// Full path to the file name. Must be identical to of the target project; do not use a relative path. - public ProjectReference(string projectFileName) - { - this.projectFileName = projectFileName; - } - - public IAssembly Resolve(ITypeResolveContext context) - { - var solution = context.Compilation.SolutionSnapshot; - var pc = solution.GetProjectContent(projectFileName); - if (pc != null) - return pc.Resolve(context); - else - return null; - } - - public override string ToString() - { - return string.Format("[ProjectReference {0}]", projectFileName); - } - } -} diff --git a/ICSharpCode.Decompiler/TypeSystem/TypeSystemExtensions.cs b/ICSharpCode.Decompiler/TypeSystem/TypeSystemExtensions.cs index dcc78f36d..d666c2995 100644 --- a/ICSharpCode.Decompiler/TypeSystem/TypeSystemExtensions.cs +++ b/ICSharpCode.Decompiler/TypeSystem/TypeSystemExtensions.cs @@ -208,69 +208,6 @@ namespace ICSharpCode.Decompiler.TypeSystem #endregion #region Import - /// - /// Imports a symbol from another compilation. - /// - public static ISymbol Import(this ICompilation compilation, ISymbol symbol) - { - if (compilation == null) - throw new ArgumentNullException("compilation"); - if (symbol == null) - return null; - switch (symbol.SymbolKind) { - case SymbolKind.TypeParameter: - return (ITypeParameter)Import(compilation, (IType)symbol); - case SymbolKind.Variable: - IVariable v = (IVariable)symbol; - return new DefaultVariable( - Import(compilation, v.Type), - v.Name, v.IsConst, v.ConstantValue - ); - case SymbolKind.Parameter: - IParameter p = (IParameter)symbol; - if (p.Owner != null) { - int index = p.Owner.Parameters.IndexOf(p); - var owner = (IParameterizedMember)Import(compilation, p.Owner); - if (owner == null || index < 0 || index >= owner.Parameters.Count) - return null; - return owner.Parameters[index]; - } else { - return new DefaultParameter( - Import(compilation, p.Type), - p.Name, null, - null, p.IsRef, p.IsOut, p.IsParams - ); - } - case SymbolKind.Namespace: - return Import(compilation, (INamespace)symbol); - default: - if (symbol is IEntity) - return Import(compilation, (IEntity)symbol); - throw new NotSupportedException("Unsupported symbol kind: " + symbol.SymbolKind); - } - } - - /// - /// Imports a type from another compilation. - /// - public static IType Import(this ICompilation compilation, IType type) - { - if (compilation == null) - throw new ArgumentNullException("compilation"); - if (type == null) - return null; - var compilationProvider = type as ICompilationProvider; - if (compilationProvider != null && compilationProvider.Compilation == compilation) - return type; - IEntity typeParameterOwner = GetTypeParameterOwner(type); - IEntity importedTypeParameterOwner = compilation.Import(typeParameterOwner); - if (importedTypeParameterOwner != null) { - return type.ToTypeReference().Resolve(new SimpleTypeResolveContext(importedTypeParameterOwner)); - } else { - return type.ToTypeReference().Resolve(compilation.TypeResolveContext); - } - } - /// /// Imports a type from another compilation. /// @@ -284,95 +221,6 @@ namespace ICSharpCode.Decompiler.TypeSystem return typeDefinition; return typeDefinition.ToTypeReference().Resolve(compilation.TypeResolveContext).GetDefinition(); } - - /// - /// Imports an entity from another compilation. - /// - public static IEntity Import(this ICompilation compilation, IEntity entity) - { - if (compilation == null) - throw new ArgumentNullException("compilation"); - if (entity == null) - return null; - if (entity.Compilation == compilation) - return entity; - if (entity is IMember) - return ((IMember)entity).ToReference().Resolve(compilation.TypeResolveContext); - else if (entity is ITypeDefinition) - return ((ITypeDefinition)entity).ToTypeReference().Resolve(compilation.TypeResolveContext).GetDefinition(); - else - throw new NotSupportedException("Unknown entity type"); - } - - /// - /// Imports a member from another compilation. - /// - public static IMember Import(this ICompilation compilation, IMember member) - { - if (compilation == null) - throw new ArgumentNullException("compilation"); - if (member == null) - return null; - if (member.Compilation == compilation) - return member; - return member.ToReference().Resolve(compilation.TypeResolveContext); - } - - /// - /// Imports a member from another compilation. - /// - public static IMethod Import(this ICompilation compilation, IMethod method) - { - return (IMethod)compilation.Import((IMember)method); - } - - /// - /// Imports a member from another compilation. - /// - public static IField Import(this ICompilation compilation, IField field) - { - return (IField)compilation.Import((IMember)field); - } - - /// - /// Imports a member from another compilation. - /// - public static IEvent Import(this ICompilation compilation, IEvent ev) - { - return (IEvent)compilation.Import((IMember)ev); - } - - /// - /// Imports a member from another compilation. - /// - public static IProperty Import(this ICompilation compilation, IProperty property) - { - return (IProperty)compilation.Import((IMember)property); - } - - /// - /// Imports a namespace from another compilation. - /// - /// - /// This method may return null if the namespace does not exist in the target compilation. - /// - public static INamespace Import(this ICompilation compilation, INamespace ns) - { - if (compilation == null) - throw new ArgumentNullException("compilation"); - if (ns == null) - return null; - if (ns.ParentNamespace == null) { - // root namespace - return compilation.GetNamespaceForExternAlias(ns.ExternAlias); - } else { - INamespace parent = Import(compilation, ns.ParentNamespace); - if (parent != null) - return parent.GetChildNamespace(ns.Name); - else - return null; - } - } #endregion #region GetDelegateInvokeMethod diff --git a/ICSharpCode.Decompiler/TypeSystem/VarArgInstanceMethod.cs b/ICSharpCode.Decompiler/TypeSystem/VarArgInstanceMethod.cs index aafdf67ad..f8fed12ed 100644 --- a/ICSharpCode.Decompiler/TypeSystem/VarArgInstanceMethod.cs +++ b/ICSharpCode.Decompiler/TypeSystem/VarArgInstanceMethod.cs @@ -164,11 +164,6 @@ namespace ICSharpCode.Decompiler.TypeSystem #region IMember implementation - public IMemberReference ToReference() - { - throw new NotImplementedException(); - } - IMember IMember.Specialize(TypeParameterSubstitution substitution) { return Specialize(substitution); @@ -213,12 +208,7 @@ namespace ICSharpCode.Decompiler.TypeSystem #endregion #region ISymbol implementation - - ISymbolReference ISymbol.ToReference() - { - return ToReference(); - } - + public SymbolKind SymbolKind { get { return baseMethod.SymbolKind; } } diff --git a/ILSpy.AddIn/CodeElementXmlDocKeyProvider.cs b/ILSpy.AddIn/CodeElementXmlDocKeyProvider.cs deleted file mode 100644 index 8ee9db8b0..000000000 --- a/ILSpy.AddIn/CodeElementXmlDocKeyProvider.cs +++ /dev/null @@ -1,270 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using ICSharpCode.Decompiler.CSharp.Syntax; - -namespace ICSharpCode.ILSpy.AddIn -{ - /// - /// Provides XML documentation tags for Visual Studio CodeElements. - /// - /// - /// Used to support the "/navigateTo" command line option when opening ILSpy. Must match - /// the logic of ICSharpCode.ILSpy.XmlDoc.XmlDocKeyProvider, which does the same thing for - /// a Mono.Cecil.MemberReference. See "ID string format" in Appendix A of the C# language - /// specification for formatting requirements, and Samples/ILSpyAddInSamples.cs for examples. - /// - public static class CodeElementXmlDocKeyProvider - { - #region GetKey - public static string GetKey(EnvDTE.CodeElement member) - { - StringBuilder b = new StringBuilder(); - if ((member.Kind == EnvDTE.vsCMElement.vsCMElementDelegate) || - (member.Kind == EnvDTE.vsCMElement.vsCMElementEnum) || - (member.Kind == EnvDTE.vsCMElement.vsCMElementInterface) || - (member.Kind == EnvDTE.vsCMElement.vsCMElementStruct) || - (member.Kind == EnvDTE.vsCMElement.vsCMElementClass)) { - b.Append("T:"); - AppendTypeName(b, member.FullName, true, false); - } - else if (member.Kind == EnvDTE.vsCMElement.vsCMElementNamespace){ - b.Append("N:"); - b.Append(member.FullName); - } - else { - if (member.Kind == EnvDTE.vsCMElement.vsCMElementVariable) - b.Append("F:"); - else if (member.Kind == EnvDTE.vsCMElement.vsCMElementProperty) - b.Append("P:"); - else if (member.Kind == EnvDTE.vsCMElement.vsCMElementEvent) - b.Append("E:"); - else if (member.Kind == EnvDTE.vsCMElement.vsCMElementFunction) - b.Append("M:"); - - int nameIndex = member.FullName.LastIndexOf(member.Name); - string typeName = member.FullName.Substring(0, nameIndex - 1); - string memberName = member.FullName.Substring(nameIndex); - - // Name substitutions for special cases. - if (member.Kind == EnvDTE.vsCMElement.vsCMElementFunction) { - EnvDTE80.CodeFunction2 mr = (EnvDTE80.CodeFunction2)member; - if (mr.FunctionKind == EnvDTE.vsCMFunction.vsCMFunctionConstructor) { - memberName = memberName.Replace(member.Name, "#ctor"); - } - else if (mr.FunctionKind == EnvDTE.vsCMFunction.vsCMFunctionDestructor) { - memberName = memberName.Replace(member.Name, "Finalize"); - } - else if (mr.FunctionKind == EnvDTE.vsCMFunction.vsCMFunctionOperator) { - if (memberName.StartsWith("implicit operator")) { - memberName = "op_Implicit"; - } - else if (memberName.StartsWith("explicit operator")) { - memberName = "op_Explicit"; - } - else { - // NRefactory has a handy mapping we can make use of, just need to extract the operator symbol first. - string[] memberNameWords = member.Name.Split(' '); - if (memberNameWords.Length >= 2) { - string operatorSymbol = memberNameWords[1]; - string operatorName = OperatorDeclaration.GetName(OperatorDeclaration.GetOperatorType(operatorSymbol)); - if (operatorName != null) { - memberName = memberName.Replace(member.Name, operatorName); - } - } - } - } - } - else if (member.Kind == EnvDTE.vsCMElement.vsCMElementProperty) { - if (member.Name == "this") { - memberName = memberName.Replace(member.Name, "Item"); - } - } - - string[] genericTypeParameters = AppendTypeName(b, typeName, true, false); - b.Append('.'); - string[] genericMethodParameters = AppendTypeName(b, memberName.Replace('.', '#'), true, true); - EnvDTE.CodeElements parameters; - EnvDTE.CodeTypeRef explicitReturnType = null; - if (member.Kind == EnvDTE.vsCMElement.vsCMElementProperty) { - parameters = ((EnvDTE.CodeProperty)member).Getter.Parameters; - } - else if (member.Kind == EnvDTE.vsCMElement.vsCMElementFunction) { - EnvDTE80.CodeFunction2 mr = (EnvDTE80.CodeFunction2)member; - parameters = mr.Parameters; - if (memberName == "op_Implicit" || memberName == "op_Explicit") { - explicitReturnType = mr.Type; - } - } - else { - parameters = null; - } - if (parameters != null && parameters.Count > 0) { - b.Append('('); - int i = 0; - foreach (EnvDTE80.CodeParameter2 parameter in parameters) { - if (i > 0) b.Append(','); - AppendParameterTypeName(b, parameter, genericTypeParameters, genericMethodParameters); - ++i; - } - b.Append(')'); - } - if (explicitReturnType != null) { - b.Append('~'); - AppendTypeName(b, explicitReturnType.AsFullName, true, false); - } - } - return b.ToString(); - } - - static string[] AppendTypeName(StringBuilder b, string typeName, bool appendGenericParameterCount, bool isMethod) - { - List allGenericParameters = new List(); - StringBuilder genericParameterName = new StringBuilder(); - - bool inGenericParameters = false; - int genericParameterCount = 0; - foreach (char ch in typeName) { - if (inGenericParameters) { - switch (ch) { - case ',': - ++genericParameterCount; - allGenericParameters.Add(genericParameterName.ToString()); - genericParameterName.Clear(); - break; - case '>': - ++genericParameterCount; - allGenericParameters.Add(genericParameterName.ToString()); - genericParameterName.Clear(); - if (appendGenericParameterCount) { - b.Append(genericParameterCount); - } - inGenericParameters = false; - break; - case ' ': - break; - default: - genericParameterName.Append(ch); - break; - } - } - else { - switch (ch) { - case '<': - if (appendGenericParameterCount) { - b.Append('`'); - if (isMethod) { - b.Append('`'); - } - } - inGenericParameters = true; - genericParameterCount = 0; - break; - case '[': - case ']': - break; - default: - b.Append(ch); - break; - } - } - } - - return allGenericParameters.ToArray(); - } - - private static void AppendParameterTypeName(StringBuilder b, EnvDTE80.CodeParameter2 parameter, string[] genericTypeParameters, string[] genericMethodParameters) - { - EnvDTE80.CodeTypeRef2 parameterTypeRef = (EnvDTE80.CodeTypeRef2)parameter.Type; - string parameterTypeString = parameterTypeRef.AsFullName; - - int substringStart = 0; - for (int i = 0; i < parameterTypeString.Length; ++i) { - char ch = parameterTypeString[i]; - switch (ch) { - case '<': - AppendParameterTypeSubstring(b, parameterTypeString, substringStart, i, genericTypeParameters, genericMethodParameters); - substringStart = i + 1; - b.Append('{'); - break; - case '>': - AppendParameterTypeSubstring(b, parameterTypeString, substringStart, i, genericTypeParameters, genericMethodParameters); - substringStart = i + 1; - b.Append('}'); - break; - - case '[': - AppendParameterTypeSubstring(b, parameterTypeString, substringStart, i, genericTypeParameters, genericMethodParameters); - b.Append('['); - - // Skip ahead to the closing bracket, counting commas to determine array rank. - int rank = 1; - do { - ++i; - ch = parameterTypeString[i]; - if (ch == ',') { - ++rank; - } - } - while (ch != ']'); - substringStart = i + 1; - - // For multi-dimensional arrays, add "0:" default array bounds. Note that non-standard bounds are not possible via C# declaration. - if (rank > 1) { - for (int r = 0; r < rank; ++r) { - if (r != 0) { - b.Append(','); - } - b.Append("0:"); - } - } - - b.Append(']'); - break; - - case ',': - AppendParameterTypeSubstring(b, parameterTypeString, substringStart, i, genericTypeParameters, genericMethodParameters); - substringStart = i + 1; - // Skip space after comma if present. (e.g. System.Collections.Generic.KeyValuePair`2{System.String,System.String}.) - if (parameterTypeString[substringStart] == ' ') { - ++substringStart; - } - b.Append(','); - break; - } - } - - AppendParameterTypeSubstring(b, parameterTypeString, substringStart, parameterTypeString.Length, genericTypeParameters, genericMethodParameters); - - // Append ref / out indicator if needed. - if ((parameter.ParameterKind == EnvDTE80.vsCMParameterKind.vsCMParameterKindRef) || - (parameter.ParameterKind == EnvDTE80.vsCMParameterKind.vsCMParameterKindOut)) { - b.Append('@'); - } - - // Note there is no need to append a '*' for pointers, as this is included in the full name of the type. - // Multi-dimensional and jagged arrays are handled above during string parsing. - } - - private static void AppendParameterTypeSubstring(StringBuilder b, string parameterTypeString, int substringStart, int substringStop, string[] genericTypeParameters, string[] genericMethodParameters) - { - if (substringStart < substringStop) { - string substring = parameterTypeString.Substring(substringStart, substringStop - substringStart); - int indexOfGenericTypeParameter = Array.IndexOf(genericTypeParameters, substring); - int indexOfGenericMethodParameter = Array.IndexOf(genericMethodParameters, substring); - if (indexOfGenericTypeParameter >= 0) { - b.Append("`"); - b.Append(indexOfGenericTypeParameter); - } - else if (indexOfGenericMethodParameter >= 0) { - b.Append("``"); - b.Append(indexOfGenericMethodParameter); - } - else { - b.Append(substring); - } - } - } - #endregion - } -} \ No newline at end of file diff --git a/ILSpy.AddIn/Commands/OpenCodeItemCommand.cs b/ILSpy.AddIn/Commands/OpenCodeItemCommand.cs index e73ddfdef..30bca416e 100644 --- a/ILSpy.AddIn/Commands/OpenCodeItemCommand.cs +++ b/ILSpy.AddIn/Commands/OpenCodeItemCommand.cs @@ -1,5 +1,8 @@ using System; +using System.IO; using System.Linq; +using System.Threading; +using Microsoft.CodeAnalysis; using Microsoft.VisualStudio.Shell; namespace ICSharpCode.ILSpy.AddIn.Commands @@ -27,55 +30,24 @@ namespace ICSharpCode.ILSpy.AddIn.Commands } } - protected override void OnExecute(object sender, EventArgs e) + protected override async void OnExecute(object sender, EventArgs e) { var document = owner.DTE.ActiveDocument; var selection = (EnvDTE.TextPoint)((EnvDTE.TextSelection)document.Selection).ActivePoint; - - // Search code elements in desired order, working from innermost to outermost. - // Should eventually find something, and if not we'll just open the assembly itself. - var codeElement = GetSelectedCodeElement(selection, - EnvDTE.vsCMElement.vsCMElementFunction, - EnvDTE.vsCMElement.vsCMElementEvent, - EnvDTE.vsCMElement.vsCMElementVariable, // There is no vsCMElementField, fields are just variables outside of function scope. - EnvDTE.vsCMElement.vsCMElementProperty, - EnvDTE.vsCMElement.vsCMElementDelegate, - EnvDTE.vsCMElement.vsCMElementEnum, - EnvDTE.vsCMElement.vsCMElementInterface, - EnvDTE.vsCMElement.vsCMElementStruct, - EnvDTE.vsCMElement.vsCMElementClass, - EnvDTE.vsCMElement.vsCMElementNamespace); - - if (codeElement != null) { - OpenCodeItemInILSpy(codeElement); - } - else { - OpenProjectInILSpy(document.ProjectItem.ContainingProject); - } - } - - private EnvDTE.CodeElement GetSelectedCodeElement(EnvDTE.TextPoint selection, params EnvDTE.vsCMElement[] elementTypes) - { - foreach (var elementType in elementTypes) { - var codeElement = selection.CodeElement[elementType]; - if (codeElement != null) { - return codeElement; - } - } - - return null; - } - - private void OpenProjectInILSpy(EnvDTE.Project project, params string[] arguments) - { - var roslynProject = owner.Workspace.CurrentSolution.Projects.FirstOrDefault(p => p.FilePath == project.FileName); - OpenAssembliesInILSpy(new[] { roslynProject.OutputFilePath }, arguments); - } - - private void OpenCodeItemInILSpy(EnvDTE.CodeElement codeElement) - { - string codeElementKey = CodeElementXmlDocKeyProvider.GetKey(codeElement); - OpenProjectInILSpy(codeElement.ProjectItem.ContainingProject, "/navigateTo:" + codeElementKey); + var id = owner.Workspace.CurrentSolution.GetDocumentIdsWithFilePath(document.FullName).FirstOrDefault(); + + if (id == null) return; + var roslynDocument = owner.Workspace.CurrentSolution.GetDocument(id); + var ast = await roslynDocument.GetSyntaxRootAsync().ConfigureAwait(false); + var model = await roslynDocument.GetSemanticModelAsync().ConfigureAwait(false); + var node = ast.FindNode(new Microsoft.CodeAnalysis.Text.TextSpan(selection.AbsoluteCharOffset, 1)); + if (node == null) + return; + var symbol = model.GetSymbolInfo(node).Symbol; + if (symbol == null) + return; + var refs = GetReferences(roslynDocument.Project).Select(fn => fn.Value).Where(f => File.Exists(f)).ToArray(); + OpenAssembliesInILSpy(refs, "/navigateTo:" + symbol.GetDocumentationCommentId()); } internal static void Register(ILSpyAddInPackage owner) diff --git a/ILSpy.AddIn/Commands/OpenILSpyCommand.cs b/ILSpy.AddIn/Commands/OpenILSpyCommand.cs index ce1802086..9d44d1b7d 100644 --- a/ILSpy.AddIn/Commands/OpenILSpyCommand.cs +++ b/ILSpy.AddIn/Commands/OpenILSpyCommand.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.VisualStudio.Shell; +using Mono.Cecil; namespace ICSharpCode.ILSpy.AddIn.Commands { @@ -40,6 +41,7 @@ namespace ICSharpCode.ILSpy.AddIn.Commands foreach (string assemblyFileName in assemblyFileNames) { if (!File.Exists(assemblyFileName)) { owner.ShowMessage("Could not find assembly '{0}', please ensure the project and all references were built correctly!", assemblyFileName); + return; } } @@ -50,6 +52,43 @@ namespace ICSharpCode.ILSpy.AddIn.Commands System.Diagnostics.Process.Start(GetILSpyPath(), commandLineArguments); } + + protected string GetProjectOutputPath(EnvDTE.Project project, Microsoft.CodeAnalysis.Project roslynProject) + { + string outputFileName = Path.GetFileName(roslynProject.OutputFilePath); + //get the directory path based on the project file. + string projectPath = Path.GetDirectoryName(project.FullName); + //get the output path based on the active configuration + string projectOutputPath = project.ConfigurationManager.ActiveConfiguration.Properties.Item("OutputPath").Value.ToString(); + //combine the project path and output path to get the bin path + return Path.Combine(projectPath, projectOutputPath, outputFileName); + } + + protected Dictionary GetReferences(Microsoft.CodeAnalysis.Project parentProject) + { + var dict = new Dictionary(); + foreach (var reference in parentProject.MetadataReferences) { + using (var assemblyDef = AssemblyDefinition.ReadAssembly(reference.Display)) { + if (IsReferenceAssembly(assemblyDef)) { + dict.Add(assemblyDef.Name.Name, GacInterop.FindAssemblyInNetGac(assemblyDef.Name)); + } else { + dict.Add(assemblyDef.Name.Name, reference.Display); + } + } + } + foreach (var projectReference in parentProject.ProjectReferences) { + var roslynProject = owner.Workspace.CurrentSolution.GetProject(projectReference.ProjectId); + var project = owner.DTE.Solution.Projects.OfType().FirstOrDefault(p => p.FileName == roslynProject.FilePath); + if (roslynProject != null && project != null) + dict.Add(roslynProject.AssemblyName, GetProjectOutputPath(project, roslynProject)); + } + return dict; + } + + protected bool IsReferenceAssembly(AssemblyDefinition assemblyDef) + { + return assemblyDef.CustomAttributes.Any(ca => ca.AttributeType.FullName == "System.Runtime.CompilerServices.ReferenceAssemblyAttribute"); + } } class OpenILSpyCommand : ILSpyCommand diff --git a/ILSpy.AddIn/Commands/OpenProjectOutputCommand.cs b/ILSpy.AddIn/Commands/OpenProjectOutputCommand.cs index 25751f7f6..699b54d7e 100644 --- a/ILSpy.AddIn/Commands/OpenProjectOutputCommand.cs +++ b/ILSpy.AddIn/Commands/OpenProjectOutputCommand.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Linq; namespace ICSharpCode.ILSpy.AddIn.Commands @@ -17,7 +18,13 @@ namespace ICSharpCode.ILSpy.AddIn.Commands if (owner.DTE.SelectedItems.Count != 1) return; var project = owner.DTE.SelectedItems.Item(1).Project; var roslynProject = owner.Workspace.CurrentSolution.Projects.FirstOrDefault(p => p.FilePath == project.FileName); - OpenAssembliesInILSpy(new[] { roslynProject.OutputFilePath }); + string outputFileName = Path.GetFileName(roslynProject.OutputFilePath); + //get the directory path based on the project file. + string projectPath = Path.GetDirectoryName(project.FullName); + //get the output path based on the active configuration + string projectOutputPath = project.ConfigurationManager.ActiveConfiguration.Properties.Item("OutputPath").Value.ToString(); + //combine the project path and output path to get the bin path + OpenAssembliesInILSpy(new[] { Path.Combine(projectPath, projectOutputPath, outputFileName) }); } internal static void Register(ILSpyAddInPackage owner) diff --git a/ILSpy.AddIn/Commands/OpenReferenceCommand.cs b/ILSpy.AddIn/Commands/OpenReferenceCommand.cs index 5c5318f8c..4df506b4d 100644 --- a/ILSpy.AddIn/Commands/OpenReferenceCommand.cs +++ b/ILSpy.AddIn/Commands/OpenReferenceCommand.cs @@ -30,7 +30,7 @@ namespace ICSharpCode.ILSpy.AddIn.Commands if (references.TryGetValue(reference.Name, out var path)) OpenAssembliesInILSpy(new[] { path }); else - owner.ShowMessage("Could not find reference '{0}'.", reference.Name); + owner.ShowMessage("Could not find reference '{0}', please ensure the project and all references were built correctly!", reference.Name); } else { dynamic referenceObject = item.Object; var values = GetProperties(referenceObject.Properties, "Type", "FusionName", "ResolvedPath"); @@ -47,34 +47,10 @@ namespace ICSharpCode.ILSpy.AddIn.Commands OpenAssembliesInILSpy(new string[] { GacInterop.FindAssemblyInNetGac(AssemblyNameReference.Parse(values[1])) }); return; } - owner.ShowMessage("Could not find reference '{0}'.", referenceObject.Name); + owner.ShowMessage("Could not find reference '{0}', please ensure the project and all references were built correctly!", referenceObject.Name); } } - private Dictionary GetReferences(Microsoft.CodeAnalysis.Project roslynProject) - { - var dict = new Dictionary(); - foreach (var reference in roslynProject.MetadataReferences) { - using (var assemblyDef = AssemblyDefinition.ReadAssembly(reference.Display)) { - if (IsReferenceAssembly(assemblyDef)) { - dict.Add(assemblyDef.Name.Name, GacInterop.FindAssemblyInNetGac(assemblyDef.Name)); - } else { - dict.Add(assemblyDef.Name.Name, reference.Display); - } - } - } - foreach (var projectReference in roslynProject.ProjectReferences) { - var project = owner.Workspace.CurrentSolution.GetProject(projectReference.ProjectId); - dict.Add(project.AssemblyName, project.OutputFilePath); - } - return dict; - } - - private bool IsReferenceAssembly(AssemblyDefinition assemblyDef) - { - return assemblyDef.CustomAttributes.Any(ca => ca.AttributeType.FullName == "System.Runtime.CompilerServices.ReferenceAssemblyAttribute"); - } - private string[] GetProperties(Properties properties, params string[] names) { string[] values = new string[names.Length]; diff --git a/ILSpy.AddIn/ILSpy.AddIn.csproj b/ILSpy.AddIn/ILSpy.AddIn.csproj index b98312b1c..885296628 100644 --- a/ILSpy.AddIn/ILSpy.AddIn.csproj +++ b/ILSpy.AddIn/ILSpy.AddIn.csproj @@ -62,7 +62,6 @@ - @@ -77,7 +76,6 @@ - diff --git a/ILSpy.AddIn/ILSpyAddInPackage.cs b/ILSpy.AddIn/ILSpyAddInPackage.cs index 0de1a65dc..13a90958f 100644 --- a/ILSpy.AddIn/ILSpyAddInPackage.cs +++ b/ILSpy.AddIn/ILSpyAddInPackage.cs @@ -84,7 +84,7 @@ namespace ICSharpCode.ILSpy.AddIn OpenILSpyCommand.Register(this); OpenProjectOutputCommand.Register(this); OpenReferenceCommand.Register(this); - OpenCodeItemCommand.Register(this); + //OpenCodeItemCommand.Register(this); } #endregion diff --git a/ILSpy.AddIn/Samples/ILSpyAddInSamples.cs b/ILSpy.AddIn/Samples/ILSpyAddInSamples.cs deleted file mode 100644 index 559501bd2..000000000 --- a/ILSpy.AddIn/Samples/ILSpyAddInSamples.cs +++ /dev/null @@ -1,414 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; - -/// Sample source file indicating a wide variety of code elements that should work -/// with the "Open code in ILSpy" Visual Studio add-in feature. Each code element is -/// commented with the string generated by CodeElementXmlDocKeyProvider.GetKey and -/// used with the ILSpy /navigateTo command line option. -/// -/// Note that this code is not compiled or used in the project in any way, it is -/// only provided for reference. - - -// N:ILSpy.AddIn.Tests -namespace ILSpy.AddIn.Tests -{ - // T:ILSpy.AddIn.Tests.SomeClass - public class SomeClass - { - // E:ILSpy.AddIn.Tests.SomeClass.OnEvent - public event Action OnEvent; - - // F:ILSpy.AddIn.Tests.SomeClass.mField - private int mField; - - // P:ILSpy.AddIn.Tests.SomeClass.Property - private int Property - { - get - { - return mField; - } - set - { - mField = value; - } - } - - // P:ILSpy.AddIn.Tests.SomeClass.Item(System.Int32,System.Int32) - public int this[int x, int y] - { - get { return x + y + mField; } - } - - // M:ILSpy.AddIn.Tests.SomeClass.#ctor - public SomeClass() - { - mField = 0; - } - - // M:ILSpy.AddIn.Tests.SomeClass.#ctor(System.Int32) - public SomeClass(int x) - { - mField = x; - } - - // M:ILSpy.AddIn.Tests.SomeClass.#ctor(System.Int32,System.Int32) - public SomeClass(int x, int y) - { - mField = x + y; - } - - // M:ILSpy.AddIn.Tests.SomeClass.Method - public int Method() - { - return mField; - } - - // M:ILSpy.AddIn.Tests.SomeClass.MethodWithGenericParameter(System.IEquatable{System.String}) - public void MethodWithGenericParameter(IEquatable x) - { - - } - - // M:ILSpy.AddIn.Tests.SomeClass.MethodWithGenericParameter(System.IEquatable{System.String},System.Int32) - public void MethodWithGenericParameter(IEquatable x, int y) - { - - } - - // M:ILSpy.AddIn.Tests.SomeClass.GenericMethod``1(``0) - public int GenericMethod(T x) - { - return mField + x.GetHashCode(); - } - - // M:ILSpy.AddIn.Tests.SomeClass.GenericOverloadedMethod``1(System.Int32,``0) - public int GenericOverloadedMethod(int x, T1 y) - { - return mField + x + y.GetHashCode(); - } - - // M:ILSpy.AddIn.Tests.SomeClass.GenericOverloadedMethod``2(System.Int32,``0,``1) - public int GenericOverloadedMethod(int x, T1 y, T2 z) - { - return mField + x + y.GetHashCode() + z.GetHashCode(); - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedMethod - public int OverloadedMethod() - { - return mField * mField; - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedMethod(System.Int32) - public int OverloadedMethod(int m) - { - return mField * m; - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedMethod(System.Int32,System.Int32) - public int OverloadedMethod(int m1, int m2) - { - return mField * m1 * m2; - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedGenericMethod``1 - public int OverloadedGenericMethod() - { - return mField * mField; - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedGenericMethod``1(System.Int32) - public int OverloadedGenericMethod(int m) - { - return mField * m; - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedGenericMethod``1(System.Int32,System.Int32) - public int OverloadedGenericMethod(int m1, int m2) - { - return mField * m1 * m2; - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedGenericMethod``1(System.Int32,System.Int32,System.Collections.IEnumerable) - public int OverloadedGenericMethod(int m1, int m2, IEnumerable m3) - { - return mField * m1 * m2; - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedGenericMethod``1(System.Int32,System.Int32,System.Collections.Generic.IEnumerable{``0}) - public int OverloadedGenericMethod(int m1, int m2, IEnumerable m3) - { - return mField * m1 * m2; - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedGenericMethod``1(System.Int32,System.Int32,System.Collections.Generic.IEnumerable{System.String}) - public int OverloadedGenericMethod(int m1, int m2, IEnumerable m3) - { - return mField * m1 * m2; - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedGenericMethod``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.IEnumerable{ILSpy.AddIn.Tests.SomeGenericClass{System.String,``0}}}) - public int OverloadedGenericMethod(IEnumerable>> m3) - { - return mField; - } - - // M:ILSpy.AddIn.Tests.SomeClass.OverloadedGenericMethod``1(ILSpy.AddIn.Tests.SomeGenericClass{``0,ILSpy.AddIn.Tests.SomeGenericClass{``0,``0}}.NestedGeneric{System.String,``0}) - public void OverloadedGenericMethod(SomeGenericClass>.NestedGeneric wow) - { - } - - // T:ILSpy.AddIn.Tests.SomeClass.NestedEnum - public enum NestedEnum - { - // F:ILSpy.AddIn.Tests.SomeClass.NestedEnum.First - First = 1, - Second = 2, - Third = 3 - } - - // T:ILSpy.AddIn.Tests.SomeClass.NestedInterface - public interface NestedInterface - { - // P:ILSpy.AddIn.Tests.SomeClass.NestedInterface.SomeProperty - int SomeProperty { get; } - - // M:ILSpy.AddIn.Tests.SomeClass.NestedInterface.SomeMethod - int SomeMethod(); - } - - // T:ILSpy.AddIn.Tests.SomeClass.NestedClass - public class NestedClass : NestedInterface - { - // F:ILSpy.AddIn.Tests.SomeClass.NestedClass.mX - private int mX; - - // M:ILSpy.AddIn.Tests.SomeClass.NestedClass.#ctor(System.Int32) - public NestedClass(int x) - { - mX = x; - } - - // M:ILSpy.AddIn.Tests.SomeClass.NestedClass.#ctor(ILSpy.AddIn.Tests.SomeClass.NestedEnum) - public NestedClass(NestedEnum x) - { - mX = (int)x; - } - - // P:ILSpy.AddIn.Tests.SomeClass.NestedClass.SomeProperty - public int SomeProperty - { - get { return mX; } - } - - // M:ILSpy.AddIn.Tests.SomeClass.NestedClass.SomeMethod - public int SomeMethod() - { - return mX * mX; - } - } - - // T:ILSpy.AddIn.Tests.SomeClass.NestedStruct - public struct NestedStruct : NestedInterface - { - // F:ILSpy.AddIn.Tests.SomeClass.NestedStruct.X - public int X; - // F:ILSpy.AddIn.Tests.SomeClass.NestedStruct.Y - public int Y; - - // P:ILSpy.AddIn.Tests.SomeClass.NestedStruct.SomeProperty - public int SomeProperty - { - get { return X + Y; } - } - - // M:ILSpy.AddIn.Tests.SomeClass.NestedStruct.SomeMethod - public int SomeMethod() - { - return X * Y; - } - } - } - - // T:ILSpy.AddIn.Tests.SomeGenericClass`2 - public class SomeGenericClass - { - // F:ILSpy.AddIn.Tests.SomeGenericClass`2.mField1 - T1 mField1; - // F:ILSpy.AddIn.Tests.SomeGenericClass`2.mField2 - T2 mField2; - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.#ctor(`0,`1) - public SomeGenericClass(T1 a, T2 b) - { - mField1 = a; - mField2 = b; - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.#ctor(`0) - public SomeGenericClass(T1 a) - { - mField1 = a; - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.#ctor - public SomeGenericClass() - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.Finalize - ~SomeGenericClass() - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassMethod(`0,`1) - public void GenericClassMethod(T1 a, T2 b) - { - mField1 = a; - mField2 = b; - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassMethod(System.Int32*) - unsafe public void GenericClassMethod(int* x) - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassMethod(System.Int32*[]) - unsafe public void GenericClassMethod(int*[] x) - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassMethod(`0[]@) - unsafe public void GenericClassMethod(out T1[] x) - { - x = null; - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassMethod(System.Int32@) - public void GenericClassMethod(ref int a) - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassGenericMethod``1(``0@) - public T3 GenericClassGenericMethod(ref T3 x) - { - return x; - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassGenericMethod``1 - public T3 GenericClassGenericMethod() - { - return default(T3); - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassGenericMethod``1(System.Int32) - public void GenericClassGenericMethod(int x) - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassGenericMethod``2(`0,``1,System.Int32,`1@) - public T4 GenericClassGenericMethod(T1 x, T4 y, int z, out T2 result) - { - mField1 = x; - string foo = y.ToString() + z.ToString(); - result = mField2; - return y; - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassGenericMethod``2(`0,``0,System.Int32[]) - public T3 GenericClassGenericMethod(T1 x, T3 y, int[] z) - { - mField1 = x; - string foo = y.ToString() + z.ToString(); - return y; - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.ArrayMethod(`0[],System.Int32[]) - public void ArrayMethod(T1[] x, int[] y) - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.ArrayMethod(`0[0:,0:],System.Int32[0:,0:]) - public void ArrayMethod(T1[,] x, int[,] y) - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.ArrayMethod(System.Int32[0:,0:],System.Int32[0:,0:]) - public void ArrayMethod(int[,] x, int[,] y) - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.ArrayMethod(`0[][],System.Int32[][]) - public void ArrayMethod(T1[][] x, int[][] y) - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassGenericMethod``2(`0,``0,ILSpy.AddIn.Tests.SomeClass) - public T3 GenericClassGenericMethod(T1 x, T3 y, SomeClass z) - { - return y; - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassGenericMethod``2(`0,``0,ILSpy.AddIn.Tests.SomeClass[]@) - public T3 GenericClassGenericMethod(T1 x, T3 y, out SomeClass[] z) - { - z = null; - return y; - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.GenericClassGenericMethod``2(System.Int32[],ILSpy.AddIn.Tests.SomeGenericClass{``0[],``1[0:,0:,0:]}[0:,0:,0:]) - public void GenericClassGenericMethod(int[] x, SomeGenericClass[,,] y) - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.op_Addition(ILSpy.AddIn.Tests.SomeGenericClass{`0,`1},ILSpy.AddIn.Tests.SomeGenericClass{`0,`1}) - public static SomeGenericClass operator +(SomeGenericClass a, SomeGenericClass b) - { - return new SomeGenericClass(); - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.op_Explicit(ILSpy.AddIn.Tests.SomeGenericClass{`0,`1})~ILSpy.AddIn.Tests.SomeGenericClass`2.NestedGeneric`2 - public static explicit operator NestedGeneric(SomeGenericClass sgc) - { - return new NestedGeneric(); - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.op_Implicit(ILSpy.AddIn.Tests.SomeGenericClass{`0,`1})~ILSpy.AddIn.Tests.SomeGenericClass`2.NestedGeneric`2 - public static implicit operator NestedGeneric(SomeGenericClass sgc) - { - return new NestedGeneric(); - } - - // T:ILSpy.AddIn.Tests.SomeGenericClass`2.NestedGeneric`2 - public class NestedGeneric - { - // T:ILSpy.AddIn.Tests.SomeGenericClass`2.NestedGeneric`2.NestedDelegate - public delegate int NestedDelegate(T3 x, IEnumerable y); - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.NestedGeneric`2.NestedGenericMethod``1(`0,``0) - public void NestedGenericMethod(T1 x, T5 y) - { - } - - // M:ILSpy.AddIn.Tests.SomeGenericClass`2.NestedGeneric`2.NestedGenericMethod``3(`0,`3,``0[],System.Collections.Generic.IEnumerable{``2}) - public void NestedGenericMethod(T1 x, T4 y, T5[] z, IEnumerable w) - { - } - } - } -} - -// T:SpaceFreeClass -class SpaceFreeClass -{ - // F:SpaceFreeClass.mField - int mField; - - // M:SpaceFreeClass.Method - private void Method() - { - } -} diff --git a/ILSpy/Commands/DecompileAllCommand.cs b/ILSpy/Commands/DecompileAllCommand.cs index 22327c5b2..ba2c40025 100644 --- a/ILSpy/Commands/DecompileAllCommand.cs +++ b/ILSpy/Commands/DecompileAllCommand.cs @@ -20,7 +20,9 @@ using System; using System.Diagnostics; +using System.Linq; using System.Threading.Tasks; +using ICSharpCode.Decompiler; using ICSharpCode.ILSpy.TextView; namespace ICSharpCode.ILSpy @@ -64,6 +66,32 @@ namespace ICSharpCode.ILSpy }, ct)).Then(output => MainWindow.Instance.TextView.ShowText(output)).HandleExceptions(); } } + + [ExportMainMenuCommand(Menu = "_File", Header = "DEBUG -- Decompile 100x", MenuCategory = "Open", MenuOrder = 2.6)] + sealed class Decompile100TimesCommand : SimpleCommand + { + public override void Execute(object parameter) + { + const int numRuns = 100; + var language = MainWindow.Instance.CurrentLanguage; + var nodes = MainWindow.Instance.SelectedNodes.ToArray(); + var options = new DecompilationOptions(); + MainWindow.Instance.TextView.RunWithCancellation(ct => Task.Factory.StartNew(() => { + options.CancellationToken = ct; + Stopwatch w = Stopwatch.StartNew(); + for (int i = 0; i < numRuns; ++i) { + foreach (var node in nodes) { + node.Decompile(language, new PlainTextOutput(), options); + } + } + w.Stop(); + AvalonEditTextOutput output = new AvalonEditTextOutput(); + double msPerRun = w.Elapsed.TotalMilliseconds / numRuns; + output.Write($"Average time: {msPerRun.ToString("f1")}ms\n"); + return output; + }, ct)).Then(output => MainWindow.Instance.TextView.ShowText(output)).HandleExceptions(); + } + } } #endif \ No newline at end of file