diff --git a/ICSharpCode.Decompiler.PdbProvider.Cecil/ICSharpCode.Decompiler.PdbProvider.Cecil.csproj b/ICSharpCode.Decompiler.PdbProvider.Cecil/ICSharpCode.Decompiler.PdbProvider.Cecil.csproj index bd51bff90..c545c43a9 100644 --- a/ICSharpCode.Decompiler.PdbProvider.Cecil/ICSharpCode.Decompiler.PdbProvider.Cecil.csproj +++ b/ICSharpCode.Decompiler.PdbProvider.Cecil/ICSharpCode.Decompiler.PdbProvider.Cecil.csproj @@ -7,7 +7,7 @@ - + diff --git a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj index f3b3721d5..627f37cb6 100644 --- a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj +++ b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj @@ -37,11 +37,11 @@ - - - - - + + + + + @@ -71,11 +71,15 @@ + + + + diff --git a/ICSharpCode.Decompiler.Tests/ILPrettyTestRunner.cs b/ICSharpCode.Decompiler.Tests/ILPrettyTestRunner.cs index 12fcbb8fd..226f1c151 100644 --- a/ICSharpCode.Decompiler.Tests/ILPrettyTestRunner.cs +++ b/ICSharpCode.Decompiler.Tests/ILPrettyTestRunner.cs @@ -124,6 +124,12 @@ namespace ICSharpCode.Decompiler.Tests Run(); } + [Test] + public void Issue1323() + { + Run(); + } + [Test] public void FSharpLoops_Debug() { diff --git a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs index 344905d7f..445e23082 100644 --- a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs +++ b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs @@ -85,31 +85,31 @@ namespace ICSharpCode.Decompiler.Tests } [Test] - public void InlineAssignmentTest([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void InlineAssignmentTest([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void CompoundAssignmentTest([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void CompoundAssignmentTest([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void ShortCircuit([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void ShortCircuit([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void CustomShortCircuitOperators([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void CustomShortCircuitOperators([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void ExceptionHandling([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void ExceptionHandling([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions, decompilerSettings: new DecompilerSettings { NullPropagation = false, @@ -119,7 +119,7 @@ namespace ICSharpCode.Decompiler.Tests } [Test] - public void Switch([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void Switch([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions, decompilerSettings: new DecompilerSettings { // legacy csc generates a dead store in debug builds @@ -128,49 +128,55 @@ namespace ICSharpCode.Decompiler.Tests } [Test] - public void DelegateConstruction([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void ReduceNesting([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void AnonymousTypes([ValueSource("defaultOptionsWithMcs")] CSharpCompilerOptions cscOptions) + public void DelegateConstruction([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void Async([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void AnonymousTypes([ValueSource(nameof(defaultOptionsWithMcs))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void Lock([ValueSource("defaultOptionsWithMcs")] CSharpCompilerOptions cscOptions) + public void Async([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void Using([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void Lock([ValueSource(nameof(defaultOptionsWithMcs))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void LiftedOperators([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void Using([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void Generics([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void LiftedOperators([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void Loops([ValueSource("defaultOptionsWithMcs")] CSharpCompilerOptions cscOptions) + public void Generics([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) + { + RunForLibrary(cscOptions: cscOptions); + } + + [Test] + public void Loops([ValueSource(nameof(defaultOptionsWithMcs))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions, decompilerSettings: new DecompilerSettings { // legacy csc generates a dead store in debug builds @@ -179,62 +185,62 @@ namespace ICSharpCode.Decompiler.Tests } [Test] - public void PropertiesAndEvents([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void PropertiesAndEvents([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void AutoProperties([ValueSource("roslynOnlyOptions")] CSharpCompilerOptions cscOptions) + public void AutoProperties([ValueSource(nameof(roslynOnlyOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void QueryExpressions([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void QueryExpressions([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void TypeAnalysisTests([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void TypeAnalysisTests([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void CheckedUnchecked([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void CheckedUnchecked([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void UnsafeCode([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void UnsafeCode([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void PInvoke([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void PInvoke([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { // This tests needs our own disassembler; ildasm has a bug with marshalinfo. RunForLibrary(cscOptions: cscOptions, asmOptions: AssemblerOptions.UseOwnDisassembler); } [Test] - public void InitializerTests([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void InitializerTests([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void DynamicTests([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void DynamicTests([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void ExpressionTrees([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void ExpressionTrees([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } @@ -246,79 +252,79 @@ namespace ICSharpCode.Decompiler.Tests } [Test] - public void VariableNaming([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void VariableNaming([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void VariableNamingWithoutSymbols([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void VariableNamingWithoutSymbols([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions, decompilerSettings: new DecompilerSettings { UseDebugSymbols = false }); } [Test] - public void CS72_PrivateProtected([ValueSource("roslynOnlyOptions")] CSharpCompilerOptions cscOptions) + public void CS72_PrivateProtected([ValueSource(nameof(roslynOnlyOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void AsyncMain([ValueSource("roslynOnlyOptions")] CSharpCompilerOptions cscOptions) + public void AsyncMain([ValueSource(nameof(roslynOnlyOptions))] CSharpCompilerOptions cscOptions) { Run(cscOptions: cscOptions); } [Test] - public void NullPropagation([ValueSource("roslynOnlyOptions")] CSharpCompilerOptions cscOptions) + public void NullPropagation([ValueSource(nameof(roslynOnlyOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void CS6_StringInterpolation([ValueSource("roslynOnlyOptions")] CSharpCompilerOptions cscOptions) + public void CS6_StringInterpolation([ValueSource(nameof(roslynOnlyOptions))] CSharpCompilerOptions cscOptions) { Run(cscOptions: cscOptions); } [Test] - public void CS73_StackAllocInitializers([ValueSource("roslynOnlyOptions")] CSharpCompilerOptions cscOptions) + public void CS73_StackAllocInitializers([ValueSource(nameof(roslynOnlyOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void RefLocalsAndReturns([ValueSource("roslynOnlyOptions")] CSharpCompilerOptions cscOptions) + public void RefLocalsAndReturns([ValueSource(nameof(roslynOnlyOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void WellKnownConstants([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void WellKnownConstants([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void QualifierTests([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void QualifierTests([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void TupleTests([ValueSource("roslynOnlyOptions")] CSharpCompilerOptions cscOptions) + public void TupleTests([ValueSource(nameof(roslynOnlyOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void NamedArguments([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void NamedArguments([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void OptionalArguments([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void OptionalArguments([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } @@ -354,13 +360,19 @@ namespace ICSharpCode.Decompiler.Tests } [Test] - public void MemberTests([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void MemberTests([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) + { + RunForLibrary(cscOptions: cscOptions); + } + + [Test] + public void TypeTests([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } [Test] - public void TypeTests([ValueSource("defaultOptions")] CSharpCompilerOptions cscOptions) + public void YieldReturn([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions) { RunForLibrary(cscOptions: cscOptions); } diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Loops.cs b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Loops.cs index da2685955..4f79d5850 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Loops.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Loops.cs @@ -79,6 +79,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness Console.WriteLine(NoForeachDueToMultipleCurrentAccess(new List { 1, 2, 3, 4, 5 })); Console.WriteLine(NoForeachCallWithSideEffect(new CustomClassEnumeratorWithIDisposable())); LoopWithGotoRepeat(); + Console.WriteLine("LoopFollowedByIf: {0}", LoopFollowedByIf()); } public static void ForWithMultipleVariables() @@ -246,5 +247,17 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness } Console.WriteLine("after finally"); } + + private static int LoopFollowedByIf() + { + int num = 0; + while (num == 0) { + num++; + } + if (num == 0) { + return -1; + } + return num; + } } } diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/OverloadResolution.cs b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/OverloadResolution.cs index 8ba323779..fe271f020 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/OverloadResolution.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/OverloadResolution.cs @@ -32,6 +32,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness Generics(); ConstructorTest(); TestIndexer(); + Issue1281(); } #region ConstructorTest @@ -86,6 +87,24 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness { Console.WriteLine("TestCall with params: " + (p2 == null ? "null" : p2.Length.ToString())); } + + static void Issue1281() + { + var arg = new object[0]; + TestCallIssue1281(arg); + TestCallIssue1281((object)arg); + TestCallIssue1281(new[] { arg }); + } + + static void TestCallIssue1281(params object[] args) + { + Console.Write("TestCallIssue1281: count = " + args.Length + ": "); + foreach (var arg in args) { + Console.Write(arg); + Console.Write(", "); + } + Console.WriteLine(); + } #endregion #region Simple Overloaded Method diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/YieldReturn.cs b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/YieldReturn.cs index 18483b8cd..6398f740b 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/YieldReturn.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/YieldReturn.cs @@ -76,6 +76,14 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness int fieldOnThis; + public static IEnumerable YieldChars { + get { + yield return 'a'; + yield return 'b'; + yield return 'c'; + } + } + public static IEnumerable SimpleYieldReturn() { yield return "A"; @@ -188,8 +196,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness yield return "E"; yield return "F"; // outer try-finally block - foreach (string line in input) + foreach (string line in input) { yield return line.ToUpper(); + } } public static IEnumerable> YieldReturnWithAnonymousMethods1(IEnumerable input) @@ -210,17 +219,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness public static IEnumerable GetEvenNumbers(int n) { for (int i = 0; i < n; i++) { - if (i % 2 == 0) + if (i % 2 == 0) { yield return i; - } - } - - public static IEnumerable YieldChars - { - get { - yield return 'a'; - yield return 'b'; - yield return 'c'; + } } } @@ -283,7 +284,8 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness yield return 0; try { Console.WriteLine("In Try"); - yield break; // same compiler bug as in YieldBreakInCatchInTryFinally + // same compiler bug as in YieldBreakInCatchInTryFinally + yield break; } catch { Console.WriteLine("Catch"); } @@ -299,8 +301,10 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness yield return 0; try { Console.WriteLine("In Try"); - if (b) - yield break; // same compiler bug as in YieldBreakInCatchInTryFinally + if (b) { + // same compiler bug as in YieldBreakInCatchInTryFinally + yield break; + } } finally { Console.WriteLine("Inner Finally"); } @@ -406,7 +410,6 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness public static IEnumerable TryFinallyWithTwoExitPointsInNestedCatch(bool b) { - // The first user IL instruction is already in 2 nested try blocks. try { yield return 1; try { @@ -434,9 +437,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness try { yield return 2; } finally { - T b = a; - b.Dispose(); - b.Dispose(); + T val = a; + val.Dispose(); + val.Dispose(); } yield return 3; } diff --git a/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1323.cs b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1323.cs new file mode 100644 index 000000000..abfeafed1 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1323.cs @@ -0,0 +1,11 @@ +public enum Enum0 +{ + // error: enumerator has no value + const_0, + // error: enumerator has no value + const_1, + // error: enumerator has no value + const_2, + // error: enumerator has no value + const_3 +} \ No newline at end of file diff --git a/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1323.il b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1323.il new file mode 100644 index 000000000..55674611a --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1323.il @@ -0,0 +1,40 @@ +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern System +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly extern System.Core +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly Issue1323 +{ + .ver 1:0:0:0 +} +.module Issue1323.dll +// MVID: {B973FCD6-A9C4-48A9-8291-26DDC248E208} +.imagebase 0x00400000 +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 // WINDOWS_CUI +.corflags 0x00020003 // ILONLY 32BITPREFERRED +// Image base: 0x000001C4B6C90000 + +.class public auto ansi sealed Enum0 + extends [mscorlib]System.Enum +{ + // Fields + .field public specialname rtspecialname int32 value__ + .field public static literal valuetype Enum0 const_0 + .field public static literal valuetype Enum0 const_1 + .field public static literal valuetype Enum0 const_2 + .field public static literal valuetype Enum0 const_3 + +} // end of class Enum0 \ No newline at end of file diff --git a/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue959.cs b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue959.cs index c9fc8ee2a..cee558bc4 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue959.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue959.cs @@ -4,7 +4,7 @@ { public void Test(bool arg) { - switch (arg) { + if (!arg && arg) { } } diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.cs index 6e2b5a74d..0632affe9 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.cs @@ -29,5 +29,14 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty get; set; } + + public int issue1319 { + get; + } + + public AutoProperties(int issue1319) + { + this.issue1319 = issue1319; + } } } diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.opt.roslyn.il index 2cbd82acc..e1857272e 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.opt.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.opt.roslyn.il @@ -47,6 +47,8 @@ .field private int32 'k__BackingField' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [mscorlib]System.ObsoleteAttribute::.ctor(string) = ( 01 00 05 46 69 65 6C 64 00 00 ) // ...Field.. + .field private initonly int32 'k__BackingField' + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig specialname instance int32 get_A() cil managed { @@ -135,10 +137,21 @@ IL_0007: ret } // end of method AutoProperties::set_PropertyWithAttributeOnBackingField + .method public hidebysig specialname instance int32 + get_issue1319() 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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::'k__BackingField' + IL_0006: ret + } // end of method AutoProperties::get_issue1319 + .method public hidebysig specialname rtspecialname - instance void .ctor() cil managed + instance void .ctor(int32 issue1319) cil managed { - // Code size 21 (0x15) + // Code size 28 (0x1c) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldc.i4.1 @@ -148,7 +161,10 @@ IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::'k__BackingField' IL_000e: ldarg.0 IL_000f: call instance void [mscorlib]System.Object::.ctor() - IL_0014: ret + IL_0014: ldarg.0 + IL_0015: ldarg.1 + IL_0016: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::'k__BackingField' + IL_001b: ret } // end of method AutoProperties::.ctor .method private hidebysig specialname rtspecialname static @@ -187,6 +203,10 @@ .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::get_PropertyWithAttributeOnBackingField() .set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::set_PropertyWithAttributeOnBackingField(int32) } // end of property AutoProperties::PropertyWithAttributeOnBackingField + .property instance int32 issue1319() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::get_issue1319() + } // end of property AutoProperties::issue1319 } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.roslyn.il index 1fec1b71f..100b4390b 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/AutoProperties.roslyn.il @@ -52,6 +52,9 @@ .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 ) .custom instance void [mscorlib]System.ObsoleteAttribute::.ctor(string) = ( 01 00 05 46 69 65 6C 64 00 00 ) // ...Field.. + .field private initonly int32 '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 int32 get_A() cil managed { @@ -140,10 +143,21 @@ IL_0007: ret } // end of method AutoProperties::set_PropertyWithAttributeOnBackingField + .method public hidebysig specialname instance int32 + get_issue1319() 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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::'k__BackingField' + IL_0006: ret + } // end of method AutoProperties::get_issue1319 + .method public hidebysig specialname rtspecialname - instance void .ctor() cil managed + instance void .ctor(int32 issue1319) cil managed { - // Code size 22 (0x16) + // Code size 30 (0x1e) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldc.i4.1 @@ -154,7 +168,11 @@ IL_000e: ldarg.0 IL_000f: call instance void [mscorlib]System.Object::.ctor() IL_0014: nop - IL_0015: ret + IL_0015: nop + IL_0016: ldarg.0 + IL_0017: ldarg.1 + IL_0018: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::'k__BackingField' + IL_001d: ret } // end of method AutoProperties::.ctor .method private hidebysig specialname rtspecialname static @@ -193,6 +211,10 @@ .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::get_PropertyWithAttributeOnBackingField() .set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::set_PropertyWithAttributeOnBackingField(int32) } // end of property AutoProperties::PropertyWithAttributeOnBackingField + .property instance int32 issue1319() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties::get_issue1319() + } // end of property AutoProperties::issue1319 } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.AutoProperties diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.cs index 18dbfd1d5..b82bd474b 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.cs @@ -21,8 +21,15 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty Console.WriteLine($"\ta{$"a{args.Length}" == args[0]}"); } + public static void ArrayExpansionSpecialCases(object[] args) + { + Console.WriteLine($"args: {args}"); + Console.WriteLine(string.Format("args: {0}", args)); + } + public static void InvalidFormatString(string[] args) { +#pragma warning disable IDE0043 Console.WriteLine(string.Format("", args.Length)); Console.WriteLine(string.Format("a", args.Length)); Console.WriteLine(string.Format("}", args.Length)); @@ -47,6 +54,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty Console.WriteLine(string.Format("{0:}", args.Length)); Console.WriteLine(string.Format("{0{a}0}", args.Length)); Console.WriteLine(string.Format("test: {0}", string.Join(",", args))); +#pragma warning restore } public void FormattableStrings(FormattableString s, string[] args) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.opt.roslyn.il index d971dcadf..362395e88 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.opt.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.opt.roslyn.il @@ -169,6 +169,23 @@ IL_0115: ret } // end of method CS6_StringInterpolation::General + .method public hidebysig static void ArrayExpansionSpecialCases(object[] args) cil managed + { + // Code size 33 (0x21) + .maxstack 8 + IL_0000: ldstr "args: {0}" + IL_0005: ldarg.0 + IL_0006: call string [mscorlib]System.String::Format(string, + object) + IL_000b: call void [mscorlib]System.Console::WriteLine(string) + IL_0010: ldstr "args: {0}" + IL_0015: ldarg.0 + IL_0016: call string [mscorlib]System.String::Format(string, + object[]) + IL_001b: call void [mscorlib]System.Console::WriteLine(string) + IL_0020: ret + } // end of method CS6_StringInterpolation::ArrayExpansionSpecialCases + .method public hidebysig static void InvalidFormatString(string[] args) cil managed { // Code size 556 (0x22c) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.roslyn.il index 06695b28b..0049393e9 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.roslyn.il @@ -180,6 +180,26 @@ IL_011f: ret } // end of method CS6_StringInterpolation::General + .method public hidebysig static void ArrayExpansionSpecialCases(object[] args) cil managed + { + // Code size 36 (0x24) + .maxstack 8 + IL_0000: nop + IL_0001: ldstr "args: {0}" + IL_0006: ldarg.0 + IL_0007: call string [mscorlib]System.String::Format(string, + object) + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: nop + IL_0012: ldstr "args: {0}" + IL_0017: ldarg.0 + IL_0018: call string [mscorlib]System.String::Format(string, + object[]) + IL_001d: call void [mscorlib]System.Console::WriteLine(string) + IL_0022: nop + IL_0023: ret + } // end of method CS6_StringInterpolation::ArrayExpansionSpecialCases + .method public hidebysig static void InvalidFormatString(string[] args) cil managed { // Code size 581 (0x245) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.cs index 58dc08cbb..a8d00d066 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.cs @@ -103,5 +103,29 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty { Console.WriteLine(new int[checked(a + b)]); } + + public short Unbox(TypeCode c, object b) + { + checked { + switch (c) { + case TypeCode.Int32: + return (short)((Box)b).Value; + case TypeCode.UInt32: + return (short)((Box)b).Value; + case TypeCode.Double: { + float num = (float)((Box)b).Value; + Console.WriteLine(num); + return (short)num; + } + default: + throw new Exception(); + } + } + } + } + + internal class Box + { + public readonly T Value; } } diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.il index 112211827..2ea8d69a4 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.il @@ -345,6 +345,66 @@ IL_000f: ret } // end of method CheckedUnchecked::CheckedInArrayCreationArgument + .method public hidebysig instance int16 + Unbox(valuetype [mscorlib]System.TypeCode c, + object b) cil managed + { + // Code size 92 (0x5c) + .maxstack 2 + .locals init (float32 V_0, + int16 V_1, + valuetype [mscorlib]System.TypeCode V_2) + IL_0000: nop + IL_0001: nop + IL_0002: ldarg.1 + IL_0003: stloc.2 + IL_0004: ldloc.2 + IL_0005: ldc.i4.s 9 + IL_0007: sub + IL_0008: switch ( + IL_001c, + IL_002b) + IL_0015: ldloc.2 + IL_0016: ldc.i4.s 14 + IL_0018: beq.s IL_003a + + IL_001a: br.s IL_0054 + + IL_001c: ldarg.2 + IL_001d: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_0022: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_0027: conv.ovf.i2 + IL_0028: stloc.1 + IL_0029: br.s IL_005a + + IL_002b: ldarg.2 + IL_002c: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_0031: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_0036: conv.ovf.i2.un + IL_0037: stloc.1 + IL_0038: br.s IL_005a + + IL_003a: nop + IL_003b: ldarg.2 + IL_003c: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_0041: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_0046: conv.r4 + IL_0047: stloc.0 + IL_0048: ldloc.0 + IL_0049: call void [mscorlib]System.Console::WriteLine(float32) + IL_004e: nop + IL_004f: ldloc.0 + IL_0050: conv.ovf.i2 + IL_0051: stloc.1 + IL_0052: br.s IL_005a + + IL_0054: newobj instance void [mscorlib]System.Exception::.ctor() + IL_0059: throw + + IL_005a: ldloc.1 + IL_005b: ret + } // end of method CheckedUnchecked::Unbox + .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { @@ -440,6 +500,22 @@ } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CheckedUnchecked +.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + extends [mscorlib]System.Object +{ + .field public initonly !T Value + .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 Box`1::.ctor + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + .class private auto ansi sealed beforefieldinit '<>f__AnonymousType0`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.opt.il index bda202d27..6efda9e25 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.opt.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.opt.il @@ -300,6 +300,55 @@ IL_000d: ret } // end of method CheckedUnchecked::CheckedInArrayCreationArgument + .method public hidebysig instance int16 + Unbox(valuetype [mscorlib]System.TypeCode c, + object b) cil managed + { + // Code size 80 (0x50) + .maxstack 2 + .locals init (float32 V_0, + valuetype [mscorlib]System.TypeCode V_1) + IL_0000: ldarg.1 + IL_0001: stloc.1 + IL_0002: ldloc.1 + IL_0003: ldc.i4.s 9 + IL_0005: sub + IL_0006: switch ( + IL_001a, + IL_0027) + IL_0013: ldloc.1 + IL_0014: ldc.i4.s 14 + IL_0016: beq.s IL_0034 + + IL_0018: br.s IL_004a + + IL_001a: ldarg.2 + IL_001b: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_0020: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_0025: conv.ovf.i2 + IL_0026: ret + + IL_0027: ldarg.2 + IL_0028: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_002d: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_0032: conv.ovf.i2.un + IL_0033: ret + + IL_0034: ldarg.2 + IL_0035: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_003a: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_003f: conv.r4 + IL_0040: stloc.0 + IL_0041: ldloc.0 + IL_0042: call void [mscorlib]System.Console::WriteLine(float32) + IL_0047: ldloc.0 + IL_0048: conv.ovf.i2 + IL_0049: ret + + IL_004a: newobj instance void [mscorlib]System.Exception::.ctor() + IL_004f: throw + } // end of method CheckedUnchecked::Unbox + .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { @@ -380,6 +429,22 @@ } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CheckedUnchecked +.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + extends [mscorlib]System.Object +{ + .field public initonly !T Value + .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 Box`1::.ctor + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + .class private auto ansi sealed beforefieldinit '<>f__AnonymousType0`2'<'j__TPar','j__TPar'> extends [mscorlib]System.Object { diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.opt.roslyn.il index 771fc6494..ffe87cffa 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.opt.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.opt.roslyn.il @@ -574,6 +574,51 @@ IL_000d: ret } // end of method CheckedUnchecked::CheckedInArrayCreationArgument + .method public hidebysig instance int16 + Unbox(valuetype [mscorlib]System.TypeCode c, + object b) cil managed + { + // Code size 69 (0x45) + .maxstack 2 + IL_0000: ldarg.1 + IL_0001: ldc.i4.s 9 + IL_0003: beq.s IL_0011 + + IL_0005: ldarg.1 + IL_0006: ldc.i4.s 10 + IL_0008: beq.s IL_001e + + IL_000a: ldarg.1 + IL_000b: ldc.i4.s 14 + IL_000d: beq.s IL_002b + + IL_000f: br.s IL_003f + + IL_0011: ldarg.2 + IL_0012: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_0017: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_001c: conv.ovf.i2 + IL_001d: ret + + IL_001e: ldarg.2 + IL_001f: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_0024: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_0029: conv.ovf.i2.un + IL_002a: ret + + IL_002b: ldarg.2 + IL_002c: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_0031: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_0036: conv.r4 + IL_0037: dup + IL_0038: call void [mscorlib]System.Console::WriteLine(float32) + IL_003d: conv.ovf.i2 + IL_003e: ret + + IL_003f: newobj instance void [mscorlib]System.Exception::.ctor() + IL_0044: throw + } // end of method CheckedUnchecked::Unbox + .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { @@ -586,6 +631,22 @@ } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CheckedUnchecked +.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + extends [mscorlib]System.Object +{ + .field public initonly !T Value + .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 Box`1::.ctor + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + // ============================================================= diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.roslyn.il index d43345401..154f67d1e 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CheckedUnchecked.roslyn.il @@ -624,6 +624,72 @@ IL_000f: ret } // end of method CheckedUnchecked::CheckedInArrayCreationArgument + .method public hidebysig instance int16 + Unbox(valuetype [mscorlib]System.TypeCode c, + object b) cil managed + { + // Code size 89 (0x59) + .maxstack 2 + .locals init (valuetype [mscorlib]System.TypeCode V_0, + int16 V_1, + float32 V_2) + IL_0000: nop + IL_0001: nop + IL_0002: ldarg.1 + IL_0003: stloc.0 + IL_0004: ldloc.0 + IL_0005: ldc.i4.s 9 + IL_0007: beq.s IL_0019 + + IL_0009: br.s IL_000b + + IL_000b: ldloc.0 + IL_000c: ldc.i4.s 10 + IL_000e: beq.s IL_0028 + + IL_0010: br.s IL_0012 + + IL_0012: ldloc.0 + IL_0013: ldc.i4.s 14 + IL_0015: beq.s IL_0037 + + IL_0017: br.s IL_0051 + + IL_0019: ldarg.2 + IL_001a: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_001f: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_0024: conv.ovf.i2 + IL_0025: stloc.1 + IL_0026: br.s IL_0057 + + IL_0028: ldarg.2 + IL_0029: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_002e: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_0033: conv.ovf.i2.un + IL_0034: stloc.1 + IL_0035: br.s IL_0057 + + IL_0037: nop + IL_0038: ldarg.2 + IL_0039: castclass class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + IL_003e: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1::Value + IL_0043: conv.r4 + IL_0044: stloc.2 + IL_0045: ldloc.2 + IL_0046: call void [mscorlib]System.Console::WriteLine(float32) + IL_004b: nop + IL_004c: ldloc.2 + IL_004d: conv.ovf.i2 + IL_004e: stloc.1 + IL_004f: br.s IL_0057 + + IL_0051: newobj instance void [mscorlib]System.Exception::.ctor() + IL_0056: throw + + IL_0057: ldloc.1 + IL_0058: ret + } // end of method CheckedUnchecked::Unbox + .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { @@ -637,6 +703,23 @@ } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CheckedUnchecked +.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + extends [mscorlib]System.Object +{ + .field public initonly !T Value + .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 Box`1::.ctor + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.Box`1 + // ============================================================= diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.cs index f52159c98..d5cf71bcf 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.cs @@ -435,5 +435,15 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty Console.WriteLine(GetBool(1) || GetDynamic(2)); Console.WriteLine(i == 1 || d == null); } + + private static int ImplicitCast(object o) + { + return (dynamic)o; + } + + private static int ExplicitCast(object o) + { + return (int)(dynamic)o; + } } } diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.il index c907db66f..e4951f8a6 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.il @@ -20,10 +20,10 @@ } .assembly DynamicTests { - .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. .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 ) .permissionset reqmin = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} .hash algorithm 0x00008004 @@ -112,8 +112,8 @@ .field public object Field .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .field private object 'k__BackingField' - .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig specialname instance object get_GetOnlyProperty() cil managed { @@ -802,12 +802,26 @@ .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__Site17b' } // end of class 'o__SiteContainer170' + .class abstract auto ansi sealed nested private beforefieldinit 'o__SiteContainer17c' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__Site17d' + } // end of class 'o__SiteContainer17c' + + .class abstract auto ansi sealed nested private beforefieldinit 'o__SiteContainer17e' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__Site17f' + } // end of class 'o__SiteContainer17e' + .field private static object 'field' .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .field private static object objectField .field private object 'k__BackingField' - .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig specialname instance object get_Property() cil managed { @@ -15600,6 +15614,76 @@ IL_043f: ret } // end of method DynamicTests::LogicOrExtended + .method private hidebysig static int32 + ImplicitCast(object o) cil managed + { + // Code size 72 (0x48) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: nop + IL_0001: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17c'::'<>p__Site17d' + IL_0006: brtrue.s IL_002e + + IL_0008: ldc.i4.0 + IL_0009: ldtoken [mscorlib]System.Int32 + IL_000e: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0013: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests + IL_0018: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_001d: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::Convert(valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags, + class [mscorlib]System.Type, + class [mscorlib]System.Type) + IL_0022: call class [System.Core]System.Runtime.CompilerServices.CallSite`1 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Create(class [System.Core]System.Runtime.CompilerServices.CallSiteBinder) + IL_0027: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17c'::'<>p__Site17d' + IL_002c: br.s IL_002e + + IL_002e: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17c'::'<>p__Site17d' + IL_0033: ldfld !0 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Target + IL_0038: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17c'::'<>p__Site17d' + IL_003d: ldarg.0 + IL_003e: callvirt instance !2 class [mscorlib]System.Func`3::Invoke(!0, + !1) + IL_0043: stloc.0 + IL_0044: br.s IL_0046 + + IL_0046: ldloc.0 + IL_0047: ret + } // end of method DynamicTests::ImplicitCast + + .method private hidebysig static int32 + ExplicitCast(object o) cil managed + { + // Code size 73 (0x49) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: nop + IL_0001: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17e'::'<>p__Site17f' + IL_0006: brtrue.s IL_002f + + IL_0008: ldc.i4.s 16 + IL_000a: ldtoken [mscorlib]System.Int32 + IL_000f: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0014: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests + IL_0019: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_001e: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::Convert(valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags, + class [mscorlib]System.Type, + class [mscorlib]System.Type) + IL_0023: call class [System.Core]System.Runtime.CompilerServices.CallSite`1 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Create(class [System.Core]System.Runtime.CompilerServices.CallSiteBinder) + IL_0028: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17e'::'<>p__Site17f' + IL_002d: br.s IL_002f + + IL_002f: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17e'::'<>p__Site17f' + IL_0034: ldfld !0 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Target + IL_0039: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17e'::'<>p__Site17f' + IL_003e: ldarg.0 + IL_003f: callvirt instance !2 class [mscorlib]System.Func`3::Invoke(!0, + !1) + IL_0044: stloc.0 + IL_0045: br.s IL_0047 + + IL_0047: ldloc.0 + IL_0048: ret + } // end of method DynamicTests::ExplicitCast + .property instance object Property() { .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.opt.il index b87dcbe6f..055a4f4fc 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.opt.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.opt.il @@ -20,10 +20,10 @@ } .assembly DynamicTests.opt { - .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. .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 ) .permissionset reqmin = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} .hash algorithm 0x00008004 @@ -105,8 +105,8 @@ .field public object Field .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .field private object 'k__BackingField' - .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig specialname instance object get_GetOnlyProperty() cil managed { @@ -783,12 +783,26 @@ .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__Site17b' } // end of class 'o__SiteContainer170' + .class abstract auto ansi sealed nested private beforefieldinit 'o__SiteContainer17c' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__Site17d' + } // end of class 'o__SiteContainer17c' + + .class abstract auto ansi sealed nested private beforefieldinit 'o__SiteContainer17e' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__Site17f' + } // end of class 'o__SiteContainer17e' + .field private static object 'field' .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .field private static object objectField .field private object 'k__BackingField' - .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig specialname instance object get_Property() cil managed { @@ -14889,6 +14903,60 @@ IL_044b: ret } // end of method DynamicTests::LogicOrExtended + .method private hidebysig static int32 + ImplicitCast(object o) cil managed + { + // Code size 65 (0x41) + .maxstack 3 + IL_0000: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17c'::'<>p__Site17d' + IL_0005: brtrue.s IL_002b + + IL_0007: ldc.i4.0 + IL_0008: ldtoken [mscorlib]System.Int32 + IL_000d: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0012: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests + IL_0017: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_001c: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::Convert(valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags, + class [mscorlib]System.Type, + class [mscorlib]System.Type) + IL_0021: call class [System.Core]System.Runtime.CompilerServices.CallSite`1 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Create(class [System.Core]System.Runtime.CompilerServices.CallSiteBinder) + IL_0026: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17c'::'<>p__Site17d' + IL_002b: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17c'::'<>p__Site17d' + IL_0030: ldfld !0 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Target + IL_0035: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17c'::'<>p__Site17d' + IL_003a: ldarg.0 + IL_003b: callvirt instance !2 class [mscorlib]System.Func`3::Invoke(!0, + !1) + IL_0040: ret + } // end of method DynamicTests::ImplicitCast + + .method private hidebysig static int32 + ExplicitCast(object o) cil managed + { + // Code size 66 (0x42) + .maxstack 3 + IL_0000: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17e'::'<>p__Site17f' + IL_0005: brtrue.s IL_002c + + IL_0007: ldc.i4.s 16 + IL_0009: ldtoken [mscorlib]System.Int32 + IL_000e: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0013: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests + IL_0018: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_001d: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::Convert(valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags, + class [mscorlib]System.Type, + class [mscorlib]System.Type) + IL_0022: call class [System.Core]System.Runtime.CompilerServices.CallSite`1 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Create(class [System.Core]System.Runtime.CompilerServices.CallSiteBinder) + IL_0027: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17e'::'<>p__Site17f' + IL_002c: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17e'::'<>p__Site17f' + IL_0031: ldfld !0 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Target + IL_0036: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'o__SiteContainer17e'::'<>p__Site17f' + IL_003b: ldarg.0 + IL_003c: callvirt instance !2 class [mscorlib]System.Func`3::Invoke(!0, + !1) + IL_0041: ret + } // end of method DynamicTests::ExplicitCast + .property instance object Property() { .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.opt.roslyn.il index 5a6c96794..be029cac9 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.opt.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.opt.roslyn.il @@ -785,6 +785,20 @@ .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__10' } // end of class '<>o__55' + .class abstract auto ansi sealed nested private beforefieldinit '<>o__56' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__0' + } // end of class '<>o__56' + + .class abstract auto ansi sealed nested private beforefieldinit '<>o__57' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__0' + } // end of class '<>o__57' + .field private static object 'field' .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .field private static object objectField @@ -13951,6 +13965,60 @@ IL_040a: ret } // end of method DynamicTests::LogicOrExtended + .method private hidebysig static int32 + ImplicitCast(object o) cil managed + { + // Code size 65 (0x41) + .maxstack 3 + IL_0000: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__56'::'<>p__0' + IL_0005: brtrue.s IL_002b + + IL_0007: ldc.i4.0 + IL_0008: ldtoken [mscorlib]System.Int32 + IL_000d: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0012: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests + IL_0017: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_001c: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::Convert(valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags, + class [mscorlib]System.Type, + class [mscorlib]System.Type) + IL_0021: call class [System.Core]System.Runtime.CompilerServices.CallSite`1 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Create(class [System.Core]System.Runtime.CompilerServices.CallSiteBinder) + IL_0026: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__56'::'<>p__0' + IL_002b: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__56'::'<>p__0' + IL_0030: ldfld !0 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Target + IL_0035: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__56'::'<>p__0' + IL_003a: ldarg.0 + IL_003b: callvirt instance !2 class [mscorlib]System.Func`3::Invoke(!0, + !1) + IL_0040: ret + } // end of method DynamicTests::ImplicitCast + + .method private hidebysig static int32 + ExplicitCast(object o) cil managed + { + // Code size 66 (0x42) + .maxstack 3 + IL_0000: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__57'::'<>p__0' + IL_0005: brtrue.s IL_002c + + IL_0007: ldc.i4.s 16 + IL_0009: ldtoken [mscorlib]System.Int32 + IL_000e: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0013: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests + IL_0018: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_001d: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::Convert(valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags, + class [mscorlib]System.Type, + class [mscorlib]System.Type) + IL_0022: call class [System.Core]System.Runtime.CompilerServices.CallSite`1 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Create(class [System.Core]System.Runtime.CompilerServices.CallSiteBinder) + IL_0027: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__57'::'<>p__0' + IL_002c: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__57'::'<>p__0' + IL_0031: ldfld !0 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Target + IL_0036: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__57'::'<>p__0' + IL_003b: ldarg.0 + IL_003c: callvirt instance !2 class [mscorlib]System.Func`3::Invoke(!0, + !1) + IL_0041: ret + } // end of method DynamicTests::ExplicitCast + .property instance object Property() { .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.roslyn.il index f03c989b9..fd5392fab 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.roslyn.il @@ -792,6 +792,20 @@ .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__10' } // end of class '<>o__55' + .class abstract auto ansi sealed nested private beforefieldinit '<>o__56' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__0' + } // end of class '<>o__56' + + .class abstract auto ansi sealed nested private beforefieldinit '<>o__57' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public static class [System.Core]System.Runtime.CompilerServices.CallSite`1> '<>p__0' + } // end of class '<>o__57' + .field private static object 'field' .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) .field private static object objectField @@ -14904,6 +14918,76 @@ IL_0425: ret } // end of method DynamicTests::LogicOrExtended + .method private hidebysig static int32 + ImplicitCast(object o) cil managed + { + // Code size 72 (0x48) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: nop + IL_0001: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__56'::'<>p__0' + IL_0006: brfalse.s IL_000a + + IL_0008: br.s IL_002e + + IL_000a: ldc.i4.0 + IL_000b: ldtoken [mscorlib]System.Int32 + IL_0010: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0015: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests + IL_001a: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_001f: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::Convert(valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags, + class [mscorlib]System.Type, + class [mscorlib]System.Type) + IL_0024: call class [System.Core]System.Runtime.CompilerServices.CallSite`1 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Create(class [System.Core]System.Runtime.CompilerServices.CallSiteBinder) + IL_0029: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__56'::'<>p__0' + IL_002e: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__56'::'<>p__0' + IL_0033: ldfld !0 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Target + IL_0038: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__56'::'<>p__0' + IL_003d: ldarg.0 + IL_003e: callvirt instance !2 class [mscorlib]System.Func`3::Invoke(!0, + !1) + IL_0043: stloc.0 + IL_0044: br.s IL_0046 + + IL_0046: ldloc.0 + IL_0047: ret + } // end of method DynamicTests::ImplicitCast + + .method private hidebysig static int32 + ExplicitCast(object o) cil managed + { + // Code size 73 (0x49) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: nop + IL_0001: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__57'::'<>p__0' + IL_0006: brfalse.s IL_000a + + IL_0008: br.s IL_002f + + IL_000a: ldc.i4.s 16 + IL_000c: ldtoken [mscorlib]System.Int32 + IL_0011: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0016: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests + IL_001b: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0020: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::Convert(valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags, + class [mscorlib]System.Type, + class [mscorlib]System.Type) + IL_0025: call class [System.Core]System.Runtime.CompilerServices.CallSite`1 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Create(class [System.Core]System.Runtime.CompilerServices.CallSiteBinder) + IL_002a: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__57'::'<>p__0' + IL_002f: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__57'::'<>p__0' + IL_0034: ldfld !0 class [System.Core]System.Runtime.CompilerServices.CallSite`1>::Target + IL_0039: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.DynamicTests/'<>o__57'::'<>p__0' + IL_003e: ldarg.0 + IL_003f: callvirt instance !2 class [mscorlib]System.Func`3::Invoke(!0, + !1) + IL_0044: stloc.0 + IL_0045: br.s IL_0047 + + IL_0047: ldloc.0 + IL_0048: ret + } // end of method DynamicTests::ExplicitCast + .property instance object Property() { .custom instance void [System.Core]System.Runtime.CompilerServices.DynamicAttribute::.ctor() = ( 01 00 00 00 ) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.cs index 727680634..850b95d9d 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.cs @@ -322,47 +322,47 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty { if (ID == 0) { ViewBag.data = "''"; - } else { - var model = (from a in db.Contracts - where a.ID == ID - select new { - ID = a.ID, - ContractNo = a.ContractNo, - HouseAddress = a.HouseAddress, - AdminID = (from b in db.Administrator - where b.ID == a.AdminID - select b.TrueName).FirstOrDefault(), - StoreID = (from b in db.Store - where b.ID == a.StoreID - select b.Name).FirstOrDefault(), - SigningTime = a.SigningTime, - YeWuPhone = (from b in db.Administrator - where b.ID == a.AdminID - select b.Phone).FirstOrDefault(), - BuyerName = a.BuyerName, - BuyerTelephone = a.BuyerTelephone, - Customer = a.Customer, - CustTelephone = a.CustTelephone, - Credit = (from b in db.Loan - where b.ContractNo == a.ContractNo - select b.Credit).FirstOrDefault(), - LoanBank = (from b in db.Loan - where b.ContractNo == a.ContractNo - select b.LoanBank).FirstOrDefault(), - Remarks = (from b in db.Loan - where b.ContractNo == a.ContractNo - select b.Remarks).FirstOrDefault() - }).FirstOrDefault(); - ViewBag.data = model.ToJson(); - DateTime? dateTime = (from b in db.Loan - where b.ContractNo == model.ContractNo - select b.ShenDate).FirstOrDefault(); - DateTime? dateTime2 = (from b in db.Loan - where b.ContractNo == model.ContractNo - select b.LoanDate).FirstOrDefault(); - ViewBag.ShenDate = ((!dateTime.HasValue) ? "" : dateTime.ParseDateTime().ToString("yyyy-MM-dd")); - ViewBag.LoanDate = ((!dateTime2.HasValue) ? "" : dateTime2.ParseDateTime().ToString("yyyy-MM-dd")); - } + return; + } + var model = (from a in db.Contracts + where a.ID == ID + select new { + ID = a.ID, + ContractNo = a.ContractNo, + HouseAddress = a.HouseAddress, + AdminID = (from b in db.Administrator + where b.ID == a.AdminID + select b.TrueName).FirstOrDefault(), + StoreID = (from b in db.Store + where b.ID == a.StoreID + select b.Name).FirstOrDefault(), + SigningTime = a.SigningTime, + YeWuPhone = (from b in db.Administrator + where b.ID == a.AdminID + select b.Phone).FirstOrDefault(), + BuyerName = a.BuyerName, + BuyerTelephone = a.BuyerTelephone, + Customer = a.Customer, + CustTelephone = a.CustTelephone, + Credit = (from b in db.Loan + where b.ContractNo == a.ContractNo + select b.Credit).FirstOrDefault(), + LoanBank = (from b in db.Loan + where b.ContractNo == a.ContractNo + select b.LoanBank).FirstOrDefault(), + Remarks = (from b in db.Loan + where b.ContractNo == a.ContractNo + select b.Remarks).FirstOrDefault() + }).FirstOrDefault(); + ViewBag.data = model.ToJson(); + DateTime? dateTime = (from b in db.Loan + where b.ContractNo == model.ContractNo + select b.ShenDate).FirstOrDefault(); + DateTime? dateTime2 = (from b in db.Loan + where b.ContractNo == model.ContractNo + select b.LoanDate).FirstOrDefault(); + ViewBag.ShenDate = ((!dateTime.HasValue) ? "" : dateTime.ParseDateTime().ToString("yyyy-MM-dd")); + ViewBag.LoanDate = ((!dateTime2.HasValue) ? "" : dateTime2.ParseDateTime().ToString("yyyy-MM-dd")); } private static object ToCode(object x, Expression> expr) @@ -533,7 +533,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty public void MembersBuiltin() { ToCode(X(), () => 1.23m.ToString()); - ToCode(X(), () => AttributeTargets.All.HasFlag((Enum)AttributeTargets.Assembly)); + ToCode(X(), () => AttributeTargets.All.HasFlag(AttributeTargets.Assembly)); ToCode(X(), () => "abc".Length == 3); ToCode(X(), () => 'a'.CompareTo('b') < 0); } @@ -844,7 +844,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty ToCode(null, (object a) => a ?? new MyClass()); } - public static void BinaryLogicalOperators() + public static void ComparisonOperators() { ToCode(null, (int a, int b) => a == b); ToCode(null, (int a, int b) => a != b); @@ -865,6 +865,16 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty ToCode(null, (int a, int b) => a == 1 || b == 2); } + public static void LiftedComparisonOperators() + { + ToCode(X(), (int? a, int? b) => a == b); + ToCode(X(), (int? a, int? b) => a != b); + ToCode(X(), (int? a, int? b) => a < b); + ToCode(X(), (int? a, int? b) => a <= b); + ToCode(X(), (int? a, int? b) => a > b); + ToCode(X(), (int? a, int? b) => a >= b); + } + public static void UnaryArithmeticOperators() { Test>((int a) => a, (int a) => a); diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.il index e4f39828b..0b7d72cbb 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.il @@ -8876,7 +8876,7 @@ IL_00ac: ret } // end of method ExpressionTrees::ConditionalOperator - .method public hidebysig static void BinaryLogicalOperators() cil managed + .method public hidebysig static void ComparisonOperators() cil managed { // Code size 1639 (0x667) .maxstack 5 @@ -9559,7 +9559,222 @@ class [System.Core]System.Linq.Expressions.Expression`1>) IL_0665: pop IL_0666: ret - } // end of method ExpressionTrees::BinaryLogicalOperators + } // end of method ExpressionTrees::ComparisonOperators + + .method public hidebysig static void LiftedComparisonOperators() cil managed + { + // Code size 488 (0x1e8) + .maxstack 5 + .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0, + class [System.Core]System.Linq.Expressions.ParameterExpression V_1, + class [System.Core]System.Linq.Expressions.ParameterExpression[] V_2) + IL_0000: nop + IL_0001: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0006: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_000b: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0010: ldstr "a" + IL_0015: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_001a: stloc.0 + IL_001b: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0020: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0025: ldstr "b" + IL_002a: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_002f: stloc.1 + IL_0030: ldloc.0 + IL_0031: ldloc.1 + IL_0032: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::Equal(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0037: ldc.i4.2 + IL_0038: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_003d: stloc.2 + IL_003e: ldloc.2 + IL_003f: ldc.i4.0 + IL_0040: ldloc.0 + IL_0041: stelem.ref + IL_0042: ldloc.2 + IL_0043: ldc.i4.1 + IL_0044: ldloc.1 + IL_0045: stelem.ref + IL_0046: ldloc.2 + IL_0047: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_004c: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_0051: pop + IL_0052: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0057: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_005c: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0061: ldstr "a" + IL_0066: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_006b: stloc.0 + IL_006c: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0071: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0076: ldstr "b" + IL_007b: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0080: stloc.1 + IL_0081: ldloc.0 + IL_0082: ldloc.1 + IL_0083: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::NotEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0088: ldc.i4.2 + IL_0089: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_008e: stloc.2 + IL_008f: ldloc.2 + IL_0090: ldc.i4.0 + IL_0091: ldloc.0 + IL_0092: stelem.ref + IL_0093: ldloc.2 + IL_0094: ldc.i4.1 + IL_0095: ldloc.1 + IL_0096: stelem.ref + IL_0097: ldloc.2 + IL_0098: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_009d: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_00a2: pop + IL_00a3: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_00a8: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00ad: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_00b2: ldstr "a" + IL_00b7: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_00bc: stloc.0 + IL_00bd: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00c2: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_00c7: ldstr "b" + IL_00cc: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_00d1: stloc.1 + IL_00d2: ldloc.0 + IL_00d3: ldloc.1 + IL_00d4: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::LessThan(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_00d9: ldc.i4.2 + IL_00da: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_00df: stloc.2 + IL_00e0: ldloc.2 + IL_00e1: ldc.i4.0 + IL_00e2: ldloc.0 + IL_00e3: stelem.ref + IL_00e4: ldloc.2 + IL_00e5: ldc.i4.1 + IL_00e6: ldloc.1 + IL_00e7: stelem.ref + IL_00e8: ldloc.2 + IL_00e9: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_00ee: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_00f3: pop + IL_00f4: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_00f9: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00fe: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0103: ldstr "a" + IL_0108: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_010d: stloc.0 + IL_010e: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0113: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0118: ldstr "b" + IL_011d: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0122: stloc.1 + IL_0123: ldloc.0 + IL_0124: ldloc.1 + IL_0125: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::LessThanOrEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_012a: ldc.i4.2 + IL_012b: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_0130: stloc.2 + IL_0131: ldloc.2 + IL_0132: ldc.i4.0 + IL_0133: ldloc.0 + IL_0134: stelem.ref + IL_0135: ldloc.2 + IL_0136: ldc.i4.1 + IL_0137: ldloc.1 + IL_0138: stelem.ref + IL_0139: ldloc.2 + IL_013a: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_013f: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_0144: pop + IL_0145: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_014a: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_014f: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0154: ldstr "a" + IL_0159: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_015e: stloc.0 + IL_015f: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0164: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0169: ldstr "b" + IL_016e: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0173: stloc.1 + IL_0174: ldloc.0 + IL_0175: ldloc.1 + IL_0176: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::GreaterThan(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_017b: ldc.i4.2 + IL_017c: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_0181: stloc.2 + IL_0182: ldloc.2 + IL_0183: ldc.i4.0 + IL_0184: ldloc.0 + IL_0185: stelem.ref + IL_0186: ldloc.2 + IL_0187: ldc.i4.1 + IL_0188: ldloc.1 + IL_0189: stelem.ref + IL_018a: ldloc.2 + IL_018b: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_0190: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_0195: pop + IL_0196: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_019b: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_01a0: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_01a5: ldstr "a" + IL_01aa: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_01af: stloc.0 + IL_01b0: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_01b5: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_01ba: ldstr "b" + IL_01bf: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_01c4: stloc.1 + IL_01c5: ldloc.0 + IL_01c6: ldloc.1 + IL_01c7: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::GreaterThanOrEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_01cc: ldc.i4.2 + IL_01cd: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_01d2: stloc.2 + IL_01d3: ldloc.2 + IL_01d4: ldc.i4.0 + IL_01d5: ldloc.0 + IL_01d6: stelem.ref + IL_01d7: ldloc.2 + IL_01d8: ldc.i4.1 + IL_01d9: ldloc.1 + IL_01da: stelem.ref + IL_01db: ldloc.2 + IL_01dc: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_01e1: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_01e6: pop + IL_01e7: ret + } // end of method ExpressionTrees::LiftedComparisonOperators .method public hidebysig static void UnaryArithmeticOperators() cil managed { @@ -12718,7 +12933,7 @@ IL_0000: ldc.i4.3 IL_0001: newarr [mscorlib]System.Int32 IL_0006: dup - IL_0007: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x600010d-1' + IL_0007: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x600010e-1' IL_000c: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, valuetype [mscorlib]System.RuntimeFieldHandle) IL_0011: stloc.0 @@ -12794,7 +13009,7 @@ IL_0009: ldc.i4.3 IL_000a: newarr [mscorlib]System.Int32 IL_000f: dup - IL_0010: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x6000111-1' + IL_0010: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x6000112-1' IL_0015: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, valuetype [mscorlib]System.RuntimeFieldHandle) IL_001a: stelem.ref @@ -14617,8 +14832,8 @@ .size 12 } // end of class '__StaticArrayInitTypeSize=12' - .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x600010d-1' at I_00009008 - .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x6000111-1' at I_00009080 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x600010e-1' at I_00009200 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x6000112-1' at I_00009278 } // end of class '' .class private auto ansi sealed beforefieldinit '<>f__AnonymousType3`2'<'j__TPar','j__TPar'> @@ -14810,9 +15025,9 @@ // ============================================================= -.data cil I_00009008 = bytearray ( +.data cil I_00009200 = bytearray ( 01 00 00 00 02 00 00 00 03 00 00 00) -.data cil I_00009014 = int8[108] -.data cil I_00009080 = bytearray ( +.data cil I_0000920C = int8[4] +.data cil I_00009278 = bytearray ( 01 00 00 00 02 00 00 00 03 00 00 00) // *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.opt.il index 2511d2870..ba5640bb7 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.opt.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.opt.il @@ -8565,7 +8565,7 @@ IL_00ab: ret } // end of method ExpressionTrees::ConditionalOperator - .method public hidebysig static void BinaryLogicalOperators() cil managed + .method public hidebysig static void ComparisonOperators() cil managed { // Code size 1795 (0x703) .maxstack 5 @@ -9295,7 +9295,236 @@ class [System.Core]System.Linq.Expressions.Expression`1>) IL_0701: pop IL_0702: ret - } // end of method ExpressionTrees::BinaryLogicalOperators + } // end of method ExpressionTrees::ComparisonOperators + + .method public hidebysig static void LiftedComparisonOperators() cil managed + { + // Code size 534 (0x216) + .maxstack 5 + .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0, + class [System.Core]System.Linq.Expressions.ParameterExpression V_1, + class [System.Core]System.Linq.Expressions.ParameterExpression[] V_2, + class [System.Core]System.Linq.Expressions.ParameterExpression V_3, + class [System.Core]System.Linq.Expressions.ParameterExpression V_4, + class [System.Core]System.Linq.Expressions.ParameterExpression[] V_5, + class [System.Core]System.Linq.Expressions.ParameterExpression V_6, + class [System.Core]System.Linq.Expressions.ParameterExpression V_7, + class [System.Core]System.Linq.Expressions.ParameterExpression[] V_8, + class [System.Core]System.Linq.Expressions.ParameterExpression V_9, + class [System.Core]System.Linq.Expressions.ParameterExpression V_10, + class [System.Core]System.Linq.Expressions.ParameterExpression[] V_11, + class [System.Core]System.Linq.Expressions.ParameterExpression V_12, + class [System.Core]System.Linq.Expressions.ParameterExpression V_13, + class [System.Core]System.Linq.Expressions.ParameterExpression[] V_14, + class [System.Core]System.Linq.Expressions.ParameterExpression V_15, + class [System.Core]System.Linq.Expressions.ParameterExpression V_16, + class [System.Core]System.Linq.Expressions.ParameterExpression[] V_17) + IL_0000: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0005: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_000a: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_000f: ldstr "a" + IL_0014: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0019: stloc.0 + IL_001a: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_001f: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0024: ldstr "b" + IL_0029: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_002e: stloc.1 + IL_002f: ldloc.0 + IL_0030: ldloc.1 + IL_0031: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::Equal(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0036: ldc.i4.2 + IL_0037: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_003c: stloc.2 + IL_003d: ldloc.2 + IL_003e: ldc.i4.0 + IL_003f: ldloc.0 + IL_0040: stelem.ref + IL_0041: ldloc.2 + IL_0042: ldc.i4.1 + IL_0043: ldloc.1 + IL_0044: stelem.ref + IL_0045: ldloc.2 + IL_0046: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_004b: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_0050: pop + IL_0051: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0056: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_005b: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0060: ldstr "a" + IL_0065: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_006a: stloc.3 + IL_006b: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0070: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0075: ldstr "b" + IL_007a: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_007f: stloc.s V_4 + IL_0081: ldloc.3 + IL_0082: ldloc.s V_4 + IL_0084: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::NotEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0089: ldc.i4.2 + IL_008a: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_008f: stloc.s V_5 + IL_0091: ldloc.s V_5 + IL_0093: ldc.i4.0 + IL_0094: ldloc.3 + IL_0095: stelem.ref + IL_0096: ldloc.s V_5 + IL_0098: ldc.i4.1 + IL_0099: ldloc.s V_4 + IL_009b: stelem.ref + IL_009c: ldloc.s V_5 + IL_009e: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_00a3: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_00a8: pop + IL_00a9: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_00ae: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00b3: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_00b8: ldstr "a" + IL_00bd: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_00c2: stloc.s V_6 + IL_00c4: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00c9: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_00ce: ldstr "b" + IL_00d3: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_00d8: stloc.s V_7 + IL_00da: ldloc.s V_6 + IL_00dc: ldloc.s V_7 + IL_00de: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::LessThan(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_00e3: ldc.i4.2 + IL_00e4: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_00e9: stloc.s V_8 + IL_00eb: ldloc.s V_8 + IL_00ed: ldc.i4.0 + IL_00ee: ldloc.s V_6 + IL_00f0: stelem.ref + IL_00f1: ldloc.s V_8 + IL_00f3: ldc.i4.1 + IL_00f4: ldloc.s V_7 + IL_00f6: stelem.ref + IL_00f7: ldloc.s V_8 + IL_00f9: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_00fe: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_0103: pop + IL_0104: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0109: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_010e: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0113: ldstr "a" + IL_0118: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_011d: stloc.s V_9 + IL_011f: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0124: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0129: ldstr "b" + IL_012e: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0133: stloc.s V_10 + IL_0135: ldloc.s V_9 + IL_0137: ldloc.s V_10 + IL_0139: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::LessThanOrEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_013e: ldc.i4.2 + IL_013f: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_0144: stloc.s V_11 + IL_0146: ldloc.s V_11 + IL_0148: ldc.i4.0 + IL_0149: ldloc.s V_9 + IL_014b: stelem.ref + IL_014c: ldloc.s V_11 + IL_014e: ldc.i4.1 + IL_014f: ldloc.s V_10 + IL_0151: stelem.ref + IL_0152: ldloc.s V_11 + IL_0154: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_0159: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_015e: pop + IL_015f: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0164: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0169: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_016e: ldstr "a" + IL_0173: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0178: stloc.s V_12 + IL_017a: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_017f: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0184: ldstr "b" + IL_0189: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_018e: stloc.s V_13 + IL_0190: ldloc.s V_12 + IL_0192: ldloc.s V_13 + IL_0194: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::GreaterThan(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0199: ldc.i4.2 + IL_019a: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_019f: stloc.s V_14 + IL_01a1: ldloc.s V_14 + IL_01a3: ldc.i4.0 + IL_01a4: ldloc.s V_12 + IL_01a6: stelem.ref + IL_01a7: ldloc.s V_14 + IL_01a9: ldc.i4.1 + IL_01aa: ldloc.s V_13 + IL_01ac: stelem.ref + IL_01ad: ldloc.s V_14 + IL_01af: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_01b4: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_01b9: pop + IL_01ba: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_01bf: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_01c4: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_01c9: ldstr "a" + IL_01ce: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_01d3: stloc.s V_15 + IL_01d5: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_01da: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_01df: ldstr "b" + IL_01e4: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_01e9: stloc.s V_16 + IL_01eb: ldloc.s V_15 + IL_01ed: ldloc.s V_16 + IL_01ef: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::GreaterThanOrEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_01f4: ldc.i4.2 + IL_01f5: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_01fa: stloc.s V_17 + IL_01fc: ldloc.s V_17 + IL_01fe: ldc.i4.0 + IL_01ff: ldloc.s V_15 + IL_0201: stelem.ref + IL_0202: ldloc.s V_17 + IL_0204: ldc.i4.1 + IL_0205: ldloc.s V_16 + IL_0207: stelem.ref + IL_0208: ldloc.s V_17 + IL_020a: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_020f: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_0214: pop + IL_0215: ret + } // end of method ExpressionTrees::LiftedComparisonOperators .method public hidebysig static void UnaryArithmeticOperators() cil managed { @@ -12111,7 +12340,7 @@ IL_0000: ldc.i4.3 IL_0001: newarr [mscorlib]System.Int32 IL_0006: dup - IL_0007: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x600010d-1' + IL_0007: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x600010e-1' IL_000c: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, valuetype [mscorlib]System.RuntimeFieldHandle) IL_0011: ret @@ -12167,7 +12396,7 @@ IL_0009: ldc.i4.3 IL_000a: newarr [mscorlib]System.Int32 IL_000f: dup - IL_0010: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x6000111-1' + IL_0010: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x6000112-1' IL_0015: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, valuetype [mscorlib]System.RuntimeFieldHandle) IL_001a: stelem.ref @@ -13856,8 +14085,8 @@ .size 12 } // end of class '__StaticArrayInitTypeSize=12' - .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x600010d-1' at I_00008B38 - .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x6000111-1' at I_00008B70 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x600010e-1' at I_00008D60 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x6000112-1' at I_00008D98 } // end of class '' .class private auto ansi sealed beforefieldinit '<>f__AnonymousType3`2'<'j__TPar','j__TPar'> @@ -14023,9 +14252,9 @@ // ============================================================= -.data cil I_00008B38 = bytearray ( +.data cil I_00008D60 = bytearray ( 01 00 00 00 02 00 00 00 03 00 00 00) -.data cil I_00008B44 = int8[12] -.data cil I_00008B70 = bytearray ( +.data cil I_00008D6C = int8[4] +.data cil I_00008D98 = bytearray ( 01 00 00 00 02 00 00 00 03 00 00 00) // *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.opt.roslyn.il index 12036d93c..c6ecda3c0 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.opt.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.opt.roslyn.il @@ -2893,44 +2893,44 @@ .field public static class [mscorlib]System.Func`2> '<>9__83_2' .field public static class [mscorlib]System.Func`2 '<>9__84_0' .field public static class [mscorlib]System.Func`2 '<>9__85_0' - .field public static class [mscorlib]System.Func`2 '<>9__88_0' - .field public static class [mscorlib]System.Func`2 '<>9__88_2' - .field public static class [mscorlib]System.Func`3 '<>9__89_0' - .field public static class [mscorlib]System.Func`3 '<>9__89_2' - .field public static class [mscorlib]System.Func`3 '<>9__89_4' - .field public static class [mscorlib]System.Func`3 '<>9__89_6' - .field public static class [mscorlib]System.Func`3 '<>9__89_8' - .field public static class [mscorlib]System.Func`3 '<>9__89_10' - .field public static class [mscorlib]System.Func`3 '<>9__89_12' - .field public static class [mscorlib]System.Func`3 '<>9__89_14' - .field public static class [mscorlib]System.Func`3 '<>9__89_16' - .field public static class [mscorlib]System.Func`3 '<>9__89_18' - .field public static class [mscorlib]System.Func`3 '<>9__89_20' - .field public static class [mscorlib]System.Func`3 '<>9__89_22' - .field public static class [mscorlib]System.Func`3 '<>9__89_24' - .field public static class [mscorlib]System.Func`3 '<>9__89_26' - .field public static class [mscorlib]System.Func`3 '<>9__89_28' - .field public static class [mscorlib]System.Func`2 '<>9__90_0' + .field public static class [mscorlib]System.Func`2 '<>9__89_0' + .field public static class [mscorlib]System.Func`2 '<>9__89_2' + .field public static class [mscorlib]System.Func`3 '<>9__90_0' .field public static class [mscorlib]System.Func`3 '<>9__90_2' .field public static class [mscorlib]System.Func`3 '<>9__90_4' .field public static class [mscorlib]System.Func`3 '<>9__90_6' + .field public static class [mscorlib]System.Func`3 '<>9__90_8' + .field public static class [mscorlib]System.Func`3 '<>9__90_10' + .field public static class [mscorlib]System.Func`3 '<>9__90_12' + .field public static class [mscorlib]System.Func`3 '<>9__90_14' + .field public static class [mscorlib]System.Func`3 '<>9__90_16' + .field public static class [mscorlib]System.Func`3 '<>9__90_18' + .field public static class [mscorlib]System.Func`3 '<>9__90_20' + .field public static class [mscorlib]System.Func`3 '<>9__90_22' + .field public static class [mscorlib]System.Func`3 '<>9__90_24' + .field public static class [mscorlib]System.Func`3 '<>9__90_26' + .field public static class [mscorlib]System.Func`3 '<>9__90_28' .field public static class [mscorlib]System.Func`2 '<>9__91_0' - .field public static class [mscorlib]System.Func`2 '<>9__91_2' - .field public static class [mscorlib]System.Func`2 '<>9__91_4' - .field public static class [mscorlib]System.Func`2 '<>9__91_6' - .field public static class [mscorlib]System.Func`1 '<>9__92_0' + .field public static class [mscorlib]System.Func`3 '<>9__91_2' + .field public static class [mscorlib]System.Func`3 '<>9__91_4' + .field public static class [mscorlib]System.Func`3 '<>9__91_6' + .field public static class [mscorlib]System.Func`2 '<>9__92_0' .field public static class [mscorlib]System.Func`2 '<>9__92_2' - .field public static class [mscorlib]System.Func`2 '<>9__95_1' - .field public static class [mscorlib]System.Func`2 '<>9__95_3' - .field public static class [mscorlib]System.Func`2 '<>9__95_5' - .field public static class [mscorlib]System.Func`1 '<>9__95_7' - .field public static class [mscorlib]System.Func`1 '<>9__96_0' - .field public static class [mscorlib]System.Func`1 '<>9__97_0' - .field public static class [mscorlib]System.Func`1 '<>9__97_2' - .field public static class [mscorlib]System.Func`1 '<>9__97_4' - .field public static class [mscorlib]System.Func`1 '<>9__97_6' - .field public static class [mscorlib]System.Func`1 '<>9__97_8' - .field public static class [mscorlib]System.Func`1 '<>9__98_0' + .field public static class [mscorlib]System.Func`2 '<>9__92_4' + .field public static class [mscorlib]System.Func`2 '<>9__92_6' + .field public static class [mscorlib]System.Func`1 '<>9__93_0' + .field public static class [mscorlib]System.Func`2 '<>9__93_2' + .field public static class [mscorlib]System.Func`2 '<>9__96_1' + .field public static class [mscorlib]System.Func`2 '<>9__96_3' + .field public static class [mscorlib]System.Func`2 '<>9__96_5' + .field public static class [mscorlib]System.Func`1 '<>9__96_7' + .field public static class [mscorlib]System.Func`1 '<>9__97_0' + .field public static class [mscorlib]System.Func`1 '<>9__98_0' + .field public static class [mscorlib]System.Func`1 '<>9__98_2' + .field public static class [mscorlib]System.Func`1 '<>9__98_4' + .field public static class [mscorlib]System.Func`1 '<>9__98_6' + .field public static class [mscorlib]System.Func`1 '<>9__98_8' + .field public static class [mscorlib]System.Func`1 '<>9__99_0' .method private hidebysig specialname rtspecialname static void .cctor() cil managed { @@ -3229,26 +3229,26 @@ } // end of method '<>c'::'b__85_0' .method assembly hidebysig instance int32 - 'b__88_0'(int32 a) cil managed + 'b__89_0'(int32 a) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: ldarg.1 IL_0001: ret - } // end of method '<>c'::'b__88_0' + } // end of method '<>c'::'b__89_0' .method assembly hidebysig instance int32 - 'b__88_2'(int32 a) cil managed + 'b__89_2'(int32 a) cil managed { // Code size 3 (0x3) .maxstack 8 IL_0000: ldarg.1 IL_0001: neg IL_0002: ret - } // end of method '<>c'::'b__88_2' + } // end of method '<>c'::'b__89_2' .method assembly hidebysig instance int32 - 'b__89_0'(int32 a, + 'b__90_0'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3257,10 +3257,10 @@ IL_0001: ldarg.2 IL_0002: add IL_0003: ret - } // end of method '<>c'::'b__89_0' + } // end of method '<>c'::'b__90_0' .method assembly hidebysig instance int32 - 'b__89_2'(int32 a, + 'b__90_2'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3269,10 +3269,10 @@ IL_0001: ldarg.2 IL_0002: sub IL_0003: ret - } // end of method '<>c'::'b__89_2' + } // end of method '<>c'::'b__90_2' .method assembly hidebysig instance int32 - 'b__89_4'(int32 a, + 'b__90_4'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3281,10 +3281,10 @@ IL_0001: ldarg.2 IL_0002: mul IL_0003: ret - } // end of method '<>c'::'b__89_4' + } // end of method '<>c'::'b__90_4' .method assembly hidebysig instance int32 - 'b__89_6'(int32 a, + 'b__90_6'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3293,10 +3293,10 @@ IL_0001: ldarg.2 IL_0002: div IL_0003: ret - } // end of method '<>c'::'b__89_6' + } // end of method '<>c'::'b__90_6' .method assembly hidebysig instance int32 - 'b__89_8'(int32 a, + 'b__90_8'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3305,10 +3305,10 @@ IL_0001: ldarg.2 IL_0002: rem IL_0003: ret - } // end of method '<>c'::'b__89_8' + } // end of method '<>c'::'b__90_8' .method assembly hidebysig instance int64 - 'b__89_10'(int64 a, + 'b__90_10'(int64 a, int32 b) cil managed { // Code size 5 (0x5) @@ -3318,10 +3318,10 @@ IL_0002: conv.i8 IL_0003: add IL_0004: ret - } // end of method '<>c'::'b__89_10' + } // end of method '<>c'::'b__90_10' .method assembly hidebysig instance int64 - 'b__89_12'(int64 a, + 'b__90_12'(int64 a, int32 b) cil managed { // Code size 5 (0x5) @@ -3331,10 +3331,10 @@ IL_0002: conv.i8 IL_0003: sub IL_0004: ret - } // end of method '<>c'::'b__89_12' + } // end of method '<>c'::'b__90_12' .method assembly hidebysig instance int64 - 'b__89_14'(int64 a, + 'b__90_14'(int64 a, int32 b) cil managed { // Code size 5 (0x5) @@ -3344,10 +3344,10 @@ IL_0002: conv.i8 IL_0003: mul IL_0004: ret - } // end of method '<>c'::'b__89_14' + } // end of method '<>c'::'b__90_14' .method assembly hidebysig instance int64 - 'b__89_16'(int64 a, + 'b__90_16'(int64 a, int32 b) cil managed { // Code size 5 (0x5) @@ -3357,10 +3357,10 @@ IL_0002: conv.i8 IL_0003: div IL_0004: ret - } // end of method '<>c'::'b__89_16' + } // end of method '<>c'::'b__90_16' .method assembly hidebysig instance int64 - 'b__89_18'(int64 a, + 'b__90_18'(int64 a, int32 b) cil managed { // Code size 5 (0x5) @@ -3370,10 +3370,10 @@ IL_0002: conv.i8 IL_0003: rem IL_0004: ret - } // end of method '<>c'::'b__89_18' + } // end of method '<>c'::'b__90_18' .method assembly hidebysig instance int32 - 'b__89_20'(int16 a, + 'b__90_20'(int16 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3382,10 +3382,10 @@ IL_0001: ldarg.2 IL_0002: add IL_0003: ret - } // end of method '<>c'::'b__89_20' + } // end of method '<>c'::'b__90_20' .method assembly hidebysig instance int32 - 'b__89_22'(int32 a, + 'b__90_22'(int32 a, int16 b) cil managed { // Code size 4 (0x4) @@ -3394,10 +3394,10 @@ IL_0001: ldarg.2 IL_0002: sub IL_0003: ret - } // end of method '<>c'::'b__89_22' + } // end of method '<>c'::'b__90_22' .method assembly hidebysig instance int32 - 'b__89_24'(int16 a, + 'b__90_24'(int16 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3406,10 +3406,10 @@ IL_0001: ldarg.2 IL_0002: mul IL_0003: ret - } // end of method '<>c'::'b__89_24' + } // end of method '<>c'::'b__90_24' .method assembly hidebysig instance int32 - 'b__89_26'(int32 a, + 'b__90_26'(int32 a, int16 b) cil managed { // Code size 4 (0x4) @@ -3418,10 +3418,10 @@ IL_0001: ldarg.2 IL_0002: div IL_0003: ret - } // end of method '<>c'::'b__89_26' + } // end of method '<>c'::'b__90_26' .method assembly hidebysig instance int32 - 'b__89_28'(int16 a, + 'b__90_28'(int16 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3430,20 +3430,20 @@ IL_0001: ldarg.2 IL_0002: rem IL_0003: ret - } // end of method '<>c'::'b__89_28' + } // end of method '<>c'::'b__90_28' .method assembly hidebysig instance int32 - 'b__90_0'(int32 a) cil managed + 'b__91_0'(int32 a) cil managed { // Code size 3 (0x3) .maxstack 8 IL_0000: ldarg.1 IL_0001: not IL_0002: ret - } // end of method '<>c'::'b__90_0' + } // end of method '<>c'::'b__91_0' .method assembly hidebysig instance int32 - 'b__90_2'(int32 a, + 'b__91_2'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3452,10 +3452,10 @@ IL_0001: ldarg.2 IL_0002: and IL_0003: ret - } // end of method '<>c'::'b__90_2' + } // end of method '<>c'::'b__91_2' .method assembly hidebysig instance int32 - 'b__90_4'(int32 a, + 'b__91_4'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3464,10 +3464,10 @@ IL_0001: ldarg.2 IL_0002: or IL_0003: ret - } // end of method '<>c'::'b__90_4' + } // end of method '<>c'::'b__91_4' .method assembly hidebysig instance int32 - 'b__90_6'(int32 a, + 'b__91_6'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3476,10 +3476,10 @@ IL_0001: ldarg.2 IL_0002: xor IL_0003: ret - } // end of method '<>c'::'b__90_6' + } // end of method '<>c'::'b__91_6' .method assembly hidebysig instance int32 - 'b__91_0'(int32 a) cil managed + 'b__92_0'(int32 a) cil managed { // Code size 4 (0x4) .maxstack 8 @@ -3487,10 +3487,10 @@ IL_0001: ldc.i4.2 IL_0002: shr IL_0003: ret - } // end of method '<>c'::'b__91_0' + } // end of method '<>c'::'b__92_0' .method assembly hidebysig instance int32 - 'b__91_2'(int32 a) cil managed + 'b__92_2'(int32 a) cil managed { // Code size 4 (0x4) .maxstack 8 @@ -3498,10 +3498,10 @@ IL_0001: ldc.i4.2 IL_0002: shl IL_0003: ret - } // end of method '<>c'::'b__91_2' + } // end of method '<>c'::'b__92_2' .method assembly hidebysig instance int64 - 'b__91_4'(int64 a) cil managed + 'b__92_4'(int64 a) cil managed { // Code size 4 (0x4) .maxstack 8 @@ -3509,10 +3509,10 @@ IL_0001: ldc.i4.2 IL_0002: shr IL_0003: ret - } // end of method '<>c'::'b__91_4' + } // end of method '<>c'::'b__92_4' .method assembly hidebysig instance int64 - 'b__91_6'(int64 a) cil managed + 'b__92_6'(int64 a) cil managed { // Code size 4 (0x4) .maxstack 8 @@ -3520,58 +3520,58 @@ IL_0001: ldc.i4.2 IL_0002: shl IL_0003: ret - } // end of method '<>c'::'b__91_6' + } // end of method '<>c'::'b__92_6' .method assembly hidebysig instance int32 - 'b__92_0'() cil managed + 'b__93_0'() cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: ldc.i4.0 IL_0001: ret - } // end of method '<>c'::'b__92_0' + } // end of method '<>c'::'b__93_0' .method assembly hidebysig instance int32 - 'b__92_2'(int32 a) cil managed + 'b__93_2'(int32 a) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: ldarg.1 IL_0001: ret - } // end of method '<>c'::'b__92_2' + } // end of method '<>c'::'b__93_2' .method assembly hidebysig instance string - 'b__95_1'(string a) cil managed + 'b__96_1'(string a) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: callvirt instance string [mscorlib]System.Object::ToString() IL_0006: ret - } // end of method '<>c'::'b__95_1' + } // end of method '<>c'::'b__96_1' .method assembly hidebysig instance string - 'b__95_3'(int32 a) cil managed + 'b__96_3'(int32 a) cil managed { // Code size 8 (0x8) .maxstack 8 IL_0000: ldarga.s a IL_0002: call instance string [mscorlib]System.Int32::ToString() IL_0007: ret - } // end of method '<>c'::'b__95_3' + } // end of method '<>c'::'b__96_3' .method assembly hidebysig instance char[] - 'b__95_5'(string a) cil managed + 'b__96_5'(string a) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: call !!0[] [System.Core]System.Linq.Enumerable::ToArray(class [mscorlib]System.Collections.Generic.IEnumerable`1) IL_0006: ret - } // end of method '<>c'::'b__95_5' + } // end of method '<>c'::'b__96_5' .method assembly hidebysig instance bool - 'b__95_7'() cil managed + 'b__96_7'() cil managed { // Code size 16 (0x10) .maxstack 2 @@ -3584,10 +3584,10 @@ IL_000c: ldc.i4.0 IL_000d: clt IL_000f: ret - } // end of method '<>c'::'b__95_7' + } // end of method '<>c'::'b__96_7' .method assembly hidebysig instance bool - 'b__96_0'() cil managed + 'b__97_0'() cil managed { // Code size 112 (0x70) .maxstack 5 @@ -3636,10 +3636,10 @@ IL_006c: ldnull IL_006d: cgt.un IL_006f: ret - } // end of method '<>c'::'b__96_0' + } // end of method '<>c'::'b__97_0' .method assembly hidebysig instance int32[] - 'b__97_0'() cil managed + 'b__98_0'() cil managed { // Code size 18 (0x12) .maxstack 8 @@ -3650,20 +3650,20 @@ IL_000c: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, valuetype [mscorlib]System.RuntimeFieldHandle) IL_0011: ret - } // end of method '<>c'::'b__97_0' + } // end of method '<>c'::'b__98_0' .method assembly hidebysig instance int32[] - 'b__97_2'() cil managed + 'b__98_2'() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldc.i4.3 IL_0001: newarr [mscorlib]System.Int32 IL_0006: ret - } // end of method '<>c'::'b__97_2' + } // end of method '<>c'::'b__98_2' .method assembly hidebysig instance int32[0...,0...] - 'b__97_4'() cil managed + 'b__98_4'() cil managed { // Code size 8 (0x8) .maxstack 8 @@ -3672,20 +3672,20 @@ IL_0002: newobj instance void int32[0...,0...]::.ctor(int32, int32) IL_0007: ret - } // end of method '<>c'::'b__97_4' + } // end of method '<>c'::'b__98_4' .method assembly hidebysig instance int32[][] - 'b__97_6'() cil managed + 'b__98_6'() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldc.i4.3 IL_0001: newarr int32[] IL_0006: ret - } // end of method '<>c'::'b__97_6' + } // end of method '<>c'::'b__98_6' .method assembly hidebysig instance int32[][] - 'b__97_8'() cil managed + 'b__98_8'() cil managed { // Code size 27 (0x1b) .maxstack 8 @@ -3701,10 +3701,10 @@ valuetype [mscorlib]System.RuntimeFieldHandle) IL_0019: stelem.ref IL_001a: ret - } // end of method '<>c'::'b__97_8' + } // end of method '<>c'::'b__98_8' .method assembly hidebysig instance object - 'b__98_0'() cil managed + 'b__99_0'() cil managed { // Code size 12 (0xc) .maxstack 8 @@ -3713,7 +3713,7 @@ IL_0006: newobj instance void class '<>f__AnonymousType3`2'::.ctor(!0, !1) IL_000b: ret - } // end of method '<>c'::'b__98_0' + } // end of method '<>c'::'b__99_0' } // end of class '<>c' @@ -3909,7 +3909,7 @@ } // end of class '<>c__DisplayClass74_0' - .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass93_0' + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass94_0' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -3922,7 +3922,7 @@ IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret - } // end of method '<>c__DisplayClass93_0'::.ctor + } // end of method '<>c__DisplayClass94_0'::.ctor .method assembly hidebysig instance int32 'b__0'() cil managed @@ -3930,11 +3930,11 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0'::captured + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0'::captured IL_0006: ret - } // end of method '<>c__DisplayClass93_0'::'b__0' + } // end of method '<>c__DisplayClass94_0'::'b__0' - } // end of class '<>c__DisplayClass93_0' + } // end of class '<>c__DisplayClass94_0' .field private int32 'field' .field private class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/Database db @@ -10178,7 +10178,7 @@ IL_009c: ret } // end of method ExpressionTrees::ConditionalOperator - .method public hidebysig static void BinaryLogicalOperators() cil managed + .method public hidebysig static void ComparisonOperators() cil managed { // Code size 1604 (0x644) .maxstack 6 @@ -10825,24 +10825,225 @@ class [System.Core]System.Linq.Expressions.Expression`1>) IL_0642: pop IL_0643: ret - } // end of method ExpressionTrees::BinaryLogicalOperators + } // end of method ExpressionTrees::ComparisonOperators + + .method public hidebysig static void LiftedComparisonOperators() cil managed + { + // Code size 475 (0x1db) + .maxstack 6 + .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0, + class [System.Core]System.Linq.Expressions.ParameterExpression V_1) + IL_0000: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0005: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_000a: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_000f: ldstr "a" + IL_0014: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0019: stloc.0 + IL_001a: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_001f: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0024: ldstr "b" + IL_0029: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_002e: stloc.1 + IL_002f: ldloc.0 + IL_0030: ldloc.1 + IL_0031: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::Equal(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0036: ldc.i4.2 + IL_0037: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_003c: dup + IL_003d: ldc.i4.0 + IL_003e: ldloc.0 + IL_003f: stelem.ref + IL_0040: dup + IL_0041: ldc.i4.1 + IL_0042: ldloc.1 + IL_0043: stelem.ref + IL_0044: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_0049: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_004e: pop + IL_004f: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0054: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0059: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_005e: ldstr "a" + IL_0063: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0068: stloc.1 + IL_0069: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_006e: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0073: ldstr "b" + IL_0078: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_007d: stloc.0 + IL_007e: ldloc.1 + IL_007f: ldloc.0 + IL_0080: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::NotEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0085: ldc.i4.2 + IL_0086: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_008b: dup + IL_008c: ldc.i4.0 + IL_008d: ldloc.1 + IL_008e: stelem.ref + IL_008f: dup + IL_0090: ldc.i4.1 + IL_0091: ldloc.0 + IL_0092: stelem.ref + IL_0093: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_0098: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_009d: pop + IL_009e: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_00a3: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00a8: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_00ad: ldstr "a" + IL_00b2: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_00b7: stloc.0 + IL_00b8: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00bd: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_00c2: ldstr "b" + IL_00c7: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_00cc: stloc.1 + IL_00cd: ldloc.0 + IL_00ce: ldloc.1 + IL_00cf: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::LessThan(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_00d4: ldc.i4.2 + IL_00d5: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_00da: dup + IL_00db: ldc.i4.0 + IL_00dc: ldloc.0 + IL_00dd: stelem.ref + IL_00de: dup + IL_00df: ldc.i4.1 + IL_00e0: ldloc.1 + IL_00e1: stelem.ref + IL_00e2: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_00e7: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_00ec: pop + IL_00ed: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_00f2: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00f7: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_00fc: ldstr "a" + IL_0101: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0106: stloc.1 + IL_0107: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_010c: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0111: ldstr "b" + IL_0116: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_011b: stloc.0 + IL_011c: ldloc.1 + IL_011d: ldloc.0 + IL_011e: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::LessThanOrEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0123: ldc.i4.2 + IL_0124: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_0129: dup + IL_012a: ldc.i4.0 + IL_012b: ldloc.1 + IL_012c: stelem.ref + IL_012d: dup + IL_012e: ldc.i4.1 + IL_012f: ldloc.0 + IL_0130: stelem.ref + IL_0131: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_0136: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_013b: pop + IL_013c: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0141: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0146: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_014b: ldstr "a" + IL_0150: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0155: stloc.0 + IL_0156: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_015b: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0160: ldstr "b" + IL_0165: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_016a: stloc.1 + IL_016b: ldloc.0 + IL_016c: ldloc.1 + IL_016d: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::GreaterThan(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0172: ldc.i4.2 + IL_0173: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_0178: dup + IL_0179: ldc.i4.0 + IL_017a: ldloc.0 + IL_017b: stelem.ref + IL_017c: dup + IL_017d: ldc.i4.1 + IL_017e: ldloc.1 + IL_017f: stelem.ref + IL_0180: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_0185: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_018a: pop + IL_018b: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0190: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0195: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_019a: ldstr "a" + IL_019f: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_01a4: stloc.1 + IL_01a5: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_01aa: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_01af: ldstr "b" + IL_01b4: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_01b9: stloc.0 + IL_01ba: ldloc.1 + IL_01bb: ldloc.0 + IL_01bc: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::GreaterThanOrEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_01c1: ldc.i4.2 + IL_01c2: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_01c7: dup + IL_01c8: ldc.i4.0 + IL_01c9: ldloc.1 + IL_01ca: stelem.ref + IL_01cb: dup + IL_01cc: ldc.i4.1 + IL_01cd: ldloc.0 + IL_01ce: stelem.ref + IL_01cf: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_01d4: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_01d9: pop + IL_01da: ret + } // end of method ExpressionTrees::LiftedComparisonOperators .method public hidebysig static void UnaryArithmeticOperators() cil managed { // Code size 152 (0x98) .maxstack 6 .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0) - IL_0000: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__88_0' + IL_0000: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_0' IL_0005: dup IL_0006: brtrue.s IL_001f IL_0008: pop IL_0009: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__88_0'(int32) + IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_0'(int32) IL_0014: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0019: dup - IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__88_0' + IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_0' IL_001f: ldtoken [mscorlib]System.Int32 IL_0024: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0029: ldstr "a" @@ -10860,17 +11061,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0044: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0049: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__88_2' + IL_0049: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_2' IL_004e: dup IL_004f: brtrue.s IL_0068 IL_0051: pop IL_0052: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0057: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__88_2'(int32) + IL_0057: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_2'(int32) IL_005d: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0062: dup - IL_0063: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__88_2' + IL_0063: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_2' IL_0068: ldtoken [mscorlib]System.Int32 IL_006d: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0072: ldstr "a" @@ -10898,18 +11099,18 @@ .maxstack 6 .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0, class [System.Core]System.Linq.Expressions.ParameterExpression V_1) - IL_0000: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_0' + IL_0000: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_0' IL_0005: dup IL_0006: brtrue.s IL_001f IL_0008: pop IL_0009: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_0'(int32, + IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_0'(int32, int32) IL_0014: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0019: dup - IL_001a: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_0' + IL_001a: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_0' IL_001f: ldtoken [mscorlib]System.Int32 IL_0024: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0029: ldstr "a" @@ -10940,18 +11141,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0063: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0068: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_2' + IL_0068: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_2' IL_006d: dup IL_006e: brtrue.s IL_0087 IL_0070: pop IL_0071: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0076: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_2'(int32, + IL_0076: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_2'(int32, int32) IL_007c: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0081: dup - IL_0082: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_2' + IL_0082: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_2' IL_0087: ldtoken [mscorlib]System.Int32 IL_008c: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0091: ldstr "a" @@ -10982,18 +11183,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_00cb: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_00d0: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_4' + IL_00d0: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_4' IL_00d5: dup IL_00d6: brtrue.s IL_00ef IL_00d8: pop IL_00d9: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_00de: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_4'(int32, + IL_00de: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_4'(int32, int32) IL_00e4: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_00e9: dup - IL_00ea: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_4' + IL_00ea: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_4' IL_00ef: ldtoken [mscorlib]System.Int32 IL_00f4: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_00f9: ldstr "a" @@ -11024,18 +11225,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0133: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0138: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_6' + IL_0138: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_6' IL_013d: dup IL_013e: brtrue.s IL_0157 IL_0140: pop IL_0141: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0146: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_6'(int32, + IL_0146: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_6'(int32, int32) IL_014c: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0151: dup - IL_0152: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_6' + IL_0152: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_6' IL_0157: ldtoken [mscorlib]System.Int32 IL_015c: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0161: ldstr "a" @@ -11066,18 +11267,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_019b: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_01a0: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_8' + IL_01a0: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_8' IL_01a5: dup IL_01a6: brtrue.s IL_01bf IL_01a8: pop IL_01a9: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_01ae: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_8'(int32, + IL_01ae: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_8'(int32, int32) IL_01b4: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_01b9: dup - IL_01ba: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_8' + IL_01ba: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_8' IL_01bf: ldtoken [mscorlib]System.Int32 IL_01c4: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_01c9: ldstr "a" @@ -11108,18 +11309,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0203: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0208: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_10' + IL_0208: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_10' IL_020d: dup IL_020e: brtrue.s IL_0227 IL_0210: pop IL_0211: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0216: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_10'(int64, + IL_0216: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_10'(int64, int32) IL_021c: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0221: dup - IL_0222: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_10' + IL_0222: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_10' IL_0227: ldtoken [mscorlib]System.Int64 IL_022c: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0231: ldstr "a" @@ -11154,18 +11355,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_027a: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_027f: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_12' + IL_027f: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_12' IL_0284: dup IL_0285: brtrue.s IL_029e IL_0287: pop IL_0288: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_028d: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_12'(int64, + IL_028d: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_12'(int64, int32) IL_0293: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0298: dup - IL_0299: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_12' + IL_0299: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_12' IL_029e: ldtoken [mscorlib]System.Int64 IL_02a3: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_02a8: ldstr "a" @@ -11200,18 +11401,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_02f1: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_02f6: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_14' + IL_02f6: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_14' IL_02fb: dup IL_02fc: brtrue.s IL_0315 IL_02fe: pop IL_02ff: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0304: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_14'(int64, + IL_0304: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_14'(int64, int32) IL_030a: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_030f: dup - IL_0310: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_14' + IL_0310: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_14' IL_0315: ldtoken [mscorlib]System.Int64 IL_031a: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_031f: ldstr "a" @@ -11246,18 +11447,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0368: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_036d: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_16' + IL_036d: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_16' IL_0372: dup IL_0373: brtrue.s IL_038c IL_0375: pop IL_0376: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_037b: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_16'(int64, + IL_037b: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_16'(int64, int32) IL_0381: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0386: dup - IL_0387: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_16' + IL_0387: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_16' IL_038c: ldtoken [mscorlib]System.Int64 IL_0391: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0396: ldstr "a" @@ -11292,18 +11493,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_03df: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_03e4: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_18' + IL_03e4: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_18' IL_03e9: dup IL_03ea: brtrue.s IL_0403 IL_03ec: pop IL_03ed: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_03f2: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_18'(int64, + IL_03f2: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_18'(int64, int32) IL_03f8: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_03fd: dup - IL_03fe: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_18' + IL_03fe: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_18' IL_0403: ldtoken [mscorlib]System.Int64 IL_0408: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_040d: ldstr "a" @@ -11338,18 +11539,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0456: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_045b: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_20' + IL_045b: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_20' IL_0460: dup IL_0461: brtrue.s IL_047a IL_0463: pop IL_0464: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0469: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_20'(int16, + IL_0469: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_20'(int16, int32) IL_046f: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0474: dup - IL_0475: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_20' + IL_0475: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_20' IL_047a: ldtoken [mscorlib]System.Int16 IL_047f: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0484: ldstr "a" @@ -11384,18 +11585,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_04cd: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_04d2: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_22' + IL_04d2: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_22' IL_04d7: dup IL_04d8: brtrue.s IL_04f1 IL_04da: pop IL_04db: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_04e0: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_22'(int32, + IL_04e0: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_22'(int32, int16) IL_04e6: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_04eb: dup - IL_04ec: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_22' + IL_04ec: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_22' IL_04f1: ldtoken [mscorlib]System.Int32 IL_04f6: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_04fb: ldstr "a" @@ -11430,18 +11631,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0544: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0549: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_24' + IL_0549: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_24' IL_054e: dup IL_054f: brtrue.s IL_0568 IL_0551: pop IL_0552: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0557: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_24'(int16, + IL_0557: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_24'(int16, int32) IL_055d: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0562: dup - IL_0563: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_24' + IL_0563: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_24' IL_0568: ldtoken [mscorlib]System.Int16 IL_056d: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0572: ldstr "a" @@ -11476,18 +11677,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_05bb: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_05c0: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_26' + IL_05c0: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_26' IL_05c5: dup IL_05c6: brtrue.s IL_05df IL_05c8: pop IL_05c9: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_05ce: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_26'(int32, + IL_05ce: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_26'(int32, int16) IL_05d4: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_05d9: dup - IL_05da: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_26' + IL_05da: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_26' IL_05df: ldtoken [mscorlib]System.Int32 IL_05e4: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_05e9: ldstr "a" @@ -11522,18 +11723,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0632: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0637: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_28' + IL_0637: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_28' IL_063c: dup IL_063d: brtrue.s IL_0656 IL_063f: pop IL_0640: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0645: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_28'(int16, + IL_0645: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_28'(int16, int32) IL_064b: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0650: dup - IL_0651: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_28' + IL_0651: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_28' IL_0656: ldtoken [mscorlib]System.Int16 IL_065b: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0660: ldstr "a" @@ -11577,17 +11778,17 @@ .maxstack 6 .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0, class [System.Core]System.Linq.Expressions.ParameterExpression V_1) - IL_0000: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_0' + IL_0000: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_0' IL_0005: dup IL_0006: brtrue.s IL_001f IL_0008: pop IL_0009: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_0'(int32) + IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_0'(int32) IL_0014: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0019: dup - IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_0' + IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_0' IL_001f: ldtoken [mscorlib]System.Int32 IL_0024: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0029: ldstr "a" @@ -11606,18 +11807,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0049: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_004e: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_2' + IL_004e: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_2' IL_0053: dup IL_0054: brtrue.s IL_006d IL_0056: pop IL_0057: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_005c: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_2'(int32, + IL_005c: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_2'(int32, int32) IL_0062: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0067: dup - IL_0068: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_2' + IL_0068: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_2' IL_006d: ldtoken [mscorlib]System.Int32 IL_0072: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0077: ldstr "a" @@ -11648,18 +11849,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_00b1: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_00b6: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_4' + IL_00b6: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_4' IL_00bb: dup IL_00bc: brtrue.s IL_00d5 IL_00be: pop IL_00bf: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_00c4: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_4'(int32, + IL_00c4: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_4'(int32, int32) IL_00ca: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_00cf: dup - IL_00d0: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_4' + IL_00d0: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_4' IL_00d5: ldtoken [mscorlib]System.Int32 IL_00da: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_00df: ldstr "a" @@ -11690,18 +11891,18 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0119: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_011e: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_6' + IL_011e: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_6' IL_0123: dup IL_0124: brtrue.s IL_013d IL_0126: pop IL_0127: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_012c: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_6'(int32, + IL_012c: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_6'(int32, int32) IL_0132: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0137: dup - IL_0138: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_6' + IL_0138: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_6' IL_013d: ldtoken [mscorlib]System.Int32 IL_0142: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0147: ldstr "a" @@ -11740,17 +11941,17 @@ // Code size 397 (0x18d) .maxstack 6 .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0) - IL_0000: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_0' + IL_0000: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_0' IL_0005: dup IL_0006: brtrue.s IL_001f IL_0008: pop IL_0009: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_0'(int32) + IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_0'(int32) IL_0014: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0019: dup - IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_0' + IL_001a: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_0' IL_001f: ldtoken [mscorlib]System.Int32 IL_0024: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0029: ldstr "a" @@ -11776,17 +11977,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_005e: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0063: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_2' + IL_0063: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_2' IL_0068: dup IL_0069: brtrue.s IL_0082 IL_006b: pop IL_006c: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0071: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_2'(int32) + IL_0071: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_2'(int32) IL_0077: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_007c: dup - IL_007d: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_2' + IL_007d: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_2' IL_0082: ldtoken [mscorlib]System.Int32 IL_0087: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_008c: ldstr "a" @@ -11812,17 +12013,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_00c1: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_00c6: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_4' + IL_00c6: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_4' IL_00cb: dup IL_00cc: brtrue.s IL_00e5 IL_00ce: pop IL_00cf: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_00d4: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_4'(int64) + IL_00d4: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_4'(int64) IL_00da: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_00df: dup - IL_00e0: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_4' + IL_00e0: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_4' IL_00e5: ldtoken [mscorlib]System.Int64 IL_00ea: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_00ef: ldstr "a" @@ -11848,17 +12049,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0124: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0129: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_6' + IL_0129: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_6' IL_012e: dup IL_012f: brtrue.s IL_0148 IL_0131: pop IL_0132: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0137: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_6'(int64) + IL_0137: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_6'(int64) IL_013d: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0142: dup - IL_0143: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_6' + IL_0143: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_6' IL_0148: ldtoken [mscorlib]System.Int64 IL_014d: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0152: ldstr "a" @@ -11892,17 +12093,17 @@ // Code size 141 (0x8d) .maxstack 6 .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0) - IL_0000: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_0' + IL_0000: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__93_0' IL_0005: dup IL_0006: brtrue.s IL_001f IL_0008: pop IL_0009: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_0'() + IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__93_0'() IL_0014: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0019: dup - IL_001a: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_0' + IL_001a: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__93_0' IL_001f: ldc.i4.0 IL_0020: box [mscorlib]System.Int32 IL_0025: ldtoken [mscorlib]System.Int32 @@ -11914,17 +12115,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_003e: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0043: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_2' + IL_0043: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__93_2' IL_0048: dup IL_0049: brtrue.s IL_0062 IL_004b: pop IL_004c: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0051: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_2'(int32) + IL_0051: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__93_2'(int32) IL_0057: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_005c: dup - IL_005d: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_2' + IL_005d: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__93_2' IL_0062: ldtoken [mscorlib]System.Int32 IL_0067: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_006c: ldstr "a" @@ -11949,22 +12150,22 @@ { // Code size 72 (0x48) .maxstack 3 - .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0' V_0) - IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0'::.ctor() + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0' V_0) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0'::.ctor() IL_0005: stloc.0 IL_0006: ldloc.0 IL_0007: ldc.i4.5 - IL_0008: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0'::captured + IL_0008: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0'::captured IL_000d: ldloc.0 - IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0'::'b__0'() + IL_000e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0'::'b__0'() IL_0014: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0019: ldloc.0 - IL_001a: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0' + IL_001a: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0' IL_001f: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0024: call class [System.Core]System.Linq.Expressions.ConstantExpression [System.Core]System.Linq.Expressions.Expression::Constant(object, class [mscorlib]System.Type) - IL_0029: ldtoken field int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0'::captured + IL_0029: ldtoken field int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0'::captured IL_002e: call class [mscorlib]System.Reflection.FieldInfo [mscorlib]System.Reflection.FieldInfo::GetFieldFromHandle(valuetype [mscorlib]System.RuntimeFieldHandle) IL_0033: call class [System.Core]System.Linq.Expressions.MemberExpression [System.Core]System.Linq.Expressions.Expression::Field(class [System.Core]System.Linq.Expressions.Expression, class [mscorlib]System.Reflection.FieldInfo) @@ -12177,17 +12378,17 @@ IL_0044: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode(object, class [System.Core]System.Linq.Expressions.Expression`1>) IL_0049: pop - IL_004a: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_1' + IL_004a: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_1' IL_004f: dup IL_0050: brtrue.s IL_0069 IL_0052: pop IL_0053: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0058: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__95_1'(string) + IL_0058: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__96_1'(string) IL_005e: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0063: dup - IL_0064: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_1' + IL_0064: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_1' IL_0069: ldtoken [mscorlib]System.String IL_006e: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0073: ldstr "a" @@ -12212,17 +12413,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_00a7: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_00ac: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_3' + IL_00ac: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_3' IL_00b1: dup IL_00b2: brtrue.s IL_00cb IL_00b4: pop IL_00b5: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_00ba: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__95_3'(int32) + IL_00ba: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__96_3'(int32) IL_00c0: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_00c5: dup - IL_00c6: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_3' + IL_00c6: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_3' IL_00cb: ldtoken [mscorlib]System.Int32 IL_00d0: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_00d5: ldstr "a" @@ -12247,17 +12448,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0109: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_010e: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_5' + IL_010e: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_5' IL_0113: dup IL_0114: brtrue.s IL_012d IL_0116: pop IL_0117: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_011c: ldftn instance char[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__95_5'(string) + IL_011c: ldftn instance char[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__96_5'(string) IL_0122: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0127: dup - IL_0128: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_5' + IL_0128: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_5' IL_012d: ldtoken [mscorlib]System.String IL_0132: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0137: ldstr "a" @@ -12287,17 +12488,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0170: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0175: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_7' + IL_0175: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_7' IL_017a: dup IL_017b: brtrue.s IL_0194 IL_017d: pop IL_017e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0183: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__95_7'() + IL_0183: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__96_7'() IL_0189: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_018e: dup - IL_018f: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_7' + IL_018f: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_7' IL_0194: ldc.i4.s 97 IL_0196: box [mscorlib]System.Char IL_019b: ldtoken [mscorlib]System.Char @@ -12343,17 +12544,17 @@ .maxstack 6 .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0, class [System.Core]System.Linq.Expressions.ParameterExpression V_1) - IL_0000: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_0' + IL_0000: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_0' IL_0005: dup IL_0006: brtrue.s IL_001f IL_0008: pop IL_0009: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000e: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__96_0'() + IL_000e: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_0'() IL_0014: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0019: dup - IL_001a: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_0' + IL_001a: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_0' IL_001f: ldtoken [mscorlib]System.Int32 IL_0024: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0029: ldstr "n" @@ -12418,17 +12619,17 @@ { // Code size 600 (0x258) .maxstack 11 - IL_0000: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_0' + IL_0000: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_0' IL_0005: dup IL_0006: brtrue.s IL_001f IL_0008: pop IL_0009: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000e: ldftn instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_0'() + IL_000e: ldftn instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_0'() IL_0014: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0019: dup - IL_001a: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_0' + IL_001a: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_0' IL_001f: ldtoken [mscorlib]System.Int32 IL_0024: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0029: ldc.i4.3 @@ -12467,17 +12668,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0086: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_008b: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_2' + IL_008b: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_2' IL_0090: dup IL_0091: brtrue.s IL_00aa IL_0093: pop IL_0094: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0099: ldftn instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_2'() + IL_0099: ldftn instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_2'() IL_009f: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_00a4: dup - IL_00a5: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_2' + IL_00a5: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_2' IL_00aa: ldtoken [mscorlib]System.Int32 IL_00af: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_00b4: ldc.i4.1 @@ -12498,17 +12699,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_00e1: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_00e6: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_4' + IL_00e6: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_4' IL_00eb: dup IL_00ec: brtrue.s IL_0105 IL_00ee: pop IL_00ef: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_00f4: ldftn instance int32[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_4'() + IL_00f4: ldftn instance int32[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_4'() IL_00fa: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_00ff: dup - IL_0100: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_4' + IL_0100: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_4' IL_0105: ldtoken [mscorlib]System.Int32 IL_010a: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_010f: ldc.i4.2 @@ -12538,17 +12739,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_0154: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_0159: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_6' + IL_0159: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_6' IL_015e: dup IL_015f: brtrue.s IL_0178 IL_0161: pop IL_0162: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0167: ldftn instance int32[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_6'() + IL_0167: ldftn instance int32[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_6'() IL_016d: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0172: dup - IL_0173: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_6' + IL_0173: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_6' IL_0178: ldtoken int32[] IL_017d: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0182: ldc.i4.1 @@ -12569,17 +12770,17 @@ class [System.Core]System.Linq.Expressions.ParameterExpression[]) IL_01af: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) - IL_01b4: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_8' + IL_01b4: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_8' IL_01b9: dup IL_01ba: brtrue.s IL_01d3 IL_01bc: pop IL_01bd: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_01c2: ldftn instance int32[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_8'() + IL_01c2: ldftn instance int32[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_8'() IL_01c8: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_01cd: dup - IL_01ce: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_8' + IL_01ce: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_8' IL_01d3: ldtoken int32[] IL_01d8: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_01dd: ldc.i4.1 @@ -12634,17 +12835,17 @@ { // Code size 177 (0xb1) .maxstack 8 - IL_0000: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_0' + IL_0000: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__99_0' IL_0005: dup IL_0006: brtrue.s IL_001f IL_0008: pop IL_0009: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000e: ldftn instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_0'() + IL_000e: ldftn instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__99_0'() IL_0014: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0019: dup - IL_001a: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_0' + IL_001a: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__99_0' IL_001f: ldtoken method instance void class '<>f__AnonymousType3`2'::.ctor(!0, !1) IL_0024: ldtoken class '<>f__AnonymousType3`2' @@ -13273,12 +13474,12 @@ .size 12 } // end of class '__StaticArrayInitTypeSize=12' - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=12' E429CCA3F703A39CC5954A6572FEC9086135B34E at I_0000FAD0 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=12' E429CCA3F703A39CC5954A6572FEC9086135B34E at I_0000FCF8 } // end of class '' // ============================================================= -.data cil I_0000FAD0 = bytearray ( +.data cil I_0000FCF8 = bytearray ( 01 00 00 00 02 00 00 00 03 00 00 00) // *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.roslyn.il index 404327462..c8ea0c8cc 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.roslyn.il @@ -2994,44 +2994,44 @@ .field public static class [mscorlib]System.Func`2> '<>9__83_2' .field public static class [mscorlib]System.Func`2 '<>9__84_0' .field public static class [mscorlib]System.Func`2 '<>9__85_0' - .field public static class [mscorlib]System.Func`2 '<>9__88_0' - .field public static class [mscorlib]System.Func`2 '<>9__88_2' - .field public static class [mscorlib]System.Func`3 '<>9__89_0' - .field public static class [mscorlib]System.Func`3 '<>9__89_2' - .field public static class [mscorlib]System.Func`3 '<>9__89_4' - .field public static class [mscorlib]System.Func`3 '<>9__89_6' - .field public static class [mscorlib]System.Func`3 '<>9__89_8' - .field public static class [mscorlib]System.Func`3 '<>9__89_10' - .field public static class [mscorlib]System.Func`3 '<>9__89_12' - .field public static class [mscorlib]System.Func`3 '<>9__89_14' - .field public static class [mscorlib]System.Func`3 '<>9__89_16' - .field public static class [mscorlib]System.Func`3 '<>9__89_18' - .field public static class [mscorlib]System.Func`3 '<>9__89_20' - .field public static class [mscorlib]System.Func`3 '<>9__89_22' - .field public static class [mscorlib]System.Func`3 '<>9__89_24' - .field public static class [mscorlib]System.Func`3 '<>9__89_26' - .field public static class [mscorlib]System.Func`3 '<>9__89_28' - .field public static class [mscorlib]System.Func`2 '<>9__90_0' + .field public static class [mscorlib]System.Func`2 '<>9__89_0' + .field public static class [mscorlib]System.Func`2 '<>9__89_2' + .field public static class [mscorlib]System.Func`3 '<>9__90_0' .field public static class [mscorlib]System.Func`3 '<>9__90_2' .field public static class [mscorlib]System.Func`3 '<>9__90_4' .field public static class [mscorlib]System.Func`3 '<>9__90_6' + .field public static class [mscorlib]System.Func`3 '<>9__90_8' + .field public static class [mscorlib]System.Func`3 '<>9__90_10' + .field public static class [mscorlib]System.Func`3 '<>9__90_12' + .field public static class [mscorlib]System.Func`3 '<>9__90_14' + .field public static class [mscorlib]System.Func`3 '<>9__90_16' + .field public static class [mscorlib]System.Func`3 '<>9__90_18' + .field public static class [mscorlib]System.Func`3 '<>9__90_20' + .field public static class [mscorlib]System.Func`3 '<>9__90_22' + .field public static class [mscorlib]System.Func`3 '<>9__90_24' + .field public static class [mscorlib]System.Func`3 '<>9__90_26' + .field public static class [mscorlib]System.Func`3 '<>9__90_28' .field public static class [mscorlib]System.Func`2 '<>9__91_0' - .field public static class [mscorlib]System.Func`2 '<>9__91_2' - .field public static class [mscorlib]System.Func`2 '<>9__91_4' - .field public static class [mscorlib]System.Func`2 '<>9__91_6' - .field public static class [mscorlib]System.Func`1 '<>9__92_0' + .field public static class [mscorlib]System.Func`3 '<>9__91_2' + .field public static class [mscorlib]System.Func`3 '<>9__91_4' + .field public static class [mscorlib]System.Func`3 '<>9__91_6' + .field public static class [mscorlib]System.Func`2 '<>9__92_0' .field public static class [mscorlib]System.Func`2 '<>9__92_2' - .field public static class [mscorlib]System.Func`2 '<>9__95_1' - .field public static class [mscorlib]System.Func`2 '<>9__95_3' - .field public static class [mscorlib]System.Func`2 '<>9__95_5' - .field public static class [mscorlib]System.Func`1 '<>9__95_7' - .field public static class [mscorlib]System.Func`1 '<>9__96_0' - .field public static class [mscorlib]System.Func`1 '<>9__97_0' - .field public static class [mscorlib]System.Func`1 '<>9__97_2' - .field public static class [mscorlib]System.Func`1 '<>9__97_4' - .field public static class [mscorlib]System.Func`1 '<>9__97_6' - .field public static class [mscorlib]System.Func`1 '<>9__97_8' - .field public static class [mscorlib]System.Func`1 '<>9__98_0' + .field public static class [mscorlib]System.Func`2 '<>9__92_4' + .field public static class [mscorlib]System.Func`2 '<>9__92_6' + .field public static class [mscorlib]System.Func`1 '<>9__93_0' + .field public static class [mscorlib]System.Func`2 '<>9__93_2' + .field public static class [mscorlib]System.Func`2 '<>9__96_1' + .field public static class [mscorlib]System.Func`2 '<>9__96_3' + .field public static class [mscorlib]System.Func`2 '<>9__96_5' + .field public static class [mscorlib]System.Func`1 '<>9__96_7' + .field public static class [mscorlib]System.Func`1 '<>9__97_0' + .field public static class [mscorlib]System.Func`1 '<>9__98_0' + .field public static class [mscorlib]System.Func`1 '<>9__98_2' + .field public static class [mscorlib]System.Func`1 '<>9__98_4' + .field public static class [mscorlib]System.Func`1 '<>9__98_6' + .field public static class [mscorlib]System.Func`1 '<>9__98_8' + .field public static class [mscorlib]System.Func`1 '<>9__99_0' .method private hidebysig specialname rtspecialname static void .cctor() cil managed { @@ -3331,26 +3331,26 @@ } // end of method '<>c'::'b__85_0' .method assembly hidebysig instance int32 - 'b__88_0'(int32 a) cil managed + 'b__89_0'(int32 a) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: ldarg.1 IL_0001: ret - } // end of method '<>c'::'b__88_0' + } // end of method '<>c'::'b__89_0' .method assembly hidebysig instance int32 - 'b__88_2'(int32 a) cil managed + 'b__89_2'(int32 a) cil managed { // Code size 3 (0x3) .maxstack 8 IL_0000: ldarg.1 IL_0001: neg IL_0002: ret - } // end of method '<>c'::'b__88_2' + } // end of method '<>c'::'b__89_2' .method assembly hidebysig instance int32 - 'b__89_0'(int32 a, + 'b__90_0'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3359,10 +3359,10 @@ IL_0001: ldarg.2 IL_0002: add IL_0003: ret - } // end of method '<>c'::'b__89_0' + } // end of method '<>c'::'b__90_0' .method assembly hidebysig instance int32 - 'b__89_2'(int32 a, + 'b__90_2'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3371,10 +3371,10 @@ IL_0001: ldarg.2 IL_0002: sub IL_0003: ret - } // end of method '<>c'::'b__89_2' + } // end of method '<>c'::'b__90_2' .method assembly hidebysig instance int32 - 'b__89_4'(int32 a, + 'b__90_4'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3383,10 +3383,10 @@ IL_0001: ldarg.2 IL_0002: mul IL_0003: ret - } // end of method '<>c'::'b__89_4' + } // end of method '<>c'::'b__90_4' .method assembly hidebysig instance int32 - 'b__89_6'(int32 a, + 'b__90_6'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3395,10 +3395,10 @@ IL_0001: ldarg.2 IL_0002: div IL_0003: ret - } // end of method '<>c'::'b__89_6' + } // end of method '<>c'::'b__90_6' .method assembly hidebysig instance int32 - 'b__89_8'(int32 a, + 'b__90_8'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3407,10 +3407,10 @@ IL_0001: ldarg.2 IL_0002: rem IL_0003: ret - } // end of method '<>c'::'b__89_8' + } // end of method '<>c'::'b__90_8' .method assembly hidebysig instance int64 - 'b__89_10'(int64 a, + 'b__90_10'(int64 a, int32 b) cil managed { // Code size 5 (0x5) @@ -3420,10 +3420,10 @@ IL_0002: conv.i8 IL_0003: add IL_0004: ret - } // end of method '<>c'::'b__89_10' + } // end of method '<>c'::'b__90_10' .method assembly hidebysig instance int64 - 'b__89_12'(int64 a, + 'b__90_12'(int64 a, int32 b) cil managed { // Code size 5 (0x5) @@ -3433,10 +3433,10 @@ IL_0002: conv.i8 IL_0003: sub IL_0004: ret - } // end of method '<>c'::'b__89_12' + } // end of method '<>c'::'b__90_12' .method assembly hidebysig instance int64 - 'b__89_14'(int64 a, + 'b__90_14'(int64 a, int32 b) cil managed { // Code size 5 (0x5) @@ -3446,10 +3446,10 @@ IL_0002: conv.i8 IL_0003: mul IL_0004: ret - } // end of method '<>c'::'b__89_14' + } // end of method '<>c'::'b__90_14' .method assembly hidebysig instance int64 - 'b__89_16'(int64 a, + 'b__90_16'(int64 a, int32 b) cil managed { // Code size 5 (0x5) @@ -3459,10 +3459,10 @@ IL_0002: conv.i8 IL_0003: div IL_0004: ret - } // end of method '<>c'::'b__89_16' + } // end of method '<>c'::'b__90_16' .method assembly hidebysig instance int64 - 'b__89_18'(int64 a, + 'b__90_18'(int64 a, int32 b) cil managed { // Code size 5 (0x5) @@ -3472,10 +3472,10 @@ IL_0002: conv.i8 IL_0003: rem IL_0004: ret - } // end of method '<>c'::'b__89_18' + } // end of method '<>c'::'b__90_18' .method assembly hidebysig instance int32 - 'b__89_20'(int16 a, + 'b__90_20'(int16 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3484,10 +3484,10 @@ IL_0001: ldarg.2 IL_0002: add IL_0003: ret - } // end of method '<>c'::'b__89_20' + } // end of method '<>c'::'b__90_20' .method assembly hidebysig instance int32 - 'b__89_22'(int32 a, + 'b__90_22'(int32 a, int16 b) cil managed { // Code size 4 (0x4) @@ -3496,10 +3496,10 @@ IL_0001: ldarg.2 IL_0002: sub IL_0003: ret - } // end of method '<>c'::'b__89_22' + } // end of method '<>c'::'b__90_22' .method assembly hidebysig instance int32 - 'b__89_24'(int16 a, + 'b__90_24'(int16 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3508,10 +3508,10 @@ IL_0001: ldarg.2 IL_0002: mul IL_0003: ret - } // end of method '<>c'::'b__89_24' + } // end of method '<>c'::'b__90_24' .method assembly hidebysig instance int32 - 'b__89_26'(int32 a, + 'b__90_26'(int32 a, int16 b) cil managed { // Code size 4 (0x4) @@ -3520,10 +3520,10 @@ IL_0001: ldarg.2 IL_0002: div IL_0003: ret - } // end of method '<>c'::'b__89_26' + } // end of method '<>c'::'b__90_26' .method assembly hidebysig instance int32 - 'b__89_28'(int16 a, + 'b__90_28'(int16 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3532,20 +3532,20 @@ IL_0001: ldarg.2 IL_0002: rem IL_0003: ret - } // end of method '<>c'::'b__89_28' + } // end of method '<>c'::'b__90_28' .method assembly hidebysig instance int32 - 'b__90_0'(int32 a) cil managed + 'b__91_0'(int32 a) cil managed { // Code size 3 (0x3) .maxstack 8 IL_0000: ldarg.1 IL_0001: not IL_0002: ret - } // end of method '<>c'::'b__90_0' + } // end of method '<>c'::'b__91_0' .method assembly hidebysig instance int32 - 'b__90_2'(int32 a, + 'b__91_2'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3554,10 +3554,10 @@ IL_0001: ldarg.2 IL_0002: and IL_0003: ret - } // end of method '<>c'::'b__90_2' + } // end of method '<>c'::'b__91_2' .method assembly hidebysig instance int32 - 'b__90_4'(int32 a, + 'b__91_4'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3566,10 +3566,10 @@ IL_0001: ldarg.2 IL_0002: or IL_0003: ret - } // end of method '<>c'::'b__90_4' + } // end of method '<>c'::'b__91_4' .method assembly hidebysig instance int32 - 'b__90_6'(int32 a, + 'b__91_6'(int32 a, int32 b) cil managed { // Code size 4 (0x4) @@ -3578,10 +3578,10 @@ IL_0001: ldarg.2 IL_0002: xor IL_0003: ret - } // end of method '<>c'::'b__90_6' + } // end of method '<>c'::'b__91_6' .method assembly hidebysig instance int32 - 'b__91_0'(int32 a) cil managed + 'b__92_0'(int32 a) cil managed { // Code size 4 (0x4) .maxstack 8 @@ -3589,10 +3589,10 @@ IL_0001: ldc.i4.2 IL_0002: shr IL_0003: ret - } // end of method '<>c'::'b__91_0' + } // end of method '<>c'::'b__92_0' .method assembly hidebysig instance int32 - 'b__91_2'(int32 a) cil managed + 'b__92_2'(int32 a) cil managed { // Code size 4 (0x4) .maxstack 8 @@ -3600,10 +3600,10 @@ IL_0001: ldc.i4.2 IL_0002: shl IL_0003: ret - } // end of method '<>c'::'b__91_2' + } // end of method '<>c'::'b__92_2' .method assembly hidebysig instance int64 - 'b__91_4'(int64 a) cil managed + 'b__92_4'(int64 a) cil managed { // Code size 4 (0x4) .maxstack 8 @@ -3611,10 +3611,10 @@ IL_0001: ldc.i4.2 IL_0002: shr IL_0003: ret - } // end of method '<>c'::'b__91_4' + } // end of method '<>c'::'b__92_4' .method assembly hidebysig instance int64 - 'b__91_6'(int64 a) cil managed + 'b__92_6'(int64 a) cil managed { // Code size 4 (0x4) .maxstack 8 @@ -3622,58 +3622,58 @@ IL_0001: ldc.i4.2 IL_0002: shl IL_0003: ret - } // end of method '<>c'::'b__91_6' + } // end of method '<>c'::'b__92_6' .method assembly hidebysig instance int32 - 'b__92_0'() cil managed + 'b__93_0'() cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: ldc.i4.0 IL_0001: ret - } // end of method '<>c'::'b__92_0' + } // end of method '<>c'::'b__93_0' .method assembly hidebysig instance int32 - 'b__92_2'(int32 a) cil managed + 'b__93_2'(int32 a) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: ldarg.1 IL_0001: ret - } // end of method '<>c'::'b__92_2' + } // end of method '<>c'::'b__93_2' .method assembly hidebysig instance string - 'b__95_1'(string a) cil managed + 'b__96_1'(string a) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: callvirt instance string [mscorlib]System.Object::ToString() IL_0006: ret - } // end of method '<>c'::'b__95_1' + } // end of method '<>c'::'b__96_1' .method assembly hidebysig instance string - 'b__95_3'(int32 a) cil managed + 'b__96_3'(int32 a) cil managed { // Code size 8 (0x8) .maxstack 8 IL_0000: ldarga.s a IL_0002: call instance string [mscorlib]System.Int32::ToString() IL_0007: ret - } // end of method '<>c'::'b__95_3' + } // end of method '<>c'::'b__96_3' .method assembly hidebysig instance char[] - 'b__95_5'(string a) cil managed + 'b__96_5'(string a) cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.1 IL_0001: call !!0[] [System.Core]System.Linq.Enumerable::ToArray(class [mscorlib]System.Collections.Generic.IEnumerable`1) IL_0006: ret - } // end of method '<>c'::'b__95_5' + } // end of method '<>c'::'b__96_5' .method assembly hidebysig instance bool - 'b__95_7'() cil managed + 'b__96_7'() cil managed { // Code size 16 (0x10) .maxstack 2 @@ -3686,10 +3686,10 @@ IL_000c: ldc.i4.0 IL_000d: clt IL_000f: ret - } // end of method '<>c'::'b__95_7' + } // end of method '<>c'::'b__96_7' .method assembly hidebysig instance bool - 'b__96_0'() cil managed + 'b__97_0'() cil managed { // Code size 112 (0x70) .maxstack 5 @@ -3738,10 +3738,10 @@ IL_006c: ldnull IL_006d: cgt.un IL_006f: ret - } // end of method '<>c'::'b__96_0' + } // end of method '<>c'::'b__97_0' .method assembly hidebysig instance int32[] - 'b__97_0'() cil managed + 'b__98_0'() cil managed { // Code size 18 (0x12) .maxstack 8 @@ -3752,20 +3752,20 @@ IL_000c: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, valuetype [mscorlib]System.RuntimeFieldHandle) IL_0011: ret - } // end of method '<>c'::'b__97_0' + } // end of method '<>c'::'b__98_0' .method assembly hidebysig instance int32[] - 'b__97_2'() cil managed + 'b__98_2'() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldc.i4.3 IL_0001: newarr [mscorlib]System.Int32 IL_0006: ret - } // end of method '<>c'::'b__97_2' + } // end of method '<>c'::'b__98_2' .method assembly hidebysig instance int32[0...,0...] - 'b__97_4'() cil managed + 'b__98_4'() cil managed { // Code size 8 (0x8) .maxstack 8 @@ -3774,20 +3774,20 @@ IL_0002: newobj instance void int32[0...,0...]::.ctor(int32, int32) IL_0007: ret - } // end of method '<>c'::'b__97_4' + } // end of method '<>c'::'b__98_4' .method assembly hidebysig instance int32[][] - 'b__97_6'() cil managed + 'b__98_6'() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldc.i4.3 IL_0001: newarr int32[] IL_0006: ret - } // end of method '<>c'::'b__97_6' + } // end of method '<>c'::'b__98_6' .method assembly hidebysig instance int32[][] - 'b__97_8'() cil managed + 'b__98_8'() cil managed { // Code size 27 (0x1b) .maxstack 8 @@ -3803,10 +3803,10 @@ valuetype [mscorlib]System.RuntimeFieldHandle) IL_0019: stelem.ref IL_001a: ret - } // end of method '<>c'::'b__97_8' + } // end of method '<>c'::'b__98_8' .method assembly hidebysig instance object - 'b__98_0'() cil managed + 'b__99_0'() cil managed { // Code size 12 (0xc) .maxstack 8 @@ -3815,7 +3815,7 @@ IL_0006: newobj instance void class '<>f__AnonymousType3`2'::.ctor(!0, !1) IL_000b: ret - } // end of method '<>c'::'b__98_0' + } // end of method '<>c'::'b__99_0' } // end of class '<>c' @@ -4022,7 +4022,7 @@ } // end of class '<>c__DisplayClass74_0' - .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass93_0' + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass94_0' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -4036,7 +4036,7 @@ IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: ret - } // end of method '<>c__DisplayClass93_0'::.ctor + } // end of method '<>c__DisplayClass94_0'::.ctor .method assembly hidebysig instance int32 'b__0'() cil managed @@ -4044,11 +4044,11 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0'::captured + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0'::captured IL_0006: ret - } // end of method '<>c__DisplayClass93_0'::'b__0' + } // end of method '<>c__DisplayClass94_0'::'b__0' - } // end of class '<>c__DisplayClass93_0' + } // end of class '<>c__DisplayClass94_0' .field private int32 'field' .field private class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/Database db @@ -10448,7 +10448,7 @@ IL_009d: ret } // end of method ExpressionTrees::ConditionalOperator - .method public hidebysig static void BinaryLogicalOperators() cil managed + .method public hidebysig static void ComparisonOperators() cil managed { // Code size 1605 (0x645) .maxstack 6 @@ -11096,7 +11096,209 @@ class [System.Core]System.Linq.Expressions.Expression`1>) IL_0643: pop IL_0644: ret - } // end of method ExpressionTrees::BinaryLogicalOperators + } // end of method ExpressionTrees::ComparisonOperators + + .method public hidebysig static void LiftedComparisonOperators() cil managed + { + // Code size 476 (0x1dc) + .maxstack 6 + .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0, + class [System.Core]System.Linq.Expressions.ParameterExpression V_1) + IL_0000: nop + IL_0001: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0006: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_000b: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0010: ldstr "a" + IL_0015: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_001a: stloc.0 + IL_001b: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0020: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0025: ldstr "b" + IL_002a: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_002f: stloc.1 + IL_0030: ldloc.0 + IL_0031: ldloc.1 + IL_0032: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::Equal(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0037: ldc.i4.2 + IL_0038: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_003d: dup + IL_003e: ldc.i4.0 + IL_003f: ldloc.0 + IL_0040: stelem.ref + IL_0041: dup + IL_0042: ldc.i4.1 + IL_0043: ldloc.1 + IL_0044: stelem.ref + IL_0045: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_004a: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_004f: pop + IL_0050: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0055: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_005a: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_005f: ldstr "a" + IL_0064: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0069: stloc.1 + IL_006a: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_006f: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0074: ldstr "b" + IL_0079: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_007e: stloc.0 + IL_007f: ldloc.1 + IL_0080: ldloc.0 + IL_0081: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::NotEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0086: ldc.i4.2 + IL_0087: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_008c: dup + IL_008d: ldc.i4.0 + IL_008e: ldloc.1 + IL_008f: stelem.ref + IL_0090: dup + IL_0091: ldc.i4.1 + IL_0092: ldloc.0 + IL_0093: stelem.ref + IL_0094: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_0099: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_009e: pop + IL_009f: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_00a4: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00a9: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_00ae: ldstr "a" + IL_00b3: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_00b8: stloc.0 + IL_00b9: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00be: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_00c3: ldstr "b" + IL_00c8: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_00cd: stloc.1 + IL_00ce: ldloc.0 + IL_00cf: ldloc.1 + IL_00d0: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::LessThan(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_00d5: ldc.i4.2 + IL_00d6: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_00db: dup + IL_00dc: ldc.i4.0 + IL_00dd: ldloc.0 + IL_00de: stelem.ref + IL_00df: dup + IL_00e0: ldc.i4.1 + IL_00e1: ldloc.1 + IL_00e2: stelem.ref + IL_00e3: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_00e8: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_00ed: pop + IL_00ee: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_00f3: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_00f8: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_00fd: ldstr "a" + IL_0102: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0107: stloc.1 + IL_0108: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_010d: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0112: ldstr "b" + IL_0117: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_011c: stloc.0 + IL_011d: ldloc.1 + IL_011e: ldloc.0 + IL_011f: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::LessThanOrEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0124: ldc.i4.2 + IL_0125: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_012a: dup + IL_012b: ldc.i4.0 + IL_012c: ldloc.1 + IL_012d: stelem.ref + IL_012e: dup + IL_012f: ldc.i4.1 + IL_0130: ldloc.0 + IL_0131: stelem.ref + IL_0132: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_0137: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_013c: pop + IL_013d: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0142: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0147: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_014c: ldstr "a" + IL_0151: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_0156: stloc.0 + IL_0157: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_015c: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_0161: ldstr "b" + IL_0166: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_016b: stloc.1 + IL_016c: ldloc.0 + IL_016d: ldloc.1 + IL_016e: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::GreaterThan(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_0173: ldc.i4.2 + IL_0174: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_0179: dup + IL_017a: ldc.i4.0 + IL_017b: ldloc.0 + IL_017c: stelem.ref + IL_017d: dup + IL_017e: ldc.i4.1 + IL_017f: ldloc.1 + IL_0180: stelem.ref + IL_0181: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_0186: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_018b: pop + IL_018c: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::X() + IL_0191: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_0196: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_019b: ldstr "a" + IL_01a0: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_01a5: stloc.1 + IL_01a6: ldtoken valuetype [mscorlib]System.Nullable`1 + IL_01ab: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) + IL_01b0: ldstr "b" + IL_01b5: call class [System.Core]System.Linq.Expressions.ParameterExpression [System.Core]System.Linq.Expressions.Expression::Parameter(class [mscorlib]System.Type, + string) + IL_01ba: stloc.0 + IL_01bb: ldloc.1 + IL_01bc: ldloc.0 + IL_01bd: call class [System.Core]System.Linq.Expressions.BinaryExpression [System.Core]System.Linq.Expressions.Expression::GreaterThanOrEqual(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.Expression) + IL_01c2: ldc.i4.2 + IL_01c3: newarr [System.Core]System.Linq.Expressions.ParameterExpression + IL_01c8: dup + IL_01c9: ldc.i4.0 + IL_01ca: ldloc.1 + IL_01cb: stelem.ref + IL_01cc: dup + IL_01cd: ldc.i4.1 + IL_01ce: ldloc.0 + IL_01cf: stelem.ref + IL_01d0: call class [System.Core]System.Linq.Expressions.Expression`1 [System.Core]System.Linq.Expressions.Expression::Lambda,valuetype [mscorlib]System.Nullable`1,bool>>(class [System.Core]System.Linq.Expressions.Expression, + class [System.Core]System.Linq.Expressions.ParameterExpression[]) + IL_01d5: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode,valuetype [mscorlib]System.Nullable`1,bool>(object, + class [System.Core]System.Linq.Expressions.Expression`1>) + IL_01da: pop + IL_01db: ret + } // end of method ExpressionTrees::LiftedComparisonOperators .method public hidebysig static void UnaryArithmeticOperators() cil managed { @@ -11104,17 +11306,17 @@ .maxstack 6 .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0) IL_0000: nop - IL_0001: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__88_0' + IL_0001: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_0' IL_0006: dup IL_0007: brtrue.s IL_0020 IL_0009: pop IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__88_0'(int32) + IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_0'(int32) 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.ExpressionTrees/'<>c'::'<>9__88_0' + IL_001b: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_0' IL_0020: ldtoken [mscorlib]System.Int32 IL_0025: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_002a: ldstr "a" @@ -11133,17 +11335,17 @@ IL_0045: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_004a: nop - IL_004b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__88_2' + IL_004b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_2' IL_0050: dup IL_0051: brtrue.s IL_006a IL_0053: pop IL_0054: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0059: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__88_2'(int32) + IL_0059: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_2'(int32) IL_005f: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0064: dup - IL_0065: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__88_2' + IL_0065: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_2' IL_006a: ldtoken [mscorlib]System.Int32 IL_006f: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0074: ldstr "a" @@ -11173,18 +11375,18 @@ .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0, class [System.Core]System.Linq.Expressions.ParameterExpression V_1) IL_0000: nop - IL_0001: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_0' + IL_0001: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_0' IL_0006: dup IL_0007: brtrue.s IL_0020 IL_0009: pop IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_0'(int32, + IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_0'(int32, int32) IL_0015: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_001a: dup - IL_001b: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_0' + IL_001b: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_0' IL_0020: ldtoken [mscorlib]System.Int32 IL_0025: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_002a: ldstr "a" @@ -11216,18 +11418,18 @@ IL_0064: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0069: nop - IL_006a: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_2' + IL_006a: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_2' IL_006f: dup IL_0070: brtrue.s IL_0089 IL_0072: pop IL_0073: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0078: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_2'(int32, + IL_0078: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_2'(int32, int32) IL_007e: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0083: dup - IL_0084: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_2' + IL_0084: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_2' IL_0089: ldtoken [mscorlib]System.Int32 IL_008e: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0093: ldstr "a" @@ -11259,18 +11461,18 @@ IL_00cd: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_00d2: nop - IL_00d3: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_4' + IL_00d3: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_4' IL_00d8: dup IL_00d9: brtrue.s IL_00f2 IL_00db: pop IL_00dc: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_00e1: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_4'(int32, + IL_00e1: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_4'(int32, int32) IL_00e7: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_00ec: dup - IL_00ed: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_4' + IL_00ed: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_4' IL_00f2: ldtoken [mscorlib]System.Int32 IL_00f7: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_00fc: ldstr "a" @@ -11302,18 +11504,18 @@ IL_0136: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_013b: nop - IL_013c: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_6' + IL_013c: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_6' IL_0141: dup IL_0142: brtrue.s IL_015b IL_0144: pop IL_0145: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_014a: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_6'(int32, + IL_014a: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_6'(int32, int32) IL_0150: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0155: dup - IL_0156: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_6' + IL_0156: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_6' IL_015b: ldtoken [mscorlib]System.Int32 IL_0160: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0165: ldstr "a" @@ -11345,18 +11547,18 @@ IL_019f: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_01a4: nop - IL_01a5: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_8' + IL_01a5: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_8' IL_01aa: dup IL_01ab: brtrue.s IL_01c4 IL_01ad: pop IL_01ae: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_01b3: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_8'(int32, + IL_01b3: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_8'(int32, int32) IL_01b9: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_01be: dup - IL_01bf: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_8' + IL_01bf: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_8' IL_01c4: ldtoken [mscorlib]System.Int32 IL_01c9: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_01ce: ldstr "a" @@ -11388,18 +11590,18 @@ IL_0208: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_020d: nop - IL_020e: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_10' + IL_020e: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_10' IL_0213: dup IL_0214: brtrue.s IL_022d IL_0216: pop IL_0217: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_021c: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_10'(int64, + IL_021c: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_10'(int64, int32) IL_0222: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0227: dup - IL_0228: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_10' + IL_0228: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_10' IL_022d: ldtoken [mscorlib]System.Int64 IL_0232: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0237: ldstr "a" @@ -11435,18 +11637,18 @@ IL_0280: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0285: nop - IL_0286: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_12' + IL_0286: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_12' IL_028b: dup IL_028c: brtrue.s IL_02a5 IL_028e: pop IL_028f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0294: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_12'(int64, + IL_0294: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_12'(int64, int32) IL_029a: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_029f: dup - IL_02a0: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_12' + IL_02a0: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_12' IL_02a5: ldtoken [mscorlib]System.Int64 IL_02aa: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_02af: ldstr "a" @@ -11482,18 +11684,18 @@ IL_02f8: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_02fd: nop - IL_02fe: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_14' + IL_02fe: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_14' IL_0303: dup IL_0304: brtrue.s IL_031d IL_0306: pop IL_0307: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_030c: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_14'(int64, + IL_030c: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_14'(int64, int32) IL_0312: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0317: dup - IL_0318: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_14' + IL_0318: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_14' IL_031d: ldtoken [mscorlib]System.Int64 IL_0322: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0327: ldstr "a" @@ -11529,18 +11731,18 @@ IL_0370: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0375: nop - IL_0376: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_16' + IL_0376: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_16' IL_037b: dup IL_037c: brtrue.s IL_0395 IL_037e: pop IL_037f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0384: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_16'(int64, + IL_0384: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_16'(int64, int32) IL_038a: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_038f: dup - IL_0390: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_16' + IL_0390: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_16' IL_0395: ldtoken [mscorlib]System.Int64 IL_039a: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_039f: ldstr "a" @@ -11576,18 +11778,18 @@ IL_03e8: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_03ed: nop - IL_03ee: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_18' + IL_03ee: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_18' IL_03f3: dup IL_03f4: brtrue.s IL_040d IL_03f6: pop IL_03f7: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_03fc: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_18'(int64, + IL_03fc: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_18'(int64, int32) IL_0402: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0407: dup - IL_0408: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_18' + IL_0408: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_18' IL_040d: ldtoken [mscorlib]System.Int64 IL_0412: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0417: ldstr "a" @@ -11623,18 +11825,18 @@ IL_0460: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0465: nop - IL_0466: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_20' + IL_0466: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_20' IL_046b: dup IL_046c: brtrue.s IL_0485 IL_046e: pop IL_046f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0474: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_20'(int16, + IL_0474: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_20'(int16, int32) IL_047a: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_047f: dup - IL_0480: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_20' + IL_0480: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_20' IL_0485: ldtoken [mscorlib]System.Int16 IL_048a: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_048f: ldstr "a" @@ -11670,18 +11872,18 @@ IL_04d8: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_04dd: nop - IL_04de: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_22' + IL_04de: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_22' IL_04e3: dup IL_04e4: brtrue.s IL_04fd IL_04e6: pop IL_04e7: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_04ec: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_22'(int32, + IL_04ec: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_22'(int32, int16) IL_04f2: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_04f7: dup - IL_04f8: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_22' + IL_04f8: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_22' IL_04fd: ldtoken [mscorlib]System.Int32 IL_0502: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0507: ldstr "a" @@ -11717,18 +11919,18 @@ IL_0550: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0555: nop - IL_0556: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_24' + IL_0556: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_24' IL_055b: dup IL_055c: brtrue.s IL_0575 IL_055e: pop IL_055f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0564: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_24'(int16, + IL_0564: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_24'(int16, int32) IL_056a: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_056f: dup - IL_0570: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_24' + IL_0570: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_24' IL_0575: ldtoken [mscorlib]System.Int16 IL_057a: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_057f: ldstr "a" @@ -11764,18 +11966,18 @@ IL_05c8: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_05cd: nop - IL_05ce: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_26' + IL_05ce: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_26' IL_05d3: dup IL_05d4: brtrue.s IL_05ed IL_05d6: pop IL_05d7: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_05dc: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_26'(int32, + IL_05dc: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_26'(int32, int16) IL_05e2: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_05e7: dup - IL_05e8: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_26' + IL_05e8: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_26' IL_05ed: ldtoken [mscorlib]System.Int32 IL_05f2: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_05f7: ldstr "a" @@ -11811,18 +12013,18 @@ IL_0640: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0645: nop - IL_0646: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_28' + IL_0646: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_28' IL_064b: dup IL_064c: brtrue.s IL_0665 IL_064e: pop IL_064f: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0654: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__89_28'(int16, + IL_0654: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_28'(int16, int32) IL_065a: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_065f: dup - IL_0660: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__89_28' + IL_0660: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_28' IL_0665: ldtoken [mscorlib]System.Int16 IL_066a: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_066f: ldstr "a" @@ -11868,17 +12070,17 @@ .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0, class [System.Core]System.Linq.Expressions.ParameterExpression V_1) IL_0000: nop - IL_0001: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_0' + IL_0001: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_0' IL_0006: dup IL_0007: brtrue.s IL_0020 IL_0009: pop IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_0'(int32) + IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_0'(int32) 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.ExpressionTrees/'<>c'::'<>9__90_0' + IL_001b: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_0' IL_0020: ldtoken [mscorlib]System.Int32 IL_0025: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_002a: ldstr "a" @@ -11898,18 +12100,18 @@ IL_004a: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_004f: nop - IL_0050: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_2' + IL_0050: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_2' IL_0055: dup IL_0056: brtrue.s IL_006f IL_0058: pop IL_0059: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_005e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_2'(int32, + IL_005e: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_2'(int32, int32) IL_0064: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_0069: dup - IL_006a: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_2' + IL_006a: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_2' IL_006f: ldtoken [mscorlib]System.Int32 IL_0074: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0079: ldstr "a" @@ -11941,18 +12143,18 @@ IL_00b3: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_00b8: nop - IL_00b9: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_4' + IL_00b9: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_4' IL_00be: dup IL_00bf: brtrue.s IL_00d8 IL_00c1: pop IL_00c2: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_00c7: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_4'(int32, + IL_00c7: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_4'(int32, int32) IL_00cd: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_00d2: dup - IL_00d3: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_4' + IL_00d3: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_4' IL_00d8: ldtoken [mscorlib]System.Int32 IL_00dd: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_00e2: ldstr "a" @@ -11984,18 +12186,18 @@ IL_011c: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0121: nop - IL_0122: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_6' + IL_0122: ldsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_6' IL_0127: dup IL_0128: brtrue.s IL_0141 IL_012a: pop IL_012b: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0130: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__90_6'(int32, + IL_0130: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_6'(int32, int32) IL_0136: newobj instance void class [mscorlib]System.Func`3::.ctor(object, native int) IL_013b: dup - IL_013c: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__90_6' + IL_013c: stsfld class [mscorlib]System.Func`3 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_6' IL_0141: ldtoken [mscorlib]System.Int32 IL_0146: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_014b: ldstr "a" @@ -12036,17 +12238,17 @@ .maxstack 6 .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0) IL_0000: nop - IL_0001: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_0' + IL_0001: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_0' IL_0006: dup IL_0007: brtrue.s IL_0020 IL_0009: pop IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_0'(int32) + IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_0'(int32) 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.ExpressionTrees/'<>c'::'<>9__91_0' + IL_001b: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_0' IL_0020: ldtoken [mscorlib]System.Int32 IL_0025: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_002a: ldstr "a" @@ -12073,17 +12275,17 @@ IL_005f: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0064: nop - IL_0065: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_2' + IL_0065: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_2' IL_006a: dup IL_006b: brtrue.s IL_0084 IL_006d: pop IL_006e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0073: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_2'(int32) + IL_0073: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_2'(int32) IL_0079: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_007e: dup - IL_007f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_2' + IL_007f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_2' IL_0084: ldtoken [mscorlib]System.Int32 IL_0089: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_008e: ldstr "a" @@ -12110,17 +12312,17 @@ IL_00c3: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_00c8: nop - IL_00c9: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_4' + IL_00c9: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_4' IL_00ce: dup IL_00cf: brtrue.s IL_00e8 IL_00d1: pop IL_00d2: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_00d7: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_4'(int64) + IL_00d7: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_4'(int64) IL_00dd: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_00e2: dup - IL_00e3: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_4' + IL_00e3: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_4' IL_00e8: ldtoken [mscorlib]System.Int64 IL_00ed: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_00f2: ldstr "a" @@ -12147,17 +12349,17 @@ IL_0127: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_012c: nop - IL_012d: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_6' + IL_012d: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_6' IL_0132: dup IL_0133: brtrue.s IL_014c IL_0135: pop IL_0136: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_013b: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__91_6'(int64) + IL_013b: ldftn instance int64 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_6'(int64) IL_0141: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0146: dup - IL_0147: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__91_6' + IL_0147: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_6' IL_014c: ldtoken [mscorlib]System.Int64 IL_0151: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0156: ldstr "a" @@ -12193,17 +12395,17 @@ .maxstack 6 .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0) IL_0000: nop - IL_0001: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_0' + IL_0001: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__93_0' IL_0006: dup IL_0007: brtrue.s IL_0020 IL_0009: pop IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_0'() + IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__93_0'() IL_0015: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_001a: dup - IL_001b: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_0' + IL_001b: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__93_0' IL_0020: ldc.i4.0 IL_0021: box [mscorlib]System.Int32 IL_0026: ldtoken [mscorlib]System.Int32 @@ -12216,17 +12418,17 @@ IL_003f: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0044: nop - IL_0045: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_2' + IL_0045: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__93_2' IL_004a: dup IL_004b: brtrue.s IL_0064 IL_004d: pop IL_004e: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0053: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__92_2'(int32) + IL_0053: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__93_2'(int32) IL_0059: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_005e: dup - IL_005f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__92_2' + IL_005f: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__93_2' IL_0064: ldtoken [mscorlib]System.Int32 IL_0069: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_006e: ldstr "a" @@ -12252,23 +12454,23 @@ { // Code size 74 (0x4a) .maxstack 3 - .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0' V_0) - IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0'::.ctor() + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0' V_0) + IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0'::.ctor() IL_0005: stloc.0 IL_0006: nop IL_0007: ldloc.0 IL_0008: ldc.i4.5 - IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0'::captured + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0'::captured IL_000e: ldloc.0 - IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0'::'b__0'() + IL_000f: ldftn instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0'::'b__0'() IL_0015: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_001a: ldloc.0 - IL_001b: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0' + IL_001b: ldtoken ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0' IL_0020: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0025: call class [System.Core]System.Linq.Expressions.ConstantExpression [System.Core]System.Linq.Expressions.Expression::Constant(object, class [mscorlib]System.Type) - IL_002a: ldtoken field int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass93_0'::captured + IL_002a: ldtoken field int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c__DisplayClass94_0'::captured IL_002f: call class [mscorlib]System.Reflection.FieldInfo [mscorlib]System.Reflection.FieldInfo::GetFieldFromHandle(valuetype [mscorlib]System.RuntimeFieldHandle) IL_0034: call class [System.Core]System.Linq.Expressions.MemberExpression [System.Core]System.Linq.Expressions.Expression::Field(class [System.Core]System.Linq.Expressions.Expression, class [mscorlib]System.Reflection.FieldInfo) @@ -12484,17 +12686,17 @@ IL_0045: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::ToCode(object, class [System.Core]System.Linq.Expressions.Expression`1>) IL_004a: pop - IL_004b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_1' + IL_004b: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_1' IL_0050: dup IL_0051: brtrue.s IL_006a IL_0053: pop IL_0054: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0059: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__95_1'(string) + IL_0059: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__96_1'(string) IL_005f: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0064: dup - IL_0065: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_1' + IL_0065: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_1' IL_006a: ldtoken [mscorlib]System.String IL_006f: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0074: ldstr "a" @@ -12520,17 +12722,17 @@ IL_00a8: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_00ad: nop - IL_00ae: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_3' + IL_00ae: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_3' IL_00b3: dup IL_00b4: brtrue.s IL_00cd IL_00b6: pop IL_00b7: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_00bc: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__95_3'(int32) + IL_00bc: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__96_3'(int32) IL_00c2: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_00c7: dup - IL_00c8: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_3' + IL_00c8: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_3' IL_00cd: ldtoken [mscorlib]System.Int32 IL_00d2: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_00d7: ldstr "a" @@ -12556,17 +12758,17 @@ IL_010b: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0110: nop - IL_0111: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_5' + IL_0111: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_5' IL_0116: dup IL_0117: brtrue.s IL_0130 IL_0119: pop IL_011a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_011f: ldftn instance char[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__95_5'(string) + IL_011f: ldftn instance char[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__96_5'(string) IL_0125: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_012a: dup - IL_012b: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_5' + IL_012b: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_5' IL_0130: ldtoken [mscorlib]System.String IL_0135: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_013a: ldstr "a" @@ -12597,17 +12799,17 @@ IL_0173: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_0178: nop - IL_0179: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_7' + IL_0179: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_7' IL_017e: dup IL_017f: brtrue.s IL_0198 IL_0181: pop IL_0182: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_0187: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__95_7'() + IL_0187: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__96_7'() IL_018d: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0192: dup - IL_0193: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__95_7' + IL_0193: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_7' IL_0198: ldc.i4.s 97 IL_019a: box [mscorlib]System.Char IL_019f: ldtoken [mscorlib]System.Char @@ -12655,17 +12857,17 @@ .locals init (class [System.Core]System.Linq.Expressions.ParameterExpression V_0, class [System.Core]System.Linq.Expressions.ParameterExpression V_1) IL_0000: nop - IL_0001: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_0' + IL_0001: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_0' IL_0006: dup IL_0007: brtrue.s IL_0020 IL_0009: pop IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000f: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__96_0'() + IL_000f: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_0'() IL_0015: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_001a: dup - IL_001b: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__96_0' + IL_001b: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_0' IL_0020: ldtoken [mscorlib]System.Int32 IL_0025: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_002a: ldstr "n" @@ -12732,17 +12934,17 @@ // Code size 606 (0x25e) .maxstack 11 IL_0000: nop - IL_0001: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_0' + IL_0001: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_0' IL_0006: dup IL_0007: brtrue.s IL_0020 IL_0009: pop IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000f: ldftn instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_0'() + IL_000f: ldftn instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_0'() IL_0015: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_001a: dup - IL_001b: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_0' + IL_001b: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_0' IL_0020: ldtoken [mscorlib]System.Int32 IL_0025: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_002a: ldc.i4.3 @@ -12782,17 +12984,17 @@ IL_0087: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_008c: nop - IL_008d: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_2' + IL_008d: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_2' IL_0092: dup IL_0093: brtrue.s IL_00ac IL_0095: pop IL_0096: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_009b: ldftn instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_2'() + IL_009b: ldftn instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_2'() IL_00a1: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_00a6: dup - IL_00a7: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_2' + IL_00a7: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_2' IL_00ac: ldtoken [mscorlib]System.Int32 IL_00b1: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_00b6: ldc.i4.1 @@ -12814,17 +13016,17 @@ IL_00e3: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_00e8: nop - IL_00e9: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_4' + IL_00e9: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_4' IL_00ee: dup IL_00ef: brtrue.s IL_0108 IL_00f1: pop IL_00f2: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_00f7: ldftn instance int32[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_4'() + IL_00f7: ldftn instance int32[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_4'() IL_00fd: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0102: dup - IL_0103: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_4' + IL_0103: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_4' IL_0108: ldtoken [mscorlib]System.Int32 IL_010d: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0112: ldc.i4.2 @@ -12855,17 +13057,17 @@ IL_0157: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_015c: nop - IL_015d: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_6' + IL_015d: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_6' IL_0162: dup IL_0163: brtrue.s IL_017c IL_0165: pop IL_0166: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_016b: ldftn instance int32[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_6'() + IL_016b: ldftn instance int32[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_6'() IL_0171: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_0176: dup - IL_0177: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_6' + IL_0177: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_6' IL_017c: ldtoken int32[] IL_0181: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_0186: ldc.i4.1 @@ -12887,17 +13089,17 @@ IL_01b3: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees::Test>(!!0, class [System.Core]System.Linq.Expressions.Expression`1) IL_01b8: nop - IL_01b9: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_8' + IL_01b9: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_8' IL_01be: dup IL_01bf: brtrue.s IL_01d8 IL_01c1: pop IL_01c2: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_01c7: ldftn instance int32[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__97_8'() + IL_01c7: ldftn instance int32[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_8'() IL_01cd: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_01d2: dup - IL_01d3: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__97_8' + IL_01d3: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_8' IL_01d8: ldtoken int32[] IL_01dd: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_01e2: ldc.i4.1 @@ -12954,17 +13156,17 @@ // Code size 179 (0xb3) .maxstack 8 IL_0000: nop - IL_0001: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_0' + IL_0001: ldsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__99_0' IL_0006: dup IL_0007: brtrue.s IL_0020 IL_0009: pop IL_000a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9' - IL_000f: ldftn instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__98_0'() + IL_000f: ldftn instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'b__99_0'() IL_0015: newobj instance void class [mscorlib]System.Func`1::.ctor(object, native int) IL_001a: dup - IL_001b: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__98_0' + IL_001b: stsfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ExpressionTrees/'<>c'::'<>9__99_0' IL_0020: ldtoken method instance void class '<>f__AnonymousType3`2'::.ctor(!0, !1) IL_0025: ldtoken class '<>f__AnonymousType3`2' @@ -13608,12 +13810,12 @@ .size 12 } // end of class '__StaticArrayInitTypeSize=12' - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=12' E429CCA3F703A39CC5954A6572FEC9086135B34E at I_0000FF48 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=12' E429CCA3F703A39CC5954A6572FEC9086135B34E at I_00010174 } // end of class '' // ============================================================= -.data cil I_0000FF48 = bytearray ( +.data cil I_00010174 = bytearray ( 01 00 00 00 02 00 00 00 03 00 00 00) // *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.cs index 58d674f9d..fce96b064 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.cs @@ -322,9 +322,16 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty if (a == b) { Console.WriteLine(); } +#if ROSLYN + // Roslyn 2.9 started invoking op_Equality even if the source code says 'a != b' + if (!(a == b)) { + Console.WriteLine(); + } +#else if (a != b) { Console.WriteLine(); } +#endif if (a > b) { Console.WriteLine(); } @@ -399,7 +406,12 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty public static void NumberValueBasic(decimal? a, decimal? b) { Console.WriteLine(a == b); +#if ROSLYN + // Roslyn 2.9 started invoking op_Equality even if the source code says 'a != b' + Console.WriteLine(!(a == b)); +#else Console.WriteLine(a != b); +#endif Console.WriteLine(a > b); Console.WriteLine(!(a > b)); diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.opt.roslyn.il index 12a45e909..fafe6bca1 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.opt.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.opt.roslyn.il @@ -39,8 +39,8 @@ .method public hidebysig static void BoolBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 96 (0x60) - .maxstack 2 + // Code size 89 (0x59) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -51,49 +51,41 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_0027 - - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: ldloca.s V_1 - IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0025: ceq - IL_0027: brfalse.s IL_002e - - IL_0029: call void [mscorlib]System.Console::WriteLine() - IL_002e: ldarg.0 - IL_002f: stloc.1 - IL_0030: ldarg.1 - IL_0031: stloc.0 - IL_0032: ldloca.s V_1 - IL_0034: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0039: ldloca.s V_0 - IL_003b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0040: beq.s IL_0045 - - IL_0042: ldc.i4.1 - IL_0043: br.s IL_0058 - - IL_0045: ldloca.s V_1 - IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004c: ldloca.s V_0 - IL_004e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0053: ceq - IL_0055: ldc.i4.0 - IL_0056: ceq - IL_0058: brfalse.s IL_005f + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: ceq + IL_0024: and + IL_0025: brfalse.s IL_002c - IL_005a: call void [mscorlib]System.Console::WriteLine() - IL_005f: ret + IL_0027: call void [mscorlib]System.Console::WriteLine() + IL_002c: ldarg.0 + IL_002d: stloc.1 + IL_002e: ldarg.1 + IL_002f: stloc.0 + IL_0030: ldloca.s V_1 + IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0037: ldloca.s V_0 + IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003e: ceq + IL_0040: ldloca.s V_1 + IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: ceq + IL_0050: and + IL_0051: brtrue.s IL_0058 + + IL_0053: call void [mscorlib]System.Console::WriteLine() + IL_0058: ret } // end of method LiftedOperators::BoolBasic .method public hidebysig static void BoolComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 147 (0x93) + // Code size 133 (0x85) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1) @@ -105,76 +97,60 @@ IL_0009: ldloca.s V_0 IL_000b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0010: ldloc.1 - IL_0011: beq.s IL_0016 - - IL_0013: ldc.i4.0 - IL_0014: br.s IL_001d - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: brfalse.s IL_0024 - - IL_001f: call void [mscorlib]System.Console::WriteLine() - IL_0024: ldarg.0 - IL_0025: stloc.0 - IL_0026: ldarg.1 - IL_0027: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002c: stloc.1 - IL_002d: ldloca.s V_0 - IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: ldloc.1 - IL_0035: beq.s IL_003a - - IL_0037: ldc.i4.1 - IL_0038: br.s IL_0044 - - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldc.i4.0 - IL_0042: ceq - IL_0044: brfalse.s IL_004b - - IL_0046: call void [mscorlib]System.Console::WriteLine() - IL_004b: ldarg.1 - IL_004c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0051: ldarg.0 - IL_0052: stloc.0 - IL_0053: ldloca.s V_0 - IL_0055: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_005a: beq.s IL_005f - - IL_005c: ldc.i4.0 - IL_005d: br.s IL_0066 - - IL_005f: ldloca.s V_0 - IL_0061: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0066: brfalse.s IL_006d + IL_0011: ceq + IL_0013: ldloca.s V_0 + IL_0015: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001a: and + IL_001b: brfalse.s IL_0022 - IL_0068: call void [mscorlib]System.Console::WriteLine() - IL_006d: ldarg.1 - IL_006e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0073: ldarg.0 - IL_0074: stloc.0 + IL_001d: call void [mscorlib]System.Console::WriteLine() + IL_0022: ldarg.0 + IL_0023: stloc.0 + IL_0024: ldarg.1 + IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_002a: stloc.1 + IL_002b: ldloca.s V_0 + IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0032: ldloc.1 + IL_0033: ceq + IL_0035: ldloca.s V_0 + IL_0037: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003c: and + IL_003d: brtrue.s IL_0044 + + IL_003f: call void [mscorlib]System.Console::WriteLine() + IL_0044: ldarg.1 + IL_0045: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_004a: ldarg.0 + IL_004b: stloc.0 + IL_004c: ldloca.s V_0 + IL_004e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0053: ceq + IL_0055: ldloca.s V_0 + IL_0057: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005c: and + IL_005d: brfalse.s IL_0064 + + IL_005f: call void [mscorlib]System.Console::WriteLine() + IL_0064: ldarg.1 + IL_0065: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_006a: ldarg.0 + IL_006b: stloc.0 + IL_006c: ldloca.s V_0 + IL_006e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0073: ceq IL_0075: ldloca.s V_0 - IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007c: beq.s IL_0081 - - IL_007e: ldc.i4.1 - IL_007f: br.s IL_008b + IL_0077: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007c: and + IL_007d: brtrue.s IL_0084 - IL_0081: ldloca.s V_0 - IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: ldc.i4.0 - IL_0089: ceq - IL_008b: brfalse.s IL_0092 - - IL_008d: call void [mscorlib]System.Console::WriteLine() - IL_0092: ret + IL_007f: call void [mscorlib]System.Console::WriteLine() + IL_0084: ret } // end of method LiftedOperators::BoolComplex .method public hidebysig static void BoolConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 187 (0xbb) + // Code size 173 (0xad) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1) @@ -185,107 +161,91 @@ IL_0004: ldloca.s V_0 IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloc.1 - IL_000c: beq.s IL_0011 - - IL_000e: ldc.i4.0 - IL_000f: br.s IL_0018 - - IL_0011: ldloca.s V_0 - IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0018: brfalse.s IL_001f - - IL_001a: call void [mscorlib]System.Console::WriteLine() - IL_001f: ldarg.0 - IL_0020: stloc.0 - IL_0021: ldc.i4.1 - IL_0022: stloc.1 - IL_0023: ldloca.s V_0 - IL_0025: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_002a: ldloc.1 - IL_002b: beq.s IL_0030 - - IL_002d: ldc.i4.1 - IL_002e: br.s IL_003a - - IL_0030: ldloca.s V_0 - IL_0032: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0037: ldc.i4.0 - IL_0038: ceq - IL_003a: brfalse.s IL_0041 - - IL_003c: call void [mscorlib]System.Console::WriteLine() - IL_0041: ldarg.0 - IL_0042: stloc.0 - IL_0043: ldc.i4.0 - IL_0044: stloc.1 - IL_0045: ldloca.s V_0 - IL_0047: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_004c: ldloc.1 - IL_004d: beq.s IL_0052 - - IL_004f: ldc.i4.0 - IL_0050: br.s IL_0059 - - IL_0052: ldloca.s V_0 - IL_0054: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0059: brfalse.s IL_0060 - - IL_005b: call void [mscorlib]System.Console::WriteLine() - IL_0060: ldarg.0 - IL_0061: stloc.0 - IL_0062: ldc.i4.0 - IL_0063: stloc.1 - IL_0064: ldloca.s V_0 - IL_0066: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006b: ldloc.1 - IL_006c: beq.s IL_0071 - - IL_006e: ldc.i4.1 - IL_006f: br.s IL_007b + IL_000c: ceq + IL_000e: ldloca.s V_0 + IL_0010: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0015: and + IL_0016: brfalse.s IL_001d - IL_0071: ldloca.s V_0 - IL_0073: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0078: ldc.i4.0 - IL_0079: ceq - IL_007b: brfalse.s IL_0082 + IL_0018: call void [mscorlib]System.Console::WriteLine() + IL_001d: ldarg.0 + IL_001e: stloc.0 + IL_001f: ldc.i4.1 + IL_0020: stloc.1 + IL_0021: ldloca.s V_0 + IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0028: ldloc.1 + IL_0029: ceq + IL_002b: ldloca.s V_0 + IL_002d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0032: and + IL_0033: brtrue.s IL_003a + + IL_0035: call void [mscorlib]System.Console::WriteLine() + IL_003a: ldarg.0 + IL_003b: stloc.0 + IL_003c: ldc.i4.0 + IL_003d: stloc.1 + IL_003e: ldloca.s V_0 + IL_0040: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0045: ldloc.1 + IL_0046: ceq + IL_0048: ldloca.s V_0 + IL_004a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004f: and + IL_0050: brfalse.s IL_0057 + + IL_0052: call void [mscorlib]System.Console::WriteLine() + IL_0057: ldarg.0 + IL_0058: stloc.0 + IL_0059: ldc.i4.0 + IL_005a: stloc.1 + IL_005b: ldloca.s V_0 + IL_005d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0062: ldloc.1 + IL_0063: ceq + IL_0065: ldloca.s V_0 + IL_0067: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006c: and + IL_006d: brtrue.s IL_0074 - IL_007d: call void [mscorlib]System.Console::WriteLine() - IL_0082: ldarg.0 - IL_0083: stloc.0 - IL_0084: ldloca.s V_0 - IL_0086: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008b: brtrue.s IL_0090 + IL_006f: call void [mscorlib]System.Console::WriteLine() + IL_0074: ldarg.0 + IL_0075: stloc.0 + IL_0076: ldloca.s V_0 + IL_0078: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007d: brtrue.s IL_0082 - IL_008d: ldc.i4.1 - IL_008e: br.s IL_0097 + IL_007f: ldc.i4.1 + IL_0080: br.s IL_0089 - IL_0090: ldloca.s V_0 - IL_0092: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0097: brfalse.s IL_009e + IL_0082: ldloca.s V_0 + IL_0084: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0089: brfalse.s IL_0090 - IL_0099: call void [mscorlib]System.Console::WriteLine() - IL_009e: ldarg.0 - IL_009f: stloc.0 - IL_00a0: ldloca.s V_0 - IL_00a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a7: brtrue.s IL_00ac + IL_008b: call void [mscorlib]System.Console::WriteLine() + IL_0090: ldarg.0 + IL_0091: stloc.0 + IL_0092: ldloca.s V_0 + IL_0094: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0099: brtrue.s IL_009e - IL_00a9: ldc.i4.0 - IL_00aa: br.s IL_00b3 + IL_009b: ldc.i4.0 + IL_009c: br.s IL_00a5 - IL_00ac: ldloca.s V_0 - IL_00ae: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b3: brfalse.s IL_00ba + IL_009e: ldloca.s V_0 + IL_00a0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a5: brfalse.s IL_00ac - IL_00b5: call void [mscorlib]System.Console::WriteLine() - IL_00ba: ret + IL_00a7: call void [mscorlib]System.Console::WriteLine() + IL_00ac: ret } // end of method LiftedOperators::BoolConst .method public hidebysig static void BoolValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 444 (0x1bc) - .maxstack 2 + // Code size 440 (0x1b8) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2) @@ -297,208 +257,202 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_0027 + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: ceq + IL_0024: and + IL_0025: call void [mscorlib]System.Console::WriteLine(bool) + IL_002a: ldarg.0 + IL_002b: stloc.1 + IL_002c: ldarg.1 + IL_002d: stloc.0 + IL_002e: ldloca.s V_1 + IL_0030: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0035: ldloca.s V_0 + IL_0037: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003c: ceq + IL_003e: ldloca.s V_1 + IL_0040: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0045: ldloca.s V_0 + IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004c: ceq + IL_004e: and + IL_004f: ldc.i4.0 + IL_0050: ceq + IL_0052: call void [mscorlib]System.Console::WriteLine(bool) + IL_0057: ldarg.0 + IL_0058: stloc.0 + IL_0059: ldarg.1 + IL_005a: stloc.1 + IL_005b: ldloca.s V_0 + IL_005d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0062: brtrue.s IL_0079 - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: ldloca.s V_1 - IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0025: ceq - IL_0027: call void [mscorlib]System.Console::WriteLine(bool) - IL_002c: ldarg.0 - IL_002d: stloc.1 - IL_002e: ldarg.1 - IL_002f: stloc.0 - IL_0030: ldloca.s V_1 - IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0037: ldloca.s V_0 - IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003e: beq.s IL_0043 + IL_0064: ldloca.s V_1 + IL_0066: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006b: brtrue.s IL_0076 - IL_0040: ldc.i4.1 - IL_0041: br.s IL_0056 + IL_006d: ldloca.s V_0 + IL_006f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0074: brfalse.s IL_0079 + + IL_0076: ldloc.0 + IL_0077: br.s IL_007a + + IL_0079: ldloc.1 + IL_007a: box valuetype [mscorlib]System.Nullable`1 + IL_007f: call void [mscorlib]System.Console::WriteLine(object) + IL_0084: ldarg.0 + IL_0085: stloc.1 + IL_0086: ldarg.1 + IL_0087: stloc.0 + IL_0088: ldloca.s V_1 + IL_008a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008f: brtrue.s IL_00a6 - IL_0043: ldloca.s V_1 - IL_0045: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004a: ldloca.s V_0 - IL_004c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0051: ceq - IL_0053: ldc.i4.0 - IL_0054: ceq - IL_0056: call void [mscorlib]System.Console::WriteLine(bool) - IL_005b: ldarg.0 - IL_005c: stloc.0 - IL_005d: ldarg.1 - IL_005e: stloc.1 - IL_005f: ldloca.s V_0 - IL_0061: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0066: brtrue.s IL_007d + IL_0091: ldloca.s V_0 + IL_0093: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0098: brtrue.s IL_00a3 + + IL_009a: ldloca.s V_1 + IL_009c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a1: brfalse.s IL_00a6 + + IL_00a3: ldloc.0 + IL_00a4: br.s IL_00a7 + + IL_00a6: ldloc.1 + IL_00a7: box valuetype [mscorlib]System.Nullable`1 + IL_00ac: call void [mscorlib]System.Console::WriteLine(object) + IL_00b1: ldarg.0 + IL_00b2: stloc.0 + IL_00b3: ldarg.1 + IL_00b4: stloc.1 + IL_00b5: ldloca.s V_0 + IL_00b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00bc: ldloca.s V_1 + IL_00be: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c3: and + IL_00c4: brtrue.s IL_00d1 + + IL_00c6: ldloca.s V_2 + IL_00c8: initobj valuetype [mscorlib]System.Nullable`1 + IL_00ce: ldloc.2 + IL_00cf: br.s IL_00e5 - IL_0068: ldloca.s V_1 - IL_006a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006f: brtrue.s IL_007a - - IL_0071: ldloca.s V_0 - IL_0073: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0078: brfalse.s IL_007d - - IL_007a: ldloc.0 - IL_007b: br.s IL_007e - - IL_007d: ldloc.1 - IL_007e: box valuetype [mscorlib]System.Nullable`1 - IL_0083: call void [mscorlib]System.Console::WriteLine(object) - IL_0088: ldarg.0 - IL_0089: stloc.1 - IL_008a: ldarg.1 - IL_008b: stloc.0 - IL_008c: ldloca.s V_1 - IL_008e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0093: brtrue.s IL_00aa + IL_00d1: ldloca.s V_0 + IL_00d3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d8: ldloca.s V_1 + IL_00da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00df: xor + IL_00e0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00e5: box valuetype [mscorlib]System.Nullable`1 + IL_00ea: call void [mscorlib]System.Console::WriteLine(object) + IL_00ef: ldarg.0 + IL_00f0: stloc.1 + IL_00f1: ldloca.s V_1 + IL_00f3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00f8: brtrue.s IL_00fd + + IL_00fa: ldarg.1 + IL_00fb: br.s IL_00fe + + IL_00fd: ldloc.1 + IL_00fe: box valuetype [mscorlib]System.Nullable`1 + IL_0103: call void [mscorlib]System.Console::WriteLine(object) + IL_0108: ldarg.0 + IL_0109: stloc.1 + IL_010a: ldloca.s V_1 + IL_010c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0111: brtrue.s IL_011e - IL_0095: ldloca.s V_0 - IL_0097: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_009c: brtrue.s IL_00a7 - - IL_009e: ldloca.s V_1 - IL_00a0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a5: brfalse.s IL_00aa - - IL_00a7: ldloc.0 - IL_00a8: br.s IL_00ab - - IL_00aa: ldloc.1 - IL_00ab: box valuetype [mscorlib]System.Nullable`1 - IL_00b0: call void [mscorlib]System.Console::WriteLine(object) - IL_00b5: ldarg.0 - IL_00b6: stloc.0 - IL_00b7: ldarg.1 - IL_00b8: stloc.1 - IL_00b9: ldloca.s V_0 - IL_00bb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c0: ldloca.s V_1 - IL_00c2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c7: and - IL_00c8: brtrue.s IL_00d5 - - IL_00ca: ldloca.s V_2 - IL_00cc: initobj valuetype [mscorlib]System.Nullable`1 - IL_00d2: ldloc.2 - IL_00d3: br.s IL_00e9 - - IL_00d5: ldloca.s V_0 - IL_00d7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00dc: ldloca.s V_1 - IL_00de: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e3: xor - IL_00e4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00e9: box valuetype [mscorlib]System.Nullable`1 - IL_00ee: call void [mscorlib]System.Console::WriteLine(object) - IL_00f3: ldarg.0 - IL_00f4: stloc.1 - IL_00f5: ldloca.s V_1 - IL_00f7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00fc: brtrue.s IL_0101 - - IL_00fe: ldarg.1 - IL_00ff: br.s IL_0102 - - IL_0101: ldloc.1 - IL_0102: box valuetype [mscorlib]System.Nullable`1 - IL_0107: call void [mscorlib]System.Console::WriteLine(object) - IL_010c: ldarg.0 - IL_010d: stloc.1 - IL_010e: ldloca.s V_1 - IL_0110: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0115: brtrue.s IL_0122 - - IL_0117: ldloca.s V_0 - IL_0119: initobj valuetype [mscorlib]System.Nullable`1 - IL_011f: ldloc.0 - IL_0120: br.s IL_0131 - - IL_0122: ldloca.s V_1 - IL_0124: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0129: ldc.i4.0 - IL_012a: ceq - IL_012c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0131: box valuetype [mscorlib]System.Nullable`1 - IL_0136: call void [mscorlib]System.Console::WriteLine(object) - IL_013b: ldarg.0 - IL_013c: stloc.1 - IL_013d: ldarg.1 - IL_013e: stloc.0 - IL_013f: ldloca.s V_1 - IL_0141: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0146: brtrue.s IL_015d + IL_0113: ldloca.s V_0 + IL_0115: initobj valuetype [mscorlib]System.Nullable`1 + IL_011b: ldloc.0 + IL_011c: br.s IL_012d - IL_0148: ldloca.s V_0 - IL_014a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014f: brtrue.s IL_015a + IL_011e: ldloca.s V_1 + IL_0120: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0125: ldc.i4.0 + IL_0126: ceq + IL_0128: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_012d: box valuetype [mscorlib]System.Nullable`1 + IL_0132: call void [mscorlib]System.Console::WriteLine(object) + IL_0137: ldarg.0 + IL_0138: stloc.1 + IL_0139: ldarg.1 + IL_013a: stloc.0 + IL_013b: ldloca.s V_1 + IL_013d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0142: brtrue.s IL_0159 + + IL_0144: ldloca.s V_0 + IL_0146: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_014b: brtrue.s IL_0156 - IL_0151: ldloca.s V_1 - IL_0153: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0158: brfalse.s IL_015d + IL_014d: ldloca.s V_1 + IL_014f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0154: brfalse.s IL_0159 - IL_015a: ldloc.1 - IL_015b: br.s IL_015e - - IL_015d: ldloc.0 - IL_015e: starg.s a - IL_0160: ldarg.0 - IL_0161: stloc.0 - IL_0162: ldarg.1 - IL_0163: stloc.1 - IL_0164: ldloca.s V_0 - IL_0166: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016b: brtrue.s IL_0182 - - IL_016d: ldloca.s V_1 - IL_016f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0174: brtrue.s IL_017f + IL_0156: ldloc.1 + IL_0157: br.s IL_015a - IL_0176: ldloca.s V_0 - IL_0178: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_017d: brfalse.s IL_0182 - - IL_017f: ldloc.1 - IL_0180: br.s IL_0183 - - IL_0182: ldloc.0 - IL_0183: starg.s a - IL_0185: ldarg.0 - IL_0186: stloc.1 - IL_0187: ldarg.1 - IL_0188: stloc.0 - IL_0189: ldloca.s V_1 - IL_018b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0190: ldloca.s V_0 - IL_0192: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0197: and - IL_0198: brtrue.s IL_01a5 - - IL_019a: ldloca.s V_2 - IL_019c: initobj valuetype [mscorlib]System.Nullable`1 - IL_01a2: ldloc.2 - IL_01a3: br.s IL_01b9 - - IL_01a5: ldloca.s V_1 - IL_01a7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ac: ldloca.s V_0 - IL_01ae: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01b3: xor - IL_01b4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01b9: starg.s a - IL_01bb: ret + IL_0159: ldloc.0 + IL_015a: starg.s a + IL_015c: ldarg.0 + IL_015d: stloc.0 + IL_015e: ldarg.1 + IL_015f: stloc.1 + IL_0160: ldloca.s V_0 + IL_0162: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0167: brtrue.s IL_017e + + IL_0169: ldloca.s V_1 + IL_016b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0170: brtrue.s IL_017b + + IL_0172: ldloca.s V_0 + IL_0174: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0179: brfalse.s IL_017e + + IL_017b: ldloc.1 + IL_017c: br.s IL_017f + + IL_017e: ldloc.0 + IL_017f: starg.s a + IL_0181: ldarg.0 + IL_0182: stloc.1 + IL_0183: ldarg.1 + IL_0184: stloc.0 + IL_0185: ldloca.s V_1 + IL_0187: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_018c: ldloca.s V_0 + IL_018e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0193: and + IL_0194: brtrue.s IL_01a1 + + IL_0196: ldloca.s V_2 + IL_0198: initobj valuetype [mscorlib]System.Nullable`1 + IL_019e: ldloc.2 + IL_019f: br.s IL_01b5 + + IL_01a1: ldloca.s V_1 + IL_01a3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01a8: ldloca.s V_0 + IL_01aa: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01af: xor + IL_01b0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01b5: starg.s a + IL_01b7: ret } // end of method LiftedOperators::BoolValueBasic .method public hidebysig static void BoolValueComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 518 (0x206) + // Code size 510 (0x1fe) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1, @@ -512,222 +466,210 @@ IL_0009: ldloca.s V_0 IL_000b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0010: ldloc.1 - IL_0011: beq.s IL_0016 - - IL_0013: ldc.i4.0 - IL_0014: br.s IL_001d - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: call void [mscorlib]System.Console::WriteLine(bool) - IL_0022: ldarg.0 - IL_0023: stloc.0 - IL_0024: ldarg.1 - IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002a: stloc.1 - IL_002b: ldloca.s V_0 - IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0032: ldloc.1 - IL_0033: beq.s IL_0038 - - IL_0035: ldc.i4.1 - IL_0036: br.s IL_0042 - - IL_0038: ldloca.s V_0 - IL_003a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003f: ldc.i4.0 - IL_0040: ceq - IL_0042: call void [mscorlib]System.Console::WriteLine(bool) - IL_0047: ldarg.1 - IL_0048: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_004d: ldarg.0 - IL_004e: stloc.0 - IL_004f: ldloca.s V_0 - IL_0051: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0056: beq.s IL_005b + IL_0011: ceq + IL_0013: ldloca.s V_0 + IL_0015: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001a: and + IL_001b: call void [mscorlib]System.Console::WriteLine(bool) + IL_0020: ldarg.0 + IL_0021: stloc.0 + IL_0022: ldarg.1 + IL_0023: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0028: stloc.1 + IL_0029: ldloca.s V_0 + IL_002b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0030: ldloc.1 + IL_0031: ceq + IL_0033: ldloca.s V_0 + IL_0035: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003a: and + IL_003b: ldc.i4.0 + IL_003c: ceq + IL_003e: call void [mscorlib]System.Console::WriteLine(bool) + IL_0043: ldarg.1 + IL_0044: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0049: ldarg.0 + IL_004a: stloc.0 + IL_004b: ldloca.s V_0 + IL_004d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0052: ceq + IL_0054: ldloca.s V_0 + IL_0056: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005b: and + IL_005c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0061: ldarg.1 + IL_0062: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0067: ldarg.0 + IL_0068: stloc.0 + IL_0069: ldloca.s V_0 + IL_006b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0070: ceq + IL_0072: ldloca.s V_0 + IL_0074: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0079: and + IL_007a: ldc.i4.0 + IL_007b: ceq + IL_007d: call void [mscorlib]System.Console::WriteLine(bool) + IL_0082: ldarg.0 + IL_0083: stloc.0 + IL_0084: ldarg.1 + IL_0085: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_008a: stloc.1 + IL_008b: ldloca.s V_0 + IL_008d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0092: brtrue.s IL_009f + + IL_0094: ldloca.s V_2 + IL_0096: initobj valuetype [mscorlib]System.Nullable`1 + IL_009c: ldloc.2 + IL_009d: br.s IL_00ad + + IL_009f: ldloca.s V_0 + IL_00a1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a6: ldloc.1 + IL_00a7: xor + IL_00a8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00ad: box valuetype [mscorlib]System.Nullable`1 + IL_00b2: call void [mscorlib]System.Console::WriteLine(object) + IL_00b7: ldarg.0 + IL_00b8: stloc.0 + IL_00b9: ldloca.s V_0 + IL_00bb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c0: brtrue.s IL_00ca - IL_0058: ldc.i4.0 - IL_0059: br.s IL_0062 + IL_00c2: ldarg.1 + IL_00c3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00c8: br.s IL_00d1 - IL_005b: ldloca.s V_0 - IL_005d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0062: call void [mscorlib]System.Console::WriteLine(bool) - IL_0067: ldarg.1 - IL_0068: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_006d: ldarg.0 - IL_006e: stloc.0 - IL_006f: ldloca.s V_0 - IL_0071: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0076: beq.s IL_007b - - IL_0078: ldc.i4.1 - IL_0079: br.s IL_0085 - - IL_007b: ldloca.s V_0 - IL_007d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0082: ldc.i4.0 - IL_0083: ceq - IL_0085: call void [mscorlib]System.Console::WriteLine(bool) - IL_008a: ldarg.0 - IL_008b: stloc.0 - IL_008c: ldarg.1 - IL_008d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0092: stloc.1 - IL_0093: ldloca.s V_0 - IL_0095: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009a: brtrue.s IL_00a7 - - IL_009c: ldloca.s V_2 - IL_009e: initobj valuetype [mscorlib]System.Nullable`1 - IL_00a4: ldloc.2 - IL_00a5: br.s IL_00b5 + IL_00ca: ldloca.s V_0 + IL_00cc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d1: call void [mscorlib]System.Console::WriteLine(bool) + IL_00d6: ldarg.0 + IL_00d7: stloc.0 + IL_00d8: ldarg.1 + IL_00d9: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00de: stloc.1 + IL_00df: ldloca.s V_0 + IL_00e1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e6: brtrue.s IL_00f3 + + IL_00e8: ldloca.s V_2 + IL_00ea: initobj valuetype [mscorlib]System.Nullable`1 + IL_00f0: ldloc.2 + IL_00f1: br.s IL_0101 + + IL_00f3: ldloca.s V_0 + IL_00f5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00fa: ldloc.1 + IL_00fb: xor + IL_00fc: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0101: starg.s a + IL_0103: ldarg.1 + IL_0104: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0109: ldarg.0 + IL_010a: stloc.0 + IL_010b: brtrue.s IL_0115 - IL_00a7: ldloca.s V_0 - IL_00a9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00ae: ldloc.1 - IL_00af: xor - IL_00b0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00b5: box valuetype [mscorlib]System.Nullable`1 - IL_00ba: call void [mscorlib]System.Console::WriteLine(object) - IL_00bf: ldarg.0 - IL_00c0: stloc.0 - IL_00c1: ldloca.s V_0 - IL_00c3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c8: brtrue.s IL_00d2 - - IL_00ca: ldarg.1 - IL_00cb: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00d0: br.s IL_00d9 + IL_010d: ldc.i4.0 + IL_010e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0113: br.s IL_0116 - IL_00d2: ldloca.s V_0 - IL_00d4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00d9: call void [mscorlib]System.Console::WriteLine(bool) - IL_00de: ldarg.0 - IL_00df: stloc.0 - IL_00e0: ldarg.1 - IL_00e1: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00e6: stloc.1 - IL_00e7: ldloca.s V_0 - IL_00e9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ee: brtrue.s IL_00fb + IL_0115: ldloc.0 + IL_0116: box valuetype [mscorlib]System.Nullable`1 + IL_011b: call void [mscorlib]System.Console::WriteLine(object) + IL_0120: ldarg.1 + IL_0121: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0126: ldarg.0 + IL_0127: stloc.0 + IL_0128: brtrue.s IL_012d + + IL_012a: ldloc.0 + IL_012b: br.s IL_0133 + + IL_012d: ldc.i4.1 + IL_012e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0133: box valuetype [mscorlib]System.Nullable`1 + IL_0138: call void [mscorlib]System.Console::WriteLine(object) + IL_013d: ldarg.1 + IL_013e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0143: stloc.1 + IL_0144: ldarg.0 + IL_0145: stloc.0 + IL_0146: ldloca.s V_0 + IL_0148: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_014d: brtrue.s IL_015a - IL_00f0: ldloca.s V_2 - IL_00f2: initobj valuetype [mscorlib]System.Nullable`1 - IL_00f8: ldloc.2 - IL_00f9: br.s IL_0109 + IL_014f: ldloca.s V_2 + IL_0151: initobj valuetype [mscorlib]System.Nullable`1 + IL_0157: ldloc.2 + IL_0158: br.s IL_0168 - IL_00fb: ldloca.s V_0 - IL_00fd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0102: ldloc.1 - IL_0103: xor - IL_0104: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0109: starg.s a - IL_010b: ldarg.1 - IL_010c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0111: ldarg.0 - IL_0112: stloc.0 - IL_0113: brtrue.s IL_011d - - IL_0115: ldc.i4.0 - IL_0116: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_011b: br.s IL_011e - - IL_011d: ldloc.0 - IL_011e: box valuetype [mscorlib]System.Nullable`1 - IL_0123: call void [mscorlib]System.Console::WriteLine(object) - IL_0128: ldarg.1 - IL_0129: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_012e: ldarg.0 - IL_012f: stloc.0 - IL_0130: brtrue.s IL_0135 - - IL_0132: ldloc.0 - IL_0133: br.s IL_013b - - IL_0135: ldc.i4.1 - IL_0136: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_013b: box valuetype [mscorlib]System.Nullable`1 - IL_0140: call void [mscorlib]System.Console::WriteLine(object) - IL_0145: ldarg.1 - IL_0146: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_014b: stloc.1 - IL_014c: ldarg.0 - IL_014d: stloc.0 - IL_014e: ldloca.s V_0 - IL_0150: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0155: brtrue.s IL_0162 - - IL_0157: ldloca.s V_2 - IL_0159: initobj valuetype [mscorlib]System.Nullable`1 - IL_015f: ldloc.2 - IL_0160: br.s IL_0170 - - IL_0162: ldloc.1 - IL_0163: ldloca.s V_0 - IL_0165: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016a: xor - IL_016b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0170: box valuetype [mscorlib]System.Nullable`1 - IL_0175: call void [mscorlib]System.Console::WriteLine(object) - IL_017a: ldc.i4.0 - IL_017b: newarr valuetype [mscorlib]System.Nullable`1 - IL_0180: ldc.i4.0 - IL_0181: ldelema valuetype [mscorlib]System.Nullable`1 - IL_0186: dup - IL_0187: ldobj valuetype [mscorlib]System.Nullable`1 - IL_018c: stloc.0 - IL_018d: ldarg.1 - IL_018e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0193: stloc.1 - IL_0194: ldloca.s V_0 - IL_0196: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_019b: brtrue.s IL_01a8 - - IL_019d: ldloca.s V_2 - IL_019f: initobj valuetype [mscorlib]System.Nullable`1 - IL_01a5: ldloc.2 - IL_01a6: br.s IL_01b6 + IL_015a: ldloc.1 + IL_015b: ldloca.s V_0 + IL_015d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0162: xor + IL_0163: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0168: box valuetype [mscorlib]System.Nullable`1 + IL_016d: call void [mscorlib]System.Console::WriteLine(object) + IL_0172: ldc.i4.0 + IL_0173: newarr valuetype [mscorlib]System.Nullable`1 + IL_0178: ldc.i4.0 + IL_0179: ldelema valuetype [mscorlib]System.Nullable`1 + IL_017e: dup + IL_017f: ldobj valuetype [mscorlib]System.Nullable`1 + IL_0184: stloc.0 + IL_0185: ldarg.1 + IL_0186: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_018b: stloc.1 + IL_018c: ldloca.s V_0 + IL_018e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0193: brtrue.s IL_01a0 + + IL_0195: ldloca.s V_2 + IL_0197: initobj valuetype [mscorlib]System.Nullable`1 + IL_019d: ldloc.2 + IL_019e: br.s IL_01ae - IL_01a8: ldloca.s V_0 - IL_01aa: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01af: ldloc.1 - IL_01b0: xor - IL_01b1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01b6: stobj valuetype [mscorlib]System.Nullable`1 - IL_01bb: ldc.i4.0 - IL_01bc: newarr valuetype [mscorlib]System.Nullable`1 - IL_01c1: ldc.i4.0 - IL_01c2: ldelema valuetype [mscorlib]System.Nullable`1 - IL_01c7: dup - IL_01c8: ldobj valuetype [mscorlib]System.Nullable`1 - IL_01cd: stloc.0 - IL_01ce: ldarg.0 - IL_01cf: stloc.2 - IL_01d0: ldloca.s V_0 - IL_01d2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01d7: ldloca.s V_2 - IL_01d9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01de: and - IL_01df: brtrue.s IL_01ec - - IL_01e1: ldloca.s V_3 - IL_01e3: initobj valuetype [mscorlib]System.Nullable`1 - IL_01e9: ldloc.3 - IL_01ea: br.s IL_0200 - - IL_01ec: ldloca.s V_0 - IL_01ee: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01f3: ldloca.s V_2 - IL_01f5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01fa: xor - IL_01fb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0200: stobj valuetype [mscorlib]System.Nullable`1 - IL_0205: ret + IL_01a0: ldloca.s V_0 + IL_01a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01a7: ldloc.1 + IL_01a8: xor + IL_01a9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01ae: stobj valuetype [mscorlib]System.Nullable`1 + IL_01b3: ldc.i4.0 + IL_01b4: newarr valuetype [mscorlib]System.Nullable`1 + IL_01b9: ldc.i4.0 + IL_01ba: ldelema valuetype [mscorlib]System.Nullable`1 + IL_01bf: dup + IL_01c0: ldobj valuetype [mscorlib]System.Nullable`1 + IL_01c5: stloc.0 + IL_01c6: ldarg.0 + IL_01c7: stloc.2 + IL_01c8: ldloca.s V_0 + IL_01ca: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01cf: ldloca.s V_2 + IL_01d1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01d6: and + IL_01d7: brtrue.s IL_01e4 + + IL_01d9: ldloca.s V_3 + IL_01db: initobj valuetype [mscorlib]System.Nullable`1 + IL_01e1: ldloc.3 + IL_01e2: br.s IL_01f8 + + IL_01e4: ldloca.s V_0 + IL_01e6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01eb: ldloca.s V_2 + IL_01ed: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01f2: xor + IL_01f3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01f8: stobj valuetype [mscorlib]System.Nullable`1 + IL_01fd: ret } // end of method LiftedOperators::BoolValueComplex .method public hidebysig static void BoolValueConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 175 (0xaf) + // Code size 167 (0xa7) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1) @@ -738,95 +680,83 @@ IL_0004: ldloca.s V_0 IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloc.1 - IL_000c: beq.s IL_0011 - - IL_000e: ldc.i4.0 - IL_000f: br.s IL_0018 - - IL_0011: ldloca.s V_0 - IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0018: call void [mscorlib]System.Console::WriteLine(bool) - IL_001d: ldarg.0 - IL_001e: stloc.0 - IL_001f: ldc.i4.1 - IL_0020: stloc.1 - IL_0021: ldloca.s V_0 - IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0028: ldloc.1 - IL_0029: beq.s IL_002e - - IL_002b: ldc.i4.1 - IL_002c: br.s IL_0038 - - IL_002e: ldloca.s V_0 - IL_0030: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0035: ldc.i4.0 - IL_0036: ceq - IL_0038: call void [mscorlib]System.Console::WriteLine(bool) - IL_003d: ldarg.0 - IL_003e: stloc.0 - IL_003f: ldc.i4.0 - IL_0040: stloc.1 - IL_0041: ldloca.s V_0 - IL_0043: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0048: ldloc.1 - IL_0049: beq.s IL_004e - - IL_004b: ldc.i4.0 - IL_004c: br.s IL_0055 - - IL_004e: ldloca.s V_0 - IL_0050: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0055: call void [mscorlib]System.Console::WriteLine(bool) - IL_005a: ldarg.0 - IL_005b: stloc.0 - IL_005c: ldc.i4.0 - IL_005d: stloc.1 - IL_005e: ldloca.s V_0 - IL_0060: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0065: ldloc.1 - IL_0066: beq.s IL_006b - - IL_0068: ldc.i4.1 - IL_0069: br.s IL_0075 + IL_000c: ceq + IL_000e: ldloca.s V_0 + IL_0010: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0015: and + IL_0016: call void [mscorlib]System.Console::WriteLine(bool) + IL_001b: ldarg.0 + IL_001c: stloc.0 + IL_001d: ldc.i4.1 + IL_001e: stloc.1 + IL_001f: ldloca.s V_0 + IL_0021: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0026: ldloc.1 + IL_0027: ceq + IL_0029: ldloca.s V_0 + IL_002b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0030: and + IL_0031: ldc.i4.0 + IL_0032: ceq + IL_0034: call void [mscorlib]System.Console::WriteLine(bool) + IL_0039: ldarg.0 + IL_003a: stloc.0 + IL_003b: ldc.i4.0 + IL_003c: stloc.1 + IL_003d: ldloca.s V_0 + IL_003f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0044: ldloc.1 + IL_0045: ceq + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: and + IL_004f: call void [mscorlib]System.Console::WriteLine(bool) + IL_0054: ldarg.0 + IL_0055: stloc.0 + IL_0056: ldc.i4.0 + IL_0057: stloc.1 + IL_0058: ldloca.s V_0 + IL_005a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_005f: ldloc.1 + IL_0060: ceq + IL_0062: ldloca.s V_0 + IL_0064: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0069: and + IL_006a: ldc.i4.0 + IL_006b: ceq + IL_006d: call void [mscorlib]System.Console::WriteLine(bool) + IL_0072: ldarg.0 + IL_0073: stloc.0 + IL_0074: ldloca.s V_0 + IL_0076: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007b: brtrue.s IL_0080 + + IL_007d: ldc.i4.1 + IL_007e: br.s IL_0087 - IL_006b: ldloca.s V_0 - IL_006d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0072: ldc.i4.0 - IL_0073: ceq - IL_0075: call void [mscorlib]System.Console::WriteLine(bool) - IL_007a: ldarg.0 - IL_007b: stloc.0 - IL_007c: ldloca.s V_0 - IL_007e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0083: brtrue.s IL_0088 + IL_0080: ldloca.s V_0 + IL_0082: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0087: call void [mscorlib]System.Console::WriteLine(bool) + IL_008c: ldarg.0 + IL_008d: stloc.0 + IL_008e: ldloca.s V_0 + IL_0090: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0095: brtrue.s IL_009a - IL_0085: ldc.i4.1 - IL_0086: br.s IL_008f + IL_0097: ldc.i4.0 + IL_0098: br.s IL_00a1 - IL_0088: ldloca.s V_0 - IL_008a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_008f: call void [mscorlib]System.Console::WriteLine(bool) - IL_0094: ldarg.0 - IL_0095: stloc.0 - IL_0096: ldloca.s V_0 - IL_0098: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009d: brtrue.s IL_00a2 - - IL_009f: ldc.i4.0 - IL_00a0: br.s IL_00a9 - - IL_00a2: ldloca.s V_0 - IL_00a4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a9: call void [mscorlib]System.Console::WriteLine(bool) - IL_00ae: ret + IL_009a: ldloca.s V_0 + IL_009c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a1: call void [mscorlib]System.Console::WriteLine(bool) + IL_00a6: ret } // end of method LiftedOperators::BoolValueConst .method public hidebysig static void IntBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 366 (0x16e) - .maxstack 2 + // Code size 356 (0x164) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -837,175 +767,155 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_0027 - - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: ldloca.s V_1 - IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0025: ceq - IL_0027: brfalse.s IL_002e - - IL_0029: call void [mscorlib]System.Console::WriteLine() - IL_002e: ldarg.0 - IL_002f: stloc.1 - IL_0030: ldarg.1 - IL_0031: stloc.0 - IL_0032: ldloca.s V_1 - IL_0034: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0039: ldloca.s V_0 - IL_003b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0040: beq.s IL_0045 - - IL_0042: ldc.i4.1 - IL_0043: br.s IL_0058 - - IL_0045: ldloca.s V_1 - IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004c: ldloca.s V_0 - IL_004e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0053: ceq - IL_0055: ldc.i4.0 - IL_0056: ceq - IL_0058: brfalse.s IL_005f + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: ceq + IL_0024: and + IL_0025: brfalse.s IL_002c - IL_005a: call void [mscorlib]System.Console::WriteLine() - IL_005f: ldarg.0 - IL_0060: stloc.0 - IL_0061: ldarg.1 - IL_0062: stloc.1 - IL_0063: ldloca.s V_0 + IL_0027: call void [mscorlib]System.Console::WriteLine() + IL_002c: ldarg.0 + IL_002d: stloc.1 + IL_002e: ldarg.1 + IL_002f: stloc.0 + IL_0030: ldloca.s V_1 + IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0037: ldloca.s V_0 + IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003e: ceq + IL_0040: ldloca.s V_1 + IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: ceq + IL_0050: and + IL_0051: brtrue.s IL_0058 + + IL_0053: call void [mscorlib]System.Console::WriteLine() + IL_0058: ldarg.0 + IL_0059: stloc.0 + IL_005a: ldarg.1 + IL_005b: stloc.1 + IL_005c: ldloca.s V_0 + IL_005e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0063: ldloca.s V_1 IL_0065: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006a: ldloca.s V_1 - IL_006c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0071: bgt.s IL_0076 - - IL_0073: ldc.i4.0 - IL_0074: br.s IL_0085 - - IL_0076: ldloca.s V_0 - IL_0078: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_007d: ldloca.s V_1 - IL_007f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0084: and - IL_0085: brfalse.s IL_008c - - IL_0087: call void [mscorlib]System.Console::WriteLine() - IL_008c: ldarg.0 - IL_008d: stloc.1 - IL_008e: ldarg.1 - IL_008f: stloc.0 - IL_0090: ldloca.s V_1 - IL_0092: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0097: ldloca.s V_0 - IL_0099: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_009e: blt.s IL_00a3 - - IL_00a0: ldc.i4.0 - IL_00a1: br.s IL_00b2 - - IL_00a3: ldloca.s V_1 - IL_00a5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00aa: ldloca.s V_0 - IL_00ac: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00b1: and - IL_00b2: brfalse.s IL_00b9 - - IL_00b4: call void [mscorlib]System.Console::WriteLine() - IL_00b9: ldarg.0 - IL_00ba: stloc.0 - IL_00bb: ldarg.1 - IL_00bc: stloc.1 - IL_00bd: ldloca.s V_0 - IL_00bf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c4: ldloca.s V_1 - IL_00c6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00cb: bge.s IL_00d0 - - IL_00cd: ldc.i4.0 - IL_00ce: br.s IL_00df - - IL_00d0: ldloca.s V_0 - IL_00d2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d7: ldloca.s V_1 - IL_00d9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00de: and - IL_00df: brfalse.s IL_00e6 - - IL_00e1: call void [mscorlib]System.Console::WriteLine() - IL_00e6: ldarg.0 - IL_00e7: stloc.1 - IL_00e8: ldarg.1 - IL_00e9: stloc.0 - IL_00ea: ldloca.s V_1 - IL_00ec: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f1: ldloca.s V_0 - IL_00f3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f8: ble.s IL_00fd - - IL_00fa: ldc.i4.0 - IL_00fb: br.s IL_010c + IL_006a: cgt + IL_006c: ldloca.s V_0 + IL_006e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0073: ldloca.s V_1 + IL_0075: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007a: and + IL_007b: and + IL_007c: brfalse.s IL_0083 + + IL_007e: call void [mscorlib]System.Console::WriteLine() + IL_0083: ldarg.0 + IL_0084: stloc.1 + IL_0085: ldarg.1 + IL_0086: stloc.0 + IL_0087: ldloca.s V_1 + IL_0089: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008e: ldloca.s V_0 + IL_0090: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0095: clt + IL_0097: ldloca.s V_1 + IL_0099: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009e: ldloca.s V_0 + IL_00a0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a5: and + IL_00a6: and + IL_00a7: brfalse.s IL_00ae + + IL_00a9: call void [mscorlib]System.Console::WriteLine() + IL_00ae: ldarg.0 + IL_00af: stloc.0 + IL_00b0: ldarg.1 + IL_00b1: stloc.1 + IL_00b2: ldloca.s V_0 + IL_00b4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b9: ldloca.s V_1 + IL_00bb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c0: clt + IL_00c2: ldc.i4.0 + IL_00c3: ceq + IL_00c5: ldloca.s V_0 + IL_00c7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00cc: ldloca.s V_1 + IL_00ce: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d3: and + IL_00d4: and + IL_00d5: brfalse.s IL_00dc + + IL_00d7: call void [mscorlib]System.Console::WriteLine() + IL_00dc: ldarg.0 + IL_00dd: stloc.1 + IL_00de: ldarg.1 + IL_00df: stloc.0 + IL_00e0: ldloca.s V_1 + IL_00e2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00e7: ldloca.s V_0 + IL_00e9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00ee: cgt + IL_00f0: ldc.i4.0 + IL_00f1: ceq + IL_00f3: ldloca.s V_1 + IL_00f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00fa: ldloca.s V_0 + IL_00fc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0101: and + IL_0102: and + IL_0103: brfalse.s IL_010a + + IL_0105: call void [mscorlib]System.Console::WriteLine() + IL_010a: ldarg.0 + IL_010b: stloc.0 + IL_010c: ldarg.1 + IL_010d: stloc.1 + IL_010e: ldloca.s V_0 + IL_0110: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0115: ldloca.s V_1 + IL_0117: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_011c: cgt + IL_011e: ldloca.s V_0 + IL_0120: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0125: ldloca.s V_1 + IL_0127: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_012c: and + IL_012d: and + IL_012e: brtrue.s IL_0135 + + IL_0130: call void [mscorlib]System.Console::WriteLine() + IL_0135: ldarg.0 + IL_0136: stloc.1 + IL_0137: ldarg.1 + IL_0138: stloc.0 + IL_0139: ldloca.s V_1 + IL_013b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0140: ldloca.s V_0 + IL_0142: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0147: cgt + IL_0149: ldc.i4.0 + IL_014a: ceq + IL_014c: ldloca.s V_1 + IL_014e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0153: ldloca.s V_0 + IL_0155: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_015a: and + IL_015b: and + IL_015c: brtrue.s IL_0163 - IL_00fd: ldloca.s V_1 - IL_00ff: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0104: ldloca.s V_0 - IL_0106: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_010b: and - IL_010c: brfalse.s IL_0113 - - IL_010e: call void [mscorlib]System.Console::WriteLine() - IL_0113: ldarg.0 - IL_0114: stloc.0 - IL_0115: ldarg.1 - IL_0116: stloc.1 - IL_0117: ldloca.s V_0 - IL_0119: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_011e: ldloca.s V_1 - IL_0120: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0125: bgt.s IL_012a - - IL_0127: ldc.i4.0 - IL_0128: br.s IL_0139 - - IL_012a: ldloca.s V_0 - IL_012c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0131: ldloca.s V_1 - IL_0133: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0138: and - IL_0139: brtrue.s IL_0140 - - IL_013b: call void [mscorlib]System.Console::WriteLine() - IL_0140: ldarg.0 - IL_0141: stloc.1 - IL_0142: ldarg.1 - IL_0143: stloc.0 - IL_0144: ldloca.s V_1 - IL_0146: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014b: ldloca.s V_0 - IL_014d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0152: ble.s IL_0157 - - IL_0154: ldc.i4.0 - IL_0155: br.s IL_0166 - - IL_0157: ldloca.s V_1 - IL_0159: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_015e: ldloca.s V_0 - IL_0160: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0165: and - IL_0166: brtrue.s IL_016d - - IL_0168: call void [mscorlib]System.Console::WriteLine() - IL_016d: ret + IL_015e: call void [mscorlib]System.Console::WriteLine() + IL_0163: ret } // end of method LiftedOperators::IntBasic .method public hidebysig static void IntComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 289 (0x121) + // Code size 270 (0x10e) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1) @@ -1015,148 +925,122 @@ IL_0003: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() IL_0008: stloc.1 IL_0009: ldloca.s V_0 - IL_000b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0010: ldloc.1 - IL_0011: beq.s IL_0016 - - IL_0013: ldc.i4.0 - IL_0014: br.s IL_001d - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: brfalse.s IL_0024 - - IL_001f: call void [mscorlib]System.Console::WriteLine() - IL_0024: ldarg.0 - IL_0025: stloc.0 - IL_0026: ldarg.1 - IL_0027: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002c: stloc.1 - IL_002d: ldloca.s V_0 - IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: ldloc.1 - IL_0035: beq.s IL_003a - - IL_0037: ldc.i4.1 - IL_0038: br.s IL_0044 - - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldc.i4.0 - IL_0042: ceq - IL_0044: brfalse.s IL_004b - - IL_0046: call void [mscorlib]System.Console::WriteLine() - IL_004b: ldarg.0 - IL_004c: stloc.0 - IL_004d: ldarg.1 - IL_004e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0053: stloc.1 - IL_0054: ldloca.s V_0 - IL_0056: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_005b: ldloc.1 - IL_005c: bgt.s IL_0061 - - IL_005e: ldc.i4.0 - IL_005f: br.s IL_0068 + IL_000b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0010: ldloc.1 + IL_0011: ceq + IL_0013: ldloca.s V_0 + IL_0015: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001a: and + IL_001b: brfalse.s IL_0022 - IL_0061: ldloca.s V_0 - IL_0063: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0068: brfalse.s IL_006f - - IL_006a: call void [mscorlib]System.Console::WriteLine() - IL_006f: ldarg.1 - IL_0070: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0075: ldarg.0 - IL_0076: stloc.0 + IL_001d: call void [mscorlib]System.Console::WriteLine() + IL_0022: ldarg.0 + IL_0023: stloc.0 + IL_0024: ldarg.1 + IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_002a: stloc.1 + IL_002b: ldloca.s V_0 + IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0032: ldloc.1 + IL_0033: ceq + IL_0035: ldloca.s V_0 + IL_0037: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003c: and + IL_003d: brtrue.s IL_0044 + + IL_003f: call void [mscorlib]System.Console::WriteLine() + IL_0044: ldarg.0 + IL_0045: stloc.0 + IL_0046: ldarg.1 + IL_0047: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_004c: stloc.1 + IL_004d: ldloca.s V_0 + IL_004f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0054: ldloc.1 + IL_0055: cgt + IL_0057: ldloca.s V_0 + IL_0059: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005e: and + IL_005f: brfalse.s IL_0066 + + IL_0061: call void [mscorlib]System.Console::WriteLine() + IL_0066: ldarg.1 + IL_0067: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_006c: ldarg.0 + IL_006d: stloc.0 + IL_006e: ldloca.s V_0 + IL_0070: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0075: ceq IL_0077: ldloca.s V_0 - IL_0079: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007e: beq.s IL_0083 - - IL_0080: ldc.i4.0 - IL_0081: br.s IL_008a - - IL_0083: ldloca.s V_0 - IL_0085: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008a: brfalse.s IL_0091 - - IL_008c: call void [mscorlib]System.Console::WriteLine() - IL_0091: ldarg.1 - IL_0092: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0097: ldarg.0 - IL_0098: stloc.0 - IL_0099: ldloca.s V_0 - IL_009b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a0: beq.s IL_00a5 - - IL_00a2: ldc.i4.1 - IL_00a3: br.s IL_00af - - IL_00a5: ldloca.s V_0 - IL_00a7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ac: ldc.i4.0 - IL_00ad: ceq - IL_00af: brfalse.s IL_00b6 - - IL_00b1: call void [mscorlib]System.Console::WriteLine() - IL_00b6: ldarg.1 - IL_00b7: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00bc: ldarg.0 - IL_00bd: stloc.0 - IL_00be: ldloca.s V_0 - IL_00c0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c5: bgt.s IL_00ca + IL_0079: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007e: and + IL_007f: brfalse.s IL_0086 - IL_00c7: ldc.i4.0 - IL_00c8: br.s IL_00d1 - - IL_00ca: ldloca.s V_0 - IL_00cc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d1: brfalse.s IL_00d8 - - IL_00d3: call void [mscorlib]System.Console::WriteLine() - IL_00d8: ldarg.0 - IL_00d9: stloc.0 - IL_00da: ldarg.1 - IL_00db: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00e0: stloc.1 - IL_00e1: ldloca.s V_0 - IL_00e3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e8: ldloc.1 - IL_00e9: bgt.s IL_00ee - - IL_00eb: ldc.i4.0 - IL_00ec: br.s IL_00f5 - - IL_00ee: ldloca.s V_0 - IL_00f0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f5: brtrue.s IL_00fc - - IL_00f7: call void [mscorlib]System.Console::WriteLine() - IL_00fc: ldarg.0 - IL_00fd: stloc.0 - IL_00fe: ldarg.1 - IL_00ff: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0104: stloc.1 - IL_0105: ldloca.s V_0 - IL_0107: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_010c: ldloc.1 - IL_010d: ble.s IL_0112 - - IL_010f: ldc.i4.0 - IL_0110: br.s IL_0119 - - IL_0112: ldloca.s V_0 - IL_0114: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0119: brtrue.s IL_0120 + IL_0081: call void [mscorlib]System.Console::WriteLine() + IL_0086: ldarg.1 + IL_0087: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_008c: ldarg.0 + IL_008d: stloc.0 + IL_008e: ldloca.s V_0 + IL_0090: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0095: ceq + IL_0097: ldloca.s V_0 + IL_0099: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009e: and + IL_009f: brtrue.s IL_00a6 - IL_011b: call void [mscorlib]System.Console::WriteLine() - IL_0120: ret + IL_00a1: call void [mscorlib]System.Console::WriteLine() + IL_00a6: ldarg.1 + IL_00a7: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00ac: ldarg.0 + IL_00ad: stloc.0 + IL_00ae: ldloca.s V_0 + IL_00b0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b5: cgt + IL_00b7: ldloca.s V_0 + IL_00b9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00be: and + IL_00bf: brfalse.s IL_00c6 + + IL_00c1: call void [mscorlib]System.Console::WriteLine() + IL_00c6: ldarg.0 + IL_00c7: stloc.0 + IL_00c8: ldarg.1 + IL_00c9: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00ce: stloc.1 + IL_00cf: ldloca.s V_0 + IL_00d1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d6: ldloc.1 + IL_00d7: cgt + IL_00d9: ldloca.s V_0 + IL_00db: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e0: and + IL_00e1: brtrue.s IL_00e8 + + IL_00e3: call void [mscorlib]System.Console::WriteLine() + IL_00e8: ldarg.0 + IL_00e9: stloc.0 + IL_00ea: ldarg.1 + IL_00eb: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00f0: stloc.1 + IL_00f1: ldloca.s V_0 + IL_00f3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00f8: ldloc.1 + IL_00f9: cgt + IL_00fb: ldc.i4.0 + IL_00fc: ceq + IL_00fe: ldloca.s V_0 + IL_0100: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0105: and + IL_0106: brtrue.s IL_010d + + IL_0108: call void [mscorlib]System.Console::WriteLine() + IL_010d: ret } // end of method LiftedOperators::IntComplex .method public hidebysig static void IntConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 187 (0xbb) + // Code size 169 (0xa9) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1) @@ -1167,106 +1051,84 @@ IL_0004: ldloca.s V_0 IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloc.1 - IL_000c: beq.s IL_0011 - - IL_000e: ldc.i4.0 - IL_000f: br.s IL_0018 - - IL_0011: ldloca.s V_0 - IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0018: brfalse.s IL_001f - - IL_001a: call void [mscorlib]System.Console::WriteLine() - IL_001f: ldarg.0 - IL_0020: stloc.0 - IL_0021: ldc.i4.2 - IL_0022: stloc.1 - IL_0023: ldloca.s V_0 - IL_0025: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_002a: ldloc.1 - IL_002b: beq.s IL_0030 - - IL_002d: ldc.i4.1 - IL_002e: br.s IL_003a - - IL_0030: ldloca.s V_0 - IL_0032: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0037: ldc.i4.0 - IL_0038: ceq - IL_003a: brfalse.s IL_0041 - - IL_003c: call void [mscorlib]System.Console::WriteLine() - IL_0041: ldarg.0 - IL_0042: stloc.0 - IL_0043: ldc.i4.2 - IL_0044: stloc.1 - IL_0045: ldloca.s V_0 - IL_0047: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_004c: ldloc.1 - IL_004d: bgt.s IL_0052 - - IL_004f: ldc.i4.0 - IL_0050: br.s IL_0059 - - IL_0052: ldloca.s V_0 - IL_0054: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0059: brfalse.s IL_0060 + IL_000c: ceq + IL_000e: ldloca.s V_0 + IL_0010: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0015: and + IL_0016: brfalse.s IL_001d - IL_005b: call void [mscorlib]System.Console::WriteLine() - IL_0060: ldc.i4.2 - IL_0061: ldarg.0 - IL_0062: stloc.0 + IL_0018: call void [mscorlib]System.Console::WriteLine() + IL_001d: ldarg.0 + IL_001e: stloc.0 + IL_001f: ldc.i4.2 + IL_0020: stloc.1 + IL_0021: ldloca.s V_0 + IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0028: ldloc.1 + IL_0029: ceq + IL_002b: ldloca.s V_0 + IL_002d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0032: and + IL_0033: brtrue.s IL_003a + + IL_0035: call void [mscorlib]System.Console::WriteLine() + IL_003a: ldarg.0 + IL_003b: stloc.0 + IL_003c: ldc.i4.2 + IL_003d: stloc.1 + IL_003e: ldloca.s V_0 + IL_0040: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0045: ldloc.1 + IL_0046: cgt + IL_0048: ldloca.s V_0 + IL_004a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004f: and + IL_0050: brfalse.s IL_0057 + + IL_0052: call void [mscorlib]System.Console::WriteLine() + IL_0057: ldc.i4.2 + IL_0058: ldarg.0 + IL_0059: stloc.0 + IL_005a: ldloca.s V_0 + IL_005c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0061: ceq IL_0063: ldloca.s V_0 - IL_0065: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006a: beq.s IL_006f - - IL_006c: ldc.i4.0 - IL_006d: br.s IL_0076 + IL_0065: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006a: and + IL_006b: brfalse.s IL_0072 - IL_006f: ldloca.s V_0 - IL_0071: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0076: brfalse.s IL_007d - - IL_0078: call void [mscorlib]System.Console::WriteLine() - IL_007d: ldc.i4.2 - IL_007e: ldarg.0 - IL_007f: stloc.0 - IL_0080: ldloca.s V_0 - IL_0082: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0087: beq.s IL_008c - - IL_0089: ldc.i4.1 - IL_008a: br.s IL_0096 + IL_006d: call void [mscorlib]System.Console::WriteLine() + IL_0072: ldc.i4.2 + IL_0073: ldarg.0 + IL_0074: stloc.0 + IL_0075: ldloca.s V_0 + IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_007c: ceq + IL_007e: ldloca.s V_0 + IL_0080: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0085: and + IL_0086: brtrue.s IL_008d - IL_008c: ldloca.s V_0 - IL_008e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0093: ldc.i4.0 - IL_0094: ceq - IL_0096: brfalse.s IL_009d - - IL_0098: call void [mscorlib]System.Console::WriteLine() - IL_009d: ldc.i4.2 - IL_009e: ldarg.0 - IL_009f: stloc.0 - IL_00a0: ldloca.s V_0 - IL_00a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a7: bgt.s IL_00ac - - IL_00a9: ldc.i4.0 - IL_00aa: br.s IL_00b3 - - IL_00ac: ldloca.s V_0 - IL_00ae: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00b3: brfalse.s IL_00ba + IL_0088: call void [mscorlib]System.Console::WriteLine() + IL_008d: ldc.i4.2 + IL_008e: ldarg.0 + IL_008f: stloc.0 + IL_0090: ldloca.s V_0 + IL_0092: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0097: cgt + IL_0099: ldloca.s V_0 + IL_009b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a0: and + IL_00a1: brfalse.s IL_00a8 - IL_00b5: call void [mscorlib]System.Console::WriteLine() - IL_00ba: ret + IL_00a3: call void [mscorlib]System.Console::WriteLine() + IL_00a8: ret } // end of method LiftedOperators::IntConst .method public hidebysig static void IntValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 1612 (0x64c) + // Code size 1605 (0x645) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -1279,670 +1141,657 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_0027 - - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: ldloca.s V_1 - IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0025: ceq - IL_0027: call void [mscorlib]System.Console::WriteLine(bool) - IL_002c: ldarg.0 - IL_002d: stloc.1 - IL_002e: ldarg.1 - IL_002f: stloc.0 - IL_0030: ldloca.s V_1 - IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0037: ldloca.s V_0 - IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003e: beq.s IL_0043 - - IL_0040: ldc.i4.1 - IL_0041: br.s IL_0056 - - IL_0043: ldloca.s V_1 - IL_0045: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004a: ldloca.s V_0 - IL_004c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0051: ceq - IL_0053: ldc.i4.0 - IL_0054: ceq - IL_0056: call void [mscorlib]System.Console::WriteLine(bool) - IL_005b: ldarg.0 - IL_005c: stloc.0 - IL_005d: ldarg.1 - IL_005e: stloc.1 - IL_005f: ldloca.s V_0 - IL_0061: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0066: ldloca.s V_1 - IL_0068: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006d: bgt.s IL_0072 - - IL_006f: ldc.i4.0 - IL_0070: br.s IL_0081 - - IL_0072: ldloca.s V_0 + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: ceq + IL_0024: and + IL_0025: call void [mscorlib]System.Console::WriteLine(bool) + IL_002a: ldarg.0 + IL_002b: stloc.1 + IL_002c: ldarg.1 + IL_002d: stloc.0 + IL_002e: ldloca.s V_1 + IL_0030: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0035: ldloca.s V_0 + IL_0037: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003c: ceq + IL_003e: ldloca.s V_1 + IL_0040: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0045: ldloca.s V_0 + IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004c: ceq + IL_004e: and + IL_004f: ldc.i4.0 + IL_0050: ceq + IL_0052: call void [mscorlib]System.Console::WriteLine(bool) + IL_0057: ldarg.0 + IL_0058: stloc.0 + IL_0059: ldarg.1 + IL_005a: stloc.1 + IL_005b: ldloca.s V_0 + IL_005d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0062: ldloca.s V_1 + IL_0064: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0069: cgt + IL_006b: ldloca.s V_0 + IL_006d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0072: ldloca.s V_1 IL_0074: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0079: ldloca.s V_1 - IL_007b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0080: and - IL_0081: call void [mscorlib]System.Console::WriteLine(bool) - IL_0086: ldarg.0 - IL_0087: stloc.1 - IL_0088: ldarg.1 - IL_0089: stloc.0 - IL_008a: ldloca.s V_1 - IL_008c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0091: ldloca.s V_0 - IL_0093: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0098: bgt.s IL_009d - - IL_009a: ldc.i4.0 - IL_009b: br.s IL_00ac - - IL_009d: ldloca.s V_1 - IL_009f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a4: ldloca.s V_0 - IL_00a6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ab: and - IL_00ac: ldc.i4.0 - IL_00ad: ceq - IL_00af: call void [mscorlib]System.Console::WriteLine(bool) - IL_00b4: ldarg.0 - IL_00b5: stloc.0 - IL_00b6: ldarg.1 - IL_00b7: stloc.1 - IL_00b8: ldloca.s V_0 - IL_00ba: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00bf: ldloca.s V_1 - IL_00c1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c6: bge.s IL_00cb - - IL_00c8: ldc.i4.0 - IL_00c9: br.s IL_00da - - IL_00cb: ldloca.s V_0 - IL_00cd: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d2: ldloca.s V_1 - IL_00d4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d9: and - IL_00da: ldc.i4.0 - IL_00db: ceq - IL_00dd: call void [mscorlib]System.Console::WriteLine(bool) - IL_00e2: ldarg.0 - IL_00e3: stloc.1 - IL_00e4: ldarg.1 - IL_00e5: stloc.0 - IL_00e6: ldloca.s V_1 + IL_0079: and + IL_007a: and + IL_007b: call void [mscorlib]System.Console::WriteLine(bool) + IL_0080: ldarg.0 + IL_0081: stloc.1 + IL_0082: ldarg.1 + IL_0083: stloc.0 + IL_0084: ldloca.s V_1 + IL_0086: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008b: ldloca.s V_0 + IL_008d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0092: cgt + IL_0094: ldloca.s V_1 + IL_0096: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009b: ldloca.s V_0 + IL_009d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a2: and + IL_00a3: and + IL_00a4: ldc.i4.0 + IL_00a5: ceq + IL_00a7: call void [mscorlib]System.Console::WriteLine(bool) + IL_00ac: ldarg.0 + IL_00ad: stloc.0 + IL_00ae: ldarg.1 + IL_00af: stloc.1 + IL_00b0: ldloca.s V_0 + IL_00b2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b7: ldloca.s V_1 + IL_00b9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00be: clt + IL_00c0: ldc.i4.0 + IL_00c1: ceq + IL_00c3: ldloca.s V_0 + IL_00c5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ca: ldloca.s V_1 + IL_00cc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d1: and + IL_00d2: and + IL_00d3: ldc.i4.0 + IL_00d4: ceq + IL_00d6: call void [mscorlib]System.Console::WriteLine(bool) + IL_00db: ldarg.0 + IL_00dc: stloc.1 + IL_00dd: ldarg.1 + IL_00de: stloc.0 + IL_00df: ldloca.s V_1 + IL_00e1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e6: ldloca.s V_0 IL_00e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ed: ldloca.s V_0 - IL_00ef: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f4: and - IL_00f5: brtrue.s IL_0102 + IL_00ed: and + IL_00ee: brtrue.s IL_00fb - IL_00f7: ldloca.s V_2 - IL_00f9: initobj valuetype [mscorlib]System.Nullable`1 - IL_00ff: ldloc.2 - IL_0100: br.s IL_0116 + IL_00f0: ldloca.s V_2 + IL_00f2: initobj valuetype [mscorlib]System.Nullable`1 + IL_00f8: ldloc.2 + IL_00f9: br.s IL_010f - IL_0102: ldloca.s V_1 + IL_00fb: ldloca.s V_1 + IL_00fd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0102: ldloca.s V_0 IL_0104: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0109: ldloca.s V_0 - IL_010b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0110: add - IL_0111: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0116: box valuetype [mscorlib]System.Nullable`1 - IL_011b: call void [mscorlib]System.Console::WriteLine(object) - IL_0120: ldarg.0 - IL_0121: stloc.0 - IL_0122: ldarg.1 - IL_0123: stloc.1 - IL_0124: ldloca.s V_0 + IL_0109: add + IL_010a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_010f: box valuetype [mscorlib]System.Nullable`1 + IL_0114: call void [mscorlib]System.Console::WriteLine(object) + IL_0119: ldarg.0 + IL_011a: stloc.0 + IL_011b: ldarg.1 + IL_011c: stloc.1 + IL_011d: ldloca.s V_0 + IL_011f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0124: ldloca.s V_1 IL_0126: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_012b: ldloca.s V_1 - IL_012d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0132: and - IL_0133: brtrue.s IL_0140 + IL_012b: and + IL_012c: brtrue.s IL_0139 - IL_0135: ldloca.s V_2 - IL_0137: initobj valuetype [mscorlib]System.Nullable`1 - IL_013d: ldloc.2 - IL_013e: br.s IL_0154 + IL_012e: ldloca.s V_2 + IL_0130: initobj valuetype [mscorlib]System.Nullable`1 + IL_0136: ldloc.2 + IL_0137: br.s IL_014d - IL_0140: ldloca.s V_0 + IL_0139: ldloca.s V_0 + IL_013b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0140: ldloca.s V_1 IL_0142: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0147: ldloca.s V_1 - IL_0149: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014e: sub - IL_014f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0154: box valuetype [mscorlib]System.Nullable`1 - IL_0159: call void [mscorlib]System.Console::WriteLine(object) - IL_015e: ldarg.0 - IL_015f: stloc.1 - IL_0160: ldarg.1 - IL_0161: stloc.0 - IL_0162: ldloca.s V_1 + IL_0147: sub + IL_0148: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_014d: box valuetype [mscorlib]System.Nullable`1 + IL_0152: call void [mscorlib]System.Console::WriteLine(object) + IL_0157: ldarg.0 + IL_0158: stloc.1 + IL_0159: ldarg.1 + IL_015a: stloc.0 + IL_015b: ldloca.s V_1 + IL_015d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0162: ldloca.s V_0 IL_0164: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0169: ldloca.s V_0 - IL_016b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0170: and - IL_0171: brtrue.s IL_017e + IL_0169: and + IL_016a: brtrue.s IL_0177 - IL_0173: ldloca.s V_2 - IL_0175: initobj valuetype [mscorlib]System.Nullable`1 - IL_017b: ldloc.2 - IL_017c: br.s IL_0192 + IL_016c: ldloca.s V_2 + IL_016e: initobj valuetype [mscorlib]System.Nullable`1 + IL_0174: ldloc.2 + IL_0175: br.s IL_018b - IL_017e: ldloca.s V_1 + IL_0177: ldloca.s V_1 + IL_0179: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_017e: ldloca.s V_0 IL_0180: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0185: ldloca.s V_0 - IL_0187: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_018c: mul - IL_018d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0192: box valuetype [mscorlib]System.Nullable`1 - IL_0197: call void [mscorlib]System.Console::WriteLine(object) - IL_019c: ldarg.0 - IL_019d: stloc.0 - IL_019e: ldarg.1 - IL_019f: stloc.1 - IL_01a0: ldloca.s V_0 + IL_0185: mul + IL_0186: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_018b: box valuetype [mscorlib]System.Nullable`1 + IL_0190: call void [mscorlib]System.Console::WriteLine(object) + IL_0195: ldarg.0 + IL_0196: stloc.0 + IL_0197: ldarg.1 + IL_0198: stloc.1 + IL_0199: ldloca.s V_0 + IL_019b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01a0: ldloca.s V_1 IL_01a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01a7: ldloca.s V_1 - IL_01a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01ae: and - IL_01af: brtrue.s IL_01bc + IL_01a7: and + IL_01a8: brtrue.s IL_01b5 - IL_01b1: ldloca.s V_2 - IL_01b3: initobj valuetype [mscorlib]System.Nullable`1 - IL_01b9: ldloc.2 - IL_01ba: br.s IL_01d0 + IL_01aa: ldloca.s V_2 + IL_01ac: initobj valuetype [mscorlib]System.Nullable`1 + IL_01b2: ldloc.2 + IL_01b3: br.s IL_01c9 - IL_01bc: ldloca.s V_0 + IL_01b5: ldloca.s V_0 + IL_01b7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01bc: ldloca.s V_1 IL_01be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01c3: ldloca.s V_1 - IL_01c5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ca: div - IL_01cb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01d0: box valuetype [mscorlib]System.Nullable`1 - IL_01d5: call void [mscorlib]System.Console::WriteLine(object) - IL_01da: ldarg.0 - IL_01db: stloc.1 - IL_01dc: ldarg.1 - IL_01dd: stloc.0 - IL_01de: ldloca.s V_1 + IL_01c3: div + IL_01c4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01c9: box valuetype [mscorlib]System.Nullable`1 + IL_01ce: call void [mscorlib]System.Console::WriteLine(object) + IL_01d3: ldarg.0 + IL_01d4: stloc.1 + IL_01d5: ldarg.1 + IL_01d6: stloc.0 + IL_01d7: ldloca.s V_1 + IL_01d9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01de: ldloca.s V_0 IL_01e0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01e5: ldloca.s V_0 - IL_01e7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01ec: and - IL_01ed: brtrue.s IL_01fa + IL_01e5: and + IL_01e6: brtrue.s IL_01f3 - IL_01ef: ldloca.s V_2 - IL_01f1: initobj valuetype [mscorlib]System.Nullable`1 - IL_01f7: ldloc.2 - IL_01f8: br.s IL_020e + IL_01e8: ldloca.s V_2 + IL_01ea: initobj valuetype [mscorlib]System.Nullable`1 + IL_01f0: ldloc.2 + IL_01f1: br.s IL_0207 - IL_01fa: ldloca.s V_1 + IL_01f3: ldloca.s V_1 + IL_01f5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01fa: ldloca.s V_0 IL_01fc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0201: ldloca.s V_0 - IL_0203: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0208: rem - IL_0209: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_020e: box valuetype [mscorlib]System.Nullable`1 - IL_0213: call void [mscorlib]System.Console::WriteLine(object) - IL_0218: ldarg.0 - IL_0219: stloc.0 - IL_021a: ldarg.1 - IL_021b: stloc.1 - IL_021c: ldloca.s V_0 + IL_0201: rem + IL_0202: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0207: box valuetype [mscorlib]System.Nullable`1 + IL_020c: call void [mscorlib]System.Console::WriteLine(object) + IL_0211: ldarg.0 + IL_0212: stloc.0 + IL_0213: ldarg.1 + IL_0214: stloc.1 + IL_0215: ldloca.s V_0 + IL_0217: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_021c: ldloca.s V_1 IL_021e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0223: ldloca.s V_1 - IL_0225: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_022a: and - IL_022b: brtrue.s IL_0238 + IL_0223: and + IL_0224: brtrue.s IL_0231 - IL_022d: ldloca.s V_2 - IL_022f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0235: ldloc.2 - IL_0236: br.s IL_024c + IL_0226: ldloca.s V_2 + IL_0228: initobj valuetype [mscorlib]System.Nullable`1 + IL_022e: ldloc.2 + IL_022f: br.s IL_0245 - IL_0238: ldloca.s V_0 + IL_0231: ldloca.s V_0 + IL_0233: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0238: ldloca.s V_1 IL_023a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_023f: ldloca.s V_1 - IL_0241: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0246: and - IL_0247: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_024c: box valuetype [mscorlib]System.Nullable`1 - IL_0251: call void [mscorlib]System.Console::WriteLine(object) - IL_0256: ldarg.0 - IL_0257: stloc.1 - IL_0258: ldarg.1 - IL_0259: stloc.0 - IL_025a: ldloca.s V_1 + IL_023f: and + IL_0240: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0245: box valuetype [mscorlib]System.Nullable`1 + IL_024a: call void [mscorlib]System.Console::WriteLine(object) + IL_024f: ldarg.0 + IL_0250: stloc.1 + IL_0251: ldarg.1 + IL_0252: stloc.0 + IL_0253: ldloca.s V_1 + IL_0255: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_025a: ldloca.s V_0 IL_025c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0261: ldloca.s V_0 - IL_0263: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0268: and - IL_0269: brtrue.s IL_0276 + IL_0261: and + IL_0262: brtrue.s IL_026f - IL_026b: ldloca.s V_2 - IL_026d: initobj valuetype [mscorlib]System.Nullable`1 - IL_0273: ldloc.2 - IL_0274: br.s IL_028a + IL_0264: ldloca.s V_2 + IL_0266: initobj valuetype [mscorlib]System.Nullable`1 + IL_026c: ldloc.2 + IL_026d: br.s IL_0283 - IL_0276: ldloca.s V_1 + IL_026f: ldloca.s V_1 + IL_0271: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0276: ldloca.s V_0 IL_0278: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_027d: ldloca.s V_0 - IL_027f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0284: or - IL_0285: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_028a: box valuetype [mscorlib]System.Nullable`1 - IL_028f: call void [mscorlib]System.Console::WriteLine(object) - IL_0294: ldarg.0 - IL_0295: stloc.0 - IL_0296: ldarg.1 - IL_0297: stloc.1 - IL_0298: ldloca.s V_0 + IL_027d: or + IL_027e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0283: box valuetype [mscorlib]System.Nullable`1 + IL_0288: call void [mscorlib]System.Console::WriteLine(object) + IL_028d: ldarg.0 + IL_028e: stloc.0 + IL_028f: ldarg.1 + IL_0290: stloc.1 + IL_0291: ldloca.s V_0 + IL_0293: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0298: ldloca.s V_1 IL_029a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_029f: ldloca.s V_1 - IL_02a1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02a6: and - IL_02a7: brtrue.s IL_02b4 + IL_029f: and + IL_02a0: brtrue.s IL_02ad - IL_02a9: ldloca.s V_2 - IL_02ab: initobj valuetype [mscorlib]System.Nullable`1 - IL_02b1: ldloc.2 - IL_02b2: br.s IL_02c8 + IL_02a2: ldloca.s V_2 + IL_02a4: initobj valuetype [mscorlib]System.Nullable`1 + IL_02aa: ldloc.2 + IL_02ab: br.s IL_02c1 - IL_02b4: ldloca.s V_0 + IL_02ad: ldloca.s V_0 + IL_02af: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02b4: ldloca.s V_1 IL_02b6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02bb: ldloca.s V_1 - IL_02bd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02c2: xor - IL_02c3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02c8: box valuetype [mscorlib]System.Nullable`1 - IL_02cd: call void [mscorlib]System.Console::WriteLine(object) - IL_02d2: ldarg.0 - IL_02d3: stloc.1 - IL_02d4: ldarg.1 - IL_02d5: stloc.0 - IL_02d6: ldloca.s V_1 + IL_02bb: xor + IL_02bc: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02c1: box valuetype [mscorlib]System.Nullable`1 + IL_02c6: call void [mscorlib]System.Console::WriteLine(object) + IL_02cb: ldarg.0 + IL_02cc: stloc.1 + IL_02cd: ldarg.1 + IL_02ce: stloc.0 + IL_02cf: ldloca.s V_1 + IL_02d1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02d6: ldloca.s V_0 IL_02d8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02dd: ldloca.s V_0 - IL_02df: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02e4: and - IL_02e5: brtrue.s IL_02f2 + IL_02dd: and + IL_02de: brtrue.s IL_02eb - IL_02e7: ldloca.s V_2 - IL_02e9: initobj valuetype [mscorlib]System.Nullable`1 - IL_02ef: ldloc.2 - IL_02f0: br.s IL_0309 + IL_02e0: ldloca.s V_2 + IL_02e2: initobj valuetype [mscorlib]System.Nullable`1 + IL_02e8: ldloc.2 + IL_02e9: br.s IL_0302 - IL_02f2: ldloca.s V_1 + IL_02eb: ldloca.s V_1 + IL_02ed: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02f2: ldloca.s V_0 IL_02f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02f9: ldloca.s V_0 - IL_02fb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0300: ldc.i4.s 31 - IL_0302: and - IL_0303: shl - IL_0304: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0309: box valuetype [mscorlib]System.Nullable`1 - IL_030e: call void [mscorlib]System.Console::WriteLine(object) - IL_0313: ldarg.0 - IL_0314: stloc.0 - IL_0315: ldarg.1 - IL_0316: stloc.1 - IL_0317: ldloca.s V_0 + IL_02f9: ldc.i4.s 31 + IL_02fb: and + IL_02fc: shl + IL_02fd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0302: box valuetype [mscorlib]System.Nullable`1 + IL_0307: call void [mscorlib]System.Console::WriteLine(object) + IL_030c: ldarg.0 + IL_030d: stloc.0 + IL_030e: ldarg.1 + IL_030f: stloc.1 + IL_0310: ldloca.s V_0 + IL_0312: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0317: ldloca.s V_1 IL_0319: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_031e: ldloca.s V_1 - IL_0320: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0325: and - IL_0326: brtrue.s IL_0333 + IL_031e: and + IL_031f: brtrue.s IL_032c - IL_0328: ldloca.s V_2 - IL_032a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0330: ldloc.2 - IL_0331: br.s IL_034a + IL_0321: ldloca.s V_2 + IL_0323: initobj valuetype [mscorlib]System.Nullable`1 + IL_0329: ldloc.2 + IL_032a: br.s IL_0343 - IL_0333: ldloca.s V_0 + IL_032c: ldloca.s V_0 + IL_032e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0333: ldloca.s V_1 IL_0335: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_033a: ldloca.s V_1 - IL_033c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0341: ldc.i4.s 31 - IL_0343: and - IL_0344: shr - IL_0345: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_034a: box valuetype [mscorlib]System.Nullable`1 - IL_034f: call void [mscorlib]System.Console::WriteLine(object) - IL_0354: ldarg.0 - IL_0355: stloc.1 - IL_0356: ldloca.s V_1 - IL_0358: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_035d: brtrue.s IL_0362 - - IL_035f: ldarg.1 - IL_0360: br.s IL_0363 - - IL_0362: ldloc.1 - IL_0363: box valuetype [mscorlib]System.Nullable`1 - IL_0368: call void [mscorlib]System.Console::WriteLine(object) - IL_036d: ldarg.0 - IL_036e: stloc.1 - IL_036f: ldloca.s V_1 - IL_0371: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0376: brtrue.s IL_0383 - - IL_0378: ldloca.s V_0 - IL_037a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0380: ldloc.0 - IL_0381: br.s IL_0390 - - IL_0383: ldloca.s V_1 - IL_0385: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_038a: neg - IL_038b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0390: box valuetype [mscorlib]System.Nullable`1 - IL_0395: call void [mscorlib]System.Console::WriteLine(object) - IL_039a: ldarg.0 - IL_039b: stloc.1 - IL_039c: ldloca.s V_1 - IL_039e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03a3: brtrue.s IL_03b0 - - IL_03a5: ldloca.s V_0 - IL_03a7: initobj valuetype [mscorlib]System.Nullable`1 - IL_03ad: ldloc.0 - IL_03ae: br.s IL_03bd - - IL_03b0: ldloca.s V_1 - IL_03b2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03b7: not - IL_03b8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03bd: box valuetype [mscorlib]System.Nullable`1 - IL_03c2: call void [mscorlib]System.Console::WriteLine(object) - IL_03c7: ldarg.0 - IL_03c8: stloc.1 - IL_03c9: ldloca.s V_1 - IL_03cb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03d0: brtrue.s IL_03dd - - IL_03d2: ldloca.s V_0 - IL_03d4: initobj valuetype [mscorlib]System.Nullable`1 - IL_03da: ldloc.0 - IL_03db: br.s IL_03eb - - IL_03dd: ldloca.s V_1 - IL_03df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03e4: ldc.i4.1 - IL_03e5: add - IL_03e6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03eb: dup - IL_03ec: starg.s a - IL_03ee: box valuetype [mscorlib]System.Nullable`1 - IL_03f3: call void [mscorlib]System.Console::WriteLine(object) - IL_03f8: ldarg.0 - IL_03f9: stloc.1 - IL_03fa: ldloca.s V_1 - IL_03fc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0401: brtrue.s IL_040e - - IL_0403: ldloca.s V_0 - IL_0405: initobj valuetype [mscorlib]System.Nullable`1 - IL_040b: ldloc.0 - IL_040c: br.s IL_041c - - IL_040e: ldloca.s V_1 - IL_0410: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0415: ldc.i4.1 - IL_0416: sub - IL_0417: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_041c: dup - IL_041d: starg.s a - IL_041f: box valuetype [mscorlib]System.Nullable`1 - IL_0424: call void [mscorlib]System.Console::WriteLine(object) - IL_0429: ldarg.0 - IL_042a: stloc.1 - IL_042b: ldarg.1 - IL_042c: stloc.0 - IL_042d: ldloca.s V_1 + IL_033a: ldc.i4.s 31 + IL_033c: and + IL_033d: shr + IL_033e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0343: box valuetype [mscorlib]System.Nullable`1 + IL_0348: call void [mscorlib]System.Console::WriteLine(object) + IL_034d: ldarg.0 + IL_034e: stloc.1 + IL_034f: ldloca.s V_1 + IL_0351: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0356: brtrue.s IL_035b + + IL_0358: ldarg.1 + IL_0359: br.s IL_035c + + IL_035b: ldloc.1 + IL_035c: box valuetype [mscorlib]System.Nullable`1 + IL_0361: call void [mscorlib]System.Console::WriteLine(object) + IL_0366: ldarg.0 + IL_0367: stloc.1 + IL_0368: ldloca.s V_1 + IL_036a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_036f: brtrue.s IL_037c + + IL_0371: ldloca.s V_0 + IL_0373: initobj valuetype [mscorlib]System.Nullable`1 + IL_0379: ldloc.0 + IL_037a: br.s IL_0389 + + IL_037c: ldloca.s V_1 + IL_037e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0383: neg + IL_0384: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0389: box valuetype [mscorlib]System.Nullable`1 + IL_038e: call void [mscorlib]System.Console::WriteLine(object) + IL_0393: ldarg.0 + IL_0394: stloc.1 + IL_0395: ldloca.s V_1 + IL_0397: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_039c: brtrue.s IL_03a9 + + IL_039e: ldloca.s V_0 + IL_03a0: initobj valuetype [mscorlib]System.Nullable`1 + IL_03a6: ldloc.0 + IL_03a7: br.s IL_03b6 + + IL_03a9: ldloca.s V_1 + IL_03ab: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03b0: not + IL_03b1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03b6: box valuetype [mscorlib]System.Nullable`1 + IL_03bb: call void [mscorlib]System.Console::WriteLine(object) + IL_03c0: ldarg.0 + IL_03c1: stloc.1 + IL_03c2: ldloca.s V_1 + IL_03c4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03c9: brtrue.s IL_03d6 + + IL_03cb: ldloca.s V_0 + IL_03cd: initobj valuetype [mscorlib]System.Nullable`1 + IL_03d3: ldloc.0 + IL_03d4: br.s IL_03e4 + + IL_03d6: ldloca.s V_1 + IL_03d8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03dd: ldc.i4.1 + IL_03de: add + IL_03df: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03e4: dup + IL_03e5: starg.s a + IL_03e7: box valuetype [mscorlib]System.Nullable`1 + IL_03ec: call void [mscorlib]System.Console::WriteLine(object) + IL_03f1: ldarg.0 + IL_03f2: stloc.1 + IL_03f3: ldloca.s V_1 + IL_03f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03fa: brtrue.s IL_0407 + + IL_03fc: ldloca.s V_0 + IL_03fe: initobj valuetype [mscorlib]System.Nullable`1 + IL_0404: ldloc.0 + IL_0405: br.s IL_0415 + + IL_0407: ldloca.s V_1 + IL_0409: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_040e: ldc.i4.1 + IL_040f: sub + IL_0410: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0415: dup + IL_0416: starg.s a + IL_0418: box valuetype [mscorlib]System.Nullable`1 + IL_041d: call void [mscorlib]System.Console::WriteLine(object) + IL_0422: ldarg.0 + IL_0423: stloc.1 + IL_0424: ldarg.1 + IL_0425: stloc.0 + IL_0426: ldloca.s V_1 + IL_0428: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_042d: ldloca.s V_0 IL_042f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0434: ldloca.s V_0 - IL_0436: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_043b: and - IL_043c: brtrue.s IL_0449 + IL_0434: and + IL_0435: brtrue.s IL_0442 - IL_043e: ldloca.s V_2 - IL_0440: initobj valuetype [mscorlib]System.Nullable`1 - IL_0446: ldloc.2 - IL_0447: br.s IL_045d + IL_0437: ldloca.s V_2 + IL_0439: initobj valuetype [mscorlib]System.Nullable`1 + IL_043f: ldloc.2 + IL_0440: br.s IL_0456 - IL_0449: ldloca.s V_1 + IL_0442: ldloca.s V_1 + IL_0444: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0449: ldloca.s V_0 IL_044b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0450: ldloca.s V_0 - IL_0452: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0457: add - IL_0458: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_045d: starg.s a - IL_045f: ldarg.0 - IL_0460: stloc.0 - IL_0461: ldarg.1 - IL_0462: stloc.1 - IL_0463: ldloca.s V_0 + IL_0450: add + IL_0451: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0456: starg.s a + IL_0458: ldarg.0 + IL_0459: stloc.0 + IL_045a: ldarg.1 + IL_045b: stloc.1 + IL_045c: ldloca.s V_0 + IL_045e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0463: ldloca.s V_1 IL_0465: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_046a: ldloca.s V_1 - IL_046c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0471: and - IL_0472: brtrue.s IL_047f + IL_046a: and + IL_046b: brtrue.s IL_0478 - IL_0474: ldloca.s V_2 - IL_0476: initobj valuetype [mscorlib]System.Nullable`1 - IL_047c: ldloc.2 - IL_047d: br.s IL_0493 + IL_046d: ldloca.s V_2 + IL_046f: initobj valuetype [mscorlib]System.Nullable`1 + IL_0475: ldloc.2 + IL_0476: br.s IL_048c - IL_047f: ldloca.s V_0 + IL_0478: ldloca.s V_0 + IL_047a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_047f: ldloca.s V_1 IL_0481: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0486: ldloca.s V_1 - IL_0488: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_048d: sub - IL_048e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0493: starg.s a - IL_0495: ldarg.0 - IL_0496: stloc.1 - IL_0497: ldarg.1 - IL_0498: stloc.0 - IL_0499: ldloca.s V_1 + IL_0486: sub + IL_0487: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_048c: starg.s a + IL_048e: ldarg.0 + IL_048f: stloc.1 + IL_0490: ldarg.1 + IL_0491: stloc.0 + IL_0492: ldloca.s V_1 + IL_0494: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0499: ldloca.s V_0 IL_049b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04a0: ldloca.s V_0 - IL_04a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04a7: and - IL_04a8: brtrue.s IL_04b5 + IL_04a0: and + IL_04a1: brtrue.s IL_04ae - IL_04aa: ldloca.s V_2 - IL_04ac: initobj valuetype [mscorlib]System.Nullable`1 - IL_04b2: ldloc.2 - IL_04b3: br.s IL_04c9 + IL_04a3: ldloca.s V_2 + IL_04a5: initobj valuetype [mscorlib]System.Nullable`1 + IL_04ab: ldloc.2 + IL_04ac: br.s IL_04c2 - IL_04b5: ldloca.s V_1 + IL_04ae: ldloca.s V_1 + IL_04b0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04b5: ldloca.s V_0 IL_04b7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04bc: ldloca.s V_0 - IL_04be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04c3: mul - IL_04c4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04c9: starg.s a - IL_04cb: ldarg.0 - IL_04cc: stloc.0 - IL_04cd: ldarg.1 - IL_04ce: stloc.1 - IL_04cf: ldloca.s V_0 + IL_04bc: mul + IL_04bd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04c2: starg.s a + IL_04c4: ldarg.0 + IL_04c5: stloc.0 + IL_04c6: ldarg.1 + IL_04c7: stloc.1 + IL_04c8: ldloca.s V_0 + IL_04ca: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04cf: ldloca.s V_1 IL_04d1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04d6: ldloca.s V_1 - IL_04d8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04dd: and - IL_04de: brtrue.s IL_04eb + IL_04d6: and + IL_04d7: brtrue.s IL_04e4 - IL_04e0: ldloca.s V_2 - IL_04e2: initobj valuetype [mscorlib]System.Nullable`1 - IL_04e8: ldloc.2 - IL_04e9: br.s IL_04ff + IL_04d9: ldloca.s V_2 + IL_04db: initobj valuetype [mscorlib]System.Nullable`1 + IL_04e1: ldloc.2 + IL_04e2: br.s IL_04f8 - IL_04eb: ldloca.s V_0 + IL_04e4: ldloca.s V_0 + IL_04e6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04eb: ldloca.s V_1 IL_04ed: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04f2: ldloca.s V_1 - IL_04f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04f9: div - IL_04fa: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04ff: starg.s a - IL_0501: ldarg.0 - IL_0502: stloc.1 - IL_0503: ldarg.1 - IL_0504: stloc.0 - IL_0505: ldloca.s V_1 + IL_04f2: div + IL_04f3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04f8: starg.s a + IL_04fa: ldarg.0 + IL_04fb: stloc.1 + IL_04fc: ldarg.1 + IL_04fd: stloc.0 + IL_04fe: ldloca.s V_1 + IL_0500: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0505: ldloca.s V_0 IL_0507: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_050c: ldloca.s V_0 - IL_050e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0513: and - IL_0514: brtrue.s IL_0521 + IL_050c: and + IL_050d: brtrue.s IL_051a - IL_0516: ldloca.s V_2 - IL_0518: initobj valuetype [mscorlib]System.Nullable`1 - IL_051e: ldloc.2 - IL_051f: br.s IL_0535 + IL_050f: ldloca.s V_2 + IL_0511: initobj valuetype [mscorlib]System.Nullable`1 + IL_0517: ldloc.2 + IL_0518: br.s IL_052e - IL_0521: ldloca.s V_1 + IL_051a: ldloca.s V_1 + IL_051c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0521: ldloca.s V_0 IL_0523: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0528: ldloca.s V_0 - IL_052a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_052f: rem - IL_0530: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0535: starg.s a - IL_0537: ldarg.0 - IL_0538: stloc.0 - IL_0539: ldarg.1 - IL_053a: stloc.1 - IL_053b: ldloca.s V_0 + IL_0528: rem + IL_0529: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_052e: starg.s a + IL_0530: ldarg.0 + IL_0531: stloc.0 + IL_0532: ldarg.1 + IL_0533: stloc.1 + IL_0534: ldloca.s V_0 + IL_0536: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_053b: ldloca.s V_1 IL_053d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0542: ldloca.s V_1 - IL_0544: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0549: and - IL_054a: brtrue.s IL_0557 + IL_0542: and + IL_0543: brtrue.s IL_0550 - IL_054c: ldloca.s V_2 - IL_054e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0554: ldloc.2 - IL_0555: br.s IL_056b + IL_0545: ldloca.s V_2 + IL_0547: initobj valuetype [mscorlib]System.Nullable`1 + IL_054d: ldloc.2 + IL_054e: br.s IL_0564 - IL_0557: ldloca.s V_0 + IL_0550: ldloca.s V_0 + IL_0552: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0557: ldloca.s V_1 IL_0559: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_055e: ldloca.s V_1 - IL_0560: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0565: and - IL_0566: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_056b: starg.s a - IL_056d: ldarg.0 - IL_056e: stloc.1 - IL_056f: ldarg.1 - IL_0570: stloc.0 - IL_0571: ldloca.s V_1 + IL_055e: and + IL_055f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0564: starg.s a + IL_0566: ldarg.0 + IL_0567: stloc.1 + IL_0568: ldarg.1 + IL_0569: stloc.0 + IL_056a: ldloca.s V_1 + IL_056c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0571: ldloca.s V_0 IL_0573: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0578: ldloca.s V_0 - IL_057a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_057f: and - IL_0580: brtrue.s IL_058d + IL_0578: and + IL_0579: brtrue.s IL_0586 - IL_0582: ldloca.s V_2 - IL_0584: initobj valuetype [mscorlib]System.Nullable`1 - IL_058a: ldloc.2 - IL_058b: br.s IL_05a1 + IL_057b: ldloca.s V_2 + IL_057d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0583: ldloc.2 + IL_0584: br.s IL_059a - IL_058d: ldloca.s V_1 + IL_0586: ldloca.s V_1 + IL_0588: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_058d: ldloca.s V_0 IL_058f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0594: ldloca.s V_0 - IL_0596: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_059b: or - IL_059c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_05a1: starg.s a - IL_05a3: ldarg.0 - IL_05a4: stloc.0 - IL_05a5: ldarg.1 - IL_05a6: stloc.1 - IL_05a7: ldloca.s V_0 + IL_0594: or + IL_0595: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_059a: starg.s a + IL_059c: ldarg.0 + IL_059d: stloc.0 + IL_059e: ldarg.1 + IL_059f: stloc.1 + IL_05a0: ldloca.s V_0 + IL_05a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_05a7: ldloca.s V_1 IL_05a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05ae: ldloca.s V_1 - IL_05b0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05b5: and - IL_05b6: brtrue.s IL_05c3 + IL_05ae: and + IL_05af: brtrue.s IL_05bc - IL_05b8: ldloca.s V_2 - IL_05ba: initobj valuetype [mscorlib]System.Nullable`1 - IL_05c0: ldloc.2 - IL_05c1: br.s IL_05d7 + IL_05b1: ldloca.s V_2 + IL_05b3: initobj valuetype [mscorlib]System.Nullable`1 + IL_05b9: ldloc.2 + IL_05ba: br.s IL_05d0 - IL_05c3: ldloca.s V_0 + IL_05bc: ldloca.s V_0 + IL_05be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_05c3: ldloca.s V_1 IL_05c5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05ca: ldloca.s V_1 - IL_05cc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05d1: xor - IL_05d2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_05d7: starg.s a - IL_05d9: ldarg.0 - IL_05da: stloc.1 - IL_05db: ldarg.1 - IL_05dc: stloc.0 - IL_05dd: ldloca.s V_1 + IL_05ca: xor + IL_05cb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_05d0: starg.s a + IL_05d2: ldarg.0 + IL_05d3: stloc.1 + IL_05d4: ldarg.1 + IL_05d5: stloc.0 + IL_05d6: ldloca.s V_1 + IL_05d8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_05dd: ldloca.s V_0 IL_05df: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05e4: ldloca.s V_0 - IL_05e6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05eb: and - IL_05ec: brtrue.s IL_05f9 + IL_05e4: and + IL_05e5: brtrue.s IL_05f2 - IL_05ee: ldloca.s V_2 - IL_05f0: initobj valuetype [mscorlib]System.Nullable`1 - IL_05f6: ldloc.2 - IL_05f7: br.s IL_0610 + IL_05e7: ldloca.s V_2 + IL_05e9: initobj valuetype [mscorlib]System.Nullable`1 + IL_05ef: ldloc.2 + IL_05f0: br.s IL_0609 - IL_05f9: ldloca.s V_1 + IL_05f2: ldloca.s V_1 + IL_05f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_05f9: ldloca.s V_0 IL_05fb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0600: ldloca.s V_0 - IL_0602: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0607: ldc.i4.s 31 - IL_0609: and - IL_060a: shl - IL_060b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0610: starg.s a - IL_0612: ldarg.0 - IL_0613: stloc.0 - IL_0614: ldarg.1 - IL_0615: stloc.1 - IL_0616: ldloca.s V_0 + IL_0600: ldc.i4.s 31 + IL_0602: and + IL_0603: shl + IL_0604: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0609: starg.s a + IL_060b: ldarg.0 + IL_060c: stloc.0 + IL_060d: ldarg.1 + IL_060e: stloc.1 + IL_060f: ldloca.s V_0 + IL_0611: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0616: ldloca.s V_1 IL_0618: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_061d: ldloca.s V_1 - IL_061f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0624: and - IL_0625: brtrue.s IL_0632 + IL_061d: and + IL_061e: brtrue.s IL_062b - IL_0627: ldloca.s V_2 - IL_0629: initobj valuetype [mscorlib]System.Nullable`1 - IL_062f: ldloc.2 - IL_0630: br.s IL_0649 + IL_0620: ldloca.s V_2 + IL_0622: initobj valuetype [mscorlib]System.Nullable`1 + IL_0628: ldloc.2 + IL_0629: br.s IL_0642 - IL_0632: ldloca.s V_0 + IL_062b: ldloca.s V_0 + IL_062d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0632: ldloca.s V_1 IL_0634: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0639: ldloca.s V_1 - IL_063b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0640: ldc.i4.s 31 - IL_0642: and - IL_0643: shr - IL_0644: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0649: starg.s a - IL_064b: ret + IL_0639: ldc.i4.s 31 + IL_063b: and + IL_063c: shr + IL_063d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0642: starg.s a + IL_0644: ret } // end of method LiftedOperators::IntValueBasic .method public hidebysig static void IntValueComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 1346 (0x542) + // Code size 1334 (0x536) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1, @@ -1955,575 +1804,557 @@ IL_0009: ldloca.s V_0 IL_000b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0010: ldloc.1 - IL_0011: beq.s IL_0016 - - IL_0013: ldc.i4.0 - IL_0014: br.s IL_001d - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: call void [mscorlib]System.Console::WriteLine(bool) - IL_0022: ldarg.0 - IL_0023: stloc.0 - IL_0024: ldarg.1 - IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002a: stloc.1 - IL_002b: ldloca.s V_0 - IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0032: ldloc.1 - IL_0033: beq.s IL_0038 - - IL_0035: ldc.i4.1 - IL_0036: br.s IL_0042 - - IL_0038: ldloca.s V_0 - IL_003a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003f: ldc.i4.0 - IL_0040: ceq - IL_0042: call void [mscorlib]System.Console::WriteLine(bool) - IL_0047: ldarg.0 - IL_0048: stloc.0 - IL_0049: ldarg.1 - IL_004a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_004f: stloc.1 - IL_0050: ldloca.s V_0 - IL_0052: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0057: ldloc.1 - IL_0058: bgt.s IL_005d - - IL_005a: ldc.i4.0 - IL_005b: br.s IL_0064 - - IL_005d: ldloca.s V_0 - IL_005f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0064: call void [mscorlib]System.Console::WriteLine(bool) - IL_0069: ldarg.1 - IL_006a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_006f: ldarg.0 - IL_0070: stloc.0 - IL_0071: ldloca.s V_0 - IL_0073: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0078: beq.s IL_007d - - IL_007a: ldc.i4.0 - IL_007b: br.s IL_0084 - - IL_007d: ldloca.s V_0 - IL_007f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0084: call void [mscorlib]System.Console::WriteLine(bool) - IL_0089: ldarg.1 - IL_008a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_008f: ldarg.0 - IL_0090: stloc.0 - IL_0091: ldloca.s V_0 - IL_0093: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0098: beq.s IL_009d - - IL_009a: ldc.i4.1 - IL_009b: br.s IL_00a7 - - IL_009d: ldloca.s V_0 - IL_009f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a4: ldc.i4.0 - IL_00a5: ceq - IL_00a7: call void [mscorlib]System.Console::WriteLine(bool) - IL_00ac: ldarg.1 - IL_00ad: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00b2: ldarg.0 - IL_00b3: stloc.0 - IL_00b4: ldloca.s V_0 - IL_00b6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00bb: bgt.s IL_00c0 - - IL_00bd: ldc.i4.0 - IL_00be: br.s IL_00c7 - - IL_00c0: ldloca.s V_0 - IL_00c2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c7: call void [mscorlib]System.Console::WriteLine(bool) - IL_00cc: ldarg.0 - IL_00cd: stloc.0 - IL_00ce: ldarg.1 - IL_00cf: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00d4: stloc.1 - IL_00d5: ldloca.s V_0 - IL_00d7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00dc: brtrue.s IL_00e9 - - IL_00de: ldloca.s V_2 - IL_00e0: initobj valuetype [mscorlib]System.Nullable`1 - IL_00e6: ldloc.2 - IL_00e7: br.s IL_00f7 - - IL_00e9: ldloca.s V_0 - IL_00eb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f0: ldloc.1 - IL_00f1: add - IL_00f2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00f7: box valuetype [mscorlib]System.Nullable`1 - IL_00fc: call void [mscorlib]System.Console::WriteLine(object) - IL_0101: ldarg.0 - IL_0102: stloc.0 - IL_0103: ldarg.1 - IL_0104: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0109: stloc.1 - IL_010a: ldloca.s V_0 - IL_010c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0111: brtrue.s IL_011e - - IL_0113: ldloca.s V_2 - IL_0115: initobj valuetype [mscorlib]System.Nullable`1 - IL_011b: ldloc.2 - IL_011c: br.s IL_012c + IL_0011: ceq + IL_0013: ldloca.s V_0 + IL_0015: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001a: and + IL_001b: call void [mscorlib]System.Console::WriteLine(bool) + IL_0020: ldarg.0 + IL_0021: stloc.0 + IL_0022: ldarg.1 + IL_0023: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0028: stloc.1 + IL_0029: ldloca.s V_0 + IL_002b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0030: ldloc.1 + IL_0031: ceq + IL_0033: ldloca.s V_0 + IL_0035: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003a: and + IL_003b: ldc.i4.0 + IL_003c: ceq + IL_003e: call void [mscorlib]System.Console::WriteLine(bool) + IL_0043: ldarg.0 + IL_0044: stloc.0 + IL_0045: ldarg.1 + IL_0046: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_004b: stloc.1 + IL_004c: ldloca.s V_0 + IL_004e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0053: ldloc.1 + IL_0054: cgt + IL_0056: ldloca.s V_0 + IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005d: and + IL_005e: call void [mscorlib]System.Console::WriteLine(bool) + IL_0063: ldarg.1 + IL_0064: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0069: ldarg.0 + IL_006a: stloc.0 + IL_006b: ldloca.s V_0 + IL_006d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0072: ceq + IL_0074: ldloca.s V_0 + IL_0076: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007b: and + IL_007c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0081: ldarg.1 + IL_0082: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0087: ldarg.0 + IL_0088: stloc.0 + IL_0089: ldloca.s V_0 + IL_008b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0090: ceq + IL_0092: ldloca.s V_0 + IL_0094: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0099: and + IL_009a: ldc.i4.0 + IL_009b: ceq + IL_009d: call void [mscorlib]System.Console::WriteLine(bool) + IL_00a2: ldarg.1 + IL_00a3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00a8: ldarg.0 + IL_00a9: stloc.0 + IL_00aa: ldloca.s V_0 + IL_00ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b1: cgt + IL_00b3: ldloca.s V_0 + IL_00b5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ba: and + IL_00bb: call void [mscorlib]System.Console::WriteLine(bool) + IL_00c0: ldarg.0 + IL_00c1: stloc.0 + IL_00c2: ldarg.1 + IL_00c3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00c8: stloc.1 + IL_00c9: ldloca.s V_0 + IL_00cb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d0: brtrue.s IL_00dd + + IL_00d2: ldloca.s V_2 + IL_00d4: initobj valuetype [mscorlib]System.Nullable`1 + IL_00da: ldloc.2 + IL_00db: br.s IL_00eb + + IL_00dd: ldloca.s V_0 + IL_00df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00e4: ldloc.1 + IL_00e5: add + IL_00e6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00eb: box valuetype [mscorlib]System.Nullable`1 + IL_00f0: call void [mscorlib]System.Console::WriteLine(object) + IL_00f5: ldarg.0 + IL_00f6: stloc.0 + IL_00f7: ldarg.1 + IL_00f8: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00fd: stloc.1 + IL_00fe: ldloca.s V_0 + IL_0100: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0105: brtrue.s IL_0112 + + IL_0107: ldloca.s V_2 + IL_0109: initobj valuetype [mscorlib]System.Nullable`1 + IL_010f: ldloc.2 + IL_0110: br.s IL_0120 - IL_011e: ldloca.s V_0 - IL_0120: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0125: ldloc.1 - IL_0126: sub - IL_0127: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_012c: box valuetype [mscorlib]System.Nullable`1 - IL_0131: call void [mscorlib]System.Console::WriteLine(object) - IL_0136: ldarg.0 - IL_0137: stloc.0 - IL_0138: ldarg.1 - IL_0139: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_013e: stloc.1 - IL_013f: ldloca.s V_0 - IL_0141: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0146: brtrue.s IL_0153 - - IL_0148: ldloca.s V_2 - IL_014a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0150: ldloc.2 - IL_0151: br.s IL_0161 + IL_0112: ldloca.s V_0 + IL_0114: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0119: ldloc.1 + IL_011a: sub + IL_011b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0120: box valuetype [mscorlib]System.Nullable`1 + IL_0125: call void [mscorlib]System.Console::WriteLine(object) + IL_012a: ldarg.0 + IL_012b: stloc.0 + IL_012c: ldarg.1 + IL_012d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0132: stloc.1 + IL_0133: ldloca.s V_0 + IL_0135: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013a: brtrue.s IL_0147 + + IL_013c: ldloca.s V_2 + IL_013e: initobj valuetype [mscorlib]System.Nullable`1 + IL_0144: ldloc.2 + IL_0145: br.s IL_0155 + + IL_0147: ldloca.s V_0 + IL_0149: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_014e: ldloc.1 + IL_014f: mul + IL_0150: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0155: box valuetype [mscorlib]System.Nullable`1 + IL_015a: call void [mscorlib]System.Console::WriteLine(object) + IL_015f: ldarg.0 + IL_0160: stloc.0 + IL_0161: ldarg.1 + IL_0162: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0167: stloc.1 + IL_0168: ldloca.s V_0 + IL_016a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_016f: brtrue.s IL_017c - IL_0153: ldloca.s V_0 - IL_0155: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_015a: ldloc.1 - IL_015b: mul - IL_015c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0161: box valuetype [mscorlib]System.Nullable`1 - IL_0166: call void [mscorlib]System.Console::WriteLine(object) - IL_016b: ldarg.0 - IL_016c: stloc.0 - IL_016d: ldarg.1 - IL_016e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0173: stloc.1 - IL_0174: ldloca.s V_0 - IL_0176: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_017b: brtrue.s IL_0188 - - IL_017d: ldloca.s V_2 - IL_017f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0185: ldloc.2 - IL_0186: br.s IL_0196 - - IL_0188: ldloca.s V_0 - IL_018a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_018f: ldloc.1 - IL_0190: div - IL_0191: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0196: box valuetype [mscorlib]System.Nullable`1 - IL_019b: call void [mscorlib]System.Console::WriteLine(object) - IL_01a0: ldarg.0 - IL_01a1: stloc.0 - IL_01a2: ldarg.1 - IL_01a3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_01a8: stloc.1 - IL_01a9: ldloca.s V_0 - IL_01ab: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01b0: brtrue.s IL_01bd - - IL_01b2: ldloca.s V_2 - IL_01b4: initobj valuetype [mscorlib]System.Nullable`1 - IL_01ba: ldloc.2 - IL_01bb: br.s IL_01cb - - IL_01bd: ldloca.s V_0 - IL_01bf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01c4: ldloc.1 - IL_01c5: rem - IL_01c6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01cb: box valuetype [mscorlib]System.Nullable`1 - IL_01d0: call void [mscorlib]System.Console::WriteLine(object) - IL_01d5: ldarg.0 - IL_01d6: stloc.0 - IL_01d7: ldarg.1 - IL_01d8: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_01dd: stloc.1 - IL_01de: ldloca.s V_0 - IL_01e0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01e5: brtrue.s IL_01f2 - - IL_01e7: ldloca.s V_2 - IL_01e9: initobj valuetype [mscorlib]System.Nullable`1 - IL_01ef: ldloc.2 - IL_01f0: br.s IL_0200 - - IL_01f2: ldloca.s V_0 - IL_01f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01f9: ldloc.1 - IL_01fa: and - IL_01fb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0200: box valuetype [mscorlib]System.Nullable`1 - IL_0205: call void [mscorlib]System.Console::WriteLine(object) - IL_020a: ldarg.0 - IL_020b: stloc.0 - IL_020c: ldarg.1 - IL_020d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0212: stloc.1 - IL_0213: ldloca.s V_0 - IL_0215: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_021a: brtrue.s IL_0227 - - IL_021c: ldloca.s V_2 - IL_021e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0224: ldloc.2 - IL_0225: br.s IL_0235 - - IL_0227: ldloca.s V_0 - IL_0229: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_022e: ldloc.1 - IL_022f: or - IL_0230: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0235: box valuetype [mscorlib]System.Nullable`1 - IL_023a: call void [mscorlib]System.Console::WriteLine(object) - IL_023f: ldarg.0 - IL_0240: stloc.0 - IL_0241: ldarg.1 - IL_0242: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0247: stloc.1 - IL_0248: ldloca.s V_0 - IL_024a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_024f: brtrue.s IL_025c - - IL_0251: ldloca.s V_2 - IL_0253: initobj valuetype [mscorlib]System.Nullable`1 - IL_0259: ldloc.2 - IL_025a: br.s IL_026a - - IL_025c: ldloca.s V_0 - IL_025e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0263: ldloc.1 - IL_0264: xor - IL_0265: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_026a: box valuetype [mscorlib]System.Nullable`1 - IL_026f: call void [mscorlib]System.Console::WriteLine(object) - IL_0274: ldarg.0 - IL_0275: stloc.0 - IL_0276: ldarg.1 - IL_0277: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_027c: stloc.1 - IL_027d: ldloca.s V_0 - IL_027f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0284: brtrue.s IL_0291 + IL_0171: ldloca.s V_2 + IL_0173: initobj valuetype [mscorlib]System.Nullable`1 + IL_0179: ldloc.2 + IL_017a: br.s IL_018a - IL_0286: ldloca.s V_2 - IL_0288: initobj valuetype [mscorlib]System.Nullable`1 - IL_028e: ldloc.2 - IL_028f: br.s IL_02a2 + IL_017c: ldloca.s V_0 + IL_017e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0183: ldloc.1 + IL_0184: div + IL_0185: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_018a: box valuetype [mscorlib]System.Nullable`1 + IL_018f: call void [mscorlib]System.Console::WriteLine(object) + IL_0194: ldarg.0 + IL_0195: stloc.0 + IL_0196: ldarg.1 + IL_0197: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_019c: stloc.1 + IL_019d: ldloca.s V_0 + IL_019f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01a4: brtrue.s IL_01b1 + + IL_01a6: ldloca.s V_2 + IL_01a8: initobj valuetype [mscorlib]System.Nullable`1 + IL_01ae: ldloc.2 + IL_01af: br.s IL_01bf + + IL_01b1: ldloca.s V_0 + IL_01b3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01b8: ldloc.1 + IL_01b9: rem + IL_01ba: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01bf: box valuetype [mscorlib]System.Nullable`1 + IL_01c4: call void [mscorlib]System.Console::WriteLine(object) + IL_01c9: ldarg.0 + IL_01ca: stloc.0 + IL_01cb: ldarg.1 + IL_01cc: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_01d1: stloc.1 + IL_01d2: ldloca.s V_0 + IL_01d4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01d9: brtrue.s IL_01e6 + + IL_01db: ldloca.s V_2 + IL_01dd: initobj valuetype [mscorlib]System.Nullable`1 + IL_01e3: ldloc.2 + IL_01e4: br.s IL_01f4 + + IL_01e6: ldloca.s V_0 + IL_01e8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01ed: ldloc.1 + IL_01ee: and + IL_01ef: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01f4: box valuetype [mscorlib]System.Nullable`1 + IL_01f9: call void [mscorlib]System.Console::WriteLine(object) + IL_01fe: ldarg.0 + IL_01ff: stloc.0 + IL_0200: ldarg.1 + IL_0201: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0206: stloc.1 + IL_0207: ldloca.s V_0 + IL_0209: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_020e: brtrue.s IL_021b + + IL_0210: ldloca.s V_2 + IL_0212: initobj valuetype [mscorlib]System.Nullable`1 + IL_0218: ldloc.2 + IL_0219: br.s IL_0229 + + IL_021b: ldloca.s V_0 + IL_021d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0222: ldloc.1 + IL_0223: or + IL_0224: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0229: box valuetype [mscorlib]System.Nullable`1 + IL_022e: call void [mscorlib]System.Console::WriteLine(object) + IL_0233: ldarg.0 + IL_0234: stloc.0 + IL_0235: ldarg.1 + IL_0236: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_023b: stloc.1 + IL_023c: ldloca.s V_0 + IL_023e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0243: brtrue.s IL_0250 + + IL_0245: ldloca.s V_2 + IL_0247: initobj valuetype [mscorlib]System.Nullable`1 + IL_024d: ldloc.2 + IL_024e: br.s IL_025e + + IL_0250: ldloca.s V_0 + IL_0252: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0257: ldloc.1 + IL_0258: xor + IL_0259: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_025e: box valuetype [mscorlib]System.Nullable`1 + IL_0263: call void [mscorlib]System.Console::WriteLine(object) + IL_0268: ldarg.0 + IL_0269: stloc.0 + IL_026a: ldarg.1 + IL_026b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0270: stloc.1 + IL_0271: ldloca.s V_0 + IL_0273: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0278: brtrue.s IL_0285 + + IL_027a: ldloca.s V_2 + IL_027c: initobj valuetype [mscorlib]System.Nullable`1 + IL_0282: ldloc.2 + IL_0283: br.s IL_0296 + + IL_0285: ldloca.s V_0 + IL_0287: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_028c: ldloc.1 + IL_028d: ldc.i4.s 31 + IL_028f: and + IL_0290: shl + IL_0291: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0296: box valuetype [mscorlib]System.Nullable`1 + IL_029b: call void [mscorlib]System.Console::WriteLine(object) + IL_02a0: ldarg.0 + IL_02a1: stloc.0 + IL_02a2: ldarg.1 + IL_02a3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_02a8: stloc.1 + IL_02a9: ldloca.s V_0 + IL_02ab: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02b0: brtrue.s IL_02bd + + IL_02b2: ldloca.s V_2 + IL_02b4: initobj valuetype [mscorlib]System.Nullable`1 + IL_02ba: ldloc.2 + IL_02bb: br.s IL_02ce + + IL_02bd: ldloca.s V_0 + IL_02bf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02c4: ldloc.1 + IL_02c5: ldc.i4.s 31 + IL_02c7: and + IL_02c8: shr + IL_02c9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02ce: box valuetype [mscorlib]System.Nullable`1 + IL_02d3: call void [mscorlib]System.Console::WriteLine(object) + IL_02d8: ldarg.0 + IL_02d9: stloc.0 + IL_02da: ldloca.s V_0 + IL_02dc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02e1: brtrue.s IL_02eb - IL_0291: ldloca.s V_0 - IL_0293: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0298: ldloc.1 - IL_0299: ldc.i4.s 31 - IL_029b: and - IL_029c: shl - IL_029d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02a2: box valuetype [mscorlib]System.Nullable`1 - IL_02a7: call void [mscorlib]System.Console::WriteLine(object) - IL_02ac: ldarg.0 - IL_02ad: stloc.0 - IL_02ae: ldarg.1 - IL_02af: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_02b4: stloc.1 - IL_02b5: ldloca.s V_0 - IL_02b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02bc: brtrue.s IL_02c9 - - IL_02be: ldloca.s V_2 - IL_02c0: initobj valuetype [mscorlib]System.Nullable`1 - IL_02c6: ldloc.2 - IL_02c7: br.s IL_02da - - IL_02c9: ldloca.s V_0 - IL_02cb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02d0: ldloc.1 - IL_02d1: ldc.i4.s 31 - IL_02d3: and - IL_02d4: shr - IL_02d5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02da: box valuetype [mscorlib]System.Nullable`1 - IL_02df: call void [mscorlib]System.Console::WriteLine(object) - IL_02e4: ldarg.0 - IL_02e5: stloc.0 - IL_02e6: ldloca.s V_0 - IL_02e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02ed: brtrue.s IL_02f7 - - IL_02ef: ldarg.1 - IL_02f0: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_02f5: br.s IL_02fe - - IL_02f7: ldloca.s V_0 - IL_02f9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02fe: call void [mscorlib]System.Console::WriteLine(int32) - IL_0303: ldarg.0 - IL_0304: stloc.0 - IL_0305: ldarg.1 - IL_0306: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_030b: stloc.1 - IL_030c: ldloca.s V_0 - IL_030e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0313: brtrue.s IL_0320 - - IL_0315: ldloca.s V_2 - IL_0317: initobj valuetype [mscorlib]System.Nullable`1 - IL_031d: ldloc.2 - IL_031e: br.s IL_032e - - IL_0320: ldloca.s V_0 - IL_0322: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0327: ldloc.1 - IL_0328: add - IL_0329: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_032e: starg.s a - IL_0330: ldarg.0 - IL_0331: stloc.0 - IL_0332: ldarg.1 - IL_0333: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0338: stloc.1 - IL_0339: ldloca.s V_0 - IL_033b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0340: brtrue.s IL_034d - - IL_0342: ldloca.s V_2 - IL_0344: initobj valuetype [mscorlib]System.Nullable`1 - IL_034a: ldloc.2 - IL_034b: br.s IL_035b - - IL_034d: ldloca.s V_0 - IL_034f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0354: ldloc.1 - IL_0355: sub - IL_0356: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_035b: starg.s a - IL_035d: ldarg.0 - IL_035e: stloc.0 - IL_035f: ldarg.1 - IL_0360: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0365: stloc.1 - IL_0366: ldloca.s V_0 - IL_0368: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_036d: brtrue.s IL_037a - - IL_036f: ldloca.s V_2 - IL_0371: initobj valuetype [mscorlib]System.Nullable`1 - IL_0377: ldloc.2 - IL_0378: br.s IL_0388 - - IL_037a: ldloca.s V_0 - IL_037c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0381: ldloc.1 - IL_0382: mul - IL_0383: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0388: starg.s a - IL_038a: ldarg.0 - IL_038b: stloc.0 - IL_038c: ldarg.1 - IL_038d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0392: stloc.1 - IL_0393: ldloca.s V_0 - IL_0395: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_039a: brtrue.s IL_03a7 - - IL_039c: ldloca.s V_2 - IL_039e: initobj valuetype [mscorlib]System.Nullable`1 - IL_03a4: ldloc.2 - IL_03a5: br.s IL_03b5 - - IL_03a7: ldloca.s V_0 - IL_03a9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03ae: ldloc.1 - IL_03af: div - IL_03b0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03b5: starg.s a - IL_03b7: ldarg.0 - IL_03b8: stloc.0 - IL_03b9: ldarg.1 - IL_03ba: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_03bf: stloc.1 - IL_03c0: ldloca.s V_0 - IL_03c2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03c7: brtrue.s IL_03d4 - - IL_03c9: ldloca.s V_2 - IL_03cb: initobj valuetype [mscorlib]System.Nullable`1 - IL_03d1: ldloc.2 - IL_03d2: br.s IL_03e2 - - IL_03d4: ldloca.s V_0 - IL_03d6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03db: ldloc.1 - IL_03dc: rem - IL_03dd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03e2: starg.s a - IL_03e4: ldarg.0 - IL_03e5: stloc.0 - IL_03e6: ldarg.1 - IL_03e7: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_03ec: stloc.1 - IL_03ed: ldloca.s V_0 - IL_03ef: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03f4: brtrue.s IL_0401 - - IL_03f6: ldloca.s V_2 - IL_03f8: initobj valuetype [mscorlib]System.Nullable`1 - IL_03fe: ldloc.2 - IL_03ff: br.s IL_040f - - IL_0401: ldloca.s V_0 - IL_0403: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0408: ldloc.1 - IL_0409: and - IL_040a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_040f: starg.s a - IL_0411: ldarg.0 - IL_0412: stloc.0 - IL_0413: ldarg.1 - IL_0414: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0419: stloc.1 - IL_041a: ldloca.s V_0 - IL_041c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0421: brtrue.s IL_042e - - IL_0423: ldloca.s V_2 - IL_0425: initobj valuetype [mscorlib]System.Nullable`1 - IL_042b: ldloc.2 - IL_042c: br.s IL_043c - - IL_042e: ldloca.s V_0 - IL_0430: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0435: ldloc.1 - IL_0436: or - IL_0437: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_043c: starg.s a - IL_043e: ldarg.0 - IL_043f: stloc.0 - IL_0440: ldarg.1 - IL_0441: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0446: stloc.1 - IL_0447: ldloca.s V_0 - IL_0449: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_044e: brtrue.s IL_045b - - IL_0450: ldloca.s V_2 - IL_0452: initobj valuetype [mscorlib]System.Nullable`1 - IL_0458: ldloc.2 - IL_0459: br.s IL_0469 - - IL_045b: ldloca.s V_0 - IL_045d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0462: ldloc.1 - IL_0463: xor - IL_0464: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0469: starg.s a - IL_046b: ldarg.0 - IL_046c: stloc.0 - IL_046d: ldarg.1 - IL_046e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0473: stloc.1 - IL_0474: ldloca.s V_0 - IL_0476: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_047b: brtrue.s IL_0488 - - IL_047d: ldloca.s V_2 - IL_047f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0485: ldloc.2 - IL_0486: br.s IL_0499 - - IL_0488: ldloca.s V_0 - IL_048a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_048f: ldloc.1 - IL_0490: ldc.i4.s 31 - IL_0492: and - IL_0493: shl - IL_0494: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0499: starg.s a - IL_049b: ldarg.0 - IL_049c: stloc.0 - IL_049d: ldarg.1 - IL_049e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_04a3: stloc.1 - IL_04a4: ldloca.s V_0 - IL_04a6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04ab: brtrue.s IL_04b8 - - IL_04ad: ldloca.s V_2 - IL_04af: initobj valuetype [mscorlib]System.Nullable`1 - IL_04b5: ldloc.2 - IL_04b6: br.s IL_04c9 - - IL_04b8: ldloca.s V_0 - IL_04ba: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04bf: ldloc.1 - IL_04c0: ldc.i4.s 31 - IL_04c2: and - IL_04c3: shr - IL_04c4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04c9: starg.s a - IL_04cb: ldarg.1 - IL_04cc: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_04d1: stloc.1 - IL_04d2: ldarg.0 - IL_04d3: stloc.0 - IL_04d4: ldloca.s V_0 - IL_04d6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04db: brtrue.s IL_04e8 - - IL_04dd: ldloca.s V_2 - IL_04df: initobj valuetype [mscorlib]System.Nullable`1 - IL_04e5: ldloc.2 - IL_04e6: br.s IL_04f6 - - IL_04e8: ldloc.1 - IL_04e9: ldloca.s V_0 - IL_04eb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04f0: add - IL_04f1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04f6: box valuetype [mscorlib]System.Nullable`1 - IL_04fb: call void [mscorlib]System.Console::WriteLine(object) - IL_0500: ldc.i4.0 - IL_0501: newarr valuetype [mscorlib]System.Nullable`1 - IL_0506: ldc.i4.0 - IL_0507: ldelema valuetype [mscorlib]System.Nullable`1 - IL_050c: dup - IL_050d: ldobj valuetype [mscorlib]System.Nullable`1 - IL_0512: stloc.0 - IL_0513: ldarg.1 - IL_0514: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0519: stloc.1 - IL_051a: ldloca.s V_0 - IL_051c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0521: brtrue.s IL_052e - - IL_0523: ldloca.s V_2 - IL_0525: initobj valuetype [mscorlib]System.Nullable`1 - IL_052b: ldloc.2 - IL_052c: br.s IL_053c - - IL_052e: ldloca.s V_0 - IL_0530: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0535: ldloc.1 - IL_0536: add - IL_0537: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_053c: stobj valuetype [mscorlib]System.Nullable`1 - IL_0541: ret + IL_02e3: ldarg.1 + IL_02e4: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_02e9: br.s IL_02f2 + + IL_02eb: ldloca.s V_0 + IL_02ed: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02f2: call void [mscorlib]System.Console::WriteLine(int32) + IL_02f7: ldarg.0 + IL_02f8: stloc.0 + IL_02f9: ldarg.1 + IL_02fa: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_02ff: stloc.1 + IL_0300: ldloca.s V_0 + IL_0302: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0307: brtrue.s IL_0314 + + IL_0309: ldloca.s V_2 + IL_030b: initobj valuetype [mscorlib]System.Nullable`1 + IL_0311: ldloc.2 + IL_0312: br.s IL_0322 + + IL_0314: ldloca.s V_0 + IL_0316: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_031b: ldloc.1 + IL_031c: add + IL_031d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0322: starg.s a + IL_0324: ldarg.0 + IL_0325: stloc.0 + IL_0326: ldarg.1 + IL_0327: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_032c: stloc.1 + IL_032d: ldloca.s V_0 + IL_032f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0334: brtrue.s IL_0341 + + IL_0336: ldloca.s V_2 + IL_0338: initobj valuetype [mscorlib]System.Nullable`1 + IL_033e: ldloc.2 + IL_033f: br.s IL_034f + + IL_0341: ldloca.s V_0 + IL_0343: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0348: ldloc.1 + IL_0349: sub + IL_034a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_034f: starg.s a + IL_0351: ldarg.0 + IL_0352: stloc.0 + IL_0353: ldarg.1 + IL_0354: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0359: stloc.1 + IL_035a: ldloca.s V_0 + IL_035c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0361: brtrue.s IL_036e + + IL_0363: ldloca.s V_2 + IL_0365: initobj valuetype [mscorlib]System.Nullable`1 + IL_036b: ldloc.2 + IL_036c: br.s IL_037c + + IL_036e: ldloca.s V_0 + IL_0370: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0375: ldloc.1 + IL_0376: mul + IL_0377: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_037c: starg.s a + IL_037e: ldarg.0 + IL_037f: stloc.0 + IL_0380: ldarg.1 + IL_0381: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0386: stloc.1 + IL_0387: ldloca.s V_0 + IL_0389: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_038e: brtrue.s IL_039b + + IL_0390: ldloca.s V_2 + IL_0392: initobj valuetype [mscorlib]System.Nullable`1 + IL_0398: ldloc.2 + IL_0399: br.s IL_03a9 + + IL_039b: ldloca.s V_0 + IL_039d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03a2: ldloc.1 + IL_03a3: div + IL_03a4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03a9: starg.s a + IL_03ab: ldarg.0 + IL_03ac: stloc.0 + IL_03ad: ldarg.1 + IL_03ae: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_03b3: stloc.1 + IL_03b4: ldloca.s V_0 + IL_03b6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03bb: brtrue.s IL_03c8 + + IL_03bd: ldloca.s V_2 + IL_03bf: initobj valuetype [mscorlib]System.Nullable`1 + IL_03c5: ldloc.2 + IL_03c6: br.s IL_03d6 + + IL_03c8: ldloca.s V_0 + IL_03ca: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03cf: ldloc.1 + IL_03d0: rem + IL_03d1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03d6: starg.s a + IL_03d8: ldarg.0 + IL_03d9: stloc.0 + IL_03da: ldarg.1 + IL_03db: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_03e0: stloc.1 + IL_03e1: ldloca.s V_0 + IL_03e3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03e8: brtrue.s IL_03f5 + + IL_03ea: ldloca.s V_2 + IL_03ec: initobj valuetype [mscorlib]System.Nullable`1 + IL_03f2: ldloc.2 + IL_03f3: br.s IL_0403 + + IL_03f5: ldloca.s V_0 + IL_03f7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03fc: ldloc.1 + IL_03fd: and + IL_03fe: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0403: starg.s a + IL_0405: ldarg.0 + IL_0406: stloc.0 + IL_0407: ldarg.1 + IL_0408: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_040d: stloc.1 + IL_040e: ldloca.s V_0 + IL_0410: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0415: brtrue.s IL_0422 + + IL_0417: ldloca.s V_2 + IL_0419: initobj valuetype [mscorlib]System.Nullable`1 + IL_041f: ldloc.2 + IL_0420: br.s IL_0430 + + IL_0422: ldloca.s V_0 + IL_0424: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0429: ldloc.1 + IL_042a: or + IL_042b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0430: starg.s a + IL_0432: ldarg.0 + IL_0433: stloc.0 + IL_0434: ldarg.1 + IL_0435: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_043a: stloc.1 + IL_043b: ldloca.s V_0 + IL_043d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0442: brtrue.s IL_044f + + IL_0444: ldloca.s V_2 + IL_0446: initobj valuetype [mscorlib]System.Nullable`1 + IL_044c: ldloc.2 + IL_044d: br.s IL_045d + + IL_044f: ldloca.s V_0 + IL_0451: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0456: ldloc.1 + IL_0457: xor + IL_0458: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_045d: starg.s a + IL_045f: ldarg.0 + IL_0460: stloc.0 + IL_0461: ldarg.1 + IL_0462: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0467: stloc.1 + IL_0468: ldloca.s V_0 + IL_046a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_046f: brtrue.s IL_047c + + IL_0471: ldloca.s V_2 + IL_0473: initobj valuetype [mscorlib]System.Nullable`1 + IL_0479: ldloc.2 + IL_047a: br.s IL_048d + + IL_047c: ldloca.s V_0 + IL_047e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0483: ldloc.1 + IL_0484: ldc.i4.s 31 + IL_0486: and + IL_0487: shl + IL_0488: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_048d: starg.s a + IL_048f: ldarg.0 + IL_0490: stloc.0 + IL_0491: ldarg.1 + IL_0492: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0497: stloc.1 + IL_0498: ldloca.s V_0 + IL_049a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_049f: brtrue.s IL_04ac + + IL_04a1: ldloca.s V_2 + IL_04a3: initobj valuetype [mscorlib]System.Nullable`1 + IL_04a9: ldloc.2 + IL_04aa: br.s IL_04bd + + IL_04ac: ldloca.s V_0 + IL_04ae: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04b3: ldloc.1 + IL_04b4: ldc.i4.s 31 + IL_04b6: and + IL_04b7: shr + IL_04b8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04bd: starg.s a + IL_04bf: ldarg.1 + IL_04c0: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_04c5: stloc.1 + IL_04c6: ldarg.0 + IL_04c7: stloc.0 + IL_04c8: ldloca.s V_0 + IL_04ca: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04cf: brtrue.s IL_04dc + + IL_04d1: ldloca.s V_2 + IL_04d3: initobj valuetype [mscorlib]System.Nullable`1 + IL_04d9: ldloc.2 + IL_04da: br.s IL_04ea + + IL_04dc: ldloc.1 + IL_04dd: ldloca.s V_0 + IL_04df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04e4: add + IL_04e5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04ea: box valuetype [mscorlib]System.Nullable`1 + IL_04ef: call void [mscorlib]System.Console::WriteLine(object) + IL_04f4: ldc.i4.0 + IL_04f5: newarr valuetype [mscorlib]System.Nullable`1 + IL_04fa: ldc.i4.0 + IL_04fb: ldelema valuetype [mscorlib]System.Nullable`1 + IL_0500: dup + IL_0501: ldobj valuetype [mscorlib]System.Nullable`1 + IL_0506: stloc.0 + IL_0507: ldarg.1 + IL_0508: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_050d: stloc.1 + IL_050e: ldloca.s V_0 + IL_0510: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0515: brtrue.s IL_0522 + + IL_0517: ldloca.s V_2 + IL_0519: initobj valuetype [mscorlib]System.Nullable`1 + IL_051f: ldloc.2 + IL_0520: br.s IL_0530 + + IL_0522: ldloca.s V_0 + IL_0524: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0529: ldloc.1 + IL_052a: add + IL_052b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0530: stobj valuetype [mscorlib]System.Nullable`1 + IL_0535: ret } // end of method LiftedOperators::IntValueComplex .method public hidebysig static void IntValueConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 1087 (0x43f) + // Code size 1075 (0x433) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1, @@ -2535,475 +2366,457 @@ IL_0004: ldloca.s V_0 IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloc.1 - IL_000c: beq.s IL_0011 - - IL_000e: ldc.i4.0 - IL_000f: br.s IL_0018 - - IL_0011: ldloca.s V_0 - IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0018: call void [mscorlib]System.Console::WriteLine(bool) - IL_001d: ldarg.0 - IL_001e: stloc.0 - IL_001f: ldc.i4.2 - IL_0020: stloc.1 - IL_0021: ldloca.s V_0 - IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0028: ldloc.1 - IL_0029: beq.s IL_002e - - IL_002b: ldc.i4.1 - IL_002c: br.s IL_0038 - - IL_002e: ldloca.s V_0 - IL_0030: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0035: ldc.i4.0 - IL_0036: ceq - IL_0038: call void [mscorlib]System.Console::WriteLine(bool) - IL_003d: ldarg.0 - IL_003e: stloc.0 - IL_003f: ldc.i4.2 - IL_0040: stloc.1 - IL_0041: ldloca.s V_0 - IL_0043: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0048: ldloc.1 - IL_0049: bgt.s IL_004e - - IL_004b: ldc.i4.0 - IL_004c: br.s IL_0055 - - IL_004e: ldloca.s V_0 - IL_0050: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0055: call void [mscorlib]System.Console::WriteLine(bool) - IL_005a: ldc.i4.2 - IL_005b: ldarg.0 - IL_005c: stloc.0 - IL_005d: ldloca.s V_0 - IL_005f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0064: beq.s IL_0069 - - IL_0066: ldc.i4.0 - IL_0067: br.s IL_0070 - - IL_0069: ldloca.s V_0 - IL_006b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0070: call void [mscorlib]System.Console::WriteLine(bool) - IL_0075: ldc.i4.2 - IL_0076: ldarg.0 - IL_0077: stloc.0 - IL_0078: ldloca.s V_0 - IL_007a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007f: beq.s IL_0084 - - IL_0081: ldc.i4.1 - IL_0082: br.s IL_008e + IL_000c: ceq + IL_000e: ldloca.s V_0 + IL_0010: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0015: and + IL_0016: call void [mscorlib]System.Console::WriteLine(bool) + IL_001b: ldarg.0 + IL_001c: stloc.0 + IL_001d: ldc.i4.2 + IL_001e: stloc.1 + IL_001f: ldloca.s V_0 + IL_0021: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0026: ldloc.1 + IL_0027: ceq + IL_0029: ldloca.s V_0 + IL_002b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0030: and + IL_0031: ldc.i4.0 + IL_0032: ceq + IL_0034: call void [mscorlib]System.Console::WriteLine(bool) + IL_0039: ldarg.0 + IL_003a: stloc.0 + IL_003b: ldc.i4.2 + IL_003c: stloc.1 + IL_003d: ldloca.s V_0 + IL_003f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0044: ldloc.1 + IL_0045: cgt + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: and + IL_004f: call void [mscorlib]System.Console::WriteLine(bool) + IL_0054: ldc.i4.2 + IL_0055: ldarg.0 + IL_0056: stloc.0 + IL_0057: ldloca.s V_0 + IL_0059: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_005e: ceq + IL_0060: ldloca.s V_0 + IL_0062: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0067: and + IL_0068: call void [mscorlib]System.Console::WriteLine(bool) + IL_006d: ldc.i4.2 + IL_006e: ldarg.0 + IL_006f: stloc.0 + IL_0070: ldloca.s V_0 + IL_0072: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0077: ceq + IL_0079: ldloca.s V_0 + IL_007b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0080: and + IL_0081: ldc.i4.0 + IL_0082: ceq + IL_0084: call void [mscorlib]System.Console::WriteLine(bool) + IL_0089: ldc.i4.2 + IL_008a: ldarg.0 + IL_008b: stloc.0 + IL_008c: ldloca.s V_0 + IL_008e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0093: cgt + IL_0095: ldloca.s V_0 + IL_0097: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009c: and + IL_009d: call void [mscorlib]System.Console::WriteLine(bool) + IL_00a2: ldarg.0 + IL_00a3: stloc.0 + IL_00a4: ldloca.s V_0 + IL_00a6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ab: brtrue.s IL_00b8 - IL_0084: ldloca.s V_0 - IL_0086: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008b: ldc.i4.0 - IL_008c: ceq - IL_008e: call void [mscorlib]System.Console::WriteLine(bool) - IL_0093: ldc.i4.2 - IL_0094: ldarg.0 - IL_0095: stloc.0 - IL_0096: ldloca.s V_0 - IL_0098: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_009d: bgt.s IL_00a2 - - IL_009f: ldc.i4.0 - IL_00a0: br.s IL_00a9 - - IL_00a2: ldloca.s V_0 - IL_00a4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a9: call void [mscorlib]System.Console::WriteLine(bool) - IL_00ae: ldarg.0 - IL_00af: stloc.0 - IL_00b0: ldloca.s V_0 - IL_00b2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00b7: brtrue.s IL_00c4 - - IL_00b9: ldloca.s V_2 - IL_00bb: initobj valuetype [mscorlib]System.Nullable`1 - IL_00c1: ldloc.2 - IL_00c2: br.s IL_00d2 - - IL_00c4: ldloca.s V_0 - IL_00c6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00cb: ldc.i4.2 - IL_00cc: add - IL_00cd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00d2: box valuetype [mscorlib]System.Nullable`1 - IL_00d7: call void [mscorlib]System.Console::WriteLine(object) - IL_00dc: ldarg.0 - IL_00dd: stloc.0 - IL_00de: ldloca.s V_0 - IL_00e0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00e5: brtrue.s IL_00f2 + IL_00ad: ldloca.s V_2 + IL_00af: initobj valuetype [mscorlib]System.Nullable`1 + IL_00b5: ldloc.2 + IL_00b6: br.s IL_00c6 - IL_00e7: ldloca.s V_2 - IL_00e9: initobj valuetype [mscorlib]System.Nullable`1 - IL_00ef: ldloc.2 - IL_00f0: br.s IL_0100 + IL_00b8: ldloca.s V_0 + IL_00ba: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00bf: ldc.i4.2 + IL_00c0: add + IL_00c1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00c6: box valuetype [mscorlib]System.Nullable`1 + IL_00cb: call void [mscorlib]System.Console::WriteLine(object) + IL_00d0: ldarg.0 + IL_00d1: stloc.0 + IL_00d2: ldloca.s V_0 + IL_00d4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d9: brtrue.s IL_00e6 + + IL_00db: ldloca.s V_2 + IL_00dd: initobj valuetype [mscorlib]System.Nullable`1 + IL_00e3: ldloc.2 + IL_00e4: br.s IL_00f4 + + IL_00e6: ldloca.s V_0 + IL_00e8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00ed: ldc.i4.2 + IL_00ee: sub + IL_00ef: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00f4: box valuetype [mscorlib]System.Nullable`1 + IL_00f9: call void [mscorlib]System.Console::WriteLine(object) + IL_00fe: ldarg.0 + IL_00ff: stloc.0 + IL_0100: ldloca.s V_0 + IL_0102: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0107: brtrue.s IL_0114 + + IL_0109: ldloca.s V_2 + IL_010b: initobj valuetype [mscorlib]System.Nullable`1 + IL_0111: ldloc.2 + IL_0112: br.s IL_0122 + + IL_0114: ldloca.s V_0 + IL_0116: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_011b: ldc.i4.2 + IL_011c: mul + IL_011d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0122: box valuetype [mscorlib]System.Nullable`1 + IL_0127: call void [mscorlib]System.Console::WriteLine(object) + IL_012c: ldarg.0 + IL_012d: stloc.0 + IL_012e: ldloca.s V_0 + IL_0130: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0135: brtrue.s IL_0142 + + IL_0137: ldloca.s V_2 + IL_0139: initobj valuetype [mscorlib]System.Nullable`1 + IL_013f: ldloc.2 + IL_0140: br.s IL_0150 + + IL_0142: ldloca.s V_0 + IL_0144: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0149: ldc.i4.2 + IL_014a: div + IL_014b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0150: box valuetype [mscorlib]System.Nullable`1 + IL_0155: call void [mscorlib]System.Console::WriteLine(object) + IL_015a: ldarg.0 + IL_015b: stloc.0 + IL_015c: ldloca.s V_0 + IL_015e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0163: brtrue.s IL_0170 + + IL_0165: ldloca.s V_2 + IL_0167: initobj valuetype [mscorlib]System.Nullable`1 + IL_016d: ldloc.2 + IL_016e: br.s IL_017e + + IL_0170: ldloca.s V_0 + IL_0172: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0177: ldc.i4.2 + IL_0178: rem + IL_0179: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_017e: box valuetype [mscorlib]System.Nullable`1 + IL_0183: call void [mscorlib]System.Console::WriteLine(object) + IL_0188: ldarg.0 + IL_0189: stloc.0 + IL_018a: ldloca.s V_0 + IL_018c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0191: brtrue.s IL_019e + + IL_0193: ldloca.s V_2 + IL_0195: initobj valuetype [mscorlib]System.Nullable`1 + IL_019b: ldloc.2 + IL_019c: br.s IL_01ac + + IL_019e: ldloca.s V_0 + IL_01a0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01a5: ldc.i4.2 + IL_01a6: and + IL_01a7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01ac: box valuetype [mscorlib]System.Nullable`1 + IL_01b1: call void [mscorlib]System.Console::WriteLine(object) + IL_01b6: ldarg.0 + IL_01b7: stloc.0 + IL_01b8: ldloca.s V_0 + IL_01ba: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01bf: brtrue.s IL_01cc + + IL_01c1: ldloca.s V_2 + IL_01c3: initobj valuetype [mscorlib]System.Nullable`1 + IL_01c9: ldloc.2 + IL_01ca: br.s IL_01da + + IL_01cc: ldloca.s V_0 + IL_01ce: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01d3: ldc.i4.2 + IL_01d4: or + IL_01d5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01da: box valuetype [mscorlib]System.Nullable`1 + IL_01df: call void [mscorlib]System.Console::WriteLine(object) + IL_01e4: ldarg.0 + IL_01e5: stloc.0 + IL_01e6: ldloca.s V_0 + IL_01e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01ed: brtrue.s IL_01fa - IL_00f2: ldloca.s V_0 - IL_00f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f9: ldc.i4.2 - IL_00fa: sub - IL_00fb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0100: box valuetype [mscorlib]System.Nullable`1 - IL_0105: call void [mscorlib]System.Console::WriteLine(object) - IL_010a: ldarg.0 - IL_010b: stloc.0 - IL_010c: ldloca.s V_0 - IL_010e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0113: brtrue.s IL_0120 - - IL_0115: ldloca.s V_2 - IL_0117: initobj valuetype [mscorlib]System.Nullable`1 - IL_011d: ldloc.2 - IL_011e: br.s IL_012e - - IL_0120: ldloca.s V_0 - IL_0122: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0127: ldc.i4.2 - IL_0128: mul - IL_0129: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_012e: box valuetype [mscorlib]System.Nullable`1 - IL_0133: call void [mscorlib]System.Console::WriteLine(object) - IL_0138: ldarg.0 - IL_0139: stloc.0 - IL_013a: ldloca.s V_0 - IL_013c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0141: brtrue.s IL_014e - - IL_0143: ldloca.s V_2 - IL_0145: initobj valuetype [mscorlib]System.Nullable`1 - IL_014b: ldloc.2 - IL_014c: br.s IL_015c - - IL_014e: ldloca.s V_0 - IL_0150: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0155: ldc.i4.2 - IL_0156: div - IL_0157: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_015c: box valuetype [mscorlib]System.Nullable`1 - IL_0161: call void [mscorlib]System.Console::WriteLine(object) - IL_0166: ldarg.0 - IL_0167: stloc.0 - IL_0168: ldloca.s V_0 - IL_016a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_016f: brtrue.s IL_017c + IL_01ef: ldloca.s V_2 + IL_01f1: initobj valuetype [mscorlib]System.Nullable`1 + IL_01f7: ldloc.2 + IL_01f8: br.s IL_0208 - IL_0171: ldloca.s V_2 - IL_0173: initobj valuetype [mscorlib]System.Nullable`1 - IL_0179: ldloc.2 - IL_017a: br.s IL_018a + IL_01fa: ldloca.s V_0 + IL_01fc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0201: ldc.i4.2 + IL_0202: xor + IL_0203: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0208: box valuetype [mscorlib]System.Nullable`1 + IL_020d: call void [mscorlib]System.Console::WriteLine(object) + IL_0212: ldarg.0 + IL_0213: stloc.0 + IL_0214: ldloca.s V_0 + IL_0216: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_021b: brtrue.s IL_0228 + + IL_021d: ldloca.s V_2 + IL_021f: initobj valuetype [mscorlib]System.Nullable`1 + IL_0225: ldloc.2 + IL_0226: br.s IL_0236 + + IL_0228: ldloca.s V_0 + IL_022a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_022f: ldc.i4.2 + IL_0230: shl + IL_0231: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0236: box valuetype [mscorlib]System.Nullable`1 + IL_023b: call void [mscorlib]System.Console::WriteLine(object) + IL_0240: ldarg.0 + IL_0241: stloc.0 + IL_0242: ldloca.s V_0 + IL_0244: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0249: brtrue.s IL_0256 + + IL_024b: ldloca.s V_2 + IL_024d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0253: ldloc.2 + IL_0254: br.s IL_0264 + + IL_0256: ldloca.s V_0 + IL_0258: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_025d: ldc.i4.2 + IL_025e: shr + IL_025f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0264: box valuetype [mscorlib]System.Nullable`1 + IL_0269: call void [mscorlib]System.Console::WriteLine(object) + IL_026e: ldarg.0 + IL_026f: stloc.0 + IL_0270: ldloca.s V_0 + IL_0272: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0277: brtrue.s IL_027c + + IL_0279: ldc.i4.2 + IL_027a: br.s IL_0283 - IL_017c: ldloca.s V_0 - IL_017e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0183: ldc.i4.2 - IL_0184: rem - IL_0185: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_018a: box valuetype [mscorlib]System.Nullable`1 - IL_018f: call void [mscorlib]System.Console::WriteLine(object) - IL_0194: ldarg.0 - IL_0195: stloc.0 - IL_0196: ldloca.s V_0 - IL_0198: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_019d: brtrue.s IL_01aa - - IL_019f: ldloca.s V_2 - IL_01a1: initobj valuetype [mscorlib]System.Nullable`1 - IL_01a7: ldloc.2 - IL_01a8: br.s IL_01b8 - - IL_01aa: ldloca.s V_0 - IL_01ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01b1: ldc.i4.2 - IL_01b2: and - IL_01b3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01b8: box valuetype [mscorlib]System.Nullable`1 - IL_01bd: call void [mscorlib]System.Console::WriteLine(object) - IL_01c2: ldarg.0 - IL_01c3: stloc.0 - IL_01c4: ldloca.s V_0 - IL_01c6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01cb: brtrue.s IL_01d8 - - IL_01cd: ldloca.s V_2 - IL_01cf: initobj valuetype [mscorlib]System.Nullable`1 - IL_01d5: ldloc.2 - IL_01d6: br.s IL_01e6 - - IL_01d8: ldloca.s V_0 - IL_01da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01df: ldc.i4.2 - IL_01e0: or - IL_01e1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01e6: box valuetype [mscorlib]System.Nullable`1 - IL_01eb: call void [mscorlib]System.Console::WriteLine(object) - IL_01f0: ldarg.0 - IL_01f1: stloc.0 - IL_01f2: ldloca.s V_0 - IL_01f4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01f9: brtrue.s IL_0206 - - IL_01fb: ldloca.s V_2 - IL_01fd: initobj valuetype [mscorlib]System.Nullable`1 - IL_0203: ldloc.2 - IL_0204: br.s IL_0214 - - IL_0206: ldloca.s V_0 - IL_0208: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_020d: ldc.i4.2 - IL_020e: xor - IL_020f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0214: box valuetype [mscorlib]System.Nullable`1 - IL_0219: call void [mscorlib]System.Console::WriteLine(object) - IL_021e: ldarg.0 - IL_021f: stloc.0 - IL_0220: ldloca.s V_0 - IL_0222: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0227: brtrue.s IL_0234 - - IL_0229: ldloca.s V_2 - IL_022b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0231: ldloc.2 - IL_0232: br.s IL_0242 - - IL_0234: ldloca.s V_0 - IL_0236: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_023b: ldc.i4.2 - IL_023c: shl - IL_023d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0242: box valuetype [mscorlib]System.Nullable`1 - IL_0247: call void [mscorlib]System.Console::WriteLine(object) - IL_024c: ldarg.0 - IL_024d: stloc.0 - IL_024e: ldloca.s V_0 - IL_0250: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0255: brtrue.s IL_0262 - - IL_0257: ldloca.s V_2 - IL_0259: initobj valuetype [mscorlib]System.Nullable`1 - IL_025f: ldloc.2 - IL_0260: br.s IL_0270 - - IL_0262: ldloca.s V_0 - IL_0264: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0269: ldc.i4.2 - IL_026a: shr - IL_026b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0270: box valuetype [mscorlib]System.Nullable`1 - IL_0275: call void [mscorlib]System.Console::WriteLine(object) - IL_027a: ldarg.0 - IL_027b: stloc.0 IL_027c: ldloca.s V_0 - IL_027e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0283: brtrue.s IL_0288 - - IL_0285: ldc.i4.2 - IL_0286: br.s IL_028f - - IL_0288: ldloca.s V_0 - IL_028a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_028f: call void [mscorlib]System.Console::WriteLine(int32) - IL_0294: ldarg.0 - IL_0295: stloc.0 - IL_0296: ldloca.s V_0 - IL_0298: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_029d: brtrue.s IL_02aa - - IL_029f: ldloca.s V_2 - IL_02a1: initobj valuetype [mscorlib]System.Nullable`1 - IL_02a7: ldloc.2 - IL_02a8: br.s IL_02b8 - - IL_02aa: ldloca.s V_0 - IL_02ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02b1: ldc.i4.2 - IL_02b2: add - IL_02b3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02b8: starg.s a - IL_02ba: ldarg.0 - IL_02bb: stloc.0 - IL_02bc: ldloca.s V_0 - IL_02be: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02c3: brtrue.s IL_02d0 - - IL_02c5: ldloca.s V_2 - IL_02c7: initobj valuetype [mscorlib]System.Nullable`1 - IL_02cd: ldloc.2 - IL_02ce: br.s IL_02de - - IL_02d0: ldloca.s V_0 - IL_02d2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02d7: ldc.i4.2 - IL_02d8: sub - IL_02d9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02de: starg.s a - IL_02e0: ldarg.0 - IL_02e1: stloc.0 - IL_02e2: ldloca.s V_0 - IL_02e4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02e9: brtrue.s IL_02f6 - - IL_02eb: ldloca.s V_2 - IL_02ed: initobj valuetype [mscorlib]System.Nullable`1 - IL_02f3: ldloc.2 - IL_02f4: br.s IL_0304 - - IL_02f6: ldloca.s V_0 - IL_02f8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02fd: ldc.i4.2 - IL_02fe: mul - IL_02ff: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0304: starg.s a - IL_0306: ldarg.0 - IL_0307: stloc.0 - IL_0308: ldloca.s V_0 - IL_030a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_030f: brtrue.s IL_031c - - IL_0311: ldloca.s V_2 - IL_0313: initobj valuetype [mscorlib]System.Nullable`1 - IL_0319: ldloc.2 - IL_031a: br.s IL_032a - - IL_031c: ldloca.s V_0 - IL_031e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0323: ldc.i4.2 - IL_0324: div - IL_0325: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_032a: starg.s a - IL_032c: ldarg.0 - IL_032d: stloc.0 - IL_032e: ldloca.s V_0 - IL_0330: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0335: brtrue.s IL_0342 - - IL_0337: ldloca.s V_2 - IL_0339: initobj valuetype [mscorlib]System.Nullable`1 - IL_033f: ldloc.2 - IL_0340: br.s IL_0350 - - IL_0342: ldloca.s V_0 - IL_0344: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0349: ldc.i4.2 - IL_034a: rem - IL_034b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0350: starg.s a - IL_0352: ldarg.0 - IL_0353: stloc.0 - IL_0354: ldloca.s V_0 - IL_0356: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_035b: brtrue.s IL_0368 - - IL_035d: ldloca.s V_2 - IL_035f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0365: ldloc.2 - IL_0366: br.s IL_0376 - - IL_0368: ldloca.s V_0 - IL_036a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_036f: ldc.i4.2 - IL_0370: and - IL_0371: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0376: starg.s a - IL_0378: ldarg.0 - IL_0379: stloc.0 - IL_037a: ldloca.s V_0 - IL_037c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0381: brtrue.s IL_038e - - IL_0383: ldloca.s V_2 - IL_0385: initobj valuetype [mscorlib]System.Nullable`1 - IL_038b: ldloc.2 - IL_038c: br.s IL_039c - - IL_038e: ldloca.s V_0 - IL_0390: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0395: ldc.i4.2 - IL_0396: or - IL_0397: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_039c: starg.s a - IL_039e: ldarg.0 - IL_039f: stloc.0 - IL_03a0: ldloca.s V_0 - IL_03a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03a7: brtrue.s IL_03b4 - - IL_03a9: ldloca.s V_2 - IL_03ab: initobj valuetype [mscorlib]System.Nullable`1 - IL_03b1: ldloc.2 - IL_03b2: br.s IL_03c2 - - IL_03b4: ldloca.s V_0 - IL_03b6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03bb: ldc.i4.2 - IL_03bc: xor - IL_03bd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03c2: starg.s a - IL_03c4: ldarg.0 - IL_03c5: stloc.0 - IL_03c6: ldloca.s V_0 - IL_03c8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03cd: brtrue.s IL_03da - - IL_03cf: ldloca.s V_2 - IL_03d1: initobj valuetype [mscorlib]System.Nullable`1 - IL_03d7: ldloc.2 - IL_03d8: br.s IL_03e8 - - IL_03da: ldloca.s V_0 - IL_03dc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03e1: ldc.i4.2 - IL_03e2: shl - IL_03e3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03e8: starg.s a - IL_03ea: ldarg.0 - IL_03eb: stloc.0 - IL_03ec: ldloca.s V_0 - IL_03ee: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03f3: brtrue.s IL_0400 - - IL_03f5: ldloca.s V_2 - IL_03f7: initobj valuetype [mscorlib]System.Nullable`1 - IL_03fd: ldloc.2 - IL_03fe: br.s IL_040e - - IL_0400: ldloca.s V_0 - IL_0402: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0407: ldc.i4.2 - IL_0408: shr - IL_0409: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_040e: starg.s a - IL_0410: ldarg.0 - IL_0411: stloc.0 - IL_0412: ldloca.s V_0 - IL_0414: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0419: brtrue.s IL_0426 - - IL_041b: ldloca.s V_2 - IL_041d: initobj valuetype [mscorlib]System.Nullable`1 - IL_0423: ldloc.2 - IL_0424: br.s IL_0434 - - IL_0426: ldc.i4.2 - IL_0427: ldloca.s V_0 - IL_0429: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_042e: add - IL_042f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0434: box valuetype [mscorlib]System.Nullable`1 - IL_0439: call void [mscorlib]System.Console::WriteLine(object) - IL_043e: ret + IL_027e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0283: call void [mscorlib]System.Console::WriteLine(int32) + IL_0288: ldarg.0 + IL_0289: stloc.0 + IL_028a: ldloca.s V_0 + IL_028c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0291: brtrue.s IL_029e + + IL_0293: ldloca.s V_2 + IL_0295: initobj valuetype [mscorlib]System.Nullable`1 + IL_029b: ldloc.2 + IL_029c: br.s IL_02ac + + IL_029e: ldloca.s V_0 + IL_02a0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02a5: ldc.i4.2 + IL_02a6: add + IL_02a7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02ac: starg.s a + IL_02ae: ldarg.0 + IL_02af: stloc.0 + IL_02b0: ldloca.s V_0 + IL_02b2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02b7: brtrue.s IL_02c4 + + IL_02b9: ldloca.s V_2 + IL_02bb: initobj valuetype [mscorlib]System.Nullable`1 + IL_02c1: ldloc.2 + IL_02c2: br.s IL_02d2 + + IL_02c4: ldloca.s V_0 + IL_02c6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02cb: ldc.i4.2 + IL_02cc: sub + IL_02cd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02d2: starg.s a + IL_02d4: ldarg.0 + IL_02d5: stloc.0 + IL_02d6: ldloca.s V_0 + IL_02d8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02dd: brtrue.s IL_02ea + + IL_02df: ldloca.s V_2 + IL_02e1: initobj valuetype [mscorlib]System.Nullable`1 + IL_02e7: ldloc.2 + IL_02e8: br.s IL_02f8 + + IL_02ea: ldloca.s V_0 + IL_02ec: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02f1: ldc.i4.2 + IL_02f2: mul + IL_02f3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02f8: starg.s a + IL_02fa: ldarg.0 + IL_02fb: stloc.0 + IL_02fc: ldloca.s V_0 + IL_02fe: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0303: brtrue.s IL_0310 + + IL_0305: ldloca.s V_2 + IL_0307: initobj valuetype [mscorlib]System.Nullable`1 + IL_030d: ldloc.2 + IL_030e: br.s IL_031e + + IL_0310: ldloca.s V_0 + IL_0312: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0317: ldc.i4.2 + IL_0318: div + IL_0319: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_031e: starg.s a + IL_0320: ldarg.0 + IL_0321: stloc.0 + IL_0322: ldloca.s V_0 + IL_0324: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0329: brtrue.s IL_0336 + + IL_032b: ldloca.s V_2 + IL_032d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0333: ldloc.2 + IL_0334: br.s IL_0344 + + IL_0336: ldloca.s V_0 + IL_0338: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_033d: ldc.i4.2 + IL_033e: rem + IL_033f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0344: starg.s a + IL_0346: ldarg.0 + IL_0347: stloc.0 + IL_0348: ldloca.s V_0 + IL_034a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_034f: brtrue.s IL_035c + + IL_0351: ldloca.s V_2 + IL_0353: initobj valuetype [mscorlib]System.Nullable`1 + IL_0359: ldloc.2 + IL_035a: br.s IL_036a + + IL_035c: ldloca.s V_0 + IL_035e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0363: ldc.i4.2 + IL_0364: and + IL_0365: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_036a: starg.s a + IL_036c: ldarg.0 + IL_036d: stloc.0 + IL_036e: ldloca.s V_0 + IL_0370: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0375: brtrue.s IL_0382 + + IL_0377: ldloca.s V_2 + IL_0379: initobj valuetype [mscorlib]System.Nullable`1 + IL_037f: ldloc.2 + IL_0380: br.s IL_0390 + + IL_0382: ldloca.s V_0 + IL_0384: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0389: ldc.i4.2 + IL_038a: or + IL_038b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0390: starg.s a + IL_0392: ldarg.0 + IL_0393: stloc.0 + IL_0394: ldloca.s V_0 + IL_0396: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_039b: brtrue.s IL_03a8 + + IL_039d: ldloca.s V_2 + IL_039f: initobj valuetype [mscorlib]System.Nullable`1 + IL_03a5: ldloc.2 + IL_03a6: br.s IL_03b6 + + IL_03a8: ldloca.s V_0 + IL_03aa: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03af: ldc.i4.2 + IL_03b0: xor + IL_03b1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03b6: starg.s a + IL_03b8: ldarg.0 + IL_03b9: stloc.0 + IL_03ba: ldloca.s V_0 + IL_03bc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03c1: brtrue.s IL_03ce + + IL_03c3: ldloca.s V_2 + IL_03c5: initobj valuetype [mscorlib]System.Nullable`1 + IL_03cb: ldloc.2 + IL_03cc: br.s IL_03dc + + IL_03ce: ldloca.s V_0 + IL_03d0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03d5: ldc.i4.2 + IL_03d6: shl + IL_03d7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03dc: starg.s a + IL_03de: ldarg.0 + IL_03df: stloc.0 + IL_03e0: ldloca.s V_0 + IL_03e2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03e7: brtrue.s IL_03f4 + + IL_03e9: ldloca.s V_2 + IL_03eb: initobj valuetype [mscorlib]System.Nullable`1 + IL_03f1: ldloc.2 + IL_03f2: br.s IL_0402 + + IL_03f4: ldloca.s V_0 + IL_03f6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03fb: ldc.i4.2 + IL_03fc: shr + IL_03fd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0402: starg.s a + IL_0404: ldarg.0 + IL_0405: stloc.0 + IL_0406: ldloca.s V_0 + IL_0408: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_040d: brtrue.s IL_041a + + IL_040f: ldloca.s V_2 + IL_0411: initobj valuetype [mscorlib]System.Nullable`1 + IL_0417: ldloc.2 + IL_0418: br.s IL_0428 + + IL_041a: ldc.i4.2 + IL_041b: ldloca.s V_0 + IL_041d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0422: add + IL_0423: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0428: box valuetype [mscorlib]System.Nullable`1 + IL_042d: call void [mscorlib]System.Console::WriteLine(object) + IL_0432: ret } // end of method LiftedOperators::IntValueConst .method public hidebysig static void NumberBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 406 (0x196) - .maxstack 2 + // Code size 371 (0x173) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -3016,183 +2829,149 @@ IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0012: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0017: brtrue.s IL_001c - - IL_0019: ldc.i4.0 - IL_001a: br.s IL_002c - - IL_001c: ldloca.s V_0 - IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0023: ldloca.s V_1 - IL_0025: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_002a: ceq - IL_002c: brfalse.s IL_0033 - - IL_002e: call void [mscorlib]System.Console::WriteLine() - IL_0033: ldarg.0 - IL_0034: stloc.1 - IL_0035: ldarg.1 - IL_0036: stloc.0 - IL_0037: ldloca.s V_1 - IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003e: ldloca.s V_0 - IL_0040: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0045: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, + IL_0017: ldloca.s V_0 + IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001e: ldloca.s V_1 + IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0025: ceq + IL_0027: and + IL_0028: brfalse.s IL_002f + + IL_002a: call void [mscorlib]System.Console::WriteLine() + IL_002f: ldarg.0 + IL_0030: stloc.1 + IL_0031: ldarg.1 + IL_0032: stloc.0 + IL_0033: ldloca.s V_1 + IL_0035: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003a: ldloca.s V_0 + IL_003c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0041: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_004a: brtrue.s IL_004f - - IL_004c: ldc.i4.1 - IL_004d: br.s IL_0062 - - IL_004f: ldloca.s V_1 - IL_0051: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0056: ldloca.s V_0 - IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_005d: ceq - IL_005f: ldc.i4.0 - IL_0060: ceq - IL_0062: brfalse.s IL_0069 - - IL_0064: call void [mscorlib]System.Console::WriteLine() - IL_0069: ldarg.0 - IL_006a: stloc.0 - IL_006b: ldarg.1 - IL_006c: stloc.1 - IL_006d: ldloca.s V_0 - IL_006f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0074: ldloca.s V_1 - IL_0076: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007b: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0046: ldloca.s V_1 + IL_0048: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004d: ldloca.s V_0 + IL_004f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0054: ceq + IL_0056: and + IL_0057: brtrue.s IL_005e + + IL_0059: call void [mscorlib]System.Console::WriteLine() + IL_005e: ldarg.0 + IL_005f: stloc.0 + IL_0060: ldarg.1 + IL_0061: stloc.1 + IL_0062: ldloca.s V_0 + IL_0064: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0069: ldloca.s V_1 + IL_006b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0070: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0080: brtrue.s IL_0085 - - IL_0082: ldc.i4.0 - IL_0083: br.s IL_0094 - - IL_0085: ldloca.s V_0 - IL_0087: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008c: ldloca.s V_1 - IL_008e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0093: and - IL_0094: brfalse.s IL_009b + IL_0075: ldloca.s V_0 + IL_0077: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007c: ldloca.s V_1 + IL_007e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0083: and + IL_0084: and + IL_0085: brfalse.s IL_008c - IL_0096: call void [mscorlib]System.Console::WriteLine() - IL_009b: ldarg.0 - IL_009c: stloc.1 - IL_009d: ldarg.1 - IL_009e: stloc.0 - IL_009f: ldloca.s V_1 - IL_00a1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a6: ldloca.s V_0 - IL_00a8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00ad: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, + IL_0087: call void [mscorlib]System.Console::WriteLine() + IL_008c: ldarg.0 + IL_008d: stloc.1 + IL_008e: ldarg.1 + IL_008f: stloc.0 + IL_0090: ldloca.s V_1 + IL_0092: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0097: ldloca.s V_0 + IL_0099: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_009e: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00b2: brtrue.s IL_00b7 - - IL_00b4: ldc.i4.0 - IL_00b5: br.s IL_00c6 + IL_00a3: ldloca.s V_1 + IL_00a5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00aa: ldloca.s V_0 + IL_00ac: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00b1: and + IL_00b2: and + IL_00b3: brfalse.s IL_00ba - IL_00b7: ldloca.s V_1 - IL_00b9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00b5: call void [mscorlib]System.Console::WriteLine() + IL_00ba: ldarg.0 + IL_00bb: stloc.0 + IL_00bc: ldarg.1 + IL_00bd: stloc.1 IL_00be: ldloca.s V_0 - IL_00c0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c5: and - IL_00c6: brfalse.s IL_00cd - - IL_00c8: call void [mscorlib]System.Console::WriteLine() - IL_00cd: ldarg.0 - IL_00ce: stloc.0 - IL_00cf: ldarg.1 - IL_00d0: stloc.1 + IL_00c0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c5: ldloca.s V_1 + IL_00c7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00cc: call bool [mscorlib]System.Decimal::op_GreaterThanOrEqual(valuetype [mscorlib]System.Decimal, + valuetype [mscorlib]System.Decimal) IL_00d1: ldloca.s V_0 - IL_00d3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() IL_00d8: ldloca.s V_1 - IL_00da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00df: call bool [mscorlib]System.Decimal::op_GreaterThanOrEqual(valuetype [mscorlib]System.Decimal, - valuetype [mscorlib]System.Decimal) - IL_00e4: brtrue.s IL_00e9 - - IL_00e6: ldc.i4.0 - IL_00e7: br.s IL_00f8 - - IL_00e9: ldloca.s V_0 - IL_00eb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f0: ldloca.s V_1 - IL_00f2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f7: and - IL_00f8: brfalse.s IL_00ff - - IL_00fa: call void [mscorlib]System.Console::WriteLine() - IL_00ff: ldarg.0 - IL_0100: stloc.1 - IL_0101: ldarg.1 - IL_0102: stloc.0 - IL_0103: ldloca.s V_1 - IL_0105: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_010a: ldloca.s V_0 - IL_010c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0111: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, + IL_00da: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00df: and + IL_00e0: and + IL_00e1: brfalse.s IL_00e8 + + IL_00e3: call void [mscorlib]System.Console::WriteLine() + IL_00e8: ldarg.0 + IL_00e9: stloc.1 + IL_00ea: ldarg.1 + IL_00eb: stloc.0 + IL_00ec: ldloca.s V_1 + IL_00ee: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00f3: ldloca.s V_0 + IL_00f5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00fa: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0116: brtrue.s IL_011b - - IL_0118: ldc.i4.0 - IL_0119: br.s IL_012a - - IL_011b: ldloca.s V_1 - IL_011d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0122: ldloca.s V_0 - IL_0124: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0129: and - IL_012a: brfalse.s IL_0131 - - IL_012c: call void [mscorlib]System.Console::WriteLine() - IL_0131: ldarg.0 - IL_0132: stloc.0 - IL_0133: ldarg.1 - IL_0134: stloc.1 - IL_0135: ldloca.s V_0 - IL_0137: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_013c: ldloca.s V_1 - IL_013e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0143: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_00ff: ldloca.s V_1 + IL_0101: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0106: ldloca.s V_0 + IL_0108: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_010d: and + IL_010e: and + IL_010f: brfalse.s IL_0116 + + IL_0111: call void [mscorlib]System.Console::WriteLine() + IL_0116: ldarg.0 + IL_0117: stloc.0 + IL_0118: ldarg.1 + IL_0119: stloc.1 + IL_011a: ldloca.s V_0 + IL_011c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0121: ldloca.s V_1 + IL_0123: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0128: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0148: brtrue.s IL_014d - - IL_014a: ldc.i4.0 - IL_014b: br.s IL_015c - - IL_014d: ldloca.s V_0 - IL_014f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0154: ldloca.s V_1 - IL_0156: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_015b: and - IL_015c: brtrue.s IL_0163 - - IL_015e: call void [mscorlib]System.Console::WriteLine() - IL_0163: ldarg.0 - IL_0164: stloc.1 - IL_0165: ldarg.1 - IL_0166: stloc.0 - IL_0167: ldloca.s V_1 - IL_0169: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016e: ldloca.s V_0 - IL_0170: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0175: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, + IL_012d: ldloca.s V_0 + IL_012f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0134: ldloca.s V_1 + IL_0136: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013b: and + IL_013c: and + IL_013d: brtrue.s IL_0144 + + IL_013f: call void [mscorlib]System.Console::WriteLine() + IL_0144: ldarg.0 + IL_0145: stloc.1 + IL_0146: ldarg.1 + IL_0147: stloc.0 + IL_0148: ldloca.s V_1 + IL_014a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_014f: ldloca.s V_0 + IL_0151: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0156: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_017a: brtrue.s IL_017f - - IL_017c: ldc.i4.0 - IL_017d: br.s IL_018e - - IL_017f: ldloca.s V_1 - IL_0181: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0186: ldloca.s V_0 - IL_0188: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_018d: and - IL_018e: brtrue.s IL_0195 - - IL_0190: call void [mscorlib]System.Console::WriteLine() - IL_0195: ret + IL_015b: ldloca.s V_1 + IL_015d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0162: ldloca.s V_0 + IL_0164: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0169: and + IL_016a: and + IL_016b: brtrue.s IL_0172 + + IL_016d: call void [mscorlib]System.Console::WriteLine() + IL_0172: ret } // end of method LiftedOperators::NumberBasic .method public hidebysig static void NumberComplex(valuetype [mscorlib]System.Nullable`1 a, @@ -3213,8 +2992,8 @@ .method public hidebysig static void NumberValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 946 (0x3b2) - .maxstack 2 + // Code size 926 (0x39e) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2) @@ -3228,382 +3007,362 @@ IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0012: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0017: brtrue.s IL_001c - - IL_0019: ldc.i4.0 - IL_001a: br.s IL_002c - - IL_001c: ldloca.s V_0 - IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0023: ldloca.s V_1 - IL_0025: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_002a: ceq - IL_002c: call void [mscorlib]System.Console::WriteLine(bool) - IL_0031: ldarg.0 - IL_0032: stloc.1 - IL_0033: ldarg.1 - IL_0034: stloc.0 - IL_0035: ldloca.s V_1 - IL_0037: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003c: ldloca.s V_0 - IL_003e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0043: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, + IL_0017: ldloca.s V_0 + IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001e: ldloca.s V_1 + IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0025: ceq + IL_0027: and + IL_0028: call void [mscorlib]System.Console::WriteLine(bool) + IL_002d: ldarg.0 + IL_002e: stloc.1 + IL_002f: ldarg.1 + IL_0030: stloc.0 + IL_0031: ldloca.s V_1 + IL_0033: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0038: ldloca.s V_0 + IL_003a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003f: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0048: brtrue.s IL_004d - - IL_004a: ldc.i4.1 - IL_004b: br.s IL_0060 - - IL_004d: ldloca.s V_1 - IL_004f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0054: ldloca.s V_0 - IL_0056: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_005b: ceq - IL_005d: ldc.i4.0 - IL_005e: ceq - IL_0060: call void [mscorlib]System.Console::WriteLine(bool) - IL_0065: ldarg.0 - IL_0066: stloc.0 - IL_0067: ldarg.1 - IL_0068: stloc.1 - IL_0069: ldloca.s V_0 - IL_006b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0070: ldloca.s V_1 - IL_0072: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0077: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0044: ldloca.s V_1 + IL_0046: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004b: ldloca.s V_0 + IL_004d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0052: ceq + IL_0054: and + IL_0055: ldc.i4.0 + IL_0056: ceq + IL_0058: call void [mscorlib]System.Console::WriteLine(bool) + IL_005d: ldarg.0 + IL_005e: stloc.0 + IL_005f: ldarg.1 + IL_0060: stloc.1 + IL_0061: ldloca.s V_0 + IL_0063: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0068: ldloca.s V_1 + IL_006a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006f: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_007c: brtrue.s IL_0081 - - IL_007e: ldc.i4.0 - IL_007f: br.s IL_0090 - - IL_0081: ldloca.s V_0 - IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: ldloca.s V_1 - IL_008a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008f: and - IL_0090: call void [mscorlib]System.Console::WriteLine(bool) - IL_0095: ldarg.0 - IL_0096: stloc.1 - IL_0097: ldarg.1 - IL_0098: stloc.0 - IL_0099: ldloca.s V_1 - IL_009b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a0: ldloca.s V_0 - IL_00a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a7: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0074: ldloca.s V_0 + IL_0076: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007b: ldloca.s V_1 + IL_007d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0082: and + IL_0083: and + IL_0084: call void [mscorlib]System.Console::WriteLine(bool) + IL_0089: ldarg.0 + IL_008a: stloc.1 + IL_008b: ldarg.1 + IL_008c: stloc.0 + IL_008d: ldloca.s V_1 + IL_008f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0094: ldloca.s V_0 + IL_0096: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_009b: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00ac: brtrue.s IL_00b1 - - IL_00ae: ldc.i4.0 - IL_00af: br.s IL_00c0 - - IL_00b1: ldloca.s V_1 - IL_00b3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00b8: ldloca.s V_0 - IL_00ba: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00bf: and - IL_00c0: ldc.i4.0 - IL_00c1: ceq - IL_00c3: call void [mscorlib]System.Console::WriteLine(bool) - IL_00c8: ldarg.0 - IL_00c9: stloc.0 - IL_00ca: ldarg.1 - IL_00cb: stloc.1 - IL_00cc: ldloca.s V_0 - IL_00ce: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00d3: ldloca.s V_1 - IL_00d5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00da: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, + IL_00a0: ldloca.s V_1 + IL_00a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a7: ldloca.s V_0 + IL_00a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ae: and + IL_00af: and + IL_00b0: ldc.i4.0 + IL_00b1: ceq + IL_00b3: call void [mscorlib]System.Console::WriteLine(bool) + IL_00b8: ldarg.0 + IL_00b9: stloc.0 + IL_00ba: ldarg.1 + IL_00bb: stloc.1 + IL_00bc: ldloca.s V_0 + IL_00be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c3: ldloca.s V_1 + IL_00c5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00ca: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00df: brtrue.s IL_00e4 - - IL_00e1: ldc.i4.0 - IL_00e2: br.s IL_00f3 - - IL_00e4: ldloca.s V_0 - IL_00e6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00cf: ldloca.s V_0 + IL_00d1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d6: ldloca.s V_1 + IL_00d8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00dd: and + IL_00de: and + IL_00df: ldc.i4.0 + IL_00e0: ceq + IL_00e2: call void [mscorlib]System.Console::WriteLine(bool) + IL_00e7: ldarg.0 + IL_00e8: stloc.1 + IL_00e9: ldarg.1 + IL_00ea: stloc.0 IL_00eb: ldloca.s V_1 IL_00ed: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f2: and - IL_00f3: ldc.i4.0 - IL_00f4: ceq - IL_00f6: call void [mscorlib]System.Console::WriteLine(bool) - IL_00fb: ldarg.0 - IL_00fc: stloc.1 - IL_00fd: ldarg.1 - IL_00fe: stloc.0 - IL_00ff: ldloca.s V_1 - IL_0101: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0106: ldloca.s V_0 - IL_0108: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_010d: and - IL_010e: brtrue.s IL_011b - - IL_0110: ldloca.s V_2 - IL_0112: initobj valuetype [mscorlib]System.Nullable`1 - IL_0118: ldloc.2 - IL_0119: br.s IL_0133 - - IL_011b: ldloca.s V_1 - IL_011d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0122: ldloca.s V_0 - IL_0124: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0129: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, + IL_00f2: ldloca.s V_0 + IL_00f4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00f9: and + IL_00fa: brtrue.s IL_0107 + + IL_00fc: ldloca.s V_2 + IL_00fe: initobj valuetype [mscorlib]System.Nullable`1 + IL_0104: ldloc.2 + IL_0105: br.s IL_011f + + IL_0107: ldloca.s V_1 + IL_0109: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_010e: ldloca.s V_0 + IL_0110: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0115: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_012e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0133: box valuetype [mscorlib]System.Nullable`1 - IL_0138: call void [mscorlib]System.Console::WriteLine(object) - IL_013d: ldarg.0 - IL_013e: stloc.0 - IL_013f: ldarg.1 - IL_0140: stloc.1 - IL_0141: ldloca.s V_0 - IL_0143: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0148: ldloca.s V_1 - IL_014a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_014f: and - IL_0150: brtrue.s IL_015d - - IL_0152: ldloca.s V_2 - IL_0154: initobj valuetype [mscorlib]System.Nullable`1 - IL_015a: ldloc.2 - IL_015b: br.s IL_0175 - - IL_015d: ldloca.s V_0 - IL_015f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0164: ldloca.s V_1 - IL_0166: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016b: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, + IL_011a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_011f: box valuetype [mscorlib]System.Nullable`1 + IL_0124: call void [mscorlib]System.Console::WriteLine(object) + IL_0129: ldarg.0 + IL_012a: stloc.0 + IL_012b: ldarg.1 + IL_012c: stloc.1 + IL_012d: ldloca.s V_0 + IL_012f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0134: ldloca.s V_1 + IL_0136: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013b: and + IL_013c: brtrue.s IL_0149 + + IL_013e: ldloca.s V_2 + IL_0140: initobj valuetype [mscorlib]System.Nullable`1 + IL_0146: ldloc.2 + IL_0147: br.s IL_0161 + + IL_0149: ldloca.s V_0 + IL_014b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0150: ldloca.s V_1 + IL_0152: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0157: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0170: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0175: box valuetype [mscorlib]System.Nullable`1 - IL_017a: call void [mscorlib]System.Console::WriteLine(object) - IL_017f: ldarg.0 - IL_0180: stloc.1 - IL_0181: ldarg.1 - IL_0182: stloc.0 - IL_0183: ldloca.s V_1 - IL_0185: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_018a: ldloca.s V_0 - IL_018c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0191: and - IL_0192: brtrue.s IL_019f - - IL_0194: ldloca.s V_2 - IL_0196: initobj valuetype [mscorlib]System.Nullable`1 - IL_019c: ldloc.2 - IL_019d: br.s IL_01b7 - - IL_019f: ldloca.s V_1 - IL_01a1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01a6: ldloca.s V_0 - IL_01a8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ad: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, + IL_015c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0161: box valuetype [mscorlib]System.Nullable`1 + IL_0166: call void [mscorlib]System.Console::WriteLine(object) + IL_016b: ldarg.0 + IL_016c: stloc.1 + IL_016d: ldarg.1 + IL_016e: stloc.0 + IL_016f: ldloca.s V_1 + IL_0171: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0176: ldloca.s V_0 + IL_0178: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_017d: and + IL_017e: brtrue.s IL_018b + + IL_0180: ldloca.s V_2 + IL_0182: initobj valuetype [mscorlib]System.Nullable`1 + IL_0188: ldloc.2 + IL_0189: br.s IL_01a3 + + IL_018b: ldloca.s V_1 + IL_018d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0192: ldloca.s V_0 + IL_0194: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0199: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_01b2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01b7: box valuetype [mscorlib]System.Nullable`1 - IL_01bc: call void [mscorlib]System.Console::WriteLine(object) - IL_01c1: ldarg.0 - IL_01c2: stloc.0 - IL_01c3: ldarg.1 - IL_01c4: stloc.1 - IL_01c5: ldloca.s V_0 - IL_01c7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01cc: ldloca.s V_1 - IL_01ce: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01d3: and - IL_01d4: brtrue.s IL_01e1 - - IL_01d6: ldloca.s V_2 - IL_01d8: initobj valuetype [mscorlib]System.Nullable`1 - IL_01de: ldloc.2 - IL_01df: br.s IL_01f9 - - IL_01e1: ldloca.s V_0 - IL_01e3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01e8: ldloca.s V_1 - IL_01ea: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ef: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, + IL_019e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01a3: box valuetype [mscorlib]System.Nullable`1 + IL_01a8: call void [mscorlib]System.Console::WriteLine(object) + IL_01ad: ldarg.0 + IL_01ae: stloc.0 + IL_01af: ldarg.1 + IL_01b0: stloc.1 + IL_01b1: ldloca.s V_0 + IL_01b3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01b8: ldloca.s V_1 + IL_01ba: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01bf: and + IL_01c0: brtrue.s IL_01cd + + IL_01c2: ldloca.s V_2 + IL_01c4: initobj valuetype [mscorlib]System.Nullable`1 + IL_01ca: ldloc.2 + IL_01cb: br.s IL_01e5 + + IL_01cd: ldloca.s V_0 + IL_01cf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01d4: ldloca.s V_1 + IL_01d6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01db: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_01f4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01f9: box valuetype [mscorlib]System.Nullable`1 - IL_01fe: call void [mscorlib]System.Console::WriteLine(object) - IL_0203: ldarg.0 - IL_0204: stloc.1 - IL_0205: ldarg.1 - IL_0206: stloc.0 - IL_0207: ldloca.s V_1 - IL_0209: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_020e: ldloca.s V_0 - IL_0210: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0215: and - IL_0216: brtrue.s IL_0223 - - IL_0218: ldloca.s V_2 - IL_021a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0220: ldloc.2 - IL_0221: br.s IL_023b - - IL_0223: ldloca.s V_1 - IL_0225: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_022a: ldloca.s V_0 - IL_022c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0231: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, + IL_01e0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01e5: box valuetype [mscorlib]System.Nullable`1 + IL_01ea: call void [mscorlib]System.Console::WriteLine(object) + IL_01ef: ldarg.0 + IL_01f0: stloc.1 + IL_01f1: ldarg.1 + IL_01f2: stloc.0 + IL_01f3: ldloca.s V_1 + IL_01f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01fa: ldloca.s V_0 + IL_01fc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0201: and + IL_0202: brtrue.s IL_020f + + IL_0204: ldloca.s V_2 + IL_0206: initobj valuetype [mscorlib]System.Nullable`1 + IL_020c: ldloc.2 + IL_020d: br.s IL_0227 + + IL_020f: ldloca.s V_1 + IL_0211: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0216: ldloca.s V_0 + IL_0218: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_021d: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0236: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_023b: box valuetype [mscorlib]System.Nullable`1 - IL_0240: call void [mscorlib]System.Console::WriteLine(object) - IL_0245: ldarg.0 - IL_0246: stloc.0 - IL_0247: ldloca.s V_0 - IL_0249: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_024e: brtrue.s IL_0253 - - IL_0250: ldarg.1 - IL_0251: br.s IL_0254 - - IL_0253: ldloc.0 - IL_0254: box valuetype [mscorlib]System.Nullable`1 - IL_0259: call void [mscorlib]System.Console::WriteLine(object) - IL_025e: ldarg.0 - IL_025f: stloc.0 + IL_0222: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0227: box valuetype [mscorlib]System.Nullable`1 + IL_022c: call void [mscorlib]System.Console::WriteLine(object) + IL_0231: ldarg.0 + IL_0232: stloc.0 + IL_0233: ldloca.s V_0 + IL_0235: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_023a: brtrue.s IL_023f + + IL_023c: ldarg.1 + IL_023d: br.s IL_0240 + + IL_023f: ldloc.0 + IL_0240: box valuetype [mscorlib]System.Nullable`1 + IL_0245: call void [mscorlib]System.Console::WriteLine(object) + IL_024a: ldarg.0 + IL_024b: stloc.0 + IL_024c: ldloca.s V_0 + IL_024e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0253: brtrue.s IL_0260 + + IL_0255: ldloca.s V_1 + IL_0257: initobj valuetype [mscorlib]System.Nullable`1 + IL_025d: ldloc.1 + IL_025e: br.s IL_0271 + IL_0260: ldloca.s V_0 - IL_0262: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0267: brtrue.s IL_0274 - - IL_0269: ldloca.s V_1 - IL_026b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0271: ldloc.1 - IL_0272: br.s IL_0285 - - IL_0274: ldloca.s V_0 - IL_0276: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_027b: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_UnaryNegation(valuetype [mscorlib]System.Decimal) - IL_0280: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0285: box valuetype [mscorlib]System.Nullable`1 - IL_028a: call void [mscorlib]System.Console::WriteLine(object) - IL_028f: ldarg.0 - IL_0290: stloc.0 - IL_0291: ldarg.1 - IL_0292: stloc.1 - IL_0293: ldloca.s V_0 - IL_0295: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_029a: ldloca.s V_1 - IL_029c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02a1: and - IL_02a2: brtrue.s IL_02af - - IL_02a4: ldloca.s V_2 - IL_02a6: initobj valuetype [mscorlib]System.Nullable`1 - IL_02ac: ldloc.2 - IL_02ad: br.s IL_02c7 - - IL_02af: ldloca.s V_0 - IL_02b1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02b6: ldloca.s V_1 - IL_02b8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02bd: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, + IL_0262: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0267: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_UnaryNegation(valuetype [mscorlib]System.Decimal) + IL_026c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0271: box valuetype [mscorlib]System.Nullable`1 + IL_0276: call void [mscorlib]System.Console::WriteLine(object) + IL_027b: ldarg.0 + IL_027c: stloc.0 + IL_027d: ldarg.1 + IL_027e: stloc.1 + IL_027f: ldloca.s V_0 + IL_0281: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0286: ldloca.s V_1 + IL_0288: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_028d: and + IL_028e: brtrue.s IL_029b + + IL_0290: ldloca.s V_2 + IL_0292: initobj valuetype [mscorlib]System.Nullable`1 + IL_0298: ldloc.2 + IL_0299: br.s IL_02b3 + + IL_029b: ldloca.s V_0 + IL_029d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02a2: ldloca.s V_1 + IL_02a4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02a9: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_02c2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02c7: starg.s a - IL_02c9: ldarg.0 - IL_02ca: stloc.1 - IL_02cb: ldarg.1 - IL_02cc: stloc.0 - IL_02cd: ldloca.s V_1 - IL_02cf: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02d4: ldloca.s V_0 - IL_02d6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02db: and - IL_02dc: brtrue.s IL_02e9 - - IL_02de: ldloca.s V_2 - IL_02e0: initobj valuetype [mscorlib]System.Nullable`1 - IL_02e6: ldloc.2 - IL_02e7: br.s IL_0301 - - IL_02e9: ldloca.s V_1 - IL_02eb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02f0: ldloca.s V_0 - IL_02f2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02f7: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, + IL_02ae: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02b3: starg.s a + IL_02b5: ldarg.0 + IL_02b6: stloc.1 + IL_02b7: ldarg.1 + IL_02b8: stloc.0 + IL_02b9: ldloca.s V_1 + IL_02bb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02c0: ldloca.s V_0 + IL_02c2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02c7: and + IL_02c8: brtrue.s IL_02d5 + + IL_02ca: ldloca.s V_2 + IL_02cc: initobj valuetype [mscorlib]System.Nullable`1 + IL_02d2: ldloc.2 + IL_02d3: br.s IL_02ed + + IL_02d5: ldloca.s V_1 + IL_02d7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02dc: ldloca.s V_0 + IL_02de: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02e3: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_02fc: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0301: starg.s a - IL_0303: ldarg.0 - IL_0304: stloc.0 - IL_0305: ldarg.1 - IL_0306: stloc.1 - IL_0307: ldloca.s V_0 - IL_0309: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_030e: ldloca.s V_1 - IL_0310: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0315: and - IL_0316: brtrue.s IL_0323 - - IL_0318: ldloca.s V_2 - IL_031a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0320: ldloc.2 - IL_0321: br.s IL_033b - - IL_0323: ldloca.s V_0 - IL_0325: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_032a: ldloca.s V_1 - IL_032c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0331: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, + IL_02e8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02ed: starg.s a + IL_02ef: ldarg.0 + IL_02f0: stloc.0 + IL_02f1: ldarg.1 + IL_02f2: stloc.1 + IL_02f3: ldloca.s V_0 + IL_02f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02fa: ldloca.s V_1 + IL_02fc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0301: and + IL_0302: brtrue.s IL_030f + + IL_0304: ldloca.s V_2 + IL_0306: initobj valuetype [mscorlib]System.Nullable`1 + IL_030c: ldloc.2 + IL_030d: br.s IL_0327 + + IL_030f: ldloca.s V_0 + IL_0311: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0316: ldloca.s V_1 + IL_0318: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_031d: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0336: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_033b: starg.s a - IL_033d: ldarg.0 - IL_033e: stloc.1 - IL_033f: ldarg.1 - IL_0340: stloc.0 - IL_0341: ldloca.s V_1 - IL_0343: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0348: ldloca.s V_0 - IL_034a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_034f: and - IL_0350: brtrue.s IL_035d - - IL_0352: ldloca.s V_2 - IL_0354: initobj valuetype [mscorlib]System.Nullable`1 - IL_035a: ldloc.2 - IL_035b: br.s IL_0375 - - IL_035d: ldloca.s V_1 - IL_035f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0364: ldloca.s V_0 - IL_0366: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_036b: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, + IL_0322: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0327: starg.s a + IL_0329: ldarg.0 + IL_032a: stloc.1 + IL_032b: ldarg.1 + IL_032c: stloc.0 + IL_032d: ldloca.s V_1 + IL_032f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0334: ldloca.s V_0 + IL_0336: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_033b: and + IL_033c: brtrue.s IL_0349 + + IL_033e: ldloca.s V_2 + IL_0340: initobj valuetype [mscorlib]System.Nullable`1 + IL_0346: ldloc.2 + IL_0347: br.s IL_0361 + + IL_0349: ldloca.s V_1 + IL_034b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0350: ldloca.s V_0 + IL_0352: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0357: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0370: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0375: starg.s a - IL_0377: ldarg.0 - IL_0378: stloc.0 - IL_0379: ldarg.1 - IL_037a: stloc.1 - IL_037b: ldloca.s V_0 - IL_037d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0382: ldloca.s V_1 - IL_0384: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0389: and - IL_038a: brtrue.s IL_0397 - - IL_038c: ldloca.s V_2 - IL_038e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0394: ldloc.2 - IL_0395: br.s IL_03af - - IL_0397: ldloca.s V_0 - IL_0399: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_039e: ldloca.s V_1 - IL_03a0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03a5: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, + IL_035c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0361: starg.s a + IL_0363: ldarg.0 + IL_0364: stloc.0 + IL_0365: ldarg.1 + IL_0366: stloc.1 + IL_0367: ldloca.s V_0 + IL_0369: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_036e: ldloca.s V_1 + IL_0370: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0375: and + IL_0376: brtrue.s IL_0383 + + IL_0378: ldloca.s V_2 + IL_037a: initobj valuetype [mscorlib]System.Nullable`1 + IL_0380: ldloc.2 + IL_0381: br.s IL_039b + + IL_0383: ldloca.s V_0 + IL_0385: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_038a: ldloca.s V_1 + IL_038c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0391: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_03aa: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03af: starg.s a - IL_03b1: ret + IL_0396: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_039b: starg.s a + IL_039d: ret } // end of method LiftedOperators::NumberValueBasic .method public hidebysig static void NumberValueComplex(valuetype [mscorlib]System.Nullable`1 a, @@ -3624,8 +3383,8 @@ .method public hidebysig static void CompareWithImplictCast(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 160 (0xa0) - .maxstack 2 + // Code size 156 (0x9c) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -3652,62 +3411,56 @@ IL_0028: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002d: ldloca.s V_1 IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: blt.s IL_0039 - - IL_0036: ldc.i4.0 - IL_0037: br.s IL_0048 + IL_0034: clt + IL_0036: ldloca.s V_0 + IL_0038: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003d: ldloca.s V_1 + IL_003f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0044: and + IL_0045: and + IL_0046: brfalse.s IL_004d + + IL_0048: call void [mscorlib]System.Console::WriteLine() + IL_004d: ldarg.0 + IL_004e: stloc.2 + IL_004f: ldloca.s V_2 + IL_0051: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0056: brtrue.s IL_0063 - IL_0039: ldloca.s V_0 - IL_003b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0040: ldloca.s V_1 - IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0047: and - IL_0048: brfalse.s IL_004f - - IL_004a: call void [mscorlib]System.Console::WriteLine() - IL_004f: ldarg.0 - IL_0050: stloc.2 - IL_0051: ldloca.s V_2 - IL_0053: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0058: brtrue.s IL_0065 - - IL_005a: ldloca.s V_3 - IL_005c: initobj valuetype [mscorlib]System.Nullable`1 - IL_0062: ldloc.3 - IL_0063: br.s IL_0072 - - IL_0065: ldloca.s V_2 - IL_0067: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006c: conv.i8 - IL_006d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0072: stloc.1 - IL_0073: ldarg.1 - IL_0074: stloc.0 - IL_0075: ldloca.s V_1 - IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007c: ldloca.s V_0 - IL_007e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0083: beq.s IL_0088 + IL_0058: ldloca.s V_3 + IL_005a: initobj valuetype [mscorlib]System.Nullable`1 + IL_0060: ldloc.3 + IL_0061: br.s IL_0070 - IL_0085: ldc.i4.0 - IL_0086: br.s IL_0098 + IL_0063: ldloca.s V_2 + IL_0065: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006a: conv.i8 + IL_006b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0070: stloc.1 + IL_0071: ldarg.1 + IL_0072: stloc.0 + IL_0073: ldloca.s V_1 + IL_0075: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_007a: ldloca.s V_0 + IL_007c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0081: ceq + IL_0083: ldloca.s V_1 + IL_0085: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_008a: ldloca.s V_0 + IL_008c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0091: ceq + IL_0093: and + IL_0094: brfalse.s IL_009b - IL_0088: ldloca.s V_1 - IL_008a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008f: ldloca.s V_0 - IL_0091: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0096: ceq - IL_0098: brfalse.s IL_009f - - IL_009a: call void [mscorlib]System.Console::WriteLine() - IL_009f: ret + IL_0096: call void [mscorlib]System.Console::WriteLine() + IL_009b: ret } // end of method LiftedOperators::CompareWithImplictCast .method public hidebysig static void CompareWithSignChange(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 112 (0x70) - .maxstack 2 + // Code size 110 (0x6e) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -3746,20 +3499,17 @@ IL_0048: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_004d: ldloca.s V_1 IL_004f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0054: blt.un.s IL_0059 - - IL_0056: ldc.i4.0 - IL_0057: br.s IL_0068 - - IL_0059: ldloca.s V_0 - IL_005b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0060: ldloca.s V_1 - IL_0062: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0067: and - IL_0068: brfalse.s IL_006f + IL_0054: clt.un + IL_0056: ldloca.s V_0 + IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005d: ldloca.s V_1 + IL_005f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0064: and + IL_0065: and + IL_0066: brfalse.s IL_006d - IL_006a: call void [mscorlib]System.Console::WriteLine() - IL_006f: ret + IL_0068: call void [mscorlib]System.Console::WriteLine() + IL_006d: ret } // end of method LiftedOperators::CompareWithSignChange .method public hidebysig static void StructBasic(valuetype [mscorlib]System.Nullable`1 a, @@ -4762,8 +4512,8 @@ .method public hidebysig static bool RetEq(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 39 (0x27) - .maxstack 2 + // Code size 38 (0x26) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -4774,24 +4524,21 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: beq.s IL_0016 - - IL_0014: ldc.i4.0 - IL_0015: ret - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: ldloca.s V_1 - IL_001f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0024: ceq - IL_0026: ret + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: ceq + IL_0024: and + IL_0025: ret } // end of method LiftedOperators::RetEq .method public hidebysig static bool RetEqConv(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 73 (0x49) - .maxstack 2 + // Code size 72 (0x48) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -4818,22 +4565,19 @@ IL_0028: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002d: ldloca.s V_1 IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: beq.s IL_0038 - - IL_0036: ldc.i4.0 - IL_0037: ret - - IL_0038: ldloca.s V_0 - IL_003a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003f: ldloca.s V_1 - IL_0041: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0046: ceq - IL_0048: ret + IL_0034: ceq + IL_0036: ldloca.s V_0 + IL_0038: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003d: ldloca.s V_1 + IL_003f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0044: ceq + IL_0046: and + IL_0047: ret } // end of method LiftedOperators::RetEqConv .method public hidebysig static bool RetEqConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 26 (0x1a) + // Code size 25 (0x19) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int64 V_1) @@ -4845,19 +4589,16 @@ IL_0006: ldloca.s V_0 IL_0008: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000d: ldloc.1 - IL_000e: beq.s IL_0012 - - IL_0010: ldc.i4.0 - IL_0011: ret - - IL_0012: ldloca.s V_0 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: ret + IL_000e: ceq + IL_0010: ldloca.s V_0 + IL_0012: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0017: and + IL_0018: ret } // end of method LiftedOperators::RetEqConst .method public hidebysig static bool RetIneqConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 29 (0x1d) + // Code size 28 (0x1c) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int64 V_1) @@ -4869,23 +4610,20 @@ IL_0006: ldloca.s V_0 IL_0008: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000d: ldloc.1 - IL_000e: beq.s IL_0012 - - IL_0010: ldc.i4.1 - IL_0011: ret - - IL_0012: ldloca.s V_0 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: ldc.i4.0 - IL_001a: ceq - IL_001c: ret + IL_000e: ceq + IL_0010: ldloca.s V_0 + IL_0012: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0017: and + IL_0018: ldc.i4.0 + IL_0019: ceq + IL_001b: ret } // end of method LiftedOperators::RetIneqConst .method public hidebysig static bool RetLt(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 38 (0x26) - .maxstack 2 + // Code size 37 (0x25) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -4896,22 +4634,19 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: blt.s IL_0016 - - IL_0014: ldc.i4.0 - IL_0015: ret - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: ldloca.s V_1 - IL_001f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0024: and - IL_0025: ret + IL_0012: clt + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: and + IL_0023: and + IL_0024: ret } // end of method LiftedOperators::RetLt .method public hidebysig static bool RetLtConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 25 (0x19) + // Code size 24 (0x18) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1) @@ -4922,21 +4657,18 @@ IL_0005: ldloca.s V_0 IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloc.1 - IL_000d: blt.s IL_0011 - - IL_000f: ldc.i4.0 - IL_0010: ret - - IL_0011: ldloca.s V_0 - IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0018: ret + IL_000d: clt + IL_000f: ldloca.s V_0 + IL_0011: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0016: and + IL_0017: ret } // end of method LiftedOperators::RetLtConst .method public hidebysig static bool RetLtConv(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 72 (0x48) - .maxstack 2 + // Code size 71 (0x47) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -4963,24 +4695,21 @@ IL_0028: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002d: ldloca.s V_1 IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: blt.s IL_0038 - - IL_0036: ldc.i4.0 - IL_0037: ret - - IL_0038: ldloca.s V_0 - IL_003a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003f: ldloca.s V_1 - IL_0041: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0046: and - IL_0047: ret + IL_0034: clt + IL_0036: ldloca.s V_0 + IL_0038: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003d: ldloca.s V_1 + IL_003f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0044: and + IL_0045: and + IL_0046: ret } // end of method LiftedOperators::RetLtConv .method public hidebysig static bool RetNotLt(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 42 (0x2a) - .maxstack 2 + // Code size 40 (0x28) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -4991,19 +4720,16 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: blt.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_0026 - - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: ldloca.s V_1 - IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0025: and - IL_0026: ldc.i4.0 - IL_0027: ceq - IL_0029: ret + IL_0012: clt + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: and + IL_0023: and + IL_0024: ldc.i4.0 + IL_0025: ceq + IL_0027: ret } // end of method LiftedOperators::RetNotLt } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.LiftedOperators diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.roslyn.il index 37d1cf423..12f2d71b0 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.roslyn.il @@ -39,8 +39,8 @@ .method public hidebysig static void BoolBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 107 (0x6b) - .maxstack 2 + // Code size 103 (0x67) + .maxstack 3 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -54,59 +54,53 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_2 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: beq.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0028 - - IL_0018: ldloca.s V_1 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_2 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: ceq - IL_0028: stloc.0 - IL_0029: ldloc.0 - IL_002a: brfalse.s IL_0034 + IL_0013: ceq + IL_0015: ldloca.s V_1 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_2 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: ceq + IL_0025: and + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: brfalse.s IL_0032 - IL_002c: nop - IL_002d: call void [mscorlib]System.Console::WriteLine() - IL_0032: nop - IL_0033: nop - IL_0034: ldarg.0 - IL_0035: stloc.2 - IL_0036: ldarg.1 - IL_0037: stloc.1 - IL_0038: ldloca.s V_2 - IL_003a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003f: ldloca.s V_1 - IL_0041: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0046: beq.s IL_004b - - IL_0048: ldc.i4.1 - IL_0049: br.s IL_005e - - IL_004b: ldloca.s V_2 - IL_004d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0052: ldloca.s V_1 - IL_0054: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0059: ceq - IL_005b: ldc.i4.0 - IL_005c: ceq - IL_005e: stloc.3 - IL_005f: ldloc.3 - IL_0060: brfalse.s IL_006a - - IL_0062: nop - IL_0063: call void [mscorlib]System.Console::WriteLine() - IL_0068: nop - IL_0069: nop - IL_006a: ret + IL_002a: nop + IL_002b: call void [mscorlib]System.Console::WriteLine() + IL_0030: nop + IL_0031: nop + IL_0032: ldarg.0 + IL_0033: stloc.2 + IL_0034: ldarg.1 + IL_0035: stloc.1 + IL_0036: ldloca.s V_2 + IL_0038: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003d: ldloca.s V_1 + IL_003f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0044: ceq + IL_0046: ldloca.s V_2 + IL_0048: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004d: ldloca.s V_1 + IL_004f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0054: ceq + IL_0056: and + IL_0057: ldc.i4.0 + IL_0058: ceq + IL_005a: stloc.3 + IL_005b: ldloc.3 + IL_005c: brfalse.s IL_0066 + + IL_005e: nop + IL_005f: call void [mscorlib]System.Console::WriteLine() + IL_0064: nop + IL_0065: nop + IL_0066: ret } // end of method LiftedOperators::BoolBasic .method public hidebysig static void BoolComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 172 (0xac) + // Code size 164 (0xa4) .maxstack 2 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -123,96 +117,84 @@ IL_000a: ldloca.s V_1 IL_000c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0011: ldloc.2 - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_001e - - IL_0017: ldloca.s V_1 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: stloc.0 - IL_001f: ldloc.0 - IL_0020: brfalse.s IL_002a + IL_0012: ceq + IL_0014: ldloca.s V_1 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: and + IL_001c: stloc.0 + IL_001d: ldloc.0 + IL_001e: brfalse.s IL_0028 - IL_0022: nop - IL_0023: call void [mscorlib]System.Console::WriteLine() - IL_0028: nop - IL_0029: nop - IL_002a: ldarg.0 - IL_002b: stloc.1 - IL_002c: ldarg.1 - IL_002d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0032: stloc.2 - IL_0033: ldloca.s V_1 - IL_0035: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003a: ldloc.2 - IL_003b: beq.s IL_0040 - - IL_003d: ldc.i4.1 - IL_003e: br.s IL_004a - - IL_0040: ldloca.s V_1 - IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0047: ldc.i4.0 - IL_0048: ceq - IL_004a: stloc.3 - IL_004b: ldloc.3 - IL_004c: brfalse.s IL_0056 - - IL_004e: nop - IL_004f: call void [mscorlib]System.Console::WriteLine() - IL_0054: nop - IL_0055: nop - IL_0056: ldarg.1 - IL_0057: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_005c: ldarg.0 - IL_005d: stloc.1 - IL_005e: ldloca.s V_1 - IL_0060: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0065: beq.s IL_006a - - IL_0067: ldc.i4.0 - IL_0068: br.s IL_0071 + IL_0020: nop + IL_0021: call void [mscorlib]System.Console::WriteLine() + IL_0026: nop + IL_0027: nop + IL_0028: ldarg.0 + IL_0029: stloc.1 + IL_002a: ldarg.1 + IL_002b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0030: stloc.2 + IL_0031: ldloca.s V_1 + IL_0033: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0038: ldloc.2 + IL_0039: ceq + IL_003b: ldloca.s V_1 + IL_003d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0042: and + IL_0043: ldc.i4.0 + IL_0044: ceq + IL_0046: stloc.3 + IL_0047: ldloc.3 + IL_0048: brfalse.s IL_0052 - IL_006a: ldloca.s V_1 - IL_006c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0071: stloc.s V_4 - IL_0073: ldloc.s V_4 - IL_0075: brfalse.s IL_007f + IL_004a: nop + IL_004b: call void [mscorlib]System.Console::WriteLine() + IL_0050: nop + IL_0051: nop + IL_0052: ldarg.1 + IL_0053: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0058: ldarg.0 + IL_0059: stloc.1 + IL_005a: ldloca.s V_1 + IL_005c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0061: ceq + IL_0063: ldloca.s V_1 + IL_0065: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006a: and + IL_006b: stloc.s V_4 + IL_006d: ldloc.s V_4 + IL_006f: brfalse.s IL_0079 + IL_0071: nop + IL_0072: call void [mscorlib]System.Console::WriteLine() IL_0077: nop - IL_0078: call void [mscorlib]System.Console::WriteLine() - IL_007d: nop - IL_007e: nop - IL_007f: ldarg.1 - IL_0080: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0085: ldarg.0 - IL_0086: stloc.1 - IL_0087: ldloca.s V_1 - IL_0089: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_008e: beq.s IL_0093 - - IL_0090: ldc.i4.1 - IL_0091: br.s IL_009d - - IL_0093: ldloca.s V_1 - IL_0095: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009a: ldc.i4.0 - IL_009b: ceq - IL_009d: stloc.s V_5 - IL_009f: ldloc.s V_5 - IL_00a1: brfalse.s IL_00ab - - IL_00a3: nop - IL_00a4: call void [mscorlib]System.Console::WriteLine() - IL_00a9: nop - IL_00aa: nop - IL_00ab: ret + IL_0078: nop + IL_0079: ldarg.1 + IL_007a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_007f: ldarg.0 + IL_0080: stloc.1 + IL_0081: ldloca.s V_1 + IL_0083: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0088: ceq + IL_008a: ldloca.s V_1 + IL_008c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0091: and + IL_0092: ldc.i4.0 + IL_0093: ceq + IL_0095: stloc.s V_5 + IL_0097: ldloc.s V_5 + IL_0099: brfalse.s IL_00a3 + + IL_009b: nop + IL_009c: call void [mscorlib]System.Console::WriteLine() + IL_00a1: nop + IL_00a2: nop + IL_00a3: ret } // end of method LiftedOperators::BoolComplex .method public hidebysig static void BoolConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 226 (0xe2) + // Code size 218 (0xda) .maxstack 2 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -230,137 +212,125 @@ IL_0005: ldloca.s V_1 IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloc.2 - IL_000d: beq.s IL_0012 + IL_000d: ceq + IL_000f: ldloca.s V_1 + IL_0011: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0016: and + IL_0017: stloc.0 + IL_0018: ldloc.0 + IL_0019: brfalse.s IL_0023 - IL_000f: ldc.i4.0 - IL_0010: br.s IL_0019 - - IL_0012: ldloca.s V_1 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: stloc.0 - IL_001a: ldloc.0 - IL_001b: brfalse.s IL_0025 - - IL_001d: nop - IL_001e: call void [mscorlib]System.Console::WriteLine() - IL_0023: nop - IL_0024: nop - IL_0025: ldarg.0 - IL_0026: stloc.1 - IL_0027: ldc.i4.1 - IL_0028: stloc.2 - IL_0029: ldloca.s V_1 - IL_002b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0030: ldloc.2 - IL_0031: beq.s IL_0036 - - IL_0033: ldc.i4.1 - IL_0034: br.s IL_0040 - - IL_0036: ldloca.s V_1 - IL_0038: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003d: ldc.i4.0 - IL_003e: ceq - IL_0040: stloc.3 - IL_0041: ldloc.3 - IL_0042: brfalse.s IL_004c - - IL_0044: nop - IL_0045: call void [mscorlib]System.Console::WriteLine() - IL_004a: nop - IL_004b: nop - IL_004c: ldarg.0 - IL_004d: stloc.1 - IL_004e: ldc.i4.0 - IL_004f: stloc.2 - IL_0050: ldloca.s V_1 - IL_0052: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0057: ldloc.2 - IL_0058: beq.s IL_005d + IL_001b: nop + IL_001c: call void [mscorlib]System.Console::WriteLine() + IL_0021: nop + IL_0022: nop + IL_0023: ldarg.0 + IL_0024: stloc.1 + IL_0025: ldc.i4.1 + IL_0026: stloc.2 + IL_0027: ldloca.s V_1 + IL_0029: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_002e: ldloc.2 + IL_002f: ceq + IL_0031: ldloca.s V_1 + IL_0033: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0038: and + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: stloc.3 + IL_003d: ldloc.3 + IL_003e: brfalse.s IL_0048 + + IL_0040: nop + IL_0041: call void [mscorlib]System.Console::WriteLine() + IL_0046: nop + IL_0047: nop + IL_0048: ldarg.0 + IL_0049: stloc.1 + IL_004a: ldc.i4.0 + IL_004b: stloc.2 + IL_004c: ldloca.s V_1 + IL_004e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0053: ldloc.2 + IL_0054: ceq + IL_0056: ldloca.s V_1 + IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005d: and + IL_005e: stloc.s V_4 + IL_0060: ldloc.s V_4 + IL_0062: brfalse.s IL_006c + + IL_0064: nop + IL_0065: call void [mscorlib]System.Console::WriteLine() + IL_006a: nop + IL_006b: nop + IL_006c: ldarg.0 + IL_006d: stloc.1 + IL_006e: ldc.i4.0 + IL_006f: stloc.2 + IL_0070: ldloca.s V_1 + IL_0072: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0077: ldloc.2 + IL_0078: ceq + IL_007a: ldloca.s V_1 + IL_007c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0081: and + IL_0082: ldc.i4.0 + IL_0083: ceq + IL_0085: stloc.s V_5 + IL_0087: ldloc.s V_5 + IL_0089: brfalse.s IL_0093 - IL_005a: ldc.i4.0 - IL_005b: br.s IL_0064 + IL_008b: nop + IL_008c: call void [mscorlib]System.Console::WriteLine() + IL_0091: nop + IL_0092: nop + IL_0093: ldarg.0 + IL_0094: stloc.1 + IL_0095: ldloca.s V_1 + IL_0097: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009c: brtrue.s IL_00a1 - IL_005d: ldloca.s V_1 - IL_005f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0064: stloc.s V_4 - IL_0066: ldloc.s V_4 - IL_0068: brfalse.s IL_0072 + IL_009e: ldc.i4.1 + IL_009f: br.s IL_00a8 - IL_006a: nop - IL_006b: call void [mscorlib]System.Console::WriteLine() - IL_0070: nop - IL_0071: nop - IL_0072: ldarg.0 - IL_0073: stloc.1 - IL_0074: ldc.i4.0 - IL_0075: stloc.2 - IL_0076: ldloca.s V_1 - IL_0078: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007d: ldloc.2 - IL_007e: beq.s IL_0083 - - IL_0080: ldc.i4.1 - IL_0081: br.s IL_008d + IL_00a1: ldloca.s V_1 + IL_00a3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a8: stloc.s V_6 + IL_00aa: ldloc.s V_6 + IL_00ac: brfalse.s IL_00b6 - IL_0083: ldloca.s V_1 - IL_0085: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008a: ldc.i4.0 - IL_008b: ceq - IL_008d: stloc.s V_5 - IL_008f: ldloc.s V_5 - IL_0091: brfalse.s IL_009b - - IL_0093: nop - IL_0094: call void [mscorlib]System.Console::WriteLine() - IL_0099: nop - IL_009a: nop - IL_009b: ldarg.0 - IL_009c: stloc.1 - IL_009d: ldloca.s V_1 - IL_009f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a4: brtrue.s IL_00a9 + IL_00ae: nop + IL_00af: call void [mscorlib]System.Console::WriteLine() + IL_00b4: nop + IL_00b5: nop + IL_00b6: ldarg.0 + IL_00b7: stloc.1 + IL_00b8: ldloca.s V_1 + IL_00ba: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00bf: brtrue.s IL_00c4 - IL_00a6: ldc.i4.1 - IL_00a7: br.s IL_00b0 + IL_00c1: ldc.i4.0 + IL_00c2: br.s IL_00cb - IL_00a9: ldloca.s V_1 - IL_00ab: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b0: stloc.s V_6 - IL_00b2: ldloc.s V_6 - IL_00b4: brfalse.s IL_00be + IL_00c4: ldloca.s V_1 + IL_00c6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00cb: stloc.s V_7 + IL_00cd: ldloc.s V_7 + IL_00cf: brfalse.s IL_00d9 - IL_00b6: nop - IL_00b7: call void [mscorlib]System.Console::WriteLine() - IL_00bc: nop - IL_00bd: nop - IL_00be: ldarg.0 - IL_00bf: stloc.1 - IL_00c0: ldloca.s V_1 - IL_00c2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c7: brtrue.s IL_00cc - - IL_00c9: ldc.i4.0 - IL_00ca: br.s IL_00d3 - - IL_00cc: ldloca.s V_1 - IL_00ce: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00d3: stloc.s V_7 - IL_00d5: ldloc.s V_7 - IL_00d7: brfalse.s IL_00e1 - - IL_00d9: nop - IL_00da: call void [mscorlib]System.Console::WriteLine() - IL_00df: nop - IL_00e0: nop - IL_00e1: ret + IL_00d1: nop + IL_00d2: call void [mscorlib]System.Console::WriteLine() + IL_00d7: nop + IL_00d8: nop + IL_00d9: ret } // end of method LiftedOperators::BoolConst .method public hidebysig static void BoolValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 452 (0x1c4) - .maxstack 2 + // Code size 448 (0x1c0) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2) @@ -373,215 +343,209 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_1 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: beq.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0028 - - IL_0018: ldloca.s V_0 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_1 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: ceq - IL_0028: call void [mscorlib]System.Console::WriteLine(bool) - IL_002d: nop - IL_002e: ldarg.0 - IL_002f: stloc.1 - IL_0030: ldarg.1 - IL_0031: stloc.0 - IL_0032: ldloca.s V_1 - IL_0034: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0039: ldloca.s V_0 - IL_003b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0040: beq.s IL_0045 - - IL_0042: ldc.i4.1 - IL_0043: br.s IL_0058 - - IL_0045: ldloca.s V_1 - IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004c: ldloca.s V_0 - IL_004e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0053: ceq - IL_0055: ldc.i4.0 - IL_0056: ceq - IL_0058: call void [mscorlib]System.Console::WriteLine(bool) - IL_005d: nop - IL_005e: ldarg.0 - IL_005f: stloc.0 - IL_0060: ldarg.1 - IL_0061: stloc.1 - IL_0062: ldloca.s V_0 - IL_0064: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0069: brtrue.s IL_0080 + IL_0013: ceq + IL_0015: ldloca.s V_0 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_1 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: ceq + IL_0025: and + IL_0026: call void [mscorlib]System.Console::WriteLine(bool) + IL_002b: nop + IL_002c: ldarg.0 + IL_002d: stloc.1 + IL_002e: ldarg.1 + IL_002f: stloc.0 + IL_0030: ldloca.s V_1 + IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0037: ldloca.s V_0 + IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003e: ceq + IL_0040: ldloca.s V_1 + IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: ceq + IL_0050: and + IL_0051: ldc.i4.0 + IL_0052: ceq + IL_0054: call void [mscorlib]System.Console::WriteLine(bool) + IL_0059: nop + IL_005a: ldarg.0 + IL_005b: stloc.0 + IL_005c: ldarg.1 + IL_005d: stloc.1 + IL_005e: ldloca.s V_0 + IL_0060: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0065: brtrue.s IL_007c + + IL_0067: ldloca.s V_1 + IL_0069: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006e: brtrue.s IL_0079 + + IL_0070: ldloca.s V_0 + IL_0072: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0077: brfalse.s IL_007c + + IL_0079: ldloc.0 + IL_007a: br.s IL_007d + + IL_007c: ldloc.1 + IL_007d: box valuetype [mscorlib]System.Nullable`1 + IL_0082: call void [mscorlib]System.Console::WriteLine(object) + IL_0087: nop + IL_0088: ldarg.0 + IL_0089: stloc.1 + IL_008a: ldarg.1 + IL_008b: stloc.0 + IL_008c: ldloca.s V_1 + IL_008e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0093: brtrue.s IL_00aa - IL_006b: ldloca.s V_1 - IL_006d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0072: brtrue.s IL_007d + IL_0095: ldloca.s V_0 + IL_0097: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_009c: brtrue.s IL_00a7 - IL_0074: ldloca.s V_0 - IL_0076: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_007b: brfalse.s IL_0080 + IL_009e: ldloca.s V_1 + IL_00a0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a5: brfalse.s IL_00aa - IL_007d: ldloc.0 - IL_007e: br.s IL_0081 + IL_00a7: ldloc.0 + IL_00a8: br.s IL_00ab - IL_0080: ldloc.1 - IL_0081: box valuetype [mscorlib]System.Nullable`1 - IL_0086: call void [mscorlib]System.Console::WriteLine(object) - IL_008b: nop - IL_008c: ldarg.0 - IL_008d: stloc.1 - IL_008e: ldarg.1 - IL_008f: stloc.0 - IL_0090: ldloca.s V_1 - IL_0092: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0097: brtrue.s IL_00ae - - IL_0099: ldloca.s V_0 - IL_009b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a0: brtrue.s IL_00ab - - IL_00a2: ldloca.s V_1 - IL_00a4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a9: brfalse.s IL_00ae - - IL_00ab: ldloc.0 - IL_00ac: br.s IL_00af - - IL_00ae: ldloc.1 - IL_00af: box valuetype [mscorlib]System.Nullable`1 - IL_00b4: call void [mscorlib]System.Console::WriteLine(object) - IL_00b9: nop - IL_00ba: ldarg.0 - IL_00bb: stloc.0 - IL_00bc: ldarg.1 - IL_00bd: stloc.1 - IL_00be: ldloca.s V_0 - IL_00c0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c5: ldloca.s V_1 - IL_00c7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00cc: and - IL_00cd: brtrue.s IL_00da - - IL_00cf: ldloca.s V_2 - IL_00d1: initobj valuetype [mscorlib]System.Nullable`1 - IL_00d7: ldloc.2 - IL_00d8: br.s IL_00ee + IL_00aa: ldloc.1 + IL_00ab: box valuetype [mscorlib]System.Nullable`1 + IL_00b0: call void [mscorlib]System.Console::WriteLine(object) + IL_00b5: nop + IL_00b6: ldarg.0 + IL_00b7: stloc.0 + IL_00b8: ldarg.1 + IL_00b9: stloc.1 + IL_00ba: ldloca.s V_0 + IL_00bc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c1: ldloca.s V_1 + IL_00c3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c8: and + IL_00c9: brtrue.s IL_00d6 - IL_00da: ldloca.s V_0 - IL_00dc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e1: ldloca.s V_1 - IL_00e3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e8: xor - IL_00e9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00ee: box valuetype [mscorlib]System.Nullable`1 - IL_00f3: call void [mscorlib]System.Console::WriteLine(object) - IL_00f8: nop - IL_00f9: ldarg.0 - IL_00fa: stloc.1 - IL_00fb: ldloca.s V_1 - IL_00fd: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0102: brtrue.s IL_0107 - - IL_0104: ldarg.1 - IL_0105: br.s IL_0108 - - IL_0107: ldloc.1 - IL_0108: box valuetype [mscorlib]System.Nullable`1 - IL_010d: call void [mscorlib]System.Console::WriteLine(object) - IL_0112: nop - IL_0113: ldarg.0 - IL_0114: stloc.1 - IL_0115: ldloca.s V_1 - IL_0117: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_011c: brtrue.s IL_0129 - - IL_011e: ldloca.s V_0 - IL_0120: initobj valuetype [mscorlib]System.Nullable`1 - IL_0126: ldloc.0 - IL_0127: br.s IL_0138 + IL_00cb: ldloca.s V_2 + IL_00cd: initobj valuetype [mscorlib]System.Nullable`1 + IL_00d3: ldloc.2 + IL_00d4: br.s IL_00ea - IL_0129: ldloca.s V_1 - IL_012b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0130: ldc.i4.0 - IL_0131: ceq - IL_0133: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0138: box valuetype [mscorlib]System.Nullable`1 - IL_013d: call void [mscorlib]System.Console::WriteLine(object) - IL_0142: nop - IL_0143: ldarg.0 - IL_0144: stloc.1 - IL_0145: ldarg.1 - IL_0146: stloc.0 - IL_0147: ldloca.s V_1 - IL_0149: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014e: brtrue.s IL_0165 + IL_00d6: ldloca.s V_0 + IL_00d8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00dd: ldloca.s V_1 + IL_00df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00e4: xor + IL_00e5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00ea: box valuetype [mscorlib]System.Nullable`1 + IL_00ef: call void [mscorlib]System.Console::WriteLine(object) + IL_00f4: nop + IL_00f5: ldarg.0 + IL_00f6: stloc.1 + IL_00f7: ldloca.s V_1 + IL_00f9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00fe: brtrue.s IL_0103 + + IL_0100: ldarg.1 + IL_0101: br.s IL_0104 + + IL_0103: ldloc.1 + IL_0104: box valuetype [mscorlib]System.Nullable`1 + IL_0109: call void [mscorlib]System.Console::WriteLine(object) + IL_010e: nop + IL_010f: ldarg.0 + IL_0110: stloc.1 + IL_0111: ldloca.s V_1 + IL_0113: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0118: brtrue.s IL_0125 + + IL_011a: ldloca.s V_0 + IL_011c: initobj valuetype [mscorlib]System.Nullable`1 + IL_0122: ldloc.0 + IL_0123: br.s IL_0134 + + IL_0125: ldloca.s V_1 + IL_0127: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_012c: ldc.i4.0 + IL_012d: ceq + IL_012f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0134: box valuetype [mscorlib]System.Nullable`1 + IL_0139: call void [mscorlib]System.Console::WriteLine(object) + IL_013e: nop + IL_013f: ldarg.0 + IL_0140: stloc.1 + IL_0141: ldarg.1 + IL_0142: stloc.0 + IL_0143: ldloca.s V_1 + IL_0145: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_014a: brtrue.s IL_0161 - IL_0150: ldloca.s V_0 - IL_0152: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0157: brtrue.s IL_0162 - - IL_0159: ldloca.s V_1 - IL_015b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0160: brfalse.s IL_0165 - - IL_0162: ldloc.1 - IL_0163: br.s IL_0166 - - IL_0165: ldloc.0 - IL_0166: starg.s a - IL_0168: ldarg.0 - IL_0169: stloc.0 - IL_016a: ldarg.1 - IL_016b: stloc.1 - IL_016c: ldloca.s V_0 - IL_016e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0173: brtrue.s IL_018a - - IL_0175: ldloca.s V_1 - IL_0177: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_017c: brtrue.s IL_0187 + IL_014c: ldloca.s V_0 + IL_014e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0153: brtrue.s IL_015e - IL_017e: ldloca.s V_0 - IL_0180: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0185: brfalse.s IL_018a + IL_0155: ldloca.s V_1 + IL_0157: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_015c: brfalse.s IL_0161 - IL_0187: ldloc.1 - IL_0188: br.s IL_018b + IL_015e: ldloc.1 + IL_015f: br.s IL_0162 - IL_018a: ldloc.0 - IL_018b: starg.s a - IL_018d: ldarg.0 - IL_018e: stloc.1 - IL_018f: ldarg.1 - IL_0190: stloc.0 - IL_0191: ldloca.s V_1 - IL_0193: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0198: ldloca.s V_0 - IL_019a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_019f: and - IL_01a0: brtrue.s IL_01ad - - IL_01a2: ldloca.s V_2 - IL_01a4: initobj valuetype [mscorlib]System.Nullable`1 - IL_01aa: ldloc.2 - IL_01ab: br.s IL_01c1 - - IL_01ad: ldloca.s V_1 - IL_01af: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01b4: ldloca.s V_0 - IL_01b6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01bb: xor - IL_01bc: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01c1: starg.s a - IL_01c3: ret + IL_0161: ldloc.0 + IL_0162: starg.s a + IL_0164: ldarg.0 + IL_0165: stloc.0 + IL_0166: ldarg.1 + IL_0167: stloc.1 + IL_0168: ldloca.s V_0 + IL_016a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_016f: brtrue.s IL_0186 + + IL_0171: ldloca.s V_1 + IL_0173: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0178: brtrue.s IL_0183 + + IL_017a: ldloca.s V_0 + IL_017c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0181: brfalse.s IL_0186 + + IL_0183: ldloc.1 + IL_0184: br.s IL_0187 + + IL_0186: ldloc.0 + IL_0187: starg.s a + IL_0189: ldarg.0 + IL_018a: stloc.1 + IL_018b: ldarg.1 + IL_018c: stloc.0 + IL_018d: ldloca.s V_1 + IL_018f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0194: ldloca.s V_0 + IL_0196: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_019b: and + IL_019c: brtrue.s IL_01a9 + + IL_019e: ldloca.s V_2 + IL_01a0: initobj valuetype [mscorlib]System.Nullable`1 + IL_01a6: ldloc.2 + IL_01a7: br.s IL_01bd + + IL_01a9: ldloca.s V_1 + IL_01ab: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01b0: ldloca.s V_0 + IL_01b2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01b7: xor + IL_01b8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01bd: starg.s a + IL_01bf: ret } // end of method LiftedOperators::BoolValueBasic .method public hidebysig static void BoolValueComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 528 (0x210) + // Code size 520 (0x208) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1, @@ -596,231 +560,219 @@ IL_000a: ldloca.s V_0 IL_000c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0011: ldloc.1 - IL_0012: beq.s IL_0017 + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: and + IL_001c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0021: nop + IL_0022: ldarg.0 + IL_0023: stloc.0 + IL_0024: ldarg.1 + IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_002a: stloc.1 + IL_002b: ldloca.s V_0 + IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0032: ldloc.1 + IL_0033: ceq + IL_0035: ldloca.s V_0 + IL_0037: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003c: and + IL_003d: ldc.i4.0 + IL_003e: ceq + IL_0040: call void [mscorlib]System.Console::WriteLine(bool) + IL_0045: nop + IL_0046: ldarg.1 + IL_0047: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_004c: ldarg.0 + IL_004d: stloc.0 + IL_004e: ldloca.s V_0 + IL_0050: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0055: ceq + IL_0057: ldloca.s V_0 + IL_0059: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005e: and + IL_005f: call void [mscorlib]System.Console::WriteLine(bool) + IL_0064: nop + IL_0065: ldarg.1 + IL_0066: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_006b: ldarg.0 + IL_006c: stloc.0 + IL_006d: ldloca.s V_0 + IL_006f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0074: ceq + IL_0076: ldloca.s V_0 + IL_0078: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007d: and + IL_007e: ldc.i4.0 + IL_007f: ceq + IL_0081: call void [mscorlib]System.Console::WriteLine(bool) + IL_0086: nop + IL_0087: ldarg.0 + IL_0088: stloc.0 + IL_0089: ldarg.1 + IL_008a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_008f: stloc.1 + IL_0090: ldloca.s V_0 + IL_0092: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0097: brtrue.s IL_00a4 + + IL_0099: ldloca.s V_2 + IL_009b: initobj valuetype [mscorlib]System.Nullable`1 + IL_00a1: ldloc.2 + IL_00a2: br.s IL_00b2 - IL_0014: ldc.i4.0 - IL_0015: br.s IL_001e + IL_00a4: ldloca.s V_0 + IL_00a6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00ab: ldloc.1 + IL_00ac: xor + IL_00ad: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00b2: box valuetype [mscorlib]System.Nullable`1 + IL_00b7: call void [mscorlib]System.Console::WriteLine(object) + IL_00bc: nop + IL_00bd: ldarg.0 + IL_00be: stloc.0 + IL_00bf: ldloca.s V_0 + IL_00c1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c6: brtrue.s IL_00d0 - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: call void [mscorlib]System.Console::WriteLine(bool) - IL_0023: nop - IL_0024: ldarg.0 - IL_0025: stloc.0 - IL_0026: ldarg.1 - IL_0027: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002c: stloc.1 - IL_002d: ldloca.s V_0 - IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: ldloc.1 - IL_0035: beq.s IL_003a + IL_00c8: ldarg.1 + IL_00c9: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00ce: br.s IL_00d7 - IL_0037: ldc.i4.1 - IL_0038: br.s IL_0044 + IL_00d0: ldloca.s V_0 + IL_00d2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d7: call void [mscorlib]System.Console::WriteLine(bool) + IL_00dc: nop + IL_00dd: ldarg.0 + IL_00de: stloc.0 + IL_00df: ldarg.1 + IL_00e0: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00e5: stloc.1 + IL_00e6: ldloca.s V_0 + IL_00e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ed: brtrue.s IL_00fa - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldc.i4.0 - IL_0042: ceq - IL_0044: call void [mscorlib]System.Console::WriteLine(bool) - IL_0049: nop - IL_004a: ldarg.1 - IL_004b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0050: ldarg.0 - IL_0051: stloc.0 - IL_0052: ldloca.s V_0 - IL_0054: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0059: beq.s IL_005e - - IL_005b: ldc.i4.0 - IL_005c: br.s IL_0065 + IL_00ef: ldloca.s V_2 + IL_00f1: initobj valuetype [mscorlib]System.Nullable`1 + IL_00f7: ldloc.2 + IL_00f8: br.s IL_0108 - IL_005e: ldloca.s V_0 - IL_0060: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0065: call void [mscorlib]System.Console::WriteLine(bool) - IL_006a: nop - IL_006b: ldarg.1 - IL_006c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0071: ldarg.0 - IL_0072: stloc.0 - IL_0073: ldloca.s V_0 - IL_0075: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007a: beq.s IL_007f - - IL_007c: ldc.i4.1 - IL_007d: br.s IL_0089 - - IL_007f: ldloca.s V_0 - IL_0081: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0086: ldc.i4.0 - IL_0087: ceq - IL_0089: call void [mscorlib]System.Console::WriteLine(bool) - IL_008e: nop - IL_008f: ldarg.0 - IL_0090: stloc.0 - IL_0091: ldarg.1 - IL_0092: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0097: stloc.1 - IL_0098: ldloca.s V_0 - IL_009a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009f: brtrue.s IL_00ac - - IL_00a1: ldloca.s V_2 - IL_00a3: initobj valuetype [mscorlib]System.Nullable`1 - IL_00a9: ldloc.2 - IL_00aa: br.s IL_00ba - - IL_00ac: ldloca.s V_0 - IL_00ae: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b3: ldloc.1 - IL_00b4: xor - IL_00b5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00ba: box valuetype [mscorlib]System.Nullable`1 - IL_00bf: call void [mscorlib]System.Console::WriteLine(object) - IL_00c4: nop - IL_00c5: ldarg.0 - IL_00c6: stloc.0 - IL_00c7: ldloca.s V_0 - IL_00c9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ce: brtrue.s IL_00d8 - - IL_00d0: ldarg.1 - IL_00d1: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00d6: br.s IL_00df - - IL_00d8: ldloca.s V_0 - IL_00da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00df: call void [mscorlib]System.Console::WriteLine(bool) - IL_00e4: nop - IL_00e5: ldarg.0 - IL_00e6: stloc.0 - IL_00e7: ldarg.1 - IL_00e8: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00ed: stloc.1 - IL_00ee: ldloca.s V_0 - IL_00f0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f5: brtrue.s IL_0102 - - IL_00f7: ldloca.s V_2 - IL_00f9: initobj valuetype [mscorlib]System.Nullable`1 - IL_00ff: ldloc.2 - IL_0100: br.s IL_0110 - - IL_0102: ldloca.s V_0 - IL_0104: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0109: ldloc.1 - IL_010a: xor - IL_010b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0110: starg.s a - IL_0112: ldarg.1 - IL_0113: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0118: ldarg.0 - IL_0119: stloc.0 - IL_011a: brtrue.s IL_0124 - - IL_011c: ldc.i4.0 - IL_011d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0122: br.s IL_0125 - - IL_0124: ldloc.0 - IL_0125: box valuetype [mscorlib]System.Nullable`1 - IL_012a: call void [mscorlib]System.Console::WriteLine(object) - IL_012f: nop - IL_0130: ldarg.1 - IL_0131: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0136: ldarg.0 - IL_0137: stloc.0 - IL_0138: brtrue.s IL_013d + IL_00fa: ldloca.s V_0 + IL_00fc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0101: ldloc.1 + IL_0102: xor + IL_0103: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0108: starg.s a + IL_010a: ldarg.1 + IL_010b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0110: ldarg.0 + IL_0111: stloc.0 + IL_0112: brtrue.s IL_011c + + IL_0114: ldc.i4.0 + IL_0115: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_011a: br.s IL_011d + + IL_011c: ldloc.0 + IL_011d: box valuetype [mscorlib]System.Nullable`1 + IL_0122: call void [mscorlib]System.Console::WriteLine(object) + IL_0127: nop + IL_0128: ldarg.1 + IL_0129: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_012e: ldarg.0 + IL_012f: stloc.0 + IL_0130: brtrue.s IL_0135 + + IL_0132: ldloc.0 + IL_0133: br.s IL_013b + + IL_0135: ldc.i4.1 + IL_0136: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_013b: box valuetype [mscorlib]System.Nullable`1 + IL_0140: call void [mscorlib]System.Console::WriteLine(object) + IL_0145: nop + IL_0146: ldarg.1 + IL_0147: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_014c: stloc.1 + IL_014d: ldarg.0 + IL_014e: stloc.0 + IL_014f: ldloca.s V_0 + IL_0151: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0156: brtrue.s IL_0163 - IL_013a: ldloc.0 - IL_013b: br.s IL_0143 + IL_0158: ldloca.s V_2 + IL_015a: initobj valuetype [mscorlib]System.Nullable`1 + IL_0160: ldloc.2 + IL_0161: br.s IL_0171 - IL_013d: ldc.i4.1 - IL_013e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0143: box valuetype [mscorlib]System.Nullable`1 - IL_0148: call void [mscorlib]System.Console::WriteLine(object) - IL_014d: nop - IL_014e: ldarg.1 - IL_014f: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0154: stloc.1 - IL_0155: ldarg.0 - IL_0156: stloc.0 - IL_0157: ldloca.s V_0 - IL_0159: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_015e: brtrue.s IL_016b - - IL_0160: ldloca.s V_2 - IL_0162: initobj valuetype [mscorlib]System.Nullable`1 - IL_0168: ldloc.2 - IL_0169: br.s IL_0179 - - IL_016b: ldloc.1 - IL_016c: ldloca.s V_0 - IL_016e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0173: xor - IL_0174: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0179: box valuetype [mscorlib]System.Nullable`1 - IL_017e: call void [mscorlib]System.Console::WriteLine(object) - IL_0183: nop - IL_0184: ldc.i4.0 - IL_0185: newarr valuetype [mscorlib]System.Nullable`1 - IL_018a: ldc.i4.0 - IL_018b: ldelema valuetype [mscorlib]System.Nullable`1 - IL_0190: dup - IL_0191: ldobj valuetype [mscorlib]System.Nullable`1 - IL_0196: stloc.0 - IL_0197: ldarg.1 - IL_0198: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_019d: stloc.1 - IL_019e: ldloca.s V_0 - IL_01a0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01a5: brtrue.s IL_01b2 - - IL_01a7: ldloca.s V_2 - IL_01a9: initobj valuetype [mscorlib]System.Nullable`1 - IL_01af: ldloc.2 - IL_01b0: br.s IL_01c0 - - IL_01b2: ldloca.s V_0 - IL_01b4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01b9: ldloc.1 - IL_01ba: xor - IL_01bb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01c0: stobj valuetype [mscorlib]System.Nullable`1 - IL_01c5: ldc.i4.0 - IL_01c6: newarr valuetype [mscorlib]System.Nullable`1 - IL_01cb: ldc.i4.0 - IL_01cc: ldelema valuetype [mscorlib]System.Nullable`1 - IL_01d1: dup - IL_01d2: ldobj valuetype [mscorlib]System.Nullable`1 - IL_01d7: stloc.0 - IL_01d8: ldarg.0 - IL_01d9: stloc.2 - IL_01da: ldloca.s V_0 - IL_01dc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01e1: ldloca.s V_2 - IL_01e3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01e8: and - IL_01e9: brtrue.s IL_01f6 - - IL_01eb: ldloca.s V_3 - IL_01ed: initobj valuetype [mscorlib]System.Nullable`1 - IL_01f3: ldloc.3 - IL_01f4: br.s IL_020a - - IL_01f6: ldloca.s V_0 - IL_01f8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01fd: ldloca.s V_2 - IL_01ff: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0204: xor - IL_0205: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_020a: stobj valuetype [mscorlib]System.Nullable`1 - IL_020f: ret + IL_0163: ldloc.1 + IL_0164: ldloca.s V_0 + IL_0166: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_016b: xor + IL_016c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0171: box valuetype [mscorlib]System.Nullable`1 + IL_0176: call void [mscorlib]System.Console::WriteLine(object) + IL_017b: nop + IL_017c: ldc.i4.0 + IL_017d: newarr valuetype [mscorlib]System.Nullable`1 + IL_0182: ldc.i4.0 + IL_0183: ldelema valuetype [mscorlib]System.Nullable`1 + IL_0188: dup + IL_0189: ldobj valuetype [mscorlib]System.Nullable`1 + IL_018e: stloc.0 + IL_018f: ldarg.1 + IL_0190: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0195: stloc.1 + IL_0196: ldloca.s V_0 + IL_0198: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_019d: brtrue.s IL_01aa + + IL_019f: ldloca.s V_2 + IL_01a1: initobj valuetype [mscorlib]System.Nullable`1 + IL_01a7: ldloc.2 + IL_01a8: br.s IL_01b8 + + IL_01aa: ldloca.s V_0 + IL_01ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01b1: ldloc.1 + IL_01b2: xor + IL_01b3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01b8: stobj valuetype [mscorlib]System.Nullable`1 + IL_01bd: ldc.i4.0 + IL_01be: newarr valuetype [mscorlib]System.Nullable`1 + IL_01c3: ldc.i4.0 + IL_01c4: ldelema valuetype [mscorlib]System.Nullable`1 + IL_01c9: dup + IL_01ca: ldobj valuetype [mscorlib]System.Nullable`1 + IL_01cf: stloc.0 + IL_01d0: ldarg.0 + IL_01d1: stloc.2 + IL_01d2: ldloca.s V_0 + IL_01d4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01d9: ldloca.s V_2 + IL_01db: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01e0: and + IL_01e1: brtrue.s IL_01ee + + IL_01e3: ldloca.s V_3 + IL_01e5: initobj valuetype [mscorlib]System.Nullable`1 + IL_01eb: ldloc.3 + IL_01ec: br.s IL_0202 + + IL_01ee: ldloca.s V_0 + IL_01f0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01f5: ldloca.s V_2 + IL_01f7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01fc: xor + IL_01fd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0202: stobj valuetype [mscorlib]System.Nullable`1 + IL_0207: ret } // end of method LiftedOperators::BoolValueComplex .method public hidebysig static void BoolValueConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 182 (0xb6) + // Code size 174 (0xae) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1) @@ -832,101 +784,89 @@ IL_0005: ldloca.s V_0 IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloc.1 - IL_000d: beq.s IL_0012 - - IL_000f: ldc.i4.0 - IL_0010: br.s IL_0019 - - IL_0012: ldloca.s V_0 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: call void [mscorlib]System.Console::WriteLine(bool) - IL_001e: nop - IL_001f: ldarg.0 - IL_0020: stloc.0 - IL_0021: ldc.i4.1 - IL_0022: stloc.1 - IL_0023: ldloca.s V_0 - IL_0025: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_002a: ldloc.1 - IL_002b: beq.s IL_0030 - - IL_002d: ldc.i4.1 - IL_002e: br.s IL_003a - - IL_0030: ldloca.s V_0 - IL_0032: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0037: ldc.i4.0 - IL_0038: ceq - IL_003a: call void [mscorlib]System.Console::WriteLine(bool) - IL_003f: nop - IL_0040: ldarg.0 - IL_0041: stloc.0 - IL_0042: ldc.i4.0 - IL_0043: stloc.1 - IL_0044: ldloca.s V_0 - IL_0046: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_004b: ldloc.1 - IL_004c: beq.s IL_0051 - - IL_004e: ldc.i4.0 - IL_004f: br.s IL_0058 - - IL_0051: ldloca.s V_0 - IL_0053: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0058: call void [mscorlib]System.Console::WriteLine(bool) - IL_005d: nop - IL_005e: ldarg.0 - IL_005f: stloc.0 - IL_0060: ldc.i4.0 - IL_0061: stloc.1 - IL_0062: ldloca.s V_0 - IL_0064: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0069: ldloc.1 - IL_006a: beq.s IL_006f - - IL_006c: ldc.i4.1 - IL_006d: br.s IL_0079 - - IL_006f: ldloca.s V_0 - IL_0071: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0076: ldc.i4.0 - IL_0077: ceq - IL_0079: call void [mscorlib]System.Console::WriteLine(bool) - IL_007e: nop - IL_007f: ldarg.0 - IL_0080: stloc.0 - IL_0081: ldloca.s V_0 - IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: brtrue.s IL_008d - - IL_008a: ldc.i4.1 - IL_008b: br.s IL_0094 - - IL_008d: ldloca.s V_0 - IL_008f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0094: call void [mscorlib]System.Console::WriteLine(bool) - IL_0099: nop - IL_009a: ldarg.0 - IL_009b: stloc.0 - IL_009c: ldloca.s V_0 - IL_009e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a3: brtrue.s IL_00a8 - - IL_00a5: ldc.i4.0 - IL_00a6: br.s IL_00af - - IL_00a8: ldloca.s V_0 - IL_00aa: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00af: call void [mscorlib]System.Console::WriteLine(bool) - IL_00b4: nop - IL_00b5: ret + IL_000d: ceq + IL_000f: ldloca.s V_0 + IL_0011: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0016: and + IL_0017: call void [mscorlib]System.Console::WriteLine(bool) + IL_001c: nop + IL_001d: ldarg.0 + IL_001e: stloc.0 + IL_001f: ldc.i4.1 + IL_0020: stloc.1 + IL_0021: ldloca.s V_0 + IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0028: ldloc.1 + IL_0029: ceq + IL_002b: ldloca.s V_0 + IL_002d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0032: and + IL_0033: ldc.i4.0 + IL_0034: ceq + IL_0036: call void [mscorlib]System.Console::WriteLine(bool) + IL_003b: nop + IL_003c: ldarg.0 + IL_003d: stloc.0 + IL_003e: ldc.i4.0 + IL_003f: stloc.1 + IL_0040: ldloca.s V_0 + IL_0042: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0047: ldloc.1 + IL_0048: ceq + IL_004a: ldloca.s V_0 + IL_004c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0051: and + IL_0052: call void [mscorlib]System.Console::WriteLine(bool) + IL_0057: nop + IL_0058: ldarg.0 + IL_0059: stloc.0 + IL_005a: ldc.i4.0 + IL_005b: stloc.1 + IL_005c: ldloca.s V_0 + IL_005e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0063: ldloc.1 + IL_0064: ceq + IL_0066: ldloca.s V_0 + IL_0068: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006d: and + IL_006e: ldc.i4.0 + IL_006f: ceq + IL_0071: call void [mscorlib]System.Console::WriteLine(bool) + IL_0076: nop + IL_0077: ldarg.0 + IL_0078: stloc.0 + IL_0079: ldloca.s V_0 + IL_007b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0080: brtrue.s IL_0085 + + IL_0082: ldc.i4.1 + IL_0083: br.s IL_008c + + IL_0085: ldloca.s V_0 + IL_0087: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0091: nop + IL_0092: ldarg.0 + IL_0093: stloc.0 + IL_0094: ldloca.s V_0 + IL_0096: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009b: brtrue.s IL_00a0 + + IL_009d: ldc.i4.0 + IL_009e: br.s IL_00a7 + + IL_00a0: ldloca.s V_0 + IL_00a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a7: call void [mscorlib]System.Console::WriteLine(bool) + IL_00ac: nop + IL_00ad: ret } // end of method LiftedOperators::BoolValueConst .method public hidebysig static void IntBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 425 (0x1a9) - .maxstack 2 + // Code size 418 (0x1a2) + .maxstack 3 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -946,219 +886,201 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_2 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: beq.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0028 - - IL_0018: ldloca.s V_1 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_2 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: ceq - IL_0028: stloc.0 - IL_0029: ldloc.0 - IL_002a: brfalse.s IL_0034 + IL_0013: ceq + IL_0015: ldloca.s V_1 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_2 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: ceq + IL_0025: and + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: brfalse.s IL_0032 - IL_002c: nop - IL_002d: call void [mscorlib]System.Console::WriteLine() - IL_0032: nop - IL_0033: nop - IL_0034: ldarg.0 - IL_0035: stloc.2 - IL_0036: ldarg.1 - IL_0037: stloc.1 - IL_0038: ldloca.s V_2 - IL_003a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003f: ldloca.s V_1 - IL_0041: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0046: beq.s IL_004b - - IL_0048: ldc.i4.1 - IL_0049: br.s IL_005e - - IL_004b: ldloca.s V_2 - IL_004d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0052: ldloca.s V_1 - IL_0054: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0059: ceq - IL_005b: ldc.i4.0 - IL_005c: ceq - IL_005e: stloc.3 - IL_005f: ldloc.3 - IL_0060: brfalse.s IL_006a - - IL_0062: nop - IL_0063: call void [mscorlib]System.Console::WriteLine() - IL_0068: nop - IL_0069: nop - IL_006a: ldarg.0 - IL_006b: stloc.1 - IL_006c: ldarg.1 - IL_006d: stloc.2 - IL_006e: ldloca.s V_1 - IL_0070: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0075: ldloca.s V_2 - IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007c: bgt.s IL_0081 - - IL_007e: ldc.i4.0 - IL_007f: br.s IL_0090 - - IL_0081: ldloca.s V_1 + IL_002a: nop + IL_002b: call void [mscorlib]System.Console::WriteLine() + IL_0030: nop + IL_0031: nop + IL_0032: ldarg.0 + IL_0033: stloc.2 + IL_0034: ldarg.1 + IL_0035: stloc.1 + IL_0036: ldloca.s V_2 + IL_0038: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003d: ldloca.s V_1 + IL_003f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0044: ceq + IL_0046: ldloca.s V_2 + IL_0048: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004d: ldloca.s V_1 + IL_004f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0054: ceq + IL_0056: and + IL_0057: ldc.i4.0 + IL_0058: ceq + IL_005a: stloc.3 + IL_005b: ldloc.3 + IL_005c: brfalse.s IL_0066 + + IL_005e: nop + IL_005f: call void [mscorlib]System.Console::WriteLine() + IL_0064: nop + IL_0065: nop + IL_0066: ldarg.0 + IL_0067: stloc.1 + IL_0068: ldarg.1 + IL_0069: stloc.2 + IL_006a: ldloca.s V_1 + IL_006c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0071: ldloca.s V_2 + IL_0073: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0078: cgt + IL_007a: ldloca.s V_1 + IL_007c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0081: ldloca.s V_2 IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: ldloca.s V_2 - IL_008a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008f: and - IL_0090: stloc.s V_4 - IL_0092: ldloc.s V_4 - IL_0094: brfalse.s IL_009e - + IL_0088: and + IL_0089: and + IL_008a: stloc.s V_4 + IL_008c: ldloc.s V_4 + IL_008e: brfalse.s IL_0098 + + IL_0090: nop + IL_0091: call void [mscorlib]System.Console::WriteLine() IL_0096: nop - IL_0097: call void [mscorlib]System.Console::WriteLine() - IL_009c: nop - IL_009d: nop - IL_009e: ldarg.0 - IL_009f: stloc.2 - IL_00a0: ldarg.1 - IL_00a1: stloc.1 - IL_00a2: ldloca.s V_2 - IL_00a4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a9: ldloca.s V_1 - IL_00ab: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b0: blt.s IL_00b5 - - IL_00b2: ldc.i4.0 - IL_00b3: br.s IL_00c4 - - IL_00b5: ldloca.s V_2 - IL_00b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00bc: ldloca.s V_1 - IL_00be: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c3: and - IL_00c4: stloc.s V_5 - IL_00c6: ldloc.s V_5 - IL_00c8: brfalse.s IL_00d2 - - IL_00ca: nop - IL_00cb: call void [mscorlib]System.Console::WriteLine() - IL_00d0: nop - IL_00d1: nop - IL_00d2: ldarg.0 - IL_00d3: stloc.1 - IL_00d4: ldarg.1 - IL_00d5: stloc.2 - IL_00d6: ldloca.s V_1 - IL_00d8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00dd: ldloca.s V_2 - IL_00df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e4: bge.s IL_00e9 - - IL_00e6: ldc.i4.0 - IL_00e7: br.s IL_00f8 - - IL_00e9: ldloca.s V_1 - IL_00eb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f0: ldloca.s V_2 - IL_00f2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f7: and - IL_00f8: stloc.s V_6 - IL_00fa: ldloc.s V_6 - IL_00fc: brfalse.s IL_0106 + IL_0097: nop + IL_0098: ldarg.0 + IL_0099: stloc.2 + IL_009a: ldarg.1 + IL_009b: stloc.1 + IL_009c: ldloca.s V_2 + IL_009e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a3: ldloca.s V_1 + IL_00a5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00aa: clt + IL_00ac: ldloca.s V_2 + IL_00ae: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00b3: ldloca.s V_1 + IL_00b5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ba: and + IL_00bb: and + IL_00bc: stloc.s V_5 + IL_00be: ldloc.s V_5 + IL_00c0: brfalse.s IL_00ca + + IL_00c2: nop + IL_00c3: call void [mscorlib]System.Console::WriteLine() + IL_00c8: nop + IL_00c9: nop + IL_00ca: ldarg.0 + IL_00cb: stloc.1 + IL_00cc: ldarg.1 + IL_00cd: stloc.2 + IL_00ce: ldloca.s V_1 + IL_00d0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d5: ldloca.s V_2 + IL_00d7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00dc: clt + IL_00de: ldc.i4.0 + IL_00df: ceq + IL_00e1: ldloca.s V_1 + IL_00e3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e8: ldloca.s V_2 + IL_00ea: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ef: and + IL_00f0: and + IL_00f1: stloc.s V_6 + IL_00f3: ldloc.s V_6 + IL_00f5: brfalse.s IL_00ff + IL_00f7: nop + IL_00f8: call void [mscorlib]System.Console::WriteLine() + IL_00fd: nop IL_00fe: nop - IL_00ff: call void [mscorlib]System.Console::WriteLine() - IL_0104: nop - IL_0105: nop - IL_0106: ldarg.0 - IL_0107: stloc.2 - IL_0108: ldarg.1 - IL_0109: stloc.1 - IL_010a: ldloca.s V_2 + IL_00ff: ldarg.0 + IL_0100: stloc.2 + IL_0101: ldarg.1 + IL_0102: stloc.1 + IL_0103: ldloca.s V_2 + IL_0105: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_010a: ldloca.s V_1 IL_010c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0111: ldloca.s V_1 - IL_0113: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0118: ble.s IL_011d - - IL_011a: ldc.i4.0 - IL_011b: br.s IL_012c - - IL_011d: ldloca.s V_2 + IL_0111: cgt + IL_0113: ldc.i4.0 + IL_0114: ceq + IL_0116: ldloca.s V_2 + IL_0118: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_011d: ldloca.s V_1 IL_011f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0124: ldloca.s V_1 - IL_0126: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_012b: and - IL_012c: stloc.s V_7 - IL_012e: ldloc.s V_7 - IL_0130: brfalse.s IL_013a + IL_0124: and + IL_0125: and + IL_0126: stloc.s V_7 + IL_0128: ldloc.s V_7 + IL_012a: brfalse.s IL_0134 + IL_012c: nop + IL_012d: call void [mscorlib]System.Console::WriteLine() IL_0132: nop - IL_0133: call void [mscorlib]System.Console::WriteLine() - IL_0138: nop - IL_0139: nop - IL_013a: ldarg.0 - IL_013b: stloc.1 - IL_013c: ldarg.1 - IL_013d: stloc.2 - IL_013e: ldloca.s V_1 - IL_0140: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0145: ldloca.s V_2 - IL_0147: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014c: bgt.s IL_0151 - - IL_014e: ldc.i4.0 - IL_014f: br.s IL_0160 - - IL_0151: ldloca.s V_1 - IL_0153: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0158: ldloca.s V_2 - IL_015a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_015f: and - IL_0160: ldc.i4.0 - IL_0161: ceq - IL_0163: stloc.s V_8 - IL_0165: ldloc.s V_8 - IL_0167: brfalse.s IL_0171 - - IL_0169: nop - IL_016a: call void [mscorlib]System.Console::WriteLine() - IL_016f: nop - IL_0170: nop - IL_0171: ldarg.0 - IL_0172: stloc.2 - IL_0173: ldarg.1 - IL_0174: stloc.1 - IL_0175: ldloca.s V_2 - IL_0177: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_017c: ldloca.s V_1 - IL_017e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0183: ble.s IL_0188 - - IL_0185: ldc.i4.0 - IL_0186: br.s IL_0197 - - IL_0188: ldloca.s V_2 - IL_018a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_018f: ldloca.s V_1 - IL_0191: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0196: and - IL_0197: ldc.i4.0 - IL_0198: ceq - IL_019a: stloc.s V_9 - IL_019c: ldloc.s V_9 - IL_019e: brfalse.s IL_01a8 + IL_0133: nop + IL_0134: ldarg.0 + IL_0135: stloc.1 + IL_0136: ldarg.1 + IL_0137: stloc.2 + IL_0138: ldloca.s V_1 + IL_013a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_013f: ldloca.s V_2 + IL_0141: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0146: cgt + IL_0148: ldloca.s V_1 + IL_014a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_014f: ldloca.s V_2 + IL_0151: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0156: and + IL_0157: and + IL_0158: ldc.i4.0 + IL_0159: ceq + IL_015b: stloc.s V_8 + IL_015d: ldloc.s V_8 + IL_015f: brfalse.s IL_0169 + IL_0161: nop + IL_0162: call void [mscorlib]System.Console::WriteLine() + IL_0167: nop + IL_0168: nop + IL_0169: ldarg.0 + IL_016a: stloc.2 + IL_016b: ldarg.1 + IL_016c: stloc.1 + IL_016d: ldloca.s V_2 + IL_016f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0174: ldloca.s V_1 + IL_0176: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_017b: cgt + IL_017d: ldc.i4.0 + IL_017e: ceq + IL_0180: ldloca.s V_2 + IL_0182: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0187: ldloca.s V_1 + IL_0189: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_018e: and + IL_018f: and + IL_0190: ldc.i4.0 + IL_0191: ceq + IL_0193: stloc.s V_9 + IL_0195: ldloc.s V_9 + IL_0197: brfalse.s IL_01a1 + + IL_0199: nop + IL_019a: call void [mscorlib]System.Console::WriteLine() + IL_019f: nop IL_01a0: nop - IL_01a1: call void [mscorlib]System.Console::WriteLine() - IL_01a6: nop - IL_01a7: nop - IL_01a8: ret + IL_01a1: ret } // end of method LiftedOperators::IntBasic .method public hidebysig static void IntComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 348 (0x15c) + // Code size 335 (0x14f) .maxstack 2 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -1179,190 +1101,168 @@ IL_000a: ldloca.s V_1 IL_000c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0011: ldloc.2 - IL_0012: beq.s IL_0017 + IL_0012: ceq + IL_0014: ldloca.s V_1 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: and + IL_001c: stloc.0 + IL_001d: ldloc.0 + IL_001e: brfalse.s IL_0028 - IL_0014: ldc.i4.0 - IL_0015: br.s IL_001e - - IL_0017: ldloca.s V_1 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: stloc.0 - IL_001f: ldloc.0 - IL_0020: brfalse.s IL_002a - - IL_0022: nop - IL_0023: call void [mscorlib]System.Console::WriteLine() - IL_0028: nop - IL_0029: nop - IL_002a: ldarg.0 - IL_002b: stloc.1 - IL_002c: ldarg.1 - IL_002d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0032: stloc.2 - IL_0033: ldloca.s V_1 - IL_0035: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003a: ldloc.2 - IL_003b: beq.s IL_0040 - - IL_003d: ldc.i4.1 - IL_003e: br.s IL_004a + IL_0020: nop + IL_0021: call void [mscorlib]System.Console::WriteLine() + IL_0026: nop + IL_0027: nop + IL_0028: ldarg.0 + IL_0029: stloc.1 + IL_002a: ldarg.1 + IL_002b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0030: stloc.2 + IL_0031: ldloca.s V_1 + IL_0033: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0038: ldloc.2 + IL_0039: ceq + IL_003b: ldloca.s V_1 + IL_003d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0042: and + IL_0043: ldc.i4.0 + IL_0044: ceq + IL_0046: stloc.3 + IL_0047: ldloc.3 + IL_0048: brfalse.s IL_0052 - IL_0040: ldloca.s V_1 - IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0047: ldc.i4.0 - IL_0048: ceq - IL_004a: stloc.3 - IL_004b: ldloc.3 - IL_004c: brfalse.s IL_0056 - - IL_004e: nop - IL_004f: call void [mscorlib]System.Console::WriteLine() - IL_0054: nop - IL_0055: nop - IL_0056: ldarg.0 - IL_0057: stloc.1 - IL_0058: ldarg.1 - IL_0059: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_005e: stloc.2 - IL_005f: ldloca.s V_1 - IL_0061: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0066: ldloc.2 - IL_0067: bgt.s IL_006c - - IL_0069: ldc.i4.0 - IL_006a: br.s IL_0073 - - IL_006c: ldloca.s V_1 - IL_006e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0073: stloc.s V_4 - IL_0075: ldloc.s V_4 - IL_0077: brfalse.s IL_0081 + IL_004a: nop + IL_004b: call void [mscorlib]System.Console::WriteLine() + IL_0050: nop + IL_0051: nop + IL_0052: ldarg.0 + IL_0053: stloc.1 + IL_0054: ldarg.1 + IL_0055: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_005a: stloc.2 + IL_005b: ldloca.s V_1 + IL_005d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0062: ldloc.2 + IL_0063: cgt + IL_0065: ldloca.s V_1 + IL_0067: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006c: and + IL_006d: stloc.s V_4 + IL_006f: ldloc.s V_4 + IL_0071: brfalse.s IL_007b + IL_0073: nop + IL_0074: call void [mscorlib]System.Console::WriteLine() IL_0079: nop - IL_007a: call void [mscorlib]System.Console::WriteLine() - IL_007f: nop - IL_0080: nop - IL_0081: ldarg.1 - IL_0082: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0087: ldarg.0 - IL_0088: stloc.1 - IL_0089: ldloca.s V_1 - IL_008b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0090: beq.s IL_0095 - - IL_0092: ldc.i4.0 - IL_0093: br.s IL_009c - - IL_0095: ldloca.s V_1 - IL_0097: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009c: stloc.s V_5 - IL_009e: ldloc.s V_5 - IL_00a0: brfalse.s IL_00aa - - IL_00a2: nop - IL_00a3: call void [mscorlib]System.Console::WriteLine() - IL_00a8: nop - IL_00a9: nop - IL_00aa: ldarg.1 - IL_00ab: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00b0: ldarg.0 - IL_00b1: stloc.1 - IL_00b2: ldloca.s V_1 - IL_00b4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b9: beq.s IL_00be - - IL_00bb: ldc.i4.1 - IL_00bc: br.s IL_00c8 - - IL_00be: ldloca.s V_1 - IL_00c0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c5: ldc.i4.0 - IL_00c6: ceq - IL_00c8: stloc.s V_6 - IL_00ca: ldloc.s V_6 - IL_00cc: brfalse.s IL_00d6 - - IL_00ce: nop - IL_00cf: call void [mscorlib]System.Console::WriteLine() - IL_00d4: nop - IL_00d5: nop - IL_00d6: ldarg.1 - IL_00d7: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00dc: ldarg.0 - IL_00dd: stloc.1 - IL_00de: ldloca.s V_1 - IL_00e0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e5: bgt.s IL_00ea - - IL_00e7: ldc.i4.0 - IL_00e8: br.s IL_00f1 - - IL_00ea: ldloca.s V_1 - IL_00ec: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f1: stloc.s V_7 - IL_00f3: ldloc.s V_7 - IL_00f5: brfalse.s IL_00ff + IL_007a: nop + IL_007b: ldarg.1 + IL_007c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0081: ldarg.0 + IL_0082: stloc.1 + IL_0083: ldloca.s V_1 + IL_0085: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008a: ceq + IL_008c: ldloca.s V_1 + IL_008e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0093: and + IL_0094: stloc.s V_5 + IL_0096: ldloc.s V_5 + IL_0098: brfalse.s IL_00a2 - IL_00f7: nop - IL_00f8: call void [mscorlib]System.Console::WriteLine() - IL_00fd: nop - IL_00fe: nop - IL_00ff: ldarg.0 - IL_0100: stloc.1 - IL_0101: ldarg.1 - IL_0102: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0107: stloc.2 - IL_0108: ldloca.s V_1 - IL_010a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_010f: ldloc.2 - IL_0110: bgt.s IL_0115 - - IL_0112: ldc.i4.0 - IL_0113: br.s IL_011c - - IL_0115: ldloca.s V_1 - IL_0117: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_011c: ldc.i4.0 - IL_011d: ceq - IL_011f: stloc.s V_8 - IL_0121: ldloc.s V_8 - IL_0123: brfalse.s IL_012d - - IL_0125: nop - IL_0126: call void [mscorlib]System.Console::WriteLine() - IL_012b: nop - IL_012c: nop - IL_012d: ldarg.0 - IL_012e: stloc.1 - IL_012f: ldarg.1 - IL_0130: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0135: stloc.2 - IL_0136: ldloca.s V_1 - IL_0138: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_013d: ldloc.2 - IL_013e: ble.s IL_0143 + IL_009a: nop + IL_009b: call void [mscorlib]System.Console::WriteLine() + IL_00a0: nop + IL_00a1: nop + IL_00a2: ldarg.1 + IL_00a3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00a8: ldarg.0 + IL_00a9: stloc.1 + IL_00aa: ldloca.s V_1 + IL_00ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b1: ceq + IL_00b3: ldloca.s V_1 + IL_00b5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ba: and + IL_00bb: ldc.i4.0 + IL_00bc: ceq + IL_00be: stloc.s V_6 + IL_00c0: ldloc.s V_6 + IL_00c2: brfalse.s IL_00cc - IL_0140: ldc.i4.0 - IL_0141: br.s IL_014a + IL_00c4: nop + IL_00c5: call void [mscorlib]System.Console::WriteLine() + IL_00ca: nop + IL_00cb: nop + IL_00cc: ldarg.1 + IL_00cd: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00d2: ldarg.0 + IL_00d3: stloc.1 + IL_00d4: ldloca.s V_1 + IL_00d6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00db: cgt + IL_00dd: ldloca.s V_1 + IL_00df: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e4: and + IL_00e5: stloc.s V_7 + IL_00e7: ldloc.s V_7 + IL_00e9: brfalse.s IL_00f3 + + IL_00eb: nop + IL_00ec: call void [mscorlib]System.Console::WriteLine() + IL_00f1: nop + IL_00f2: nop + IL_00f3: ldarg.0 + IL_00f4: stloc.1 + IL_00f5: ldarg.1 + IL_00f6: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00fb: stloc.2 + IL_00fc: ldloca.s V_1 + IL_00fe: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0103: ldloc.2 + IL_0104: cgt + IL_0106: ldloca.s V_1 + IL_0108: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_010d: and + IL_010e: ldc.i4.0 + IL_010f: ceq + IL_0111: stloc.s V_8 + IL_0113: ldloc.s V_8 + IL_0115: brfalse.s IL_011f - IL_0143: ldloca.s V_1 - IL_0145: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_014a: ldc.i4.0 - IL_014b: ceq - IL_014d: stloc.s V_9 - IL_014f: ldloc.s V_9 - IL_0151: brfalse.s IL_015b - - IL_0153: nop - IL_0154: call void [mscorlib]System.Console::WriteLine() - IL_0159: nop - IL_015a: nop - IL_015b: ret + IL_0117: nop + IL_0118: call void [mscorlib]System.Console::WriteLine() + IL_011d: nop + IL_011e: nop + IL_011f: ldarg.0 + IL_0120: stloc.1 + IL_0121: ldarg.1 + IL_0122: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0127: stloc.2 + IL_0128: ldloca.s V_1 + IL_012a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_012f: ldloc.2 + IL_0130: cgt + IL_0132: ldc.i4.0 + IL_0133: ceq + IL_0135: ldloca.s V_1 + IL_0137: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013c: and + IL_013d: ldc.i4.0 + IL_013e: ceq + IL_0140: stloc.s V_9 + IL_0142: ldloc.s V_9 + IL_0144: brfalse.s IL_014e + + IL_0146: nop + IL_0147: call void [mscorlib]System.Console::WriteLine() + IL_014c: nop + IL_014d: nop + IL_014e: ret } // end of method LiftedOperators::IntComplex .method public hidebysig static void IntConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 226 (0xe2) + // Code size 214 (0xd6) .maxstack 2 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -1380,136 +1280,118 @@ IL_0005: ldloca.s V_1 IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloc.2 - IL_000d: beq.s IL_0012 - - IL_000f: ldc.i4.0 - IL_0010: br.s IL_0019 - - IL_0012: ldloca.s V_1 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: stloc.0 - IL_001a: ldloc.0 - IL_001b: brfalse.s IL_0025 + IL_000d: ceq + IL_000f: ldloca.s V_1 + IL_0011: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0016: and + IL_0017: stloc.0 + IL_0018: ldloc.0 + IL_0019: brfalse.s IL_0023 - IL_001d: nop - IL_001e: call void [mscorlib]System.Console::WriteLine() - IL_0023: nop - IL_0024: nop - IL_0025: ldarg.0 - IL_0026: stloc.1 - IL_0027: ldc.i4.2 - IL_0028: stloc.2 - IL_0029: ldloca.s V_1 - IL_002b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0030: ldloc.2 - IL_0031: beq.s IL_0036 - - IL_0033: ldc.i4.1 - IL_0034: br.s IL_0040 - - IL_0036: ldloca.s V_1 - IL_0038: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003d: ldc.i4.0 - IL_003e: ceq - IL_0040: stloc.3 - IL_0041: ldloc.3 - IL_0042: brfalse.s IL_004c - - IL_0044: nop - IL_0045: call void [mscorlib]System.Console::WriteLine() - IL_004a: nop - IL_004b: nop - IL_004c: ldarg.0 - IL_004d: stloc.1 - IL_004e: ldc.i4.2 - IL_004f: stloc.2 - IL_0050: ldloca.s V_1 - IL_0052: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0057: ldloc.2 - IL_0058: bgt.s IL_005d - - IL_005a: ldc.i4.0 - IL_005b: br.s IL_0064 - - IL_005d: ldloca.s V_1 - IL_005f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0064: stloc.s V_4 - IL_0066: ldloc.s V_4 - IL_0068: brfalse.s IL_0072 + IL_001b: nop + IL_001c: call void [mscorlib]System.Console::WriteLine() + IL_0021: nop + IL_0022: nop + IL_0023: ldarg.0 + IL_0024: stloc.1 + IL_0025: ldc.i4.2 + IL_0026: stloc.2 + IL_0027: ldloca.s V_1 + IL_0029: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_002e: ldloc.2 + IL_002f: ceq + IL_0031: ldloca.s V_1 + IL_0033: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0038: and + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: stloc.3 + IL_003d: ldloc.3 + IL_003e: brfalse.s IL_0048 + + IL_0040: nop + IL_0041: call void [mscorlib]System.Console::WriteLine() + IL_0046: nop + IL_0047: nop + IL_0048: ldarg.0 + IL_0049: stloc.1 + IL_004a: ldc.i4.2 + IL_004b: stloc.2 + IL_004c: ldloca.s V_1 + IL_004e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0053: ldloc.2 + IL_0054: cgt + IL_0056: ldloca.s V_1 + IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005d: and + IL_005e: stloc.s V_4 + IL_0060: ldloc.s V_4 + IL_0062: brfalse.s IL_006c + IL_0064: nop + IL_0065: call void [mscorlib]System.Console::WriteLine() IL_006a: nop - IL_006b: call void [mscorlib]System.Console::WriteLine() - IL_0070: nop - IL_0071: nop - IL_0072: ldc.i4.2 - IL_0073: ldarg.0 - IL_0074: stloc.1 - IL_0075: ldloca.s V_1 - IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007c: beq.s IL_0081 - - IL_007e: ldc.i4.0 - IL_007f: br.s IL_0088 - - IL_0081: ldloca.s V_1 - IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: stloc.s V_5 - IL_008a: ldloc.s V_5 - IL_008c: brfalse.s IL_0096 - - IL_008e: nop - IL_008f: call void [mscorlib]System.Console::WriteLine() - IL_0094: nop - IL_0095: nop - IL_0096: ldc.i4.2 - IL_0097: ldarg.0 - IL_0098: stloc.1 - IL_0099: ldloca.s V_1 - IL_009b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a0: beq.s IL_00a5 - - IL_00a2: ldc.i4.1 - IL_00a3: br.s IL_00af - - IL_00a5: ldloca.s V_1 - IL_00a7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ac: ldc.i4.0 - IL_00ad: ceq - IL_00af: stloc.s V_6 - IL_00b1: ldloc.s V_6 - IL_00b3: brfalse.s IL_00bd + IL_006b: nop + IL_006c: ldc.i4.2 + IL_006d: ldarg.0 + IL_006e: stloc.1 + IL_006f: ldloca.s V_1 + IL_0071: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0076: ceq + IL_0078: ldloca.s V_1 + IL_007a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007f: and + IL_0080: stloc.s V_5 + IL_0082: ldloc.s V_5 + IL_0084: brfalse.s IL_008e + + IL_0086: nop + IL_0087: call void [mscorlib]System.Console::WriteLine() + IL_008c: nop + IL_008d: nop + IL_008e: ldc.i4.2 + IL_008f: ldarg.0 + IL_0090: stloc.1 + IL_0091: ldloca.s V_1 + IL_0093: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0098: ceq + IL_009a: ldloca.s V_1 + IL_009c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a1: and + IL_00a2: ldc.i4.0 + IL_00a3: ceq + IL_00a5: stloc.s V_6 + IL_00a7: ldloc.s V_6 + IL_00a9: brfalse.s IL_00b3 - IL_00b5: nop - IL_00b6: call void [mscorlib]System.Console::WriteLine() - IL_00bb: nop - IL_00bc: nop - IL_00bd: ldc.i4.2 - IL_00be: ldarg.0 - IL_00bf: stloc.1 - IL_00c0: ldloca.s V_1 - IL_00c2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c7: bgt.s IL_00cc - - IL_00c9: ldc.i4.0 - IL_00ca: br.s IL_00d3 - - IL_00cc: ldloca.s V_1 - IL_00ce: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d3: stloc.s V_7 - IL_00d5: ldloc.s V_7 - IL_00d7: brfalse.s IL_00e1 - - IL_00d9: nop - IL_00da: call void [mscorlib]System.Console::WriteLine() - IL_00df: nop - IL_00e0: nop - IL_00e1: ret + IL_00ab: nop + IL_00ac: call void [mscorlib]System.Console::WriteLine() + IL_00b1: nop + IL_00b2: nop + IL_00b3: ldc.i4.2 + IL_00b4: ldarg.0 + IL_00b5: stloc.1 + IL_00b6: ldloca.s V_1 + IL_00b8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00bd: cgt + IL_00bf: ldloca.s V_1 + IL_00c1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c6: and + IL_00c7: stloc.s V_7 + IL_00c9: ldloc.s V_7 + IL_00cb: brfalse.s IL_00d5 + + IL_00cd: nop + IL_00ce: call void [mscorlib]System.Console::WriteLine() + IL_00d3: nop + IL_00d4: nop + IL_00d5: ret } // end of method LiftedOperators::IntConst .method public hidebysig static void IntValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 1633 (0x661) + // Code size 1626 (0x65a) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -1523,690 +1405,677 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_1 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: beq.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0028 - - IL_0018: ldloca.s V_0 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_1 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: ceq - IL_0028: call void [mscorlib]System.Console::WriteLine(bool) - IL_002d: nop - IL_002e: ldarg.0 - IL_002f: stloc.1 - IL_0030: ldarg.1 - IL_0031: stloc.0 - IL_0032: ldloca.s V_1 - IL_0034: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0039: ldloca.s V_0 - IL_003b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0040: beq.s IL_0045 - - IL_0042: ldc.i4.1 - IL_0043: br.s IL_0058 - - IL_0045: ldloca.s V_1 - IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004c: ldloca.s V_0 - IL_004e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0053: ceq - IL_0055: ldc.i4.0 - IL_0056: ceq - IL_0058: call void [mscorlib]System.Console::WriteLine(bool) - IL_005d: nop - IL_005e: ldarg.0 - IL_005f: stloc.0 - IL_0060: ldarg.1 - IL_0061: stloc.1 - IL_0062: ldloca.s V_0 - IL_0064: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0069: ldloca.s V_1 - IL_006b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0070: bgt.s IL_0075 - - IL_0072: ldc.i4.0 - IL_0073: br.s IL_0084 - - IL_0075: ldloca.s V_0 + IL_0013: ceq + IL_0015: ldloca.s V_0 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_1 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: ceq + IL_0025: and + IL_0026: call void [mscorlib]System.Console::WriteLine(bool) + IL_002b: nop + IL_002c: ldarg.0 + IL_002d: stloc.1 + IL_002e: ldarg.1 + IL_002f: stloc.0 + IL_0030: ldloca.s V_1 + IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0037: ldloca.s V_0 + IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003e: ceq + IL_0040: ldloca.s V_1 + IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: ceq + IL_0050: and + IL_0051: ldc.i4.0 + IL_0052: ceq + IL_0054: call void [mscorlib]System.Console::WriteLine(bool) + IL_0059: nop + IL_005a: ldarg.0 + IL_005b: stloc.0 + IL_005c: ldarg.1 + IL_005d: stloc.1 + IL_005e: ldloca.s V_0 + IL_0060: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0065: ldloca.s V_1 + IL_0067: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006c: cgt + IL_006e: ldloca.s V_0 + IL_0070: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0075: ldloca.s V_1 IL_0077: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_007c: ldloca.s V_1 - IL_007e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0083: and - IL_0084: call void [mscorlib]System.Console::WriteLine(bool) - IL_0089: nop - IL_008a: ldarg.0 - IL_008b: stloc.1 - IL_008c: ldarg.1 - IL_008d: stloc.0 - IL_008e: ldloca.s V_1 - IL_0090: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0095: ldloca.s V_0 - IL_0097: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_009c: bgt.s IL_00a1 - - IL_009e: ldc.i4.0 - IL_009f: br.s IL_00b0 - - IL_00a1: ldloca.s V_1 - IL_00a3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a8: ldloca.s V_0 - IL_00aa: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00af: and - IL_00b0: ldc.i4.0 - IL_00b1: ceq - IL_00b3: call void [mscorlib]System.Console::WriteLine(bool) - IL_00b8: nop - IL_00b9: ldarg.0 - IL_00ba: stloc.0 - IL_00bb: ldarg.1 - IL_00bc: stloc.1 - IL_00bd: ldloca.s V_0 - IL_00bf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c4: ldloca.s V_1 - IL_00c6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00cb: bge.s IL_00d0 - - IL_00cd: ldc.i4.0 - IL_00ce: br.s IL_00df - - IL_00d0: ldloca.s V_0 - IL_00d2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d7: ldloca.s V_1 - IL_00d9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00de: and - IL_00df: ldc.i4.0 - IL_00e0: ceq - IL_00e2: call void [mscorlib]System.Console::WriteLine(bool) - IL_00e7: nop - IL_00e8: ldarg.0 - IL_00e9: stloc.1 - IL_00ea: ldarg.1 - IL_00eb: stloc.0 - IL_00ec: ldloca.s V_1 + IL_007c: and + IL_007d: and + IL_007e: call void [mscorlib]System.Console::WriteLine(bool) + IL_0083: nop + IL_0084: ldarg.0 + IL_0085: stloc.1 + IL_0086: ldarg.1 + IL_0087: stloc.0 + IL_0088: ldloca.s V_1 + IL_008a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008f: ldloca.s V_0 + IL_0091: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0096: cgt + IL_0098: ldloca.s V_1 + IL_009a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009f: ldloca.s V_0 + IL_00a1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a6: and + IL_00a7: and + IL_00a8: ldc.i4.0 + IL_00a9: ceq + IL_00ab: call void [mscorlib]System.Console::WriteLine(bool) + IL_00b0: nop + IL_00b1: ldarg.0 + IL_00b2: stloc.0 + IL_00b3: ldarg.1 + IL_00b4: stloc.1 + IL_00b5: ldloca.s V_0 + IL_00b7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00bc: ldloca.s V_1 + IL_00be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c3: clt + IL_00c5: ldc.i4.0 + IL_00c6: ceq + IL_00c8: ldloca.s V_0 + IL_00ca: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00cf: ldloca.s V_1 + IL_00d1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d6: and + IL_00d7: and + IL_00d8: ldc.i4.0 + IL_00d9: ceq + IL_00db: call void [mscorlib]System.Console::WriteLine(bool) + IL_00e0: nop + IL_00e1: ldarg.0 + IL_00e2: stloc.1 + IL_00e3: ldarg.1 + IL_00e4: stloc.0 + IL_00e5: ldloca.s V_1 + IL_00e7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ec: ldloca.s V_0 IL_00ee: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f3: ldloca.s V_0 - IL_00f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00fa: and - IL_00fb: brtrue.s IL_0108 + IL_00f3: and + IL_00f4: brtrue.s IL_0101 - IL_00fd: ldloca.s V_2 - IL_00ff: initobj valuetype [mscorlib]System.Nullable`1 - IL_0105: ldloc.2 - IL_0106: br.s IL_011c + IL_00f6: ldloca.s V_2 + IL_00f8: initobj valuetype [mscorlib]System.Nullable`1 + IL_00fe: ldloc.2 + IL_00ff: br.s IL_0115 - IL_0108: ldloca.s V_1 + IL_0101: ldloca.s V_1 + IL_0103: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0108: ldloca.s V_0 IL_010a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_010f: ldloca.s V_0 - IL_0111: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0116: add - IL_0117: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_011c: box valuetype [mscorlib]System.Nullable`1 - IL_0121: call void [mscorlib]System.Console::WriteLine(object) - IL_0126: nop - IL_0127: ldarg.0 - IL_0128: stloc.0 - IL_0129: ldarg.1 - IL_012a: stloc.1 - IL_012b: ldloca.s V_0 + IL_010f: add + IL_0110: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0115: box valuetype [mscorlib]System.Nullable`1 + IL_011a: call void [mscorlib]System.Console::WriteLine(object) + IL_011f: nop + IL_0120: ldarg.0 + IL_0121: stloc.0 + IL_0122: ldarg.1 + IL_0123: stloc.1 + IL_0124: ldloca.s V_0 + IL_0126: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_012b: ldloca.s V_1 IL_012d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0132: ldloca.s V_1 - IL_0134: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0139: and - IL_013a: brtrue.s IL_0147 + IL_0132: and + IL_0133: brtrue.s IL_0140 - IL_013c: ldloca.s V_2 - IL_013e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0144: ldloc.2 - IL_0145: br.s IL_015b + IL_0135: ldloca.s V_2 + IL_0137: initobj valuetype [mscorlib]System.Nullable`1 + IL_013d: ldloc.2 + IL_013e: br.s IL_0154 - IL_0147: ldloca.s V_0 + IL_0140: ldloca.s V_0 + IL_0142: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0147: ldloca.s V_1 IL_0149: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014e: ldloca.s V_1 - IL_0150: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0155: sub - IL_0156: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_015b: box valuetype [mscorlib]System.Nullable`1 - IL_0160: call void [mscorlib]System.Console::WriteLine(object) - IL_0165: nop - IL_0166: ldarg.0 - IL_0167: stloc.1 - IL_0168: ldarg.1 - IL_0169: stloc.0 - IL_016a: ldloca.s V_1 + IL_014e: sub + IL_014f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0154: box valuetype [mscorlib]System.Nullable`1 + IL_0159: call void [mscorlib]System.Console::WriteLine(object) + IL_015e: nop + IL_015f: ldarg.0 + IL_0160: stloc.1 + IL_0161: ldarg.1 + IL_0162: stloc.0 + IL_0163: ldloca.s V_1 + IL_0165: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_016a: ldloca.s V_0 IL_016c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0171: ldloca.s V_0 - IL_0173: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0178: and - IL_0179: brtrue.s IL_0186 + IL_0171: and + IL_0172: brtrue.s IL_017f - IL_017b: ldloca.s V_2 - IL_017d: initobj valuetype [mscorlib]System.Nullable`1 - IL_0183: ldloc.2 - IL_0184: br.s IL_019a + IL_0174: ldloca.s V_2 + IL_0176: initobj valuetype [mscorlib]System.Nullable`1 + IL_017c: ldloc.2 + IL_017d: br.s IL_0193 - IL_0186: ldloca.s V_1 + IL_017f: ldloca.s V_1 + IL_0181: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0186: ldloca.s V_0 IL_0188: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_018d: ldloca.s V_0 - IL_018f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0194: mul - IL_0195: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_019a: box valuetype [mscorlib]System.Nullable`1 - IL_019f: call void [mscorlib]System.Console::WriteLine(object) - IL_01a4: nop - IL_01a5: ldarg.0 - IL_01a6: stloc.0 - IL_01a7: ldarg.1 - IL_01a8: stloc.1 - IL_01a9: ldloca.s V_0 + IL_018d: mul + IL_018e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0193: box valuetype [mscorlib]System.Nullable`1 + IL_0198: call void [mscorlib]System.Console::WriteLine(object) + IL_019d: nop + IL_019e: ldarg.0 + IL_019f: stloc.0 + IL_01a0: ldarg.1 + IL_01a1: stloc.1 + IL_01a2: ldloca.s V_0 + IL_01a4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01a9: ldloca.s V_1 IL_01ab: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01b0: ldloca.s V_1 - IL_01b2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01b7: and - IL_01b8: brtrue.s IL_01c5 + IL_01b0: and + IL_01b1: brtrue.s IL_01be - IL_01ba: ldloca.s V_2 - IL_01bc: initobj valuetype [mscorlib]System.Nullable`1 - IL_01c2: ldloc.2 - IL_01c3: br.s IL_01d9 + IL_01b3: ldloca.s V_2 + IL_01b5: initobj valuetype [mscorlib]System.Nullable`1 + IL_01bb: ldloc.2 + IL_01bc: br.s IL_01d2 - IL_01c5: ldloca.s V_0 + IL_01be: ldloca.s V_0 + IL_01c0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01c5: ldloca.s V_1 IL_01c7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01cc: ldloca.s V_1 - IL_01ce: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01d3: div - IL_01d4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01d9: box valuetype [mscorlib]System.Nullable`1 - IL_01de: call void [mscorlib]System.Console::WriteLine(object) - IL_01e3: nop - IL_01e4: ldarg.0 - IL_01e5: stloc.1 - IL_01e6: ldarg.1 - IL_01e7: stloc.0 - IL_01e8: ldloca.s V_1 + IL_01cc: div + IL_01cd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01d2: box valuetype [mscorlib]System.Nullable`1 + IL_01d7: call void [mscorlib]System.Console::WriteLine(object) + IL_01dc: nop + IL_01dd: ldarg.0 + IL_01de: stloc.1 + IL_01df: ldarg.1 + IL_01e0: stloc.0 + IL_01e1: ldloca.s V_1 + IL_01e3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01e8: ldloca.s V_0 IL_01ea: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01ef: ldloca.s V_0 - IL_01f1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01f6: and - IL_01f7: brtrue.s IL_0204 + IL_01ef: and + IL_01f0: brtrue.s IL_01fd - IL_01f9: ldloca.s V_2 - IL_01fb: initobj valuetype [mscorlib]System.Nullable`1 - IL_0201: ldloc.2 - IL_0202: br.s IL_0218 + IL_01f2: ldloca.s V_2 + IL_01f4: initobj valuetype [mscorlib]System.Nullable`1 + IL_01fa: ldloc.2 + IL_01fb: br.s IL_0211 - IL_0204: ldloca.s V_1 + IL_01fd: ldloca.s V_1 + IL_01ff: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0204: ldloca.s V_0 IL_0206: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_020b: ldloca.s V_0 - IL_020d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0212: rem - IL_0213: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0218: box valuetype [mscorlib]System.Nullable`1 - IL_021d: call void [mscorlib]System.Console::WriteLine(object) - IL_0222: nop - IL_0223: ldarg.0 - IL_0224: stloc.0 - IL_0225: ldarg.1 - IL_0226: stloc.1 - IL_0227: ldloca.s V_0 + IL_020b: rem + IL_020c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0211: box valuetype [mscorlib]System.Nullable`1 + IL_0216: call void [mscorlib]System.Console::WriteLine(object) + IL_021b: nop + IL_021c: ldarg.0 + IL_021d: stloc.0 + IL_021e: ldarg.1 + IL_021f: stloc.1 + IL_0220: ldloca.s V_0 + IL_0222: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0227: ldloca.s V_1 IL_0229: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_022e: ldloca.s V_1 - IL_0230: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0235: and - IL_0236: brtrue.s IL_0243 + IL_022e: and + IL_022f: brtrue.s IL_023c - IL_0238: ldloca.s V_2 - IL_023a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0240: ldloc.2 - IL_0241: br.s IL_0257 + IL_0231: ldloca.s V_2 + IL_0233: initobj valuetype [mscorlib]System.Nullable`1 + IL_0239: ldloc.2 + IL_023a: br.s IL_0250 - IL_0243: ldloca.s V_0 + IL_023c: ldloca.s V_0 + IL_023e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0243: ldloca.s V_1 IL_0245: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_024a: ldloca.s V_1 - IL_024c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0251: and - IL_0252: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0257: box valuetype [mscorlib]System.Nullable`1 - IL_025c: call void [mscorlib]System.Console::WriteLine(object) - IL_0261: nop - IL_0262: ldarg.0 - IL_0263: stloc.1 - IL_0264: ldarg.1 - IL_0265: stloc.0 - IL_0266: ldloca.s V_1 + IL_024a: and + IL_024b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0250: box valuetype [mscorlib]System.Nullable`1 + IL_0255: call void [mscorlib]System.Console::WriteLine(object) + IL_025a: nop + IL_025b: ldarg.0 + IL_025c: stloc.1 + IL_025d: ldarg.1 + IL_025e: stloc.0 + IL_025f: ldloca.s V_1 + IL_0261: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0266: ldloca.s V_0 IL_0268: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_026d: ldloca.s V_0 - IL_026f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0274: and - IL_0275: brtrue.s IL_0282 + IL_026d: and + IL_026e: brtrue.s IL_027b - IL_0277: ldloca.s V_2 - IL_0279: initobj valuetype [mscorlib]System.Nullable`1 - IL_027f: ldloc.2 - IL_0280: br.s IL_0296 + IL_0270: ldloca.s V_2 + IL_0272: initobj valuetype [mscorlib]System.Nullable`1 + IL_0278: ldloc.2 + IL_0279: br.s IL_028f - IL_0282: ldloca.s V_1 + IL_027b: ldloca.s V_1 + IL_027d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0282: ldloca.s V_0 IL_0284: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0289: ldloca.s V_0 - IL_028b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0290: or - IL_0291: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0296: box valuetype [mscorlib]System.Nullable`1 - IL_029b: call void [mscorlib]System.Console::WriteLine(object) - IL_02a0: nop - IL_02a1: ldarg.0 - IL_02a2: stloc.0 - IL_02a3: ldarg.1 - IL_02a4: stloc.1 - IL_02a5: ldloca.s V_0 + IL_0289: or + IL_028a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_028f: box valuetype [mscorlib]System.Nullable`1 + IL_0294: call void [mscorlib]System.Console::WriteLine(object) + IL_0299: nop + IL_029a: ldarg.0 + IL_029b: stloc.0 + IL_029c: ldarg.1 + IL_029d: stloc.1 + IL_029e: ldloca.s V_0 + IL_02a0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02a5: ldloca.s V_1 IL_02a7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02ac: ldloca.s V_1 - IL_02ae: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02b3: and - IL_02b4: brtrue.s IL_02c1 + IL_02ac: and + IL_02ad: brtrue.s IL_02ba - IL_02b6: ldloca.s V_2 - IL_02b8: initobj valuetype [mscorlib]System.Nullable`1 - IL_02be: ldloc.2 - IL_02bf: br.s IL_02d5 + IL_02af: ldloca.s V_2 + IL_02b1: initobj valuetype [mscorlib]System.Nullable`1 + IL_02b7: ldloc.2 + IL_02b8: br.s IL_02ce - IL_02c1: ldloca.s V_0 + IL_02ba: ldloca.s V_0 + IL_02bc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02c1: ldloca.s V_1 IL_02c3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02c8: ldloca.s V_1 - IL_02ca: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02cf: xor - IL_02d0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02d5: box valuetype [mscorlib]System.Nullable`1 - IL_02da: call void [mscorlib]System.Console::WriteLine(object) - IL_02df: nop - IL_02e0: ldarg.0 - IL_02e1: stloc.1 - IL_02e2: ldarg.1 - IL_02e3: stloc.0 - IL_02e4: ldloca.s V_1 + IL_02c8: xor + IL_02c9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02ce: box valuetype [mscorlib]System.Nullable`1 + IL_02d3: call void [mscorlib]System.Console::WriteLine(object) + IL_02d8: nop + IL_02d9: ldarg.0 + IL_02da: stloc.1 + IL_02db: ldarg.1 + IL_02dc: stloc.0 + IL_02dd: ldloca.s V_1 + IL_02df: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02e4: ldloca.s V_0 IL_02e6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02eb: ldloca.s V_0 - IL_02ed: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02f2: and - IL_02f3: brtrue.s IL_0300 + IL_02eb: and + IL_02ec: brtrue.s IL_02f9 - IL_02f5: ldloca.s V_2 - IL_02f7: initobj valuetype [mscorlib]System.Nullable`1 - IL_02fd: ldloc.2 - IL_02fe: br.s IL_0317 + IL_02ee: ldloca.s V_2 + IL_02f0: initobj valuetype [mscorlib]System.Nullable`1 + IL_02f6: ldloc.2 + IL_02f7: br.s IL_0310 - IL_0300: ldloca.s V_1 + IL_02f9: ldloca.s V_1 + IL_02fb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0300: ldloca.s V_0 IL_0302: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0307: ldloca.s V_0 - IL_0309: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_030e: ldc.i4.s 31 - IL_0310: and - IL_0311: shl - IL_0312: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0317: box valuetype [mscorlib]System.Nullable`1 - IL_031c: call void [mscorlib]System.Console::WriteLine(object) - IL_0321: nop - IL_0322: ldarg.0 - IL_0323: stloc.0 - IL_0324: ldarg.1 - IL_0325: stloc.1 - IL_0326: ldloca.s V_0 + IL_0307: ldc.i4.s 31 + IL_0309: and + IL_030a: shl + IL_030b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0310: box valuetype [mscorlib]System.Nullable`1 + IL_0315: call void [mscorlib]System.Console::WriteLine(object) + IL_031a: nop + IL_031b: ldarg.0 + IL_031c: stloc.0 + IL_031d: ldarg.1 + IL_031e: stloc.1 + IL_031f: ldloca.s V_0 + IL_0321: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0326: ldloca.s V_1 IL_0328: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_032d: ldloca.s V_1 - IL_032f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0334: and - IL_0335: brtrue.s IL_0342 + IL_032d: and + IL_032e: brtrue.s IL_033b - IL_0337: ldloca.s V_2 - IL_0339: initobj valuetype [mscorlib]System.Nullable`1 - IL_033f: ldloc.2 - IL_0340: br.s IL_0359 + IL_0330: ldloca.s V_2 + IL_0332: initobj valuetype [mscorlib]System.Nullable`1 + IL_0338: ldloc.2 + IL_0339: br.s IL_0352 - IL_0342: ldloca.s V_0 + IL_033b: ldloca.s V_0 + IL_033d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0342: ldloca.s V_1 IL_0344: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0349: ldloca.s V_1 - IL_034b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0350: ldc.i4.s 31 - IL_0352: and - IL_0353: shr - IL_0354: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0359: box valuetype [mscorlib]System.Nullable`1 - IL_035e: call void [mscorlib]System.Console::WriteLine(object) - IL_0363: nop - IL_0364: ldarg.0 - IL_0365: stloc.1 - IL_0366: ldloca.s V_1 - IL_0368: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_036d: brtrue.s IL_0372 - - IL_036f: ldarg.1 - IL_0370: br.s IL_0373 - - IL_0372: ldloc.1 - IL_0373: box valuetype [mscorlib]System.Nullable`1 - IL_0378: call void [mscorlib]System.Console::WriteLine(object) - IL_037d: nop - IL_037e: ldarg.0 - IL_037f: stloc.1 - IL_0380: ldloca.s V_1 - IL_0382: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0387: brtrue.s IL_0394 - - IL_0389: ldloca.s V_0 - IL_038b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0391: ldloc.0 - IL_0392: br.s IL_03a1 - - IL_0394: ldloca.s V_1 - IL_0396: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_039b: neg - IL_039c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03a1: box valuetype [mscorlib]System.Nullable`1 - IL_03a6: call void [mscorlib]System.Console::WriteLine(object) - IL_03ab: nop - IL_03ac: ldarg.0 - IL_03ad: stloc.1 - IL_03ae: ldloca.s V_1 - IL_03b0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03b5: brtrue.s IL_03c2 - - IL_03b7: ldloca.s V_0 - IL_03b9: initobj valuetype [mscorlib]System.Nullable`1 - IL_03bf: ldloc.0 - IL_03c0: br.s IL_03cf - - IL_03c2: ldloca.s V_1 - IL_03c4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03c9: not - IL_03ca: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03cf: box valuetype [mscorlib]System.Nullable`1 - IL_03d4: call void [mscorlib]System.Console::WriteLine(object) - IL_03d9: nop - IL_03da: ldarg.0 - IL_03db: stloc.1 - IL_03dc: ldloca.s V_1 - IL_03de: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03e3: brtrue.s IL_03f0 - - IL_03e5: ldloca.s V_0 - IL_03e7: initobj valuetype [mscorlib]System.Nullable`1 - IL_03ed: ldloc.0 - IL_03ee: br.s IL_03fe - - IL_03f0: ldloca.s V_1 - IL_03f2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03f7: ldc.i4.1 - IL_03f8: add - IL_03f9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03fe: dup - IL_03ff: starg.s a - IL_0401: box valuetype [mscorlib]System.Nullable`1 - IL_0406: call void [mscorlib]System.Console::WriteLine(object) - IL_040b: nop - IL_040c: ldarg.0 - IL_040d: stloc.1 - IL_040e: ldloca.s V_1 - IL_0410: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0415: brtrue.s IL_0422 - - IL_0417: ldloca.s V_0 - IL_0419: initobj valuetype [mscorlib]System.Nullable`1 - IL_041f: ldloc.0 - IL_0420: br.s IL_0430 - - IL_0422: ldloca.s V_1 - IL_0424: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0429: ldc.i4.1 - IL_042a: sub - IL_042b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0430: dup - IL_0431: starg.s a - IL_0433: box valuetype [mscorlib]System.Nullable`1 - IL_0438: call void [mscorlib]System.Console::WriteLine(object) - IL_043d: nop - IL_043e: ldarg.0 - IL_043f: stloc.1 - IL_0440: ldarg.1 - IL_0441: stloc.0 - IL_0442: ldloca.s V_1 + IL_0349: ldc.i4.s 31 + IL_034b: and + IL_034c: shr + IL_034d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0352: box valuetype [mscorlib]System.Nullable`1 + IL_0357: call void [mscorlib]System.Console::WriteLine(object) + IL_035c: nop + IL_035d: ldarg.0 + IL_035e: stloc.1 + IL_035f: ldloca.s V_1 + IL_0361: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0366: brtrue.s IL_036b + + IL_0368: ldarg.1 + IL_0369: br.s IL_036c + + IL_036b: ldloc.1 + IL_036c: box valuetype [mscorlib]System.Nullable`1 + IL_0371: call void [mscorlib]System.Console::WriteLine(object) + IL_0376: nop + IL_0377: ldarg.0 + IL_0378: stloc.1 + IL_0379: ldloca.s V_1 + IL_037b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0380: brtrue.s IL_038d + + IL_0382: ldloca.s V_0 + IL_0384: initobj valuetype [mscorlib]System.Nullable`1 + IL_038a: ldloc.0 + IL_038b: br.s IL_039a + + IL_038d: ldloca.s V_1 + IL_038f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0394: neg + IL_0395: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_039a: box valuetype [mscorlib]System.Nullable`1 + IL_039f: call void [mscorlib]System.Console::WriteLine(object) + IL_03a4: nop + IL_03a5: ldarg.0 + IL_03a6: stloc.1 + IL_03a7: ldloca.s V_1 + IL_03a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03ae: brtrue.s IL_03bb + + IL_03b0: ldloca.s V_0 + IL_03b2: initobj valuetype [mscorlib]System.Nullable`1 + IL_03b8: ldloc.0 + IL_03b9: br.s IL_03c8 + + IL_03bb: ldloca.s V_1 + IL_03bd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03c2: not + IL_03c3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03c8: box valuetype [mscorlib]System.Nullable`1 + IL_03cd: call void [mscorlib]System.Console::WriteLine(object) + IL_03d2: nop + IL_03d3: ldarg.0 + IL_03d4: stloc.1 + IL_03d5: ldloca.s V_1 + IL_03d7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03dc: brtrue.s IL_03e9 + + IL_03de: ldloca.s V_0 + IL_03e0: initobj valuetype [mscorlib]System.Nullable`1 + IL_03e6: ldloc.0 + IL_03e7: br.s IL_03f7 + + IL_03e9: ldloca.s V_1 + IL_03eb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03f0: ldc.i4.1 + IL_03f1: add + IL_03f2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03f7: dup + IL_03f8: starg.s a + IL_03fa: box valuetype [mscorlib]System.Nullable`1 + IL_03ff: call void [mscorlib]System.Console::WriteLine(object) + IL_0404: nop + IL_0405: ldarg.0 + IL_0406: stloc.1 + IL_0407: ldloca.s V_1 + IL_0409: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_040e: brtrue.s IL_041b + + IL_0410: ldloca.s V_0 + IL_0412: initobj valuetype [mscorlib]System.Nullable`1 + IL_0418: ldloc.0 + IL_0419: br.s IL_0429 + + IL_041b: ldloca.s V_1 + IL_041d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0422: ldc.i4.1 + IL_0423: sub + IL_0424: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0429: dup + IL_042a: starg.s a + IL_042c: box valuetype [mscorlib]System.Nullable`1 + IL_0431: call void [mscorlib]System.Console::WriteLine(object) + IL_0436: nop + IL_0437: ldarg.0 + IL_0438: stloc.1 + IL_0439: ldarg.1 + IL_043a: stloc.0 + IL_043b: ldloca.s V_1 + IL_043d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0442: ldloca.s V_0 IL_0444: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0449: ldloca.s V_0 - IL_044b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0450: and - IL_0451: brtrue.s IL_045e + IL_0449: and + IL_044a: brtrue.s IL_0457 - IL_0453: ldloca.s V_2 - IL_0455: initobj valuetype [mscorlib]System.Nullable`1 - IL_045b: ldloc.2 - IL_045c: br.s IL_0472 + IL_044c: ldloca.s V_2 + IL_044e: initobj valuetype [mscorlib]System.Nullable`1 + IL_0454: ldloc.2 + IL_0455: br.s IL_046b - IL_045e: ldloca.s V_1 + IL_0457: ldloca.s V_1 + IL_0459: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_045e: ldloca.s V_0 IL_0460: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0465: ldloca.s V_0 - IL_0467: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_046c: add - IL_046d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0472: starg.s a - IL_0474: ldarg.0 - IL_0475: stloc.0 - IL_0476: ldarg.1 - IL_0477: stloc.1 - IL_0478: ldloca.s V_0 + IL_0465: add + IL_0466: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_046b: starg.s a + IL_046d: ldarg.0 + IL_046e: stloc.0 + IL_046f: ldarg.1 + IL_0470: stloc.1 + IL_0471: ldloca.s V_0 + IL_0473: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0478: ldloca.s V_1 IL_047a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_047f: ldloca.s V_1 - IL_0481: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0486: and - IL_0487: brtrue.s IL_0494 + IL_047f: and + IL_0480: brtrue.s IL_048d - IL_0489: ldloca.s V_2 - IL_048b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0491: ldloc.2 - IL_0492: br.s IL_04a8 + IL_0482: ldloca.s V_2 + IL_0484: initobj valuetype [mscorlib]System.Nullable`1 + IL_048a: ldloc.2 + IL_048b: br.s IL_04a1 - IL_0494: ldloca.s V_0 + IL_048d: ldloca.s V_0 + IL_048f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0494: ldloca.s V_1 IL_0496: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_049b: ldloca.s V_1 - IL_049d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04a2: sub - IL_04a3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04a8: starg.s a - IL_04aa: ldarg.0 - IL_04ab: stloc.1 - IL_04ac: ldarg.1 - IL_04ad: stloc.0 - IL_04ae: ldloca.s V_1 + IL_049b: sub + IL_049c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04a1: starg.s a + IL_04a3: ldarg.0 + IL_04a4: stloc.1 + IL_04a5: ldarg.1 + IL_04a6: stloc.0 + IL_04a7: ldloca.s V_1 + IL_04a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04ae: ldloca.s V_0 IL_04b0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04b5: ldloca.s V_0 - IL_04b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04bc: and - IL_04bd: brtrue.s IL_04ca + IL_04b5: and + IL_04b6: brtrue.s IL_04c3 - IL_04bf: ldloca.s V_2 - IL_04c1: initobj valuetype [mscorlib]System.Nullable`1 - IL_04c7: ldloc.2 - IL_04c8: br.s IL_04de + IL_04b8: ldloca.s V_2 + IL_04ba: initobj valuetype [mscorlib]System.Nullable`1 + IL_04c0: ldloc.2 + IL_04c1: br.s IL_04d7 - IL_04ca: ldloca.s V_1 + IL_04c3: ldloca.s V_1 + IL_04c5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04ca: ldloca.s V_0 IL_04cc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04d1: ldloca.s V_0 - IL_04d3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04d8: mul - IL_04d9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04de: starg.s a - IL_04e0: ldarg.0 - IL_04e1: stloc.0 - IL_04e2: ldarg.1 - IL_04e3: stloc.1 - IL_04e4: ldloca.s V_0 + IL_04d1: mul + IL_04d2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04d7: starg.s a + IL_04d9: ldarg.0 + IL_04da: stloc.0 + IL_04db: ldarg.1 + IL_04dc: stloc.1 + IL_04dd: ldloca.s V_0 + IL_04df: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04e4: ldloca.s V_1 IL_04e6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04eb: ldloca.s V_1 - IL_04ed: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04f2: and - IL_04f3: brtrue.s IL_0500 + IL_04eb: and + IL_04ec: brtrue.s IL_04f9 - IL_04f5: ldloca.s V_2 - IL_04f7: initobj valuetype [mscorlib]System.Nullable`1 - IL_04fd: ldloc.2 - IL_04fe: br.s IL_0514 + IL_04ee: ldloca.s V_2 + IL_04f0: initobj valuetype [mscorlib]System.Nullable`1 + IL_04f6: ldloc.2 + IL_04f7: br.s IL_050d - IL_0500: ldloca.s V_0 + IL_04f9: ldloca.s V_0 + IL_04fb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0500: ldloca.s V_1 IL_0502: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0507: ldloca.s V_1 - IL_0509: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_050e: div - IL_050f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0514: starg.s a - IL_0516: ldarg.0 - IL_0517: stloc.1 - IL_0518: ldarg.1 - IL_0519: stloc.0 - IL_051a: ldloca.s V_1 + IL_0507: div + IL_0508: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_050d: starg.s a + IL_050f: ldarg.0 + IL_0510: stloc.1 + IL_0511: ldarg.1 + IL_0512: stloc.0 + IL_0513: ldloca.s V_1 + IL_0515: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_051a: ldloca.s V_0 IL_051c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0521: ldloca.s V_0 - IL_0523: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0528: and - IL_0529: brtrue.s IL_0536 + IL_0521: and + IL_0522: brtrue.s IL_052f - IL_052b: ldloca.s V_2 - IL_052d: initobj valuetype [mscorlib]System.Nullable`1 - IL_0533: ldloc.2 - IL_0534: br.s IL_054a + IL_0524: ldloca.s V_2 + IL_0526: initobj valuetype [mscorlib]System.Nullable`1 + IL_052c: ldloc.2 + IL_052d: br.s IL_0543 - IL_0536: ldloca.s V_1 + IL_052f: ldloca.s V_1 + IL_0531: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0536: ldloca.s V_0 IL_0538: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_053d: ldloca.s V_0 - IL_053f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0544: rem - IL_0545: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_054a: starg.s a - IL_054c: ldarg.0 - IL_054d: stloc.0 - IL_054e: ldarg.1 - IL_054f: stloc.1 - IL_0550: ldloca.s V_0 + IL_053d: rem + IL_053e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0543: starg.s a + IL_0545: ldarg.0 + IL_0546: stloc.0 + IL_0547: ldarg.1 + IL_0548: stloc.1 + IL_0549: ldloca.s V_0 + IL_054b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0550: ldloca.s V_1 IL_0552: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0557: ldloca.s V_1 - IL_0559: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_055e: and - IL_055f: brtrue.s IL_056c + IL_0557: and + IL_0558: brtrue.s IL_0565 - IL_0561: ldloca.s V_2 - IL_0563: initobj valuetype [mscorlib]System.Nullable`1 - IL_0569: ldloc.2 - IL_056a: br.s IL_0580 + IL_055a: ldloca.s V_2 + IL_055c: initobj valuetype [mscorlib]System.Nullable`1 + IL_0562: ldloc.2 + IL_0563: br.s IL_0579 - IL_056c: ldloca.s V_0 + IL_0565: ldloca.s V_0 + IL_0567: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_056c: ldloca.s V_1 IL_056e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0573: ldloca.s V_1 - IL_0575: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_057a: and - IL_057b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0580: starg.s a - IL_0582: ldarg.0 - IL_0583: stloc.1 - IL_0584: ldarg.1 - IL_0585: stloc.0 - IL_0586: ldloca.s V_1 + IL_0573: and + IL_0574: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0579: starg.s a + IL_057b: ldarg.0 + IL_057c: stloc.1 + IL_057d: ldarg.1 + IL_057e: stloc.0 + IL_057f: ldloca.s V_1 + IL_0581: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0586: ldloca.s V_0 IL_0588: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_058d: ldloca.s V_0 - IL_058f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0594: and - IL_0595: brtrue.s IL_05a2 + IL_058d: and + IL_058e: brtrue.s IL_059b - IL_0597: ldloca.s V_2 - IL_0599: initobj valuetype [mscorlib]System.Nullable`1 - IL_059f: ldloc.2 - IL_05a0: br.s IL_05b6 + IL_0590: ldloca.s V_2 + IL_0592: initobj valuetype [mscorlib]System.Nullable`1 + IL_0598: ldloc.2 + IL_0599: br.s IL_05af - IL_05a2: ldloca.s V_1 + IL_059b: ldloca.s V_1 + IL_059d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_05a2: ldloca.s V_0 IL_05a4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05a9: ldloca.s V_0 - IL_05ab: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05b0: or - IL_05b1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_05b6: starg.s a - IL_05b8: ldarg.0 - IL_05b9: stloc.0 - IL_05ba: ldarg.1 - IL_05bb: stloc.1 - IL_05bc: ldloca.s V_0 + IL_05a9: or + IL_05aa: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_05af: starg.s a + IL_05b1: ldarg.0 + IL_05b2: stloc.0 + IL_05b3: ldarg.1 + IL_05b4: stloc.1 + IL_05b5: ldloca.s V_0 + IL_05b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_05bc: ldloca.s V_1 IL_05be: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05c3: ldloca.s V_1 - IL_05c5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05ca: and - IL_05cb: brtrue.s IL_05d8 + IL_05c3: and + IL_05c4: brtrue.s IL_05d1 - IL_05cd: ldloca.s V_2 - IL_05cf: initobj valuetype [mscorlib]System.Nullable`1 - IL_05d5: ldloc.2 - IL_05d6: br.s IL_05ec + IL_05c6: ldloca.s V_2 + IL_05c8: initobj valuetype [mscorlib]System.Nullable`1 + IL_05ce: ldloc.2 + IL_05cf: br.s IL_05e5 - IL_05d8: ldloca.s V_0 + IL_05d1: ldloca.s V_0 + IL_05d3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_05d8: ldloca.s V_1 IL_05da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05df: ldloca.s V_1 - IL_05e1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05e6: xor - IL_05e7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_05ec: starg.s a - IL_05ee: ldarg.0 - IL_05ef: stloc.1 - IL_05f0: ldarg.1 - IL_05f1: stloc.0 - IL_05f2: ldloca.s V_1 + IL_05df: xor + IL_05e0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_05e5: starg.s a + IL_05e7: ldarg.0 + IL_05e8: stloc.1 + IL_05e9: ldarg.1 + IL_05ea: stloc.0 + IL_05eb: ldloca.s V_1 + IL_05ed: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_05f2: ldloca.s V_0 IL_05f4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05f9: ldloca.s V_0 - IL_05fb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0600: and - IL_0601: brtrue.s IL_060e + IL_05f9: and + IL_05fa: brtrue.s IL_0607 - IL_0603: ldloca.s V_2 - IL_0605: initobj valuetype [mscorlib]System.Nullable`1 - IL_060b: ldloc.2 - IL_060c: br.s IL_0625 + IL_05fc: ldloca.s V_2 + IL_05fe: initobj valuetype [mscorlib]System.Nullable`1 + IL_0604: ldloc.2 + IL_0605: br.s IL_061e - IL_060e: ldloca.s V_1 + IL_0607: ldloca.s V_1 + IL_0609: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_060e: ldloca.s V_0 IL_0610: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0615: ldloca.s V_0 - IL_0617: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_061c: ldc.i4.s 31 - IL_061e: and - IL_061f: shl - IL_0620: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0625: starg.s a - IL_0627: ldarg.0 - IL_0628: stloc.0 - IL_0629: ldarg.1 - IL_062a: stloc.1 - IL_062b: ldloca.s V_0 + IL_0615: ldc.i4.s 31 + IL_0617: and + IL_0618: shl + IL_0619: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_061e: starg.s a + IL_0620: ldarg.0 + IL_0621: stloc.0 + IL_0622: ldarg.1 + IL_0623: stloc.1 + IL_0624: ldloca.s V_0 + IL_0626: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_062b: ldloca.s V_1 IL_062d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0632: ldloca.s V_1 - IL_0634: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0639: and - IL_063a: brtrue.s IL_0647 + IL_0632: and + IL_0633: brtrue.s IL_0640 - IL_063c: ldloca.s V_2 - IL_063e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0644: ldloc.2 - IL_0645: br.s IL_065e + IL_0635: ldloca.s V_2 + IL_0637: initobj valuetype [mscorlib]System.Nullable`1 + IL_063d: ldloc.2 + IL_063e: br.s IL_0657 - IL_0647: ldloca.s V_0 + IL_0640: ldloca.s V_0 + IL_0642: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0647: ldloca.s V_1 IL_0649: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_064e: ldloca.s V_1 - IL_0650: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0655: ldc.i4.s 31 - IL_0657: and - IL_0658: shr - IL_0659: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_065e: starg.s a - IL_0660: ret + IL_064e: ldc.i4.s 31 + IL_0650: and + IL_0651: shr + IL_0652: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0657: starg.s a + IL_0659: ret } // end of method LiftedOperators::IntValueBasic .method public hidebysig static void IntValueComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 1365 (0x555) + // Code size 1353 (0x549) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1, @@ -2220,593 +2089,575 @@ IL_000a: ldloca.s V_0 IL_000c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0011: ldloc.1 - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_001e - - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: call void [mscorlib]System.Console::WriteLine(bool) - IL_0023: nop - IL_0024: ldarg.0 - IL_0025: stloc.0 - IL_0026: ldarg.1 - IL_0027: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002c: stloc.1 - IL_002d: ldloca.s V_0 - IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: ldloc.1 - IL_0035: beq.s IL_003a - - IL_0037: ldc.i4.1 - IL_0038: br.s IL_0044 + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: and + IL_001c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0021: nop + IL_0022: ldarg.0 + IL_0023: stloc.0 + IL_0024: ldarg.1 + IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_002a: stloc.1 + IL_002b: ldloca.s V_0 + IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0032: ldloc.1 + IL_0033: ceq + IL_0035: ldloca.s V_0 + IL_0037: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003c: and + IL_003d: ldc.i4.0 + IL_003e: ceq + IL_0040: call void [mscorlib]System.Console::WriteLine(bool) + IL_0045: nop + IL_0046: ldarg.0 + IL_0047: stloc.0 + IL_0048: ldarg.1 + IL_0049: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_004e: stloc.1 + IL_004f: ldloca.s V_0 + IL_0051: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0056: ldloc.1 + IL_0057: cgt + IL_0059: ldloca.s V_0 + IL_005b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0060: and + IL_0061: call void [mscorlib]System.Console::WriteLine(bool) + IL_0066: nop + IL_0067: ldarg.1 + IL_0068: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_006d: ldarg.0 + IL_006e: stloc.0 + IL_006f: ldloca.s V_0 + IL_0071: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0076: ceq + IL_0078: ldloca.s V_0 + IL_007a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007f: and + IL_0080: call void [mscorlib]System.Console::WriteLine(bool) + IL_0085: nop + IL_0086: ldarg.1 + IL_0087: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_008c: ldarg.0 + IL_008d: stloc.0 + IL_008e: ldloca.s V_0 + IL_0090: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0095: ceq + IL_0097: ldloca.s V_0 + IL_0099: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009e: and + IL_009f: ldc.i4.0 + IL_00a0: ceq + IL_00a2: call void [mscorlib]System.Console::WriteLine(bool) + IL_00a7: nop + IL_00a8: ldarg.1 + IL_00a9: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00ae: ldarg.0 + IL_00af: stloc.0 + IL_00b0: ldloca.s V_0 + IL_00b2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b7: cgt + IL_00b9: ldloca.s V_0 + IL_00bb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c0: and + IL_00c1: call void [mscorlib]System.Console::WriteLine(bool) + IL_00c6: nop + IL_00c7: ldarg.0 + IL_00c8: stloc.0 + IL_00c9: ldarg.1 + IL_00ca: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00cf: stloc.1 + IL_00d0: ldloca.s V_0 + IL_00d2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d7: brtrue.s IL_00e4 + + IL_00d9: ldloca.s V_2 + IL_00db: initobj valuetype [mscorlib]System.Nullable`1 + IL_00e1: ldloc.2 + IL_00e2: br.s IL_00f2 + + IL_00e4: ldloca.s V_0 + IL_00e6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00eb: ldloc.1 + IL_00ec: add + IL_00ed: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00f2: box valuetype [mscorlib]System.Nullable`1 + IL_00f7: call void [mscorlib]System.Console::WriteLine(object) + IL_00fc: nop + IL_00fd: ldarg.0 + IL_00fe: stloc.0 + IL_00ff: ldarg.1 + IL_0100: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0105: stloc.1 + IL_0106: ldloca.s V_0 + IL_0108: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_010d: brtrue.s IL_011a + + IL_010f: ldloca.s V_2 + IL_0111: initobj valuetype [mscorlib]System.Nullable`1 + IL_0117: ldloc.2 + IL_0118: br.s IL_0128 + + IL_011a: ldloca.s V_0 + IL_011c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0121: ldloc.1 + IL_0122: sub + IL_0123: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0128: box valuetype [mscorlib]System.Nullable`1 + IL_012d: call void [mscorlib]System.Console::WriteLine(object) + IL_0132: nop + IL_0133: ldarg.0 + IL_0134: stloc.0 + IL_0135: ldarg.1 + IL_0136: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_013b: stloc.1 + IL_013c: ldloca.s V_0 + IL_013e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0143: brtrue.s IL_0150 - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldc.i4.0 - IL_0042: ceq - IL_0044: call void [mscorlib]System.Console::WriteLine(bool) - IL_0049: nop - IL_004a: ldarg.0 - IL_004b: stloc.0 - IL_004c: ldarg.1 - IL_004d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0052: stloc.1 - IL_0053: ldloca.s V_0 - IL_0055: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_005a: ldloc.1 - IL_005b: bgt.s IL_0060 + IL_0145: ldloca.s V_2 + IL_0147: initobj valuetype [mscorlib]System.Nullable`1 + IL_014d: ldloc.2 + IL_014e: br.s IL_015e - IL_005d: ldc.i4.0 - IL_005e: br.s IL_0067 + IL_0150: ldloca.s V_0 + IL_0152: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0157: ldloc.1 + IL_0158: mul + IL_0159: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_015e: box valuetype [mscorlib]System.Nullable`1 + IL_0163: call void [mscorlib]System.Console::WriteLine(object) + IL_0168: nop + IL_0169: ldarg.0 + IL_016a: stloc.0 + IL_016b: ldarg.1 + IL_016c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0171: stloc.1 + IL_0172: ldloca.s V_0 + IL_0174: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0179: brtrue.s IL_0186 - IL_0060: ldloca.s V_0 - IL_0062: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0067: call void [mscorlib]System.Console::WriteLine(bool) - IL_006c: nop - IL_006d: ldarg.1 - IL_006e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0073: ldarg.0 - IL_0074: stloc.0 - IL_0075: ldloca.s V_0 - IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007c: beq.s IL_0081 + IL_017b: ldloca.s V_2 + IL_017d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0183: ldloc.2 + IL_0184: br.s IL_0194 - IL_007e: ldc.i4.0 - IL_007f: br.s IL_0088 + IL_0186: ldloca.s V_0 + IL_0188: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_018d: ldloc.1 + IL_018e: div + IL_018f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0194: box valuetype [mscorlib]System.Nullable`1 + IL_0199: call void [mscorlib]System.Console::WriteLine(object) + IL_019e: nop + IL_019f: ldarg.0 + IL_01a0: stloc.0 + IL_01a1: ldarg.1 + IL_01a2: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_01a7: stloc.1 + IL_01a8: ldloca.s V_0 + IL_01aa: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01af: brtrue.s IL_01bc + + IL_01b1: ldloca.s V_2 + IL_01b3: initobj valuetype [mscorlib]System.Nullable`1 + IL_01b9: ldloc.2 + IL_01ba: br.s IL_01ca + + IL_01bc: ldloca.s V_0 + IL_01be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01c3: ldloc.1 + IL_01c4: rem + IL_01c5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01ca: box valuetype [mscorlib]System.Nullable`1 + IL_01cf: call void [mscorlib]System.Console::WriteLine(object) + IL_01d4: nop + IL_01d5: ldarg.0 + IL_01d6: stloc.0 + IL_01d7: ldarg.1 + IL_01d8: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_01dd: stloc.1 + IL_01de: ldloca.s V_0 + IL_01e0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01e5: brtrue.s IL_01f2 + + IL_01e7: ldloca.s V_2 + IL_01e9: initobj valuetype [mscorlib]System.Nullable`1 + IL_01ef: ldloc.2 + IL_01f0: br.s IL_0200 + + IL_01f2: ldloca.s V_0 + IL_01f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01f9: ldloc.1 + IL_01fa: and + IL_01fb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0200: box valuetype [mscorlib]System.Nullable`1 + IL_0205: call void [mscorlib]System.Console::WriteLine(object) + IL_020a: nop + IL_020b: ldarg.0 + IL_020c: stloc.0 + IL_020d: ldarg.1 + IL_020e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0213: stloc.1 + IL_0214: ldloca.s V_0 + IL_0216: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_021b: brtrue.s IL_0228 + + IL_021d: ldloca.s V_2 + IL_021f: initobj valuetype [mscorlib]System.Nullable`1 + IL_0225: ldloc.2 + IL_0226: br.s IL_0236 + + IL_0228: ldloca.s V_0 + IL_022a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_022f: ldloc.1 + IL_0230: or + IL_0231: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0236: box valuetype [mscorlib]System.Nullable`1 + IL_023b: call void [mscorlib]System.Console::WriteLine(object) + IL_0240: nop + IL_0241: ldarg.0 + IL_0242: stloc.0 + IL_0243: ldarg.1 + IL_0244: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0249: stloc.1 + IL_024a: ldloca.s V_0 + IL_024c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0251: brtrue.s IL_025e + + IL_0253: ldloca.s V_2 + IL_0255: initobj valuetype [mscorlib]System.Nullable`1 + IL_025b: ldloc.2 + IL_025c: br.s IL_026c - IL_0081: ldloca.s V_0 - IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: call void [mscorlib]System.Console::WriteLine(bool) - IL_008d: nop - IL_008e: ldarg.1 - IL_008f: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0094: ldarg.0 - IL_0095: stloc.0 - IL_0096: ldloca.s V_0 - IL_0098: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_009d: beq.s IL_00a2 - - IL_009f: ldc.i4.1 - IL_00a0: br.s IL_00ac - - IL_00a2: ldloca.s V_0 - IL_00a4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a9: ldc.i4.0 - IL_00aa: ceq - IL_00ac: call void [mscorlib]System.Console::WriteLine(bool) - IL_00b1: nop - IL_00b2: ldarg.1 - IL_00b3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00b8: ldarg.0 - IL_00b9: stloc.0 - IL_00ba: ldloca.s V_0 - IL_00bc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c1: bgt.s IL_00c6 - - IL_00c3: ldc.i4.0 - IL_00c4: br.s IL_00cd - - IL_00c6: ldloca.s V_0 - IL_00c8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00cd: call void [mscorlib]System.Console::WriteLine(bool) - IL_00d2: nop - IL_00d3: ldarg.0 - IL_00d4: stloc.0 - IL_00d5: ldarg.1 - IL_00d6: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00db: stloc.1 - IL_00dc: ldloca.s V_0 - IL_00de: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00e3: brtrue.s IL_00f0 - - IL_00e5: ldloca.s V_2 - IL_00e7: initobj valuetype [mscorlib]System.Nullable`1 - IL_00ed: ldloc.2 - IL_00ee: br.s IL_00fe - - IL_00f0: ldloca.s V_0 - IL_00f2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f7: ldloc.1 - IL_00f8: add - IL_00f9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00fe: box valuetype [mscorlib]System.Nullable`1 - IL_0103: call void [mscorlib]System.Console::WriteLine(object) - IL_0108: nop - IL_0109: ldarg.0 - IL_010a: stloc.0 - IL_010b: ldarg.1 - IL_010c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0111: stloc.1 - IL_0112: ldloca.s V_0 - IL_0114: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0119: brtrue.s IL_0126 - - IL_011b: ldloca.s V_2 - IL_011d: initobj valuetype [mscorlib]System.Nullable`1 - IL_0123: ldloc.2 - IL_0124: br.s IL_0134 - - IL_0126: ldloca.s V_0 - IL_0128: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_012d: ldloc.1 - IL_012e: sub - IL_012f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0134: box valuetype [mscorlib]System.Nullable`1 - IL_0139: call void [mscorlib]System.Console::WriteLine(object) - IL_013e: nop - IL_013f: ldarg.0 - IL_0140: stloc.0 - IL_0141: ldarg.1 - IL_0142: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0147: stloc.1 - IL_0148: ldloca.s V_0 - IL_014a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_014f: brtrue.s IL_015c + IL_025e: ldloca.s V_0 + IL_0260: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0265: ldloc.1 + IL_0266: xor + IL_0267: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_026c: box valuetype [mscorlib]System.Nullable`1 + IL_0271: call void [mscorlib]System.Console::WriteLine(object) + IL_0276: nop + IL_0277: ldarg.0 + IL_0278: stloc.0 + IL_0279: ldarg.1 + IL_027a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_027f: stloc.1 + IL_0280: ldloca.s V_0 + IL_0282: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0287: brtrue.s IL_0294 + + IL_0289: ldloca.s V_2 + IL_028b: initobj valuetype [mscorlib]System.Nullable`1 + IL_0291: ldloc.2 + IL_0292: br.s IL_02a5 + + IL_0294: ldloca.s V_0 + IL_0296: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_029b: ldloc.1 + IL_029c: ldc.i4.s 31 + IL_029e: and + IL_029f: shl + IL_02a0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02a5: box valuetype [mscorlib]System.Nullable`1 + IL_02aa: call void [mscorlib]System.Console::WriteLine(object) + IL_02af: nop + IL_02b0: ldarg.0 + IL_02b1: stloc.0 + IL_02b2: ldarg.1 + IL_02b3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_02b8: stloc.1 + IL_02b9: ldloca.s V_0 + IL_02bb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02c0: brtrue.s IL_02cd + + IL_02c2: ldloca.s V_2 + IL_02c4: initobj valuetype [mscorlib]System.Nullable`1 + IL_02ca: ldloc.2 + IL_02cb: br.s IL_02de + + IL_02cd: ldloca.s V_0 + IL_02cf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02d4: ldloc.1 + IL_02d5: ldc.i4.s 31 + IL_02d7: and + IL_02d8: shr + IL_02d9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02de: box valuetype [mscorlib]System.Nullable`1 + IL_02e3: call void [mscorlib]System.Console::WriteLine(object) + IL_02e8: nop + IL_02e9: ldarg.0 + IL_02ea: stloc.0 + IL_02eb: ldloca.s V_0 + IL_02ed: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02f2: brtrue.s IL_02fc + + IL_02f4: ldarg.1 + IL_02f5: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_02fa: br.s IL_0303 + + IL_02fc: ldloca.s V_0 + IL_02fe: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0303: call void [mscorlib]System.Console::WriteLine(int32) + IL_0308: nop + IL_0309: ldarg.0 + IL_030a: stloc.0 + IL_030b: ldarg.1 + IL_030c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0311: stloc.1 + IL_0312: ldloca.s V_0 + IL_0314: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0319: brtrue.s IL_0326 + + IL_031b: ldloca.s V_2 + IL_031d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0323: ldloc.2 + IL_0324: br.s IL_0334 - IL_0151: ldloca.s V_2 - IL_0153: initobj valuetype [mscorlib]System.Nullable`1 - IL_0159: ldloc.2 - IL_015a: br.s IL_016a + IL_0326: ldloca.s V_0 + IL_0328: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_032d: ldloc.1 + IL_032e: add + IL_032f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0334: starg.s a + IL_0336: ldarg.0 + IL_0337: stloc.0 + IL_0338: ldarg.1 + IL_0339: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_033e: stloc.1 + IL_033f: ldloca.s V_0 + IL_0341: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0346: brtrue.s IL_0353 + + IL_0348: ldloca.s V_2 + IL_034a: initobj valuetype [mscorlib]System.Nullable`1 + IL_0350: ldloc.2 + IL_0351: br.s IL_0361 + + IL_0353: ldloca.s V_0 + IL_0355: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_035a: ldloc.1 + IL_035b: sub + IL_035c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0361: starg.s a + IL_0363: ldarg.0 + IL_0364: stloc.0 + IL_0365: ldarg.1 + IL_0366: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_036b: stloc.1 + IL_036c: ldloca.s V_0 + IL_036e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0373: brtrue.s IL_0380 + + IL_0375: ldloca.s V_2 + IL_0377: initobj valuetype [mscorlib]System.Nullable`1 + IL_037d: ldloc.2 + IL_037e: br.s IL_038e + + IL_0380: ldloca.s V_0 + IL_0382: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0387: ldloc.1 + IL_0388: mul + IL_0389: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_038e: starg.s a + IL_0390: ldarg.0 + IL_0391: stloc.0 + IL_0392: ldarg.1 + IL_0393: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0398: stloc.1 + IL_0399: ldloca.s V_0 + IL_039b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03a0: brtrue.s IL_03ad + + IL_03a2: ldloca.s V_2 + IL_03a4: initobj valuetype [mscorlib]System.Nullable`1 + IL_03aa: ldloc.2 + IL_03ab: br.s IL_03bb + + IL_03ad: ldloca.s V_0 + IL_03af: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03b4: ldloc.1 + IL_03b5: div + IL_03b6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03bb: starg.s a + IL_03bd: ldarg.0 + IL_03be: stloc.0 + IL_03bf: ldarg.1 + IL_03c0: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_03c5: stloc.1 + IL_03c6: ldloca.s V_0 + IL_03c8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03cd: brtrue.s IL_03da + + IL_03cf: ldloca.s V_2 + IL_03d1: initobj valuetype [mscorlib]System.Nullable`1 + IL_03d7: ldloc.2 + IL_03d8: br.s IL_03e8 + + IL_03da: ldloca.s V_0 + IL_03dc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03e1: ldloc.1 + IL_03e2: rem + IL_03e3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03e8: starg.s a + IL_03ea: ldarg.0 + IL_03eb: stloc.0 + IL_03ec: ldarg.1 + IL_03ed: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_03f2: stloc.1 + IL_03f3: ldloca.s V_0 + IL_03f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03fa: brtrue.s IL_0407 + + IL_03fc: ldloca.s V_2 + IL_03fe: initobj valuetype [mscorlib]System.Nullable`1 + IL_0404: ldloc.2 + IL_0405: br.s IL_0415 + + IL_0407: ldloca.s V_0 + IL_0409: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_040e: ldloc.1 + IL_040f: and + IL_0410: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0415: starg.s a + IL_0417: ldarg.0 + IL_0418: stloc.0 + IL_0419: ldarg.1 + IL_041a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_041f: stloc.1 + IL_0420: ldloca.s V_0 + IL_0422: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0427: brtrue.s IL_0434 + + IL_0429: ldloca.s V_2 + IL_042b: initobj valuetype [mscorlib]System.Nullable`1 + IL_0431: ldloc.2 + IL_0432: br.s IL_0442 + + IL_0434: ldloca.s V_0 + IL_0436: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_043b: ldloc.1 + IL_043c: or + IL_043d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0442: starg.s a + IL_0444: ldarg.0 + IL_0445: stloc.0 + IL_0446: ldarg.1 + IL_0447: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_044c: stloc.1 + IL_044d: ldloca.s V_0 + IL_044f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0454: brtrue.s IL_0461 + + IL_0456: ldloca.s V_2 + IL_0458: initobj valuetype [mscorlib]System.Nullable`1 + IL_045e: ldloc.2 + IL_045f: br.s IL_046f + + IL_0461: ldloca.s V_0 + IL_0463: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0468: ldloc.1 + IL_0469: xor + IL_046a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_046f: starg.s a + IL_0471: ldarg.0 + IL_0472: stloc.0 + IL_0473: ldarg.1 + IL_0474: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0479: stloc.1 + IL_047a: ldloca.s V_0 + IL_047c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0481: brtrue.s IL_048e - IL_015c: ldloca.s V_0 - IL_015e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0163: ldloc.1 - IL_0164: mul - IL_0165: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_016a: box valuetype [mscorlib]System.Nullable`1 - IL_016f: call void [mscorlib]System.Console::WriteLine(object) - IL_0174: nop - IL_0175: ldarg.0 - IL_0176: stloc.0 - IL_0177: ldarg.1 - IL_0178: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_017d: stloc.1 - IL_017e: ldloca.s V_0 - IL_0180: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0185: brtrue.s IL_0192 - - IL_0187: ldloca.s V_2 - IL_0189: initobj valuetype [mscorlib]System.Nullable`1 - IL_018f: ldloc.2 - IL_0190: br.s IL_01a0 - - IL_0192: ldloca.s V_0 - IL_0194: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0199: ldloc.1 - IL_019a: div - IL_019b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01a0: box valuetype [mscorlib]System.Nullable`1 - IL_01a5: call void [mscorlib]System.Console::WriteLine(object) - IL_01aa: nop - IL_01ab: ldarg.0 - IL_01ac: stloc.0 - IL_01ad: ldarg.1 - IL_01ae: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_01b3: stloc.1 - IL_01b4: ldloca.s V_0 - IL_01b6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01bb: brtrue.s IL_01c8 - - IL_01bd: ldloca.s V_2 - IL_01bf: initobj valuetype [mscorlib]System.Nullable`1 - IL_01c5: ldloc.2 - IL_01c6: br.s IL_01d6 - - IL_01c8: ldloca.s V_0 - IL_01ca: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01cf: ldloc.1 - IL_01d0: rem - IL_01d1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01d6: box valuetype [mscorlib]System.Nullable`1 - IL_01db: call void [mscorlib]System.Console::WriteLine(object) - IL_01e0: nop - IL_01e1: ldarg.0 - IL_01e2: stloc.0 - IL_01e3: ldarg.1 - IL_01e4: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_01e9: stloc.1 - IL_01ea: ldloca.s V_0 - IL_01ec: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01f1: brtrue.s IL_01fe - - IL_01f3: ldloca.s V_2 - IL_01f5: initobj valuetype [mscorlib]System.Nullable`1 - IL_01fb: ldloc.2 - IL_01fc: br.s IL_020c - - IL_01fe: ldloca.s V_0 - IL_0200: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0205: ldloc.1 - IL_0206: and - IL_0207: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_020c: box valuetype [mscorlib]System.Nullable`1 - IL_0211: call void [mscorlib]System.Console::WriteLine(object) - IL_0216: nop - IL_0217: ldarg.0 - IL_0218: stloc.0 - IL_0219: ldarg.1 - IL_021a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_021f: stloc.1 - IL_0220: ldloca.s V_0 - IL_0222: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0227: brtrue.s IL_0234 - - IL_0229: ldloca.s V_2 - IL_022b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0231: ldloc.2 - IL_0232: br.s IL_0242 - - IL_0234: ldloca.s V_0 - IL_0236: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_023b: ldloc.1 - IL_023c: or - IL_023d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0242: box valuetype [mscorlib]System.Nullable`1 - IL_0247: call void [mscorlib]System.Console::WriteLine(object) - IL_024c: nop - IL_024d: ldarg.0 - IL_024e: stloc.0 - IL_024f: ldarg.1 - IL_0250: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0255: stloc.1 - IL_0256: ldloca.s V_0 - IL_0258: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_025d: brtrue.s IL_026a - - IL_025f: ldloca.s V_2 - IL_0261: initobj valuetype [mscorlib]System.Nullable`1 - IL_0267: ldloc.2 - IL_0268: br.s IL_0278 - - IL_026a: ldloca.s V_0 - IL_026c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0271: ldloc.1 - IL_0272: xor - IL_0273: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0278: box valuetype [mscorlib]System.Nullable`1 - IL_027d: call void [mscorlib]System.Console::WriteLine(object) - IL_0282: nop - IL_0283: ldarg.0 - IL_0284: stloc.0 - IL_0285: ldarg.1 - IL_0286: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_028b: stloc.1 - IL_028c: ldloca.s V_0 - IL_028e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0293: brtrue.s IL_02a0 - - IL_0295: ldloca.s V_2 - IL_0297: initobj valuetype [mscorlib]System.Nullable`1 - IL_029d: ldloc.2 - IL_029e: br.s IL_02b1 - - IL_02a0: ldloca.s V_0 - IL_02a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02a7: ldloc.1 - IL_02a8: ldc.i4.s 31 - IL_02aa: and - IL_02ab: shl - IL_02ac: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02b1: box valuetype [mscorlib]System.Nullable`1 - IL_02b6: call void [mscorlib]System.Console::WriteLine(object) - IL_02bb: nop - IL_02bc: ldarg.0 - IL_02bd: stloc.0 - IL_02be: ldarg.1 - IL_02bf: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_02c4: stloc.1 - IL_02c5: ldloca.s V_0 - IL_02c7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02cc: brtrue.s IL_02d9 - - IL_02ce: ldloca.s V_2 - IL_02d0: initobj valuetype [mscorlib]System.Nullable`1 - IL_02d6: ldloc.2 - IL_02d7: br.s IL_02ea - - IL_02d9: ldloca.s V_0 - IL_02db: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02e0: ldloc.1 - IL_02e1: ldc.i4.s 31 - IL_02e3: and - IL_02e4: shr - IL_02e5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02ea: box valuetype [mscorlib]System.Nullable`1 - IL_02ef: call void [mscorlib]System.Console::WriteLine(object) - IL_02f4: nop - IL_02f5: ldarg.0 - IL_02f6: stloc.0 - IL_02f7: ldloca.s V_0 - IL_02f9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02fe: brtrue.s IL_0308 - - IL_0300: ldarg.1 - IL_0301: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0306: br.s IL_030f - - IL_0308: ldloca.s V_0 - IL_030a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_030f: call void [mscorlib]System.Console::WriteLine(int32) - IL_0314: nop - IL_0315: ldarg.0 - IL_0316: stloc.0 - IL_0317: ldarg.1 - IL_0318: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_031d: stloc.1 - IL_031e: ldloca.s V_0 - IL_0320: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0325: brtrue.s IL_0332 - - IL_0327: ldloca.s V_2 - IL_0329: initobj valuetype [mscorlib]System.Nullable`1 - IL_032f: ldloc.2 - IL_0330: br.s IL_0340 - - IL_0332: ldloca.s V_0 - IL_0334: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0339: ldloc.1 - IL_033a: add - IL_033b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0340: starg.s a - IL_0342: ldarg.0 - IL_0343: stloc.0 - IL_0344: ldarg.1 - IL_0345: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_034a: stloc.1 - IL_034b: ldloca.s V_0 - IL_034d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0352: brtrue.s IL_035f - - IL_0354: ldloca.s V_2 - IL_0356: initobj valuetype [mscorlib]System.Nullable`1 - IL_035c: ldloc.2 - IL_035d: br.s IL_036d - - IL_035f: ldloca.s V_0 - IL_0361: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0366: ldloc.1 - IL_0367: sub - IL_0368: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_036d: starg.s a - IL_036f: ldarg.0 - IL_0370: stloc.0 - IL_0371: ldarg.1 - IL_0372: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0377: stloc.1 - IL_0378: ldloca.s V_0 - IL_037a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_037f: brtrue.s IL_038c - - IL_0381: ldloca.s V_2 - IL_0383: initobj valuetype [mscorlib]System.Nullable`1 - IL_0389: ldloc.2 - IL_038a: br.s IL_039a - - IL_038c: ldloca.s V_0 - IL_038e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0393: ldloc.1 - IL_0394: mul - IL_0395: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_039a: starg.s a - IL_039c: ldarg.0 - IL_039d: stloc.0 - IL_039e: ldarg.1 - IL_039f: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_03a4: stloc.1 - IL_03a5: ldloca.s V_0 - IL_03a7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03ac: brtrue.s IL_03b9 - - IL_03ae: ldloca.s V_2 - IL_03b0: initobj valuetype [mscorlib]System.Nullable`1 - IL_03b6: ldloc.2 - IL_03b7: br.s IL_03c7 - - IL_03b9: ldloca.s V_0 - IL_03bb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03c0: ldloc.1 - IL_03c1: div - IL_03c2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03c7: starg.s a - IL_03c9: ldarg.0 - IL_03ca: stloc.0 - IL_03cb: ldarg.1 - IL_03cc: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_03d1: stloc.1 - IL_03d2: ldloca.s V_0 - IL_03d4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03d9: brtrue.s IL_03e6 - - IL_03db: ldloca.s V_2 - IL_03dd: initobj valuetype [mscorlib]System.Nullable`1 - IL_03e3: ldloc.2 - IL_03e4: br.s IL_03f4 - - IL_03e6: ldloca.s V_0 - IL_03e8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03ed: ldloc.1 - IL_03ee: rem - IL_03ef: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03f4: starg.s a - IL_03f6: ldarg.0 - IL_03f7: stloc.0 - IL_03f8: ldarg.1 - IL_03f9: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_03fe: stloc.1 - IL_03ff: ldloca.s V_0 - IL_0401: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0406: brtrue.s IL_0413 - - IL_0408: ldloca.s V_2 - IL_040a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0410: ldloc.2 - IL_0411: br.s IL_0421 - - IL_0413: ldloca.s V_0 - IL_0415: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_041a: ldloc.1 - IL_041b: and - IL_041c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0421: starg.s a - IL_0423: ldarg.0 - IL_0424: stloc.0 - IL_0425: ldarg.1 - IL_0426: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_042b: stloc.1 - IL_042c: ldloca.s V_0 - IL_042e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0433: brtrue.s IL_0440 - - IL_0435: ldloca.s V_2 - IL_0437: initobj valuetype [mscorlib]System.Nullable`1 - IL_043d: ldloc.2 - IL_043e: br.s IL_044e - - IL_0440: ldloca.s V_0 - IL_0442: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0447: ldloc.1 - IL_0448: or - IL_0449: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_044e: starg.s a - IL_0450: ldarg.0 - IL_0451: stloc.0 - IL_0452: ldarg.1 - IL_0453: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0458: stloc.1 - IL_0459: ldloca.s V_0 - IL_045b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0460: brtrue.s IL_046d - - IL_0462: ldloca.s V_2 - IL_0464: initobj valuetype [mscorlib]System.Nullable`1 - IL_046a: ldloc.2 - IL_046b: br.s IL_047b - - IL_046d: ldloca.s V_0 - IL_046f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0474: ldloc.1 - IL_0475: xor - IL_0476: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_047b: starg.s a - IL_047d: ldarg.0 - IL_047e: stloc.0 - IL_047f: ldarg.1 - IL_0480: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0485: stloc.1 - IL_0486: ldloca.s V_0 - IL_0488: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_048d: brtrue.s IL_049a - - IL_048f: ldloca.s V_2 - IL_0491: initobj valuetype [mscorlib]System.Nullable`1 - IL_0497: ldloc.2 - IL_0498: br.s IL_04ab - - IL_049a: ldloca.s V_0 - IL_049c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04a1: ldloc.1 - IL_04a2: ldc.i4.s 31 - IL_04a4: and - IL_04a5: shl - IL_04a6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04ab: starg.s a - IL_04ad: ldarg.0 - IL_04ae: stloc.0 - IL_04af: ldarg.1 - IL_04b0: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_04b5: stloc.1 - IL_04b6: ldloca.s V_0 - IL_04b8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04bd: brtrue.s IL_04ca - - IL_04bf: ldloca.s V_2 - IL_04c1: initobj valuetype [mscorlib]System.Nullable`1 - IL_04c7: ldloc.2 - IL_04c8: br.s IL_04db + IL_0483: ldloca.s V_2 + IL_0485: initobj valuetype [mscorlib]System.Nullable`1 + IL_048b: ldloc.2 + IL_048c: br.s IL_049f - IL_04ca: ldloca.s V_0 - IL_04cc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04d1: ldloc.1 - IL_04d2: ldc.i4.s 31 - IL_04d4: and - IL_04d5: shr - IL_04d6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04db: starg.s a - IL_04dd: ldarg.1 - IL_04de: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_04e3: stloc.1 - IL_04e4: ldarg.0 - IL_04e5: stloc.0 - IL_04e6: ldloca.s V_0 - IL_04e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04ed: brtrue.s IL_04fa - - IL_04ef: ldloca.s V_2 - IL_04f1: initobj valuetype [mscorlib]System.Nullable`1 - IL_04f7: ldloc.2 - IL_04f8: br.s IL_0508 - - IL_04fa: ldloc.1 - IL_04fb: ldloca.s V_0 - IL_04fd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0502: add - IL_0503: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0508: box valuetype [mscorlib]System.Nullable`1 - IL_050d: call void [mscorlib]System.Console::WriteLine(object) - IL_0512: nop - IL_0513: ldc.i4.0 - IL_0514: newarr valuetype [mscorlib]System.Nullable`1 - IL_0519: ldc.i4.0 - IL_051a: ldelema valuetype [mscorlib]System.Nullable`1 - IL_051f: dup - IL_0520: ldobj valuetype [mscorlib]System.Nullable`1 - IL_0525: stloc.0 - IL_0526: ldarg.1 - IL_0527: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_052c: stloc.1 - IL_052d: ldloca.s V_0 - IL_052f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0534: brtrue.s IL_0541 - - IL_0536: ldloca.s V_2 - IL_0538: initobj valuetype [mscorlib]System.Nullable`1 - IL_053e: ldloc.2 - IL_053f: br.s IL_054f - - IL_0541: ldloca.s V_0 - IL_0543: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0548: ldloc.1 - IL_0549: add - IL_054a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_054f: stobj valuetype [mscorlib]System.Nullable`1 - IL_0554: ret + IL_048e: ldloca.s V_0 + IL_0490: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0495: ldloc.1 + IL_0496: ldc.i4.s 31 + IL_0498: and + IL_0499: shl + IL_049a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_049f: starg.s a + IL_04a1: ldarg.0 + IL_04a2: stloc.0 + IL_04a3: ldarg.1 + IL_04a4: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_04a9: stloc.1 + IL_04aa: ldloca.s V_0 + IL_04ac: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04b1: brtrue.s IL_04be + + IL_04b3: ldloca.s V_2 + IL_04b5: initobj valuetype [mscorlib]System.Nullable`1 + IL_04bb: ldloc.2 + IL_04bc: br.s IL_04cf + + IL_04be: ldloca.s V_0 + IL_04c0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04c5: ldloc.1 + IL_04c6: ldc.i4.s 31 + IL_04c8: and + IL_04c9: shr + IL_04ca: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04cf: starg.s a + IL_04d1: ldarg.1 + IL_04d2: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_04d7: stloc.1 + IL_04d8: ldarg.0 + IL_04d9: stloc.0 + IL_04da: ldloca.s V_0 + IL_04dc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04e1: brtrue.s IL_04ee + + IL_04e3: ldloca.s V_2 + IL_04e5: initobj valuetype [mscorlib]System.Nullable`1 + IL_04eb: ldloc.2 + IL_04ec: br.s IL_04fc + + IL_04ee: ldloc.1 + IL_04ef: ldloca.s V_0 + IL_04f1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04f6: add + IL_04f7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04fc: box valuetype [mscorlib]System.Nullable`1 + IL_0501: call void [mscorlib]System.Console::WriteLine(object) + IL_0506: nop + IL_0507: ldc.i4.0 + IL_0508: newarr valuetype [mscorlib]System.Nullable`1 + IL_050d: ldc.i4.0 + IL_050e: ldelema valuetype [mscorlib]System.Nullable`1 + IL_0513: dup + IL_0514: ldobj valuetype [mscorlib]System.Nullable`1 + IL_0519: stloc.0 + IL_051a: ldarg.1 + IL_051b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0520: stloc.1 + IL_0521: ldloca.s V_0 + IL_0523: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0528: brtrue.s IL_0535 + + IL_052a: ldloca.s V_2 + IL_052c: initobj valuetype [mscorlib]System.Nullable`1 + IL_0532: ldloc.2 + IL_0533: br.s IL_0543 + + IL_0535: ldloca.s V_0 + IL_0537: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_053c: ldloc.1 + IL_053d: add + IL_053e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0543: stobj valuetype [mscorlib]System.Nullable`1 + IL_0548: ret } // end of method LiftedOperators::IntValueComplex .method public hidebysig static void IntValueConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 1106 (0x452) + // Code size 1094 (0x446) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1, @@ -2819,493 +2670,475 @@ IL_0005: ldloca.s V_0 IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloc.1 - IL_000d: beq.s IL_0012 - - IL_000f: ldc.i4.0 - IL_0010: br.s IL_0019 - - IL_0012: ldloca.s V_0 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: call void [mscorlib]System.Console::WriteLine(bool) - IL_001e: nop - IL_001f: ldarg.0 - IL_0020: stloc.0 - IL_0021: ldc.i4.2 - IL_0022: stloc.1 - IL_0023: ldloca.s V_0 - IL_0025: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_002a: ldloc.1 - IL_002b: beq.s IL_0030 - - IL_002d: ldc.i4.1 - IL_002e: br.s IL_003a - - IL_0030: ldloca.s V_0 - IL_0032: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0037: ldc.i4.0 - IL_0038: ceq - IL_003a: call void [mscorlib]System.Console::WriteLine(bool) - IL_003f: nop - IL_0040: ldarg.0 - IL_0041: stloc.0 - IL_0042: ldc.i4.2 - IL_0043: stloc.1 - IL_0044: ldloca.s V_0 - IL_0046: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_004b: ldloc.1 - IL_004c: bgt.s IL_0051 - - IL_004e: ldc.i4.0 - IL_004f: br.s IL_0058 - - IL_0051: ldloca.s V_0 - IL_0053: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0058: call void [mscorlib]System.Console::WriteLine(bool) - IL_005d: nop - IL_005e: ldc.i4.2 - IL_005f: ldarg.0 - IL_0060: stloc.0 - IL_0061: ldloca.s V_0 - IL_0063: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0068: beq.s IL_006d - - IL_006a: ldc.i4.0 - IL_006b: br.s IL_0074 - - IL_006d: ldloca.s V_0 - IL_006f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0074: call void [mscorlib]System.Console::WriteLine(bool) - IL_0079: nop - IL_007a: ldc.i4.2 - IL_007b: ldarg.0 - IL_007c: stloc.0 - IL_007d: ldloca.s V_0 - IL_007f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0084: beq.s IL_0089 - - IL_0086: ldc.i4.1 - IL_0087: br.s IL_0093 - - IL_0089: ldloca.s V_0 - IL_008b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0090: ldc.i4.0 - IL_0091: ceq - IL_0093: call void [mscorlib]System.Console::WriteLine(bool) - IL_0098: nop - IL_0099: ldc.i4.2 - IL_009a: ldarg.0 - IL_009b: stloc.0 - IL_009c: ldloca.s V_0 - IL_009e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a3: bgt.s IL_00a8 - - IL_00a5: ldc.i4.0 - IL_00a6: br.s IL_00af - - IL_00a8: ldloca.s V_0 - IL_00aa: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00af: call void [mscorlib]System.Console::WriteLine(bool) - IL_00b4: nop - IL_00b5: ldarg.0 - IL_00b6: stloc.0 - IL_00b7: ldloca.s V_0 - IL_00b9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00be: brtrue.s IL_00cb - - IL_00c0: ldloca.s V_2 - IL_00c2: initobj valuetype [mscorlib]System.Nullable`1 - IL_00c8: ldloc.2 - IL_00c9: br.s IL_00d9 + IL_000d: ceq + IL_000f: ldloca.s V_0 + IL_0011: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0016: and + IL_0017: call void [mscorlib]System.Console::WriteLine(bool) + IL_001c: nop + IL_001d: ldarg.0 + IL_001e: stloc.0 + IL_001f: ldc.i4.2 + IL_0020: stloc.1 + IL_0021: ldloca.s V_0 + IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0028: ldloc.1 + IL_0029: ceq + IL_002b: ldloca.s V_0 + IL_002d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0032: and + IL_0033: ldc.i4.0 + IL_0034: ceq + IL_0036: call void [mscorlib]System.Console::WriteLine(bool) + IL_003b: nop + IL_003c: ldarg.0 + IL_003d: stloc.0 + IL_003e: ldc.i4.2 + IL_003f: stloc.1 + IL_0040: ldloca.s V_0 + IL_0042: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0047: ldloc.1 + IL_0048: cgt + IL_004a: ldloca.s V_0 + IL_004c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0051: and + IL_0052: call void [mscorlib]System.Console::WriteLine(bool) + IL_0057: nop + IL_0058: ldc.i4.2 + IL_0059: ldarg.0 + IL_005a: stloc.0 + IL_005b: ldloca.s V_0 + IL_005d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0062: ceq + IL_0064: ldloca.s V_0 + IL_0066: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006b: and + IL_006c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0071: nop + IL_0072: ldc.i4.2 + IL_0073: ldarg.0 + IL_0074: stloc.0 + IL_0075: ldloca.s V_0 + IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_007c: ceq + IL_007e: ldloca.s V_0 + IL_0080: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0085: and + IL_0086: ldc.i4.0 + IL_0087: ceq + IL_0089: call void [mscorlib]System.Console::WriteLine(bool) + IL_008e: nop + IL_008f: ldc.i4.2 + IL_0090: ldarg.0 + IL_0091: stloc.0 + IL_0092: ldloca.s V_0 + IL_0094: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0099: cgt + IL_009b: ldloca.s V_0 + IL_009d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a2: and + IL_00a3: call void [mscorlib]System.Console::WriteLine(bool) + IL_00a8: nop + IL_00a9: ldarg.0 + IL_00aa: stloc.0 + IL_00ab: ldloca.s V_0 + IL_00ad: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00b2: brtrue.s IL_00bf + + IL_00b4: ldloca.s V_2 + IL_00b6: initobj valuetype [mscorlib]System.Nullable`1 + IL_00bc: ldloc.2 + IL_00bd: br.s IL_00cd + + IL_00bf: ldloca.s V_0 + IL_00c1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c6: ldc.i4.2 + IL_00c7: add + IL_00c8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00cd: box valuetype [mscorlib]System.Nullable`1 + IL_00d2: call void [mscorlib]System.Console::WriteLine(object) + IL_00d7: nop + IL_00d8: ldarg.0 + IL_00d9: stloc.0 + IL_00da: ldloca.s V_0 + IL_00dc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e1: brtrue.s IL_00ee - IL_00cb: ldloca.s V_0 - IL_00cd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00d2: ldc.i4.2 - IL_00d3: add - IL_00d4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00d9: box valuetype [mscorlib]System.Nullable`1 - IL_00de: call void [mscorlib]System.Console::WriteLine(object) - IL_00e3: nop - IL_00e4: ldarg.0 - IL_00e5: stloc.0 - IL_00e6: ldloca.s V_0 - IL_00e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ed: brtrue.s IL_00fa + IL_00e3: ldloca.s V_2 + IL_00e5: initobj valuetype [mscorlib]System.Nullable`1 + IL_00eb: ldloc.2 + IL_00ec: br.s IL_00fc - IL_00ef: ldloca.s V_2 - IL_00f1: initobj valuetype [mscorlib]System.Nullable`1 - IL_00f7: ldloc.2 - IL_00f8: br.s IL_0108 + IL_00ee: ldloca.s V_0 + IL_00f0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00f5: ldc.i4.2 + IL_00f6: sub + IL_00f7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00fc: box valuetype [mscorlib]System.Nullable`1 + IL_0101: call void [mscorlib]System.Console::WriteLine(object) + IL_0106: nop + IL_0107: ldarg.0 + IL_0108: stloc.0 + IL_0109: ldloca.s V_0 + IL_010b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0110: brtrue.s IL_011d + + IL_0112: ldloca.s V_2 + IL_0114: initobj valuetype [mscorlib]System.Nullable`1 + IL_011a: ldloc.2 + IL_011b: br.s IL_012b + + IL_011d: ldloca.s V_0 + IL_011f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0124: ldc.i4.2 + IL_0125: mul + IL_0126: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_012b: box valuetype [mscorlib]System.Nullable`1 + IL_0130: call void [mscorlib]System.Console::WriteLine(object) + IL_0135: nop + IL_0136: ldarg.0 + IL_0137: stloc.0 + IL_0138: ldloca.s V_0 + IL_013a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013f: brtrue.s IL_014c + + IL_0141: ldloca.s V_2 + IL_0143: initobj valuetype [mscorlib]System.Nullable`1 + IL_0149: ldloc.2 + IL_014a: br.s IL_015a + + IL_014c: ldloca.s V_0 + IL_014e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0153: ldc.i4.2 + IL_0154: div + IL_0155: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_015a: box valuetype [mscorlib]System.Nullable`1 + IL_015f: call void [mscorlib]System.Console::WriteLine(object) + IL_0164: nop + IL_0165: ldarg.0 + IL_0166: stloc.0 + IL_0167: ldloca.s V_0 + IL_0169: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_016e: brtrue.s IL_017b + + IL_0170: ldloca.s V_2 + IL_0172: initobj valuetype [mscorlib]System.Nullable`1 + IL_0178: ldloc.2 + IL_0179: br.s IL_0189 + + IL_017b: ldloca.s V_0 + IL_017d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0182: ldc.i4.2 + IL_0183: rem + IL_0184: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0189: box valuetype [mscorlib]System.Nullable`1 + IL_018e: call void [mscorlib]System.Console::WriteLine(object) + IL_0193: nop + IL_0194: ldarg.0 + IL_0195: stloc.0 + IL_0196: ldloca.s V_0 + IL_0198: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_019d: brtrue.s IL_01aa - IL_00fa: ldloca.s V_0 - IL_00fc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0101: ldc.i4.2 - IL_0102: sub - IL_0103: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0108: box valuetype [mscorlib]System.Nullable`1 - IL_010d: call void [mscorlib]System.Console::WriteLine(object) - IL_0112: nop - IL_0113: ldarg.0 - IL_0114: stloc.0 - IL_0115: ldloca.s V_0 - IL_0117: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_011c: brtrue.s IL_0129 - - IL_011e: ldloca.s V_2 - IL_0120: initobj valuetype [mscorlib]System.Nullable`1 - IL_0126: ldloc.2 - IL_0127: br.s IL_0137 - - IL_0129: ldloca.s V_0 - IL_012b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0130: ldc.i4.2 - IL_0131: mul - IL_0132: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0137: box valuetype [mscorlib]System.Nullable`1 - IL_013c: call void [mscorlib]System.Console::WriteLine(object) - IL_0141: nop - IL_0142: ldarg.0 - IL_0143: stloc.0 - IL_0144: ldloca.s V_0 - IL_0146: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_014b: brtrue.s IL_0158 - - IL_014d: ldloca.s V_2 - IL_014f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0155: ldloc.2 - IL_0156: br.s IL_0166 - - IL_0158: ldloca.s V_0 - IL_015a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_015f: ldc.i4.2 - IL_0160: div - IL_0161: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0166: box valuetype [mscorlib]System.Nullable`1 - IL_016b: call void [mscorlib]System.Console::WriteLine(object) - IL_0170: nop - IL_0171: ldarg.0 - IL_0172: stloc.0 - IL_0173: ldloca.s V_0 - IL_0175: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_017a: brtrue.s IL_0187 + IL_019f: ldloca.s V_2 + IL_01a1: initobj valuetype [mscorlib]System.Nullable`1 + IL_01a7: ldloc.2 + IL_01a8: br.s IL_01b8 - IL_017c: ldloca.s V_2 - IL_017e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0184: ldloc.2 - IL_0185: br.s IL_0195 - - IL_0187: ldloca.s V_0 - IL_0189: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_018e: ldc.i4.2 - IL_018f: rem - IL_0190: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0195: box valuetype [mscorlib]System.Nullable`1 - IL_019a: call void [mscorlib]System.Console::WriteLine(object) - IL_019f: nop - IL_01a0: ldarg.0 - IL_01a1: stloc.0 - IL_01a2: ldloca.s V_0 - IL_01a4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01a9: brtrue.s IL_01b6 - - IL_01ab: ldloca.s V_2 - IL_01ad: initobj valuetype [mscorlib]System.Nullable`1 - IL_01b3: ldloc.2 - IL_01b4: br.s IL_01c4 - - IL_01b6: ldloca.s V_0 - IL_01b8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01bd: ldc.i4.2 - IL_01be: and - IL_01bf: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01c4: box valuetype [mscorlib]System.Nullable`1 - IL_01c9: call void [mscorlib]System.Console::WriteLine(object) - IL_01ce: nop - IL_01cf: ldarg.0 - IL_01d0: stloc.0 - IL_01d1: ldloca.s V_0 - IL_01d3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01d8: brtrue.s IL_01e5 - - IL_01da: ldloca.s V_2 - IL_01dc: initobj valuetype [mscorlib]System.Nullable`1 - IL_01e2: ldloc.2 - IL_01e3: br.s IL_01f3 - - IL_01e5: ldloca.s V_0 - IL_01e7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ec: ldc.i4.2 - IL_01ed: or - IL_01ee: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01f3: box valuetype [mscorlib]System.Nullable`1 - IL_01f8: call void [mscorlib]System.Console::WriteLine(object) - IL_01fd: nop - IL_01fe: ldarg.0 - IL_01ff: stloc.0 - IL_0200: ldloca.s V_0 - IL_0202: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0207: brtrue.s IL_0214 - - IL_0209: ldloca.s V_2 - IL_020b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0211: ldloc.2 - IL_0212: br.s IL_0222 + IL_01aa: ldloca.s V_0 + IL_01ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01b1: ldc.i4.2 + IL_01b2: and + IL_01b3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01b8: box valuetype [mscorlib]System.Nullable`1 + IL_01bd: call void [mscorlib]System.Console::WriteLine(object) + IL_01c2: nop + IL_01c3: ldarg.0 + IL_01c4: stloc.0 + IL_01c5: ldloca.s V_0 + IL_01c7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01cc: brtrue.s IL_01d9 + + IL_01ce: ldloca.s V_2 + IL_01d0: initobj valuetype [mscorlib]System.Nullable`1 + IL_01d6: ldloc.2 + IL_01d7: br.s IL_01e7 + + IL_01d9: ldloca.s V_0 + IL_01db: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01e0: ldc.i4.2 + IL_01e1: or + IL_01e2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01e7: box valuetype [mscorlib]System.Nullable`1 + IL_01ec: call void [mscorlib]System.Console::WriteLine(object) + IL_01f1: nop + IL_01f2: ldarg.0 + IL_01f3: stloc.0 + IL_01f4: ldloca.s V_0 + IL_01f6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01fb: brtrue.s IL_0208 + + IL_01fd: ldloca.s V_2 + IL_01ff: initobj valuetype [mscorlib]System.Nullable`1 + IL_0205: ldloc.2 + IL_0206: br.s IL_0216 + + IL_0208: ldloca.s V_0 + IL_020a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_020f: ldc.i4.2 + IL_0210: xor + IL_0211: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0216: box valuetype [mscorlib]System.Nullable`1 + IL_021b: call void [mscorlib]System.Console::WriteLine(object) + IL_0220: nop + IL_0221: ldarg.0 + IL_0222: stloc.0 + IL_0223: ldloca.s V_0 + IL_0225: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_022a: brtrue.s IL_0237 + + IL_022c: ldloca.s V_2 + IL_022e: initobj valuetype [mscorlib]System.Nullable`1 + IL_0234: ldloc.2 + IL_0235: br.s IL_0245 + + IL_0237: ldloca.s V_0 + IL_0239: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_023e: ldc.i4.2 + IL_023f: shl + IL_0240: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0245: box valuetype [mscorlib]System.Nullable`1 + IL_024a: call void [mscorlib]System.Console::WriteLine(object) + IL_024f: nop + IL_0250: ldarg.0 + IL_0251: stloc.0 + IL_0252: ldloca.s V_0 + IL_0254: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0259: brtrue.s IL_0266 + + IL_025b: ldloca.s V_2 + IL_025d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0263: ldloc.2 + IL_0264: br.s IL_0274 + + IL_0266: ldloca.s V_0 + IL_0268: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_026d: ldc.i4.2 + IL_026e: shr + IL_026f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0274: box valuetype [mscorlib]System.Nullable`1 + IL_0279: call void [mscorlib]System.Console::WriteLine(object) + IL_027e: nop + IL_027f: ldarg.0 + IL_0280: stloc.0 + IL_0281: ldloca.s V_0 + IL_0283: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0288: brtrue.s IL_028d + + IL_028a: ldc.i4.2 + IL_028b: br.s IL_0294 - IL_0214: ldloca.s V_0 - IL_0216: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_021b: ldc.i4.2 - IL_021c: xor - IL_021d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0222: box valuetype [mscorlib]System.Nullable`1 - IL_0227: call void [mscorlib]System.Console::WriteLine(object) - IL_022c: nop - IL_022d: ldarg.0 - IL_022e: stloc.0 - IL_022f: ldloca.s V_0 - IL_0231: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0236: brtrue.s IL_0243 - - IL_0238: ldloca.s V_2 - IL_023a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0240: ldloc.2 - IL_0241: br.s IL_0251 - - IL_0243: ldloca.s V_0 - IL_0245: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_024a: ldc.i4.2 - IL_024b: shl - IL_024c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0251: box valuetype [mscorlib]System.Nullable`1 - IL_0256: call void [mscorlib]System.Console::WriteLine(object) - IL_025b: nop - IL_025c: ldarg.0 - IL_025d: stloc.0 - IL_025e: ldloca.s V_0 - IL_0260: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0265: brtrue.s IL_0272 - - IL_0267: ldloca.s V_2 - IL_0269: initobj valuetype [mscorlib]System.Nullable`1 - IL_026f: ldloc.2 - IL_0270: br.s IL_0280 - - IL_0272: ldloca.s V_0 - IL_0274: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0279: ldc.i4.2 - IL_027a: shr - IL_027b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0280: box valuetype [mscorlib]System.Nullable`1 - IL_0285: call void [mscorlib]System.Console::WriteLine(object) - IL_028a: nop - IL_028b: ldarg.0 - IL_028c: stloc.0 IL_028d: ldloca.s V_0 - IL_028f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0294: brtrue.s IL_0299 - - IL_0296: ldc.i4.2 - IL_0297: br.s IL_02a0 - - IL_0299: ldloca.s V_0 - IL_029b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02a0: call void [mscorlib]System.Console::WriteLine(int32) - IL_02a5: nop - IL_02a6: ldarg.0 - IL_02a7: stloc.0 - IL_02a8: ldloca.s V_0 - IL_02aa: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02af: brtrue.s IL_02bc - - IL_02b1: ldloca.s V_2 - IL_02b3: initobj valuetype [mscorlib]System.Nullable`1 - IL_02b9: ldloc.2 - IL_02ba: br.s IL_02ca - - IL_02bc: ldloca.s V_0 - IL_02be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02c3: ldc.i4.2 - IL_02c4: add - IL_02c5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02ca: starg.s a - IL_02cc: ldarg.0 - IL_02cd: stloc.0 - IL_02ce: ldloca.s V_0 - IL_02d0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02d5: brtrue.s IL_02e2 + IL_028f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0294: call void [mscorlib]System.Console::WriteLine(int32) + IL_0299: nop + IL_029a: ldarg.0 + IL_029b: stloc.0 + IL_029c: ldloca.s V_0 + IL_029e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02a3: brtrue.s IL_02b0 + + IL_02a5: ldloca.s V_2 + IL_02a7: initobj valuetype [mscorlib]System.Nullable`1 + IL_02ad: ldloc.2 + IL_02ae: br.s IL_02be + + IL_02b0: ldloca.s V_0 + IL_02b2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02b7: ldc.i4.2 + IL_02b8: add + IL_02b9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02be: starg.s a + IL_02c0: ldarg.0 + IL_02c1: stloc.0 + IL_02c2: ldloca.s V_0 + IL_02c4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02c9: brtrue.s IL_02d6 + + IL_02cb: ldloca.s V_2 + IL_02cd: initobj valuetype [mscorlib]System.Nullable`1 + IL_02d3: ldloc.2 + IL_02d4: br.s IL_02e4 + + IL_02d6: ldloca.s V_0 + IL_02d8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02dd: ldc.i4.2 + IL_02de: sub + IL_02df: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02e4: starg.s a + IL_02e6: ldarg.0 + IL_02e7: stloc.0 + IL_02e8: ldloca.s V_0 + IL_02ea: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02ef: brtrue.s IL_02fc + + IL_02f1: ldloca.s V_2 + IL_02f3: initobj valuetype [mscorlib]System.Nullable`1 + IL_02f9: ldloc.2 + IL_02fa: br.s IL_030a + + IL_02fc: ldloca.s V_0 + IL_02fe: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0303: ldc.i4.2 + IL_0304: mul + IL_0305: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_030a: starg.s a + IL_030c: ldarg.0 + IL_030d: stloc.0 + IL_030e: ldloca.s V_0 + IL_0310: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0315: brtrue.s IL_0322 + + IL_0317: ldloca.s V_2 + IL_0319: initobj valuetype [mscorlib]System.Nullable`1 + IL_031f: ldloc.2 + IL_0320: br.s IL_0330 + + IL_0322: ldloca.s V_0 + IL_0324: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0329: ldc.i4.2 + IL_032a: div + IL_032b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0330: starg.s a + IL_0332: ldarg.0 + IL_0333: stloc.0 + IL_0334: ldloca.s V_0 + IL_0336: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_033b: brtrue.s IL_0348 + + IL_033d: ldloca.s V_2 + IL_033f: initobj valuetype [mscorlib]System.Nullable`1 + IL_0345: ldloc.2 + IL_0346: br.s IL_0356 + + IL_0348: ldloca.s V_0 + IL_034a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_034f: ldc.i4.2 + IL_0350: rem + IL_0351: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0356: starg.s a + IL_0358: ldarg.0 + IL_0359: stloc.0 + IL_035a: ldloca.s V_0 + IL_035c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0361: brtrue.s IL_036e + + IL_0363: ldloca.s V_2 + IL_0365: initobj valuetype [mscorlib]System.Nullable`1 + IL_036b: ldloc.2 + IL_036c: br.s IL_037c + + IL_036e: ldloca.s V_0 + IL_0370: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0375: ldc.i4.2 + IL_0376: and + IL_0377: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_037c: starg.s a + IL_037e: ldarg.0 + IL_037f: stloc.0 + IL_0380: ldloca.s V_0 + IL_0382: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0387: brtrue.s IL_0394 - IL_02d7: ldloca.s V_2 - IL_02d9: initobj valuetype [mscorlib]System.Nullable`1 - IL_02df: ldloc.2 - IL_02e0: br.s IL_02f0 - - IL_02e2: ldloca.s V_0 - IL_02e4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02e9: ldc.i4.2 - IL_02ea: sub - IL_02eb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02f0: starg.s a - IL_02f2: ldarg.0 - IL_02f3: stloc.0 - IL_02f4: ldloca.s V_0 - IL_02f6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02fb: brtrue.s IL_0308 - - IL_02fd: ldloca.s V_2 - IL_02ff: initobj valuetype [mscorlib]System.Nullable`1 - IL_0305: ldloc.2 - IL_0306: br.s IL_0316 - - IL_0308: ldloca.s V_0 - IL_030a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_030f: ldc.i4.2 - IL_0310: mul - IL_0311: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0316: starg.s a - IL_0318: ldarg.0 - IL_0319: stloc.0 - IL_031a: ldloca.s V_0 - IL_031c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0321: brtrue.s IL_032e - - IL_0323: ldloca.s V_2 - IL_0325: initobj valuetype [mscorlib]System.Nullable`1 - IL_032b: ldloc.2 - IL_032c: br.s IL_033c - - IL_032e: ldloca.s V_0 - IL_0330: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0335: ldc.i4.2 - IL_0336: div - IL_0337: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_033c: starg.s a - IL_033e: ldarg.0 - IL_033f: stloc.0 - IL_0340: ldloca.s V_0 - IL_0342: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0347: brtrue.s IL_0354 - - IL_0349: ldloca.s V_2 - IL_034b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0351: ldloc.2 - IL_0352: br.s IL_0362 - - IL_0354: ldloca.s V_0 - IL_0356: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_035b: ldc.i4.2 - IL_035c: rem - IL_035d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0362: starg.s a - IL_0364: ldarg.0 - IL_0365: stloc.0 - IL_0366: ldloca.s V_0 - IL_0368: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_036d: brtrue.s IL_037a - - IL_036f: ldloca.s V_2 - IL_0371: initobj valuetype [mscorlib]System.Nullable`1 - IL_0377: ldloc.2 - IL_0378: br.s IL_0388 - - IL_037a: ldloca.s V_0 - IL_037c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0381: ldc.i4.2 - IL_0382: and - IL_0383: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0388: starg.s a - IL_038a: ldarg.0 - IL_038b: stloc.0 - IL_038c: ldloca.s V_0 - IL_038e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0393: brtrue.s IL_03a0 - - IL_0395: ldloca.s V_2 - IL_0397: initobj valuetype [mscorlib]System.Nullable`1 - IL_039d: ldloc.2 - IL_039e: br.s IL_03ae - - IL_03a0: ldloca.s V_0 - IL_03a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03a7: ldc.i4.2 - IL_03a8: or - IL_03a9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03ae: starg.s a - IL_03b0: ldarg.0 - IL_03b1: stloc.0 - IL_03b2: ldloca.s V_0 - IL_03b4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03b9: brtrue.s IL_03c6 - - IL_03bb: ldloca.s V_2 - IL_03bd: initobj valuetype [mscorlib]System.Nullable`1 - IL_03c3: ldloc.2 - IL_03c4: br.s IL_03d4 + IL_0389: ldloca.s V_2 + IL_038b: initobj valuetype [mscorlib]System.Nullable`1 + IL_0391: ldloc.2 + IL_0392: br.s IL_03a2 - IL_03c6: ldloca.s V_0 - IL_03c8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03cd: ldc.i4.2 - IL_03ce: xor - IL_03cf: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03d4: starg.s a - IL_03d6: ldarg.0 - IL_03d7: stloc.0 - IL_03d8: ldloca.s V_0 - IL_03da: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03df: brtrue.s IL_03ec - - IL_03e1: ldloca.s V_2 - IL_03e3: initobj valuetype [mscorlib]System.Nullable`1 - IL_03e9: ldloc.2 - IL_03ea: br.s IL_03fa - - IL_03ec: ldloca.s V_0 - IL_03ee: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03f3: ldc.i4.2 - IL_03f4: shl - IL_03f5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03fa: starg.s a - IL_03fc: ldarg.0 - IL_03fd: stloc.0 - IL_03fe: ldloca.s V_0 - IL_0400: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0405: brtrue.s IL_0412 - - IL_0407: ldloca.s V_2 - IL_0409: initobj valuetype [mscorlib]System.Nullable`1 - IL_040f: ldloc.2 - IL_0410: br.s IL_0420 - - IL_0412: ldloca.s V_0 - IL_0414: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0419: ldc.i4.2 - IL_041a: shr - IL_041b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0420: starg.s a - IL_0422: ldarg.0 - IL_0423: stloc.0 - IL_0424: ldloca.s V_0 - IL_0426: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_042b: brtrue.s IL_0438 - - IL_042d: ldloca.s V_2 - IL_042f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0435: ldloc.2 - IL_0436: br.s IL_0446 - - IL_0438: ldc.i4.2 - IL_0439: ldloca.s V_0 - IL_043b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0440: add - IL_0441: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0446: box valuetype [mscorlib]System.Nullable`1 - IL_044b: call void [mscorlib]System.Console::WriteLine(object) - IL_0450: nop - IL_0451: ret + IL_0394: ldloca.s V_0 + IL_0396: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_039b: ldc.i4.2 + IL_039c: or + IL_039d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03a2: starg.s a + IL_03a4: ldarg.0 + IL_03a5: stloc.0 + IL_03a6: ldloca.s V_0 + IL_03a8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03ad: brtrue.s IL_03ba + + IL_03af: ldloca.s V_2 + IL_03b1: initobj valuetype [mscorlib]System.Nullable`1 + IL_03b7: ldloc.2 + IL_03b8: br.s IL_03c8 + + IL_03ba: ldloca.s V_0 + IL_03bc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03c1: ldc.i4.2 + IL_03c2: xor + IL_03c3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03c8: starg.s a + IL_03ca: ldarg.0 + IL_03cb: stloc.0 + IL_03cc: ldloca.s V_0 + IL_03ce: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03d3: brtrue.s IL_03e0 + + IL_03d5: ldloca.s V_2 + IL_03d7: initobj valuetype [mscorlib]System.Nullable`1 + IL_03dd: ldloc.2 + IL_03de: br.s IL_03ee + + IL_03e0: ldloca.s V_0 + IL_03e2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03e7: ldc.i4.2 + IL_03e8: shl + IL_03e9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03ee: starg.s a + IL_03f0: ldarg.0 + IL_03f1: stloc.0 + IL_03f2: ldloca.s V_0 + IL_03f4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03f9: brtrue.s IL_0406 + + IL_03fb: ldloca.s V_2 + IL_03fd: initobj valuetype [mscorlib]System.Nullable`1 + IL_0403: ldloc.2 + IL_0404: br.s IL_0414 + + IL_0406: ldloca.s V_0 + IL_0408: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_040d: ldc.i4.2 + IL_040e: shr + IL_040f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0414: starg.s a + IL_0416: ldarg.0 + IL_0417: stloc.0 + IL_0418: ldloca.s V_0 + IL_041a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_041f: brtrue.s IL_042c + + IL_0421: ldloca.s V_2 + IL_0423: initobj valuetype [mscorlib]System.Nullable`1 + IL_0429: ldloc.2 + IL_042a: br.s IL_043a + + IL_042c: ldc.i4.2 + IL_042d: ldloca.s V_0 + IL_042f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0434: add + IL_0435: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_043a: box valuetype [mscorlib]System.Nullable`1 + IL_043f: call void [mscorlib]System.Console::WriteLine(object) + IL_0444: nop + IL_0445: ret } // end of method LiftedOperators::IntValueConst .method public hidebysig static void NumberBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 465 (0x1d1) - .maxstack 2 + // Code size 433 (0x1b1) + .maxstack 3 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -3327,227 +3160,195 @@ IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0013: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0018: brtrue.s IL_001d - - IL_001a: ldc.i4.0 - IL_001b: br.s IL_002d - - IL_001d: ldloca.s V_1 - IL_001f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0024: ldloca.s V_2 - IL_0026: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_002b: ceq - IL_002d: stloc.0 - IL_002e: ldloc.0 - IL_002f: brfalse.s IL_0039 + IL_0018: ldloca.s V_1 + IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001f: ldloca.s V_2 + IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0026: ceq + IL_0028: and + IL_0029: stloc.0 + IL_002a: ldloc.0 + IL_002b: brfalse.s IL_0035 - IL_0031: nop - IL_0032: call void [mscorlib]System.Console::WriteLine() - IL_0037: nop - IL_0038: nop - IL_0039: ldarg.0 - IL_003a: stloc.2 - IL_003b: ldarg.1 - IL_003c: stloc.1 - IL_003d: ldloca.s V_2 - IL_003f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0044: ldloca.s V_1 - IL_0046: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_004b: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, + IL_002d: nop + IL_002e: call void [mscorlib]System.Console::WriteLine() + IL_0033: nop + IL_0034: nop + IL_0035: ldarg.0 + IL_0036: stloc.2 + IL_0037: ldarg.1 + IL_0038: stloc.1 + IL_0039: ldloca.s V_2 + IL_003b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0040: ldloca.s V_1 + IL_0042: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0047: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0050: brtrue.s IL_0055 - - IL_0052: ldc.i4.1 - IL_0053: br.s IL_0068 - - IL_0055: ldloca.s V_2 - IL_0057: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_005c: ldloca.s V_1 - IL_005e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0063: ceq - IL_0065: ldc.i4.0 - IL_0066: ceq - IL_0068: stloc.3 - IL_0069: ldloc.3 - IL_006a: brfalse.s IL_0074 - - IL_006c: nop - IL_006d: call void [mscorlib]System.Console::WriteLine() - IL_0072: nop - IL_0073: nop - IL_0074: ldarg.0 - IL_0075: stloc.1 - IL_0076: ldarg.1 - IL_0077: stloc.2 - IL_0078: ldloca.s V_1 - IL_007a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007f: ldloca.s V_2 - IL_0081: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0086: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, - valuetype [mscorlib]System.Decimal) - IL_008b: brtrue.s IL_0090 - - IL_008d: ldc.i4.0 - IL_008e: br.s IL_009f + IL_004c: ldloca.s V_2 + IL_004e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0053: ldloca.s V_1 + IL_0055: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005a: ceq + IL_005c: and + IL_005d: ldc.i4.0 + IL_005e: ceq + IL_0060: stloc.3 + IL_0061: ldloc.3 + IL_0062: brfalse.s IL_006c - IL_0090: ldloca.s V_1 - IL_0092: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0097: ldloca.s V_2 - IL_0099: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009e: and - IL_009f: stloc.s V_4 - IL_00a1: ldloc.s V_4 - IL_00a3: brfalse.s IL_00ad + IL_0064: nop + IL_0065: call void [mscorlib]System.Console::WriteLine() + IL_006a: nop + IL_006b: nop + IL_006c: ldarg.0 + IL_006d: stloc.1 + IL_006e: ldarg.1 + IL_006f: stloc.2 + IL_0070: ldloca.s V_1 + IL_0072: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0077: ldloca.s V_2 + IL_0079: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_007e: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + valuetype [mscorlib]System.Decimal) + IL_0083: ldloca.s V_1 + IL_0085: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_008a: ldloca.s V_2 + IL_008c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0091: and + IL_0092: and + IL_0093: stloc.s V_4 + IL_0095: ldloc.s V_4 + IL_0097: brfalse.s IL_00a1 - IL_00a5: nop - IL_00a6: call void [mscorlib]System.Console::WriteLine() - IL_00ab: nop - IL_00ac: nop - IL_00ad: ldarg.0 - IL_00ae: stloc.2 - IL_00af: ldarg.1 - IL_00b0: stloc.1 - IL_00b1: ldloca.s V_2 - IL_00b3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b8: ldloca.s V_1 - IL_00ba: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00bf: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, + IL_0099: nop + IL_009a: call void [mscorlib]System.Console::WriteLine() + IL_009f: nop + IL_00a0: nop + IL_00a1: ldarg.0 + IL_00a2: stloc.2 + IL_00a3: ldarg.1 + IL_00a4: stloc.1 + IL_00a5: ldloca.s V_2 + IL_00a7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00ac: ldloca.s V_1 + IL_00ae: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b3: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00c4: brtrue.s IL_00c9 - - IL_00c6: ldc.i4.0 - IL_00c7: br.s IL_00d8 + IL_00b8: ldloca.s V_2 + IL_00ba: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00bf: ldloca.s V_1 + IL_00c1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c6: and + IL_00c7: and + IL_00c8: stloc.s V_5 + IL_00ca: ldloc.s V_5 + IL_00cc: brfalse.s IL_00d6 - IL_00c9: ldloca.s V_2 - IL_00cb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d0: ldloca.s V_1 - IL_00d2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d7: and - IL_00d8: stloc.s V_5 - IL_00da: ldloc.s V_5 - IL_00dc: brfalse.s IL_00e6 - - IL_00de: nop - IL_00df: call void [mscorlib]System.Console::WriteLine() - IL_00e4: nop - IL_00e5: nop - IL_00e6: ldarg.0 - IL_00e7: stloc.1 - IL_00e8: ldarg.1 - IL_00e9: stloc.2 - IL_00ea: ldloca.s V_1 - IL_00ec: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f1: ldloca.s V_2 - IL_00f3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f8: call bool [mscorlib]System.Decimal::op_GreaterThanOrEqual(valuetype [mscorlib]System.Decimal, + IL_00ce: nop + IL_00cf: call void [mscorlib]System.Console::WriteLine() + IL_00d4: nop + IL_00d5: nop + IL_00d6: ldarg.0 + IL_00d7: stloc.1 + IL_00d8: ldarg.1 + IL_00d9: stloc.2 + IL_00da: ldloca.s V_1 + IL_00dc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00e1: ldloca.s V_2 + IL_00e3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00e8: call bool [mscorlib]System.Decimal::op_GreaterThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00fd: brtrue.s IL_0102 - - IL_00ff: ldc.i4.0 - IL_0100: br.s IL_0111 - - IL_0102: ldloca.s V_1 - IL_0104: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0109: ldloca.s V_2 - IL_010b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0110: and - IL_0111: stloc.s V_6 - IL_0113: ldloc.s V_6 - IL_0115: brfalse.s IL_011f - - IL_0117: nop - IL_0118: call void [mscorlib]System.Console::WriteLine() - IL_011d: nop - IL_011e: nop - IL_011f: ldarg.0 - IL_0120: stloc.2 - IL_0121: ldarg.1 - IL_0122: stloc.1 - IL_0123: ldloca.s V_2 - IL_0125: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_012a: ldloca.s V_1 - IL_012c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0131: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, + IL_00ed: ldloca.s V_1 + IL_00ef: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00f4: ldloca.s V_2 + IL_00f6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00fb: and + IL_00fc: and + IL_00fd: stloc.s V_6 + IL_00ff: ldloc.s V_6 + IL_0101: brfalse.s IL_010b + + IL_0103: nop + IL_0104: call void [mscorlib]System.Console::WriteLine() + IL_0109: nop + IL_010a: nop + IL_010b: ldarg.0 + IL_010c: stloc.2 + IL_010d: ldarg.1 + IL_010e: stloc.1 + IL_010f: ldloca.s V_2 + IL_0111: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0116: ldloca.s V_1 + IL_0118: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_011d: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0136: brtrue.s IL_013b - - IL_0138: ldc.i4.0 - IL_0139: br.s IL_014a + IL_0122: ldloca.s V_2 + IL_0124: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0129: ldloca.s V_1 + IL_012b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0130: and + IL_0131: and + IL_0132: stloc.s V_7 + IL_0134: ldloc.s V_7 + IL_0136: brfalse.s IL_0140 - IL_013b: ldloca.s V_2 - IL_013d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0142: ldloca.s V_1 - IL_0144: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0149: and - IL_014a: stloc.s V_7 - IL_014c: ldloc.s V_7 - IL_014e: brfalse.s IL_0158 - - IL_0150: nop - IL_0151: call void [mscorlib]System.Console::WriteLine() - IL_0156: nop - IL_0157: nop - IL_0158: ldarg.0 - IL_0159: stloc.1 - IL_015a: ldarg.1 - IL_015b: stloc.2 - IL_015c: ldloca.s V_1 - IL_015e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0163: ldloca.s V_2 - IL_0165: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016a: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0138: nop + IL_0139: call void [mscorlib]System.Console::WriteLine() + IL_013e: nop + IL_013f: nop + IL_0140: ldarg.0 + IL_0141: stloc.1 + IL_0142: ldarg.1 + IL_0143: stloc.2 + IL_0144: ldloca.s V_1 + IL_0146: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_014b: ldloca.s V_2 + IL_014d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0152: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_016f: brtrue.s IL_0174 + IL_0157: ldloca.s V_1 + IL_0159: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_015e: ldloca.s V_2 + IL_0160: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0165: and + IL_0166: and + IL_0167: ldc.i4.0 + IL_0168: ceq + IL_016a: stloc.s V_8 + IL_016c: ldloc.s V_8 + IL_016e: brfalse.s IL_0178 - IL_0171: ldc.i4.0 - IL_0172: br.s IL_0183 - - IL_0174: ldloca.s V_1 - IL_0176: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_017b: ldloca.s V_2 - IL_017d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0182: and - IL_0183: ldc.i4.0 - IL_0184: ceq - IL_0186: stloc.s V_8 - IL_0188: ldloc.s V_8 - IL_018a: brfalse.s IL_0194 - - IL_018c: nop - IL_018d: call void [mscorlib]System.Console::WriteLine() - IL_0192: nop - IL_0193: nop - IL_0194: ldarg.0 - IL_0195: stloc.2 - IL_0196: ldarg.1 - IL_0197: stloc.1 - IL_0198: ldloca.s V_2 - IL_019a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_019f: ldloca.s V_1 - IL_01a1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01a6: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, + IL_0170: nop + IL_0171: call void [mscorlib]System.Console::WriteLine() + IL_0176: nop + IL_0177: nop + IL_0178: ldarg.0 + IL_0179: stloc.2 + IL_017a: ldarg.1 + IL_017b: stloc.1 + IL_017c: ldloca.s V_2 + IL_017e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0183: ldloca.s V_1 + IL_0185: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_018a: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_01ab: brtrue.s IL_01b0 - - IL_01ad: ldc.i4.0 - IL_01ae: br.s IL_01bf - - IL_01b0: ldloca.s V_2 - IL_01b2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01b7: ldloca.s V_1 - IL_01b9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01be: and - IL_01bf: ldc.i4.0 - IL_01c0: ceq - IL_01c2: stloc.s V_9 - IL_01c4: ldloc.s V_9 - IL_01c6: brfalse.s IL_01d0 - - IL_01c8: nop - IL_01c9: call void [mscorlib]System.Console::WriteLine() - IL_01ce: nop - IL_01cf: nop - IL_01d0: ret + IL_018f: ldloca.s V_2 + IL_0191: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0196: ldloca.s V_1 + IL_0198: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_019d: and + IL_019e: and + IL_019f: ldc.i4.0 + IL_01a0: ceq + IL_01a2: stloc.s V_9 + IL_01a4: ldloc.s V_9 + IL_01a6: brfalse.s IL_01b0 + + IL_01a8: nop + IL_01a9: call void [mscorlib]System.Console::WriteLine() + IL_01ae: nop + IL_01af: nop + IL_01b0: ret } // end of method LiftedOperators::NumberBasic .method public hidebysig static void NumberComplex(valuetype [mscorlib]System.Nullable`1 a, @@ -3570,8 +3371,8 @@ .method public hidebysig static void NumberValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 959 (0x3bf) - .maxstack 2 + // Code size 939 (0x3ab) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2) @@ -3586,394 +3387,374 @@ IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0013: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0018: brtrue.s IL_001d - - IL_001a: ldc.i4.0 - IL_001b: br.s IL_002d - - IL_001d: ldloca.s V_0 - IL_001f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0024: ldloca.s V_1 - IL_0026: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_002b: ceq - IL_002d: call void [mscorlib]System.Console::WriteLine(bool) - IL_0032: nop - IL_0033: ldarg.0 - IL_0034: stloc.1 - IL_0035: ldarg.1 - IL_0036: stloc.0 - IL_0037: ldloca.s V_1 - IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003e: ldloca.s V_0 - IL_0040: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0045: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, + IL_0018: ldloca.s V_0 + IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001f: ldloca.s V_1 + IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0026: ceq + IL_0028: and + IL_0029: call void [mscorlib]System.Console::WriteLine(bool) + IL_002e: nop + IL_002f: ldarg.0 + IL_0030: stloc.1 + IL_0031: ldarg.1 + IL_0032: stloc.0 + IL_0033: ldloca.s V_1 + IL_0035: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003a: ldloca.s V_0 + IL_003c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0041: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_004a: brtrue.s IL_004f - - IL_004c: ldc.i4.1 - IL_004d: br.s IL_0062 - - IL_004f: ldloca.s V_1 - IL_0051: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0056: ldloca.s V_0 - IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_005d: ceq - IL_005f: ldc.i4.0 - IL_0060: ceq - IL_0062: call void [mscorlib]System.Console::WriteLine(bool) - IL_0067: nop - IL_0068: ldarg.0 - IL_0069: stloc.0 - IL_006a: ldarg.1 - IL_006b: stloc.1 - IL_006c: ldloca.s V_0 - IL_006e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0073: ldloca.s V_1 - IL_0075: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007a: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0046: ldloca.s V_1 + IL_0048: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004d: ldloca.s V_0 + IL_004f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0054: ceq + IL_0056: and + IL_0057: ldc.i4.0 + IL_0058: ceq + IL_005a: call void [mscorlib]System.Console::WriteLine(bool) + IL_005f: nop + IL_0060: ldarg.0 + IL_0061: stloc.0 + IL_0062: ldarg.1 + IL_0063: stloc.1 + IL_0064: ldloca.s V_0 + IL_0066: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006b: ldloca.s V_1 + IL_006d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0072: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_007f: brtrue.s IL_0084 - - IL_0081: ldc.i4.0 - IL_0082: br.s IL_0093 - - IL_0084: ldloca.s V_0 - IL_0086: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008b: ldloca.s V_1 - IL_008d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0092: and - IL_0093: call void [mscorlib]System.Console::WriteLine(bool) - IL_0098: nop - IL_0099: ldarg.0 - IL_009a: stloc.1 - IL_009b: ldarg.1 - IL_009c: stloc.0 - IL_009d: ldloca.s V_1 - IL_009f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a4: ldloca.s V_0 - IL_00a6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00ab: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0077: ldloca.s V_0 + IL_0079: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007e: ldloca.s V_1 + IL_0080: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0085: and + IL_0086: and + IL_0087: call void [mscorlib]System.Console::WriteLine(bool) + IL_008c: nop + IL_008d: ldarg.0 + IL_008e: stloc.1 + IL_008f: ldarg.1 + IL_0090: stloc.0 + IL_0091: ldloca.s V_1 + IL_0093: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0098: ldloca.s V_0 + IL_009a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_009f: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00b0: brtrue.s IL_00b5 - - IL_00b2: ldc.i4.0 - IL_00b3: br.s IL_00c4 - - IL_00b5: ldloca.s V_1 - IL_00b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00bc: ldloca.s V_0 - IL_00be: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c3: and - IL_00c4: ldc.i4.0 - IL_00c5: ceq - IL_00c7: call void [mscorlib]System.Console::WriteLine(bool) - IL_00cc: nop - IL_00cd: ldarg.0 - IL_00ce: stloc.0 - IL_00cf: ldarg.1 - IL_00d0: stloc.1 - IL_00d1: ldloca.s V_0 - IL_00d3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00d8: ldloca.s V_1 - IL_00da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00df: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, + IL_00a4: ldloca.s V_1 + IL_00a6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ab: ldloca.s V_0 + IL_00ad: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00b2: and + IL_00b3: and + IL_00b4: ldc.i4.0 + IL_00b5: ceq + IL_00b7: call void [mscorlib]System.Console::WriteLine(bool) + IL_00bc: nop + IL_00bd: ldarg.0 + IL_00be: stloc.0 + IL_00bf: ldarg.1 + IL_00c0: stloc.1 + IL_00c1: ldloca.s V_0 + IL_00c3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c8: ldloca.s V_1 + IL_00ca: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00cf: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00e4: brtrue.s IL_00e9 - - IL_00e6: ldc.i4.0 - IL_00e7: br.s IL_00f8 - - IL_00e9: ldloca.s V_0 - IL_00eb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f0: ldloca.s V_1 - IL_00f2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f7: and - IL_00f8: ldc.i4.0 - IL_00f9: ceq - IL_00fb: call void [mscorlib]System.Console::WriteLine(bool) - IL_0100: nop - IL_0101: ldarg.0 - IL_0102: stloc.1 - IL_0103: ldarg.1 - IL_0104: stloc.0 - IL_0105: ldloca.s V_1 - IL_0107: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_010c: ldloca.s V_0 - IL_010e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0113: and - IL_0114: brtrue.s IL_0121 + IL_00d4: ldloca.s V_0 + IL_00d6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00db: ldloca.s V_1 + IL_00dd: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e2: and + IL_00e3: and + IL_00e4: ldc.i4.0 + IL_00e5: ceq + IL_00e7: call void [mscorlib]System.Console::WriteLine(bool) + IL_00ec: nop + IL_00ed: ldarg.0 + IL_00ee: stloc.1 + IL_00ef: ldarg.1 + IL_00f0: stloc.0 + IL_00f1: ldloca.s V_1 + IL_00f3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00f8: ldloca.s V_0 + IL_00fa: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ff: and + IL_0100: brtrue.s IL_010d - IL_0116: ldloca.s V_2 - IL_0118: initobj valuetype [mscorlib]System.Nullable`1 - IL_011e: ldloc.2 - IL_011f: br.s IL_0139 - - IL_0121: ldloca.s V_1 - IL_0123: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0128: ldloca.s V_0 - IL_012a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_012f: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, + IL_0102: ldloca.s V_2 + IL_0104: initobj valuetype [mscorlib]System.Nullable`1 + IL_010a: ldloc.2 + IL_010b: br.s IL_0125 + + IL_010d: ldloca.s V_1 + IL_010f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0114: ldloca.s V_0 + IL_0116: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_011b: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0134: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0139: box valuetype [mscorlib]System.Nullable`1 - IL_013e: call void [mscorlib]System.Console::WriteLine(object) - IL_0143: nop - IL_0144: ldarg.0 - IL_0145: stloc.0 - IL_0146: ldarg.1 - IL_0147: stloc.1 - IL_0148: ldloca.s V_0 - IL_014a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_014f: ldloca.s V_1 - IL_0151: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0156: and - IL_0157: brtrue.s IL_0164 + IL_0120: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0125: box valuetype [mscorlib]System.Nullable`1 + IL_012a: call void [mscorlib]System.Console::WriteLine(object) + IL_012f: nop + IL_0130: ldarg.0 + IL_0131: stloc.0 + IL_0132: ldarg.1 + IL_0133: stloc.1 + IL_0134: ldloca.s V_0 + IL_0136: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013b: ldloca.s V_1 + IL_013d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0142: and + IL_0143: brtrue.s IL_0150 - IL_0159: ldloca.s V_2 - IL_015b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0161: ldloc.2 - IL_0162: br.s IL_017c + IL_0145: ldloca.s V_2 + IL_0147: initobj valuetype [mscorlib]System.Nullable`1 + IL_014d: ldloc.2 + IL_014e: br.s IL_0168 - IL_0164: ldloca.s V_0 - IL_0166: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016b: ldloca.s V_1 - IL_016d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0172: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, + IL_0150: ldloca.s V_0 + IL_0152: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0157: ldloca.s V_1 + IL_0159: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_015e: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0177: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_017c: box valuetype [mscorlib]System.Nullable`1 - IL_0181: call void [mscorlib]System.Console::WriteLine(object) - IL_0186: nop - IL_0187: ldarg.0 - IL_0188: stloc.1 - IL_0189: ldarg.1 - IL_018a: stloc.0 - IL_018b: ldloca.s V_1 - IL_018d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0192: ldloca.s V_0 - IL_0194: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0199: and - IL_019a: brtrue.s IL_01a7 - - IL_019c: ldloca.s V_2 - IL_019e: initobj valuetype [mscorlib]System.Nullable`1 - IL_01a4: ldloc.2 - IL_01a5: br.s IL_01bf - - IL_01a7: ldloca.s V_1 - IL_01a9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ae: ldloca.s V_0 - IL_01b0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01b5: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, + IL_0163: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0168: box valuetype [mscorlib]System.Nullable`1 + IL_016d: call void [mscorlib]System.Console::WriteLine(object) + IL_0172: nop + IL_0173: ldarg.0 + IL_0174: stloc.1 + IL_0175: ldarg.1 + IL_0176: stloc.0 + IL_0177: ldloca.s V_1 + IL_0179: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_017e: ldloca.s V_0 + IL_0180: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0185: and + IL_0186: brtrue.s IL_0193 + + IL_0188: ldloca.s V_2 + IL_018a: initobj valuetype [mscorlib]System.Nullable`1 + IL_0190: ldloc.2 + IL_0191: br.s IL_01ab + + IL_0193: ldloca.s V_1 + IL_0195: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_019a: ldloca.s V_0 + IL_019c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01a1: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_01ba: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01bf: box valuetype [mscorlib]System.Nullable`1 - IL_01c4: call void [mscorlib]System.Console::WriteLine(object) - IL_01c9: nop - IL_01ca: ldarg.0 - IL_01cb: stloc.0 - IL_01cc: ldarg.1 - IL_01cd: stloc.1 - IL_01ce: ldloca.s V_0 - IL_01d0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01d5: ldloca.s V_1 - IL_01d7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01dc: and - IL_01dd: brtrue.s IL_01ea - - IL_01df: ldloca.s V_2 - IL_01e1: initobj valuetype [mscorlib]System.Nullable`1 - IL_01e7: ldloc.2 - IL_01e8: br.s IL_0202 - - IL_01ea: ldloca.s V_0 - IL_01ec: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01f1: ldloca.s V_1 - IL_01f3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01f8: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, + IL_01a6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01ab: box valuetype [mscorlib]System.Nullable`1 + IL_01b0: call void [mscorlib]System.Console::WriteLine(object) + IL_01b5: nop + IL_01b6: ldarg.0 + IL_01b7: stloc.0 + IL_01b8: ldarg.1 + IL_01b9: stloc.1 + IL_01ba: ldloca.s V_0 + IL_01bc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01c1: ldloca.s V_1 + IL_01c3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01c8: and + IL_01c9: brtrue.s IL_01d6 + + IL_01cb: ldloca.s V_2 + IL_01cd: initobj valuetype [mscorlib]System.Nullable`1 + IL_01d3: ldloc.2 + IL_01d4: br.s IL_01ee + + IL_01d6: ldloca.s V_0 + IL_01d8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01dd: ldloca.s V_1 + IL_01df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01e4: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_01fd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0202: box valuetype [mscorlib]System.Nullable`1 - IL_0207: call void [mscorlib]System.Console::WriteLine(object) - IL_020c: nop - IL_020d: ldarg.0 - IL_020e: stloc.1 - IL_020f: ldarg.1 - IL_0210: stloc.0 - IL_0211: ldloca.s V_1 - IL_0213: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0218: ldloca.s V_0 - IL_021a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_021f: and - IL_0220: brtrue.s IL_022d - - IL_0222: ldloca.s V_2 - IL_0224: initobj valuetype [mscorlib]System.Nullable`1 - IL_022a: ldloc.2 - IL_022b: br.s IL_0245 - - IL_022d: ldloca.s V_1 - IL_022f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0234: ldloca.s V_0 - IL_0236: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_023b: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, + IL_01e9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01ee: box valuetype [mscorlib]System.Nullable`1 + IL_01f3: call void [mscorlib]System.Console::WriteLine(object) + IL_01f8: nop + IL_01f9: ldarg.0 + IL_01fa: stloc.1 + IL_01fb: ldarg.1 + IL_01fc: stloc.0 + IL_01fd: ldloca.s V_1 + IL_01ff: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0204: ldloca.s V_0 + IL_0206: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_020b: and + IL_020c: brtrue.s IL_0219 + + IL_020e: ldloca.s V_2 + IL_0210: initobj valuetype [mscorlib]System.Nullable`1 + IL_0216: ldloc.2 + IL_0217: br.s IL_0231 + + IL_0219: ldloca.s V_1 + IL_021b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0220: ldloca.s V_0 + IL_0222: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0227: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0240: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0245: box valuetype [mscorlib]System.Nullable`1 - IL_024a: call void [mscorlib]System.Console::WriteLine(object) - IL_024f: nop - IL_0250: ldarg.0 - IL_0251: stloc.0 - IL_0252: ldloca.s V_0 - IL_0254: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0259: brtrue.s IL_025e - - IL_025b: ldarg.1 - IL_025c: br.s IL_025f - - IL_025e: ldloc.0 - IL_025f: box valuetype [mscorlib]System.Nullable`1 - IL_0264: call void [mscorlib]System.Console::WriteLine(object) - IL_0269: nop - IL_026a: ldarg.0 - IL_026b: stloc.0 + IL_022c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0231: box valuetype [mscorlib]System.Nullable`1 + IL_0236: call void [mscorlib]System.Console::WriteLine(object) + IL_023b: nop + IL_023c: ldarg.0 + IL_023d: stloc.0 + IL_023e: ldloca.s V_0 + IL_0240: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0245: brtrue.s IL_024a + + IL_0247: ldarg.1 + IL_0248: br.s IL_024b + + IL_024a: ldloc.0 + IL_024b: box valuetype [mscorlib]System.Nullable`1 + IL_0250: call void [mscorlib]System.Console::WriteLine(object) + IL_0255: nop + IL_0256: ldarg.0 + IL_0257: stloc.0 + IL_0258: ldloca.s V_0 + IL_025a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_025f: brtrue.s IL_026c + + IL_0261: ldloca.s V_1 + IL_0263: initobj valuetype [mscorlib]System.Nullable`1 + IL_0269: ldloc.1 + IL_026a: br.s IL_027d + IL_026c: ldloca.s V_0 - IL_026e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0273: brtrue.s IL_0280 + IL_026e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0273: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_UnaryNegation(valuetype [mscorlib]System.Decimal) + IL_0278: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_027d: box valuetype [mscorlib]System.Nullable`1 + IL_0282: call void [mscorlib]System.Console::WriteLine(object) + IL_0287: nop + IL_0288: ldarg.0 + IL_0289: stloc.0 + IL_028a: ldarg.1 + IL_028b: stloc.1 + IL_028c: ldloca.s V_0 + IL_028e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0293: ldloca.s V_1 + IL_0295: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_029a: and + IL_029b: brtrue.s IL_02a8 - IL_0275: ldloca.s V_1 - IL_0277: initobj valuetype [mscorlib]System.Nullable`1 - IL_027d: ldloc.1 - IL_027e: br.s IL_0291 + IL_029d: ldloca.s V_2 + IL_029f: initobj valuetype [mscorlib]System.Nullable`1 + IL_02a5: ldloc.2 + IL_02a6: br.s IL_02c0 - IL_0280: ldloca.s V_0 - IL_0282: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0287: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_UnaryNegation(valuetype [mscorlib]System.Decimal) - IL_028c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0291: box valuetype [mscorlib]System.Nullable`1 - IL_0296: call void [mscorlib]System.Console::WriteLine(object) - IL_029b: nop - IL_029c: ldarg.0 - IL_029d: stloc.0 - IL_029e: ldarg.1 - IL_029f: stloc.1 - IL_02a0: ldloca.s V_0 - IL_02a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02a7: ldloca.s V_1 - IL_02a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02ae: and - IL_02af: brtrue.s IL_02bc - - IL_02b1: ldloca.s V_2 - IL_02b3: initobj valuetype [mscorlib]System.Nullable`1 - IL_02b9: ldloc.2 - IL_02ba: br.s IL_02d4 - - IL_02bc: ldloca.s V_0 - IL_02be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02c3: ldloca.s V_1 - IL_02c5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02ca: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, + IL_02a8: ldloca.s V_0 + IL_02aa: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02af: ldloca.s V_1 + IL_02b1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02b6: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_02cf: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02d4: starg.s a - IL_02d6: ldarg.0 - IL_02d7: stloc.1 - IL_02d8: ldarg.1 - IL_02d9: stloc.0 - IL_02da: ldloca.s V_1 - IL_02dc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02e1: ldloca.s V_0 - IL_02e3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02e8: and - IL_02e9: brtrue.s IL_02f6 - - IL_02eb: ldloca.s V_2 - IL_02ed: initobj valuetype [mscorlib]System.Nullable`1 - IL_02f3: ldloc.2 - IL_02f4: br.s IL_030e - - IL_02f6: ldloca.s V_1 - IL_02f8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02fd: ldloca.s V_0 - IL_02ff: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0304: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, + IL_02bb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02c0: starg.s a + IL_02c2: ldarg.0 + IL_02c3: stloc.1 + IL_02c4: ldarg.1 + IL_02c5: stloc.0 + IL_02c6: ldloca.s V_1 + IL_02c8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02cd: ldloca.s V_0 + IL_02cf: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02d4: and + IL_02d5: brtrue.s IL_02e2 + + IL_02d7: ldloca.s V_2 + IL_02d9: initobj valuetype [mscorlib]System.Nullable`1 + IL_02df: ldloc.2 + IL_02e0: br.s IL_02fa + + IL_02e2: ldloca.s V_1 + IL_02e4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02e9: ldloca.s V_0 + IL_02eb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02f0: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0309: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_030e: starg.s a - IL_0310: ldarg.0 - IL_0311: stloc.0 - IL_0312: ldarg.1 - IL_0313: stloc.1 - IL_0314: ldloca.s V_0 - IL_0316: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_031b: ldloca.s V_1 - IL_031d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0322: and - IL_0323: brtrue.s IL_0330 - - IL_0325: ldloca.s V_2 - IL_0327: initobj valuetype [mscorlib]System.Nullable`1 - IL_032d: ldloc.2 - IL_032e: br.s IL_0348 - - IL_0330: ldloca.s V_0 - IL_0332: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0337: ldloca.s V_1 - IL_0339: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_033e: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, + IL_02f5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02fa: starg.s a + IL_02fc: ldarg.0 + IL_02fd: stloc.0 + IL_02fe: ldarg.1 + IL_02ff: stloc.1 + IL_0300: ldloca.s V_0 + IL_0302: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0307: ldloca.s V_1 + IL_0309: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_030e: and + IL_030f: brtrue.s IL_031c + + IL_0311: ldloca.s V_2 + IL_0313: initobj valuetype [mscorlib]System.Nullable`1 + IL_0319: ldloc.2 + IL_031a: br.s IL_0334 + + IL_031c: ldloca.s V_0 + IL_031e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0323: ldloca.s V_1 + IL_0325: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_032a: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0343: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0348: starg.s a - IL_034a: ldarg.0 - IL_034b: stloc.1 - IL_034c: ldarg.1 - IL_034d: stloc.0 - IL_034e: ldloca.s V_1 - IL_0350: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0355: ldloca.s V_0 - IL_0357: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_035c: and - IL_035d: brtrue.s IL_036a - - IL_035f: ldloca.s V_2 - IL_0361: initobj valuetype [mscorlib]System.Nullable`1 - IL_0367: ldloc.2 - IL_0368: br.s IL_0382 - - IL_036a: ldloca.s V_1 - IL_036c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0371: ldloca.s V_0 - IL_0373: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0378: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, + IL_032f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0334: starg.s a + IL_0336: ldarg.0 + IL_0337: stloc.1 + IL_0338: ldarg.1 + IL_0339: stloc.0 + IL_033a: ldloca.s V_1 + IL_033c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0341: ldloca.s V_0 + IL_0343: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0348: and + IL_0349: brtrue.s IL_0356 + + IL_034b: ldloca.s V_2 + IL_034d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0353: ldloc.2 + IL_0354: br.s IL_036e + + IL_0356: ldloca.s V_1 + IL_0358: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_035d: ldloca.s V_0 + IL_035f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0364: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_037d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0382: starg.s a - IL_0384: ldarg.0 - IL_0385: stloc.0 - IL_0386: ldarg.1 - IL_0387: stloc.1 - IL_0388: ldloca.s V_0 - IL_038a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_038f: ldloca.s V_1 - IL_0391: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0396: and - IL_0397: brtrue.s IL_03a4 - - IL_0399: ldloca.s V_2 - IL_039b: initobj valuetype [mscorlib]System.Nullable`1 - IL_03a1: ldloc.2 - IL_03a2: br.s IL_03bc - - IL_03a4: ldloca.s V_0 - IL_03a6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03ab: ldloca.s V_1 - IL_03ad: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03b2: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, + IL_0369: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_036e: starg.s a + IL_0370: ldarg.0 + IL_0371: stloc.0 + IL_0372: ldarg.1 + IL_0373: stloc.1 + IL_0374: ldloca.s V_0 + IL_0376: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_037b: ldloca.s V_1 + IL_037d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0382: and + IL_0383: brtrue.s IL_0390 + + IL_0385: ldloca.s V_2 + IL_0387: initobj valuetype [mscorlib]System.Nullable`1 + IL_038d: ldloc.2 + IL_038e: br.s IL_03a8 + + IL_0390: ldloca.s V_0 + IL_0392: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0397: ldloca.s V_1 + IL_0399: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_039e: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_03b7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03bc: starg.s a - IL_03be: ret + IL_03a3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03a8: starg.s a + IL_03aa: ret } // end of method LiftedOperators::NumberValueBasic .method public hidebysig static void NumberValueComplex(valuetype [mscorlib]System.Nullable`1 a, @@ -3996,8 +3777,8 @@ .method public hidebysig static void CompareWithImplictCast(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 175 (0xaf) - .maxstack 2 + // Code size 171 (0xab) + .maxstack 3 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -4027,72 +3808,66 @@ IL_002a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002f: ldloca.s V_2 IL_0031: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0036: blt.s IL_003b - - IL_0038: ldc.i4.0 - IL_0039: br.s IL_004a - - IL_003b: ldloca.s V_1 - IL_003d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0042: ldloca.s V_2 - IL_0044: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0049: and - IL_004a: stloc.0 - IL_004b: ldloc.0 - IL_004c: brfalse.s IL_0056 - - IL_004e: nop - IL_004f: call void [mscorlib]System.Console::WriteLine() - IL_0054: nop - IL_0055: nop - IL_0056: ldarg.0 - IL_0057: stloc.3 - IL_0058: ldloca.s V_3 - IL_005a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_005f: brtrue.s IL_006d - - IL_0061: ldloca.s V_4 - IL_0063: initobj valuetype [mscorlib]System.Nullable`1 - IL_0069: ldloc.s V_4 - IL_006b: br.s IL_007a - - IL_006d: ldloca.s V_3 - IL_006f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0074: conv.i8 - IL_0075: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_007a: stloc.2 - IL_007b: ldarg.1 - IL_007c: stloc.1 - IL_007d: ldloca.s V_2 - IL_007f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0084: ldloca.s V_1 - IL_0086: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_008b: beq.s IL_0090 - - IL_008d: ldc.i4.0 - IL_008e: br.s IL_00a0 - - IL_0090: ldloca.s V_2 - IL_0092: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0097: ldloca.s V_1 - IL_0099: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009e: ceq - IL_00a0: stloc.s V_5 - IL_00a2: ldloc.s V_5 - IL_00a4: brfalse.s IL_00ae + IL_0036: clt + IL_0038: ldloca.s V_1 + IL_003a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003f: ldloca.s V_2 + IL_0041: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0046: and + IL_0047: and + IL_0048: stloc.0 + IL_0049: ldloc.0 + IL_004a: brfalse.s IL_0054 + + IL_004c: nop + IL_004d: call void [mscorlib]System.Console::WriteLine() + IL_0052: nop + IL_0053: nop + IL_0054: ldarg.0 + IL_0055: stloc.3 + IL_0056: ldloca.s V_3 + IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005d: brtrue.s IL_006b + + IL_005f: ldloca.s V_4 + IL_0061: initobj valuetype [mscorlib]System.Nullable`1 + IL_0067: ldloc.s V_4 + IL_0069: br.s IL_0078 + + IL_006b: ldloca.s V_3 + IL_006d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0072: conv.i8 + IL_0073: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0078: stloc.2 + IL_0079: ldarg.1 + IL_007a: stloc.1 + IL_007b: ldloca.s V_2 + IL_007d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0082: ldloca.s V_1 + IL_0084: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0089: ceq + IL_008b: ldloca.s V_2 + IL_008d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0092: ldloca.s V_1 + IL_0094: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0099: ceq + IL_009b: and + IL_009c: stloc.s V_5 + IL_009e: ldloc.s V_5 + IL_00a0: brfalse.s IL_00aa - IL_00a6: nop - IL_00a7: call void [mscorlib]System.Console::WriteLine() - IL_00ac: nop - IL_00ad: nop - IL_00ae: ret + IL_00a2: nop + IL_00a3: call void [mscorlib]System.Console::WriteLine() + IL_00a8: nop + IL_00a9: nop + IL_00aa: ret } // end of method LiftedOperators::CompareWithImplictCast .method public hidebysig static void CompareWithSignChange(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 120 (0x78) - .maxstack 2 + // Code size 118 (0x76) + .maxstack 3 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -4133,25 +3908,22 @@ IL_004b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0050: ldloca.s V_2 IL_0052: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0057: blt.un.s IL_005c - - IL_0059: ldc.i4.0 - IL_005a: br.s IL_006b - - IL_005c: ldloca.s V_1 - IL_005e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0063: ldloca.s V_2 - IL_0065: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_006a: and - IL_006b: stloc.0 - IL_006c: ldloc.0 - IL_006d: brfalse.s IL_0077 + IL_0057: clt.un + IL_0059: ldloca.s V_1 + IL_005b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0060: ldloca.s V_2 + IL_0062: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0067: and + IL_0068: and + IL_0069: stloc.0 + IL_006a: ldloc.0 + IL_006b: brfalse.s IL_0075 - IL_006f: nop - IL_0070: call void [mscorlib]System.Console::WriteLine() - IL_0075: nop - IL_0076: nop - IL_0077: ret + IL_006d: nop + IL_006e: call void [mscorlib]System.Console::WriteLine() + IL_0073: nop + IL_0074: nop + IL_0075: ret } // end of method LiftedOperators::CompareWithSignChange .method public hidebysig static void StructBasic(valuetype [mscorlib]System.Nullable`1 a, @@ -5239,8 +5011,8 @@ .method public hidebysig static bool RetEq(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 45 (0x2d) - .maxstack 2 + // Code size 43 (0x2b) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, bool V_2) @@ -5253,28 +5025,25 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_1 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: beq.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0028 - - IL_0018: ldloca.s V_0 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_1 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: ceq - IL_0028: stloc.2 - IL_0029: br.s IL_002b - - IL_002b: ldloc.2 - IL_002c: ret + IL_0013: ceq + IL_0015: ldloca.s V_0 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_1 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: ceq + IL_0025: and + IL_0026: stloc.2 + IL_0027: br.s IL_0029 + + IL_0029: ldloc.2 + IL_002a: ret } // end of method LiftedOperators::RetEq .method public hidebysig static bool RetEqConv(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 81 (0x51) - .maxstack 2 + // Code size 79 (0x4f) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -5303,26 +5072,23 @@ IL_0029: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002e: ldloca.s V_1 IL_0030: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0035: beq.s IL_003a - - IL_0037: ldc.i4.0 - IL_0038: br.s IL_004a - - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldloca.s V_1 - IL_0043: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0048: ceq - IL_004a: stloc.s V_4 - IL_004c: br.s IL_004e - - IL_004e: ldloc.s V_4 - IL_0050: ret + IL_0035: ceq + IL_0037: ldloca.s V_0 + IL_0039: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003e: ldloca.s V_1 + IL_0040: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0045: ceq + IL_0047: and + IL_0048: stloc.s V_4 + IL_004a: br.s IL_004c + + IL_004c: ldloc.s V_4 + IL_004e: ret } // end of method LiftedOperators::RetEqConv .method public hidebysig static bool RetEqConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 32 (0x20) + // Code size 30 (0x1e) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int64 V_1, @@ -5336,23 +5102,20 @@ IL_0007: ldloca.s V_0 IL_0009: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000e: ldloc.1 - IL_000f: beq.s IL_0014 - - IL_0011: ldc.i4.0 - IL_0012: br.s IL_001b - - IL_0014: ldloca.s V_0 - IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001b: stloc.2 - IL_001c: br.s IL_001e - - IL_001e: ldloc.2 - IL_001f: ret + IL_000f: ceq + IL_0011: ldloca.s V_0 + IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0018: and + IL_0019: stloc.2 + IL_001a: br.s IL_001c + + IL_001c: ldloc.2 + IL_001d: ret } // end of method LiftedOperators::RetEqConst .method public hidebysig static bool RetIneqConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 35 (0x23) + // Code size 33 (0x21) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int64 V_1, @@ -5366,27 +5129,24 @@ IL_0007: ldloca.s V_0 IL_0009: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000e: ldloc.1 - IL_000f: beq.s IL_0014 - - IL_0011: ldc.i4.1 - IL_0012: br.s IL_001e - - IL_0014: ldloca.s V_0 - IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001b: ldc.i4.0 - IL_001c: ceq - IL_001e: stloc.2 - IL_001f: br.s IL_0021 - - IL_0021: ldloc.2 - IL_0022: ret + IL_000f: ceq + IL_0011: ldloca.s V_0 + IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0018: and + IL_0019: ldc.i4.0 + IL_001a: ceq + IL_001c: stloc.2 + IL_001d: br.s IL_001f + + IL_001f: ldloc.2 + IL_0020: ret } // end of method LiftedOperators::RetIneqConst .method public hidebysig static bool RetLt(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 44 (0x2c) - .maxstack 2 + // Code size 42 (0x2a) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, bool V_2) @@ -5399,26 +5159,23 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_1 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: blt.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0027 - - IL_0018: ldloca.s V_0 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_1 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: and - IL_0027: stloc.2 - IL_0028: br.s IL_002a - - IL_002a: ldloc.2 - IL_002b: ret + IL_0013: clt + IL_0015: ldloca.s V_0 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_1 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: and + IL_0024: and + IL_0025: stloc.2 + IL_0026: br.s IL_0028 + + IL_0028: ldloc.2 + IL_0029: ret } // end of method LiftedOperators::RetLt .method public hidebysig static bool RetLtConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 31 (0x1f) + // Code size 29 (0x1d) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1, @@ -5431,25 +5188,22 @@ IL_0006: ldloca.s V_0 IL_0008: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000d: ldloc.1 - IL_000e: blt.s IL_0013 - - IL_0010: ldc.i4.0 - IL_0011: br.s IL_001a - - IL_0013: ldloca.s V_0 - IL_0015: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001a: stloc.2 - IL_001b: br.s IL_001d + IL_000e: clt + IL_0010: ldloca.s V_0 + IL_0012: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0017: and + IL_0018: stloc.2 + IL_0019: br.s IL_001b - IL_001d: ldloc.2 - IL_001e: ret + IL_001b: ldloc.2 + IL_001c: ret } // end of method LiftedOperators::RetLtConst .method public hidebysig static bool RetLtConv(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 80 (0x50) - .maxstack 2 + // Code size 78 (0x4e) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -5478,28 +5232,25 @@ IL_0029: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002e: ldloca.s V_1 IL_0030: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0035: blt.s IL_003a - - IL_0037: ldc.i4.0 - IL_0038: br.s IL_0049 - - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldloca.s V_1 - IL_0043: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0048: and - IL_0049: stloc.s V_4 - IL_004b: br.s IL_004d - - IL_004d: ldloc.s V_4 - IL_004f: ret + IL_0035: clt + IL_0037: ldloca.s V_0 + IL_0039: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003e: ldloca.s V_1 + IL_0040: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0045: and + IL_0046: and + IL_0047: stloc.s V_4 + IL_0049: br.s IL_004b + + IL_004b: ldloc.s V_4 + IL_004d: ret } // end of method LiftedOperators::RetLtConv .method public hidebysig static bool RetNotLt(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 47 (0x2f) - .maxstack 2 + // Code size 45 (0x2d) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, bool V_2) @@ -5512,23 +5263,20 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_1 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: blt.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0027 + IL_0013: clt + IL_0015: ldloca.s V_0 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_1 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: and + IL_0024: and + IL_0025: ldc.i4.0 + IL_0026: ceq + IL_0028: stloc.2 + IL_0029: br.s IL_002b - IL_0018: ldloca.s V_0 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_1 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: and - IL_0027: ldc.i4.0 - IL_0028: ceq - IL_002a: stloc.2 - IL_002b: br.s IL_002d - - IL_002d: ldloc.2 - IL_002e: ret + IL_002b: ldloc.2 + IL_002c: ret } // end of method LiftedOperators::RetNotLt } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.LiftedOperators diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.il index b17ddd9ff..74e00afb6 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.il @@ -2938,7 +2938,7 @@ NestedForeach(class [mscorlib]System.Collections.Generic.List`1 items1, class [mscorlib]System.Collections.Generic.List`1 items2) cil managed { - // Code size 150 (0x96) + // Code size 152 (0x98) .maxstack 2 .locals init (object V_0, bool V_1, @@ -2953,7 +2953,7 @@ IL_0008: stloc.3 .try { - IL_0009: br.s IL_006b + IL_0009: br.s IL_006d IL_000b: ldloca.s V_3 IL_000d: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::get_Current() @@ -3009,47 +3009,49 @@ IL_005c: ldloc.1 IL_005d: stloc.s V_5 IL_005f: ldloc.s V_5 - IL_0061: brtrue.s IL_006a + IL_0061: brtrue.s IL_006c - IL_0063: ldloc.0 - IL_0064: call void [mscorlib]System.Console::WriteLine(object) - IL_0069: nop + IL_0063: nop + IL_0064: ldloc.0 + IL_0065: call void [mscorlib]System.Console::WriteLine(object) IL_006a: nop - IL_006b: ldloca.s V_3 - IL_006d: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::MoveNext() - IL_0072: stloc.s V_5 - IL_0074: ldloc.s V_5 - IL_0076: brtrue.s IL_000b + IL_006b: nop + IL_006c: nop + IL_006d: ldloca.s V_3 + IL_006f: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::MoveNext() + IL_0074: stloc.s V_5 + IL_0076: ldloc.s V_5 + IL_0078: brtrue.s IL_000b - IL_0078: leave.s IL_0089 + IL_007a: leave.s IL_008b } // end .try finally { - IL_007a: ldloca.s V_3 - IL_007c: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator - IL_0082: callvirt instance void [mscorlib]System.IDisposable::Dispose() - IL_0087: nop - IL_0088: endfinally + IL_007c: ldloca.s V_3 + IL_007e: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator + IL_0084: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0089: nop + IL_008a: endfinally } // end handler - IL_0089: nop - IL_008a: ldstr "end" - IL_008f: call void [mscorlib]System.Console::WriteLine(string) - IL_0094: nop - IL_0095: ret + IL_008b: nop + IL_008c: ldstr "end" + IL_0091: call void [mscorlib]System.Console::WriteLine(string) + IL_0096: nop + IL_0097: ret } // end of method Loops::NestedForeach .method public hidebysig instance void MergeAroundContinue() cil managed { - // Code size 137 (0x89) + // Code size 140 (0x8c) .maxstack 2 .locals init (int32 V_0, bool V_1) IL_0000: nop IL_0001: ldc.i4.0 IL_0002: stloc.0 - IL_0003: br.s IL_0074 + IL_0003: br.s IL_0077 IL_0005: nop IL_0006: ldloc.0 @@ -3061,7 +3063,7 @@ IL_000d: ceq IL_000f: stloc.1 IL_0010: ldloc.1 - IL_0011: brtrue.s IL_0021 + IL_0011: brtrue.s IL_0022 IL_0013: nop IL_0014: ldloc.0 @@ -3069,94 +3071,97 @@ IL_0016: ceq IL_0018: stloc.1 IL_0019: ldloc.1 - IL_001a: brtrue.s IL_001e + IL_001a: brtrue.s IL_001f - IL_001c: br.s IL_0070 + IL_001c: nop + IL_001d: br.s IL_0073 - IL_001e: nop - IL_001f: br.s IL_0068 - - IL_0021: ldloc.0 - IL_0022: ldc.i4.5 - IL_0023: rem - IL_0024: ldc.i4.0 - IL_0025: ceq - IL_0027: ldc.i4.0 - IL_0028: ceq - IL_002a: stloc.1 - IL_002b: ldloc.1 - IL_002c: brtrue.s IL_003c - - IL_002e: nop - IL_002f: ldloc.0 - IL_0030: ldc.i4.5 - IL_0031: ceq - IL_0033: stloc.1 - IL_0034: ldloc.1 - IL_0035: brtrue.s IL_0039 + IL_001f: nop + IL_0020: br.s IL_006b + + IL_0022: ldloc.0 + IL_0023: ldc.i4.5 + IL_0024: rem + IL_0025: ldc.i4.0 + IL_0026: ceq + IL_0028: ldc.i4.0 + IL_0029: ceq + IL_002b: stloc.1 + IL_002c: ldloc.1 + IL_002d: brtrue.s IL_003e - IL_0037: br.s IL_0070 + IL_002f: nop + IL_0030: ldloc.0 + IL_0031: ldc.i4.5 + IL_0032: ceq + IL_0034: stloc.1 + IL_0035: ldloc.1 + IL_0036: brtrue.s IL_003b - IL_0039: nop - IL_003a: br.s IL_0068 + IL_0038: nop + IL_0039: br.s IL_0073 - IL_003c: ldloc.0 - IL_003d: ldc.i4.7 - IL_003e: rem - IL_003f: ldc.i4.0 - IL_0040: ceq - IL_0042: ldc.i4.0 - IL_0043: ceq - IL_0045: stloc.1 - IL_0046: ldloc.1 - IL_0047: brtrue.s IL_0057 + IL_003b: nop + IL_003c: br.s IL_006b - IL_0049: nop - IL_004a: ldloc.0 - IL_004b: ldc.i4.7 - IL_004c: ceq - IL_004e: stloc.1 - IL_004f: ldloc.1 - IL_0050: brtrue.s IL_0054 + IL_003e: ldloc.0 + IL_003f: ldc.i4.7 + IL_0040: rem + IL_0041: ldc.i4.0 + IL_0042: ceq + IL_0044: ldc.i4.0 + IL_0045: ceq + IL_0047: stloc.1 + IL_0048: ldloc.1 + IL_0049: brtrue.s IL_005a - IL_0052: br.s IL_0070 + IL_004b: nop + IL_004c: ldloc.0 + IL_004d: ldc.i4.7 + IL_004e: ceq + IL_0050: stloc.1 + IL_0051: ldloc.1 + IL_0052: brtrue.s IL_0057 IL_0054: nop - IL_0055: br.s IL_0068 + IL_0055: br.s IL_0073 + + IL_0057: nop + IL_0058: br.s IL_006b - IL_0057: ldloc.0 - IL_0058: ldc.i4.s 11 - IL_005a: rem - IL_005b: ldc.i4.0 - IL_005c: ceq + IL_005a: ldloc.0 + IL_005b: ldc.i4.s 11 + IL_005d: rem IL_005e: ldc.i4.0 IL_005f: ceq - IL_0061: stloc.1 - IL_0062: ldloc.1 - IL_0063: brtrue.s IL_0068 + IL_0061: ldc.i4.0 + IL_0062: ceq + IL_0064: stloc.1 + IL_0065: ldloc.1 + IL_0066: brtrue.s IL_006b - IL_0065: nop - IL_0066: br.s IL_0070 + IL_0068: nop + IL_0069: br.s IL_0073 - IL_0068: ldloc.0 - IL_0069: call void [mscorlib]System.Console::WriteLine(int32) - IL_006e: nop - IL_006f: nop - IL_0070: ldloc.0 - IL_0071: ldc.i4.1 - IL_0072: add - IL_0073: stloc.0 - IL_0074: ldloc.0 - IL_0075: ldc.i4.s 20 - IL_0077: clt - IL_0079: stloc.1 - IL_007a: ldloc.1 - IL_007b: brtrue.s IL_0005 - - IL_007d: ldstr "end" - IL_0082: call void [mscorlib]System.Console::WriteLine(string) - IL_0087: nop - IL_0088: ret + IL_006b: ldloc.0 + IL_006c: call void [mscorlib]System.Console::WriteLine(int32) + IL_0071: nop + IL_0072: nop + IL_0073: ldloc.0 + IL_0074: ldc.i4.1 + IL_0075: add + IL_0076: stloc.0 + IL_0077: ldloc.0 + IL_0078: ldc.i4.s 20 + IL_007a: clt + IL_007c: stloc.1 + IL_007d: ldloc.1 + IL_007e: brtrue.s IL_0005 + + IL_0080: ldstr "end" + IL_0085: call void [mscorlib]System.Console::WriteLine(string) + IL_008a: nop + IL_008b: ret } // end of method Loops::MergeAroundContinue .method public hidebysig specialname rtspecialname diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.roslyn.il index 40e3f3412..5bb292564 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.roslyn.il @@ -2756,7 +2756,7 @@ NestedForeach(class [mscorlib]System.Collections.Generic.List`1 items1, class [mscorlib]System.Collections.Generic.List`1 items2) cil managed { - // Code size 141 (0x8d) + // Code size 143 (0x8f) .maxstack 2 .locals init (valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator V_0, object V_1, @@ -2772,7 +2772,7 @@ IL_0008: stloc.0 .try { - IL_0009: br.s IL_0067 + IL_0009: br.s IL_0069 IL_000b: ldloca.s V_0 IL_000d: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::get_Current() @@ -2825,37 +2825,39 @@ IL_0057: ceq IL_0059: stloc.s V_6 IL_005b: ldloc.s V_6 - IL_005d: brfalse.s IL_0066 + IL_005d: brfalse.s IL_0068 - IL_005f: ldloc.1 - IL_0060: call void [mscorlib]System.Console::WriteLine(object) - IL_0065: nop + IL_005f: nop + IL_0060: ldloc.1 + IL_0061: call void [mscorlib]System.Console::WriteLine(object) IL_0066: nop - IL_0067: ldloca.s V_0 - IL_0069: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::MoveNext() - IL_006e: brtrue.s IL_000b + IL_0067: nop + IL_0068: nop + IL_0069: ldloca.s V_0 + IL_006b: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::MoveNext() + IL_0070: brtrue.s IL_000b - IL_0070: leave.s IL_0081 + IL_0072: leave.s IL_0083 } // end .try finally { - IL_0072: ldloca.s V_0 - IL_0074: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator - IL_007a: callvirt instance void [mscorlib]System.IDisposable::Dispose() - IL_007f: nop - IL_0080: endfinally + IL_0074: ldloca.s V_0 + IL_0076: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator + IL_007c: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0081: nop + IL_0082: endfinally } // end handler - IL_0081: ldstr "end" - IL_0086: call void [mscorlib]System.Console::WriteLine(string) - IL_008b: nop - IL_008c: ret + IL_0083: ldstr "end" + IL_0088: call void [mscorlib]System.Console::WriteLine(string) + IL_008d: nop + IL_008e: ret } // end of method Loops::NestedForeach .method public hidebysig instance void MergeAroundContinue() cil managed { - // Code size 144 (0x90) + // Code size 150 (0x96) .maxstack 2 .locals init (int32 V_0, bool V_1, @@ -2869,7 +2871,7 @@ IL_0000: nop IL_0001: ldc.i4.0 IL_0002: stloc.0 - IL_0003: br.s IL_0079 + IL_0003: br.s IL_007c IL_0005: nop IL_0006: ldloc.0 @@ -2879,7 +2881,7 @@ IL_000a: ceq IL_000c: stloc.1 IL_000d: ldloc.1 - IL_000e: brfalse.s IL_0021 + IL_000e: brfalse.s IL_0022 IL_0010: nop IL_0011: ldloc.0 @@ -2889,92 +2891,95 @@ IL_0016: ceq IL_0018: stloc.2 IL_0019: ldloc.2 - IL_001a: brfalse.s IL_001e + IL_001a: brfalse.s IL_001f - IL_001c: br.s IL_0075 + IL_001c: nop + IL_001d: br.s IL_0078 - IL_001e: nop - IL_001f: br.s IL_006d + IL_001f: nop + IL_0020: br.s IL_0070 - IL_0021: ldloc.0 - IL_0022: ldc.i4.5 - IL_0023: rem - IL_0024: ldc.i4.0 - IL_0025: ceq - IL_0027: stloc.3 - IL_0028: ldloc.3 - IL_0029: brfalse.s IL_003e + IL_0022: ldloc.0 + IL_0023: ldc.i4.5 + IL_0024: rem + IL_0025: ldc.i4.0 + IL_0026: ceq + IL_0028: stloc.3 + IL_0029: ldloc.3 + IL_002a: brfalse.s IL_0040 - IL_002b: nop - IL_002c: ldloc.0 - IL_002d: ldc.i4.5 - IL_002e: ceq - IL_0030: ldc.i4.0 - IL_0031: ceq - IL_0033: stloc.s V_4 - IL_0035: ldloc.s V_4 - IL_0037: brfalse.s IL_003b + IL_002c: nop + IL_002d: ldloc.0 + IL_002e: ldc.i4.5 + IL_002f: ceq + IL_0031: ldc.i4.0 + IL_0032: ceq + IL_0034: stloc.s V_4 + IL_0036: ldloc.s V_4 + IL_0038: brfalse.s IL_003d - IL_0039: br.s IL_0075 + IL_003a: nop + IL_003b: br.s IL_0078 - IL_003b: nop - IL_003c: br.s IL_006d - - IL_003e: ldloc.0 - IL_003f: ldc.i4.7 - IL_0040: rem - IL_0041: ldc.i4.0 - IL_0042: ceq - IL_0044: stloc.s V_5 - IL_0046: ldloc.s V_5 - IL_0048: brfalse.s IL_005d - - IL_004a: nop - IL_004b: ldloc.0 - IL_004c: ldc.i4.7 - IL_004d: ceq - IL_004f: ldc.i4.0 - IL_0050: ceq - IL_0052: stloc.s V_6 - IL_0054: ldloc.s V_6 - IL_0056: brfalse.s IL_005a - - IL_0058: br.s IL_0075 + IL_003d: nop + IL_003e: br.s IL_0070 + + IL_0040: ldloc.0 + IL_0041: ldc.i4.7 + IL_0042: rem + IL_0043: ldc.i4.0 + IL_0044: ceq + IL_0046: stloc.s V_5 + IL_0048: ldloc.s V_5 + IL_004a: brfalse.s IL_0060 + + IL_004c: nop + IL_004d: ldloc.0 + IL_004e: ldc.i4.7 + IL_004f: ceq + IL_0051: ldc.i4.0 + IL_0052: ceq + IL_0054: stloc.s V_6 + IL_0056: ldloc.s V_6 + IL_0058: brfalse.s IL_005d IL_005a: nop - IL_005b: br.s IL_006d + IL_005b: br.s IL_0078 - IL_005d: ldloc.0 - IL_005e: ldc.i4.s 11 - IL_0060: rem - IL_0061: ldc.i4.0 - IL_0062: ceq - IL_0064: stloc.s V_7 - IL_0066: ldloc.s V_7 - IL_0068: brfalse.s IL_006d + IL_005d: nop + IL_005e: br.s IL_0070 - IL_006a: nop - IL_006b: br.s IL_0075 - - IL_006d: ldloc.0 - IL_006e: call void [mscorlib]System.Console::WriteLine(int32) - IL_0073: nop - IL_0074: nop - IL_0075: ldloc.0 - IL_0076: ldc.i4.1 - IL_0077: add - IL_0078: stloc.0 - IL_0079: ldloc.0 - IL_007a: ldc.i4.s 20 - IL_007c: clt - IL_007e: stloc.s V_8 - IL_0080: ldloc.s V_8 - IL_0082: brtrue.s IL_0005 - - IL_0084: ldstr "end" - IL_0089: call void [mscorlib]System.Console::WriteLine(string) - IL_008e: nop - IL_008f: ret + IL_0060: ldloc.0 + IL_0061: ldc.i4.s 11 + IL_0063: rem + IL_0064: ldc.i4.0 + IL_0065: ceq + IL_0067: stloc.s V_7 + IL_0069: ldloc.s V_7 + IL_006b: brfalse.s IL_0070 + + IL_006d: nop + IL_006e: br.s IL_0078 + + IL_0070: ldloc.0 + IL_0071: call void [mscorlib]System.Console::WriteLine(int32) + IL_0076: nop + IL_0077: nop + IL_0078: ldloc.0 + IL_0079: ldc.i4.1 + IL_007a: add + IL_007b: stloc.0 + IL_007c: ldloc.0 + IL_007d: ldc.i4.s 20 + IL_007f: clt + IL_0081: stloc.s V_8 + IL_0083: ldloc.s V_8 + IL_0085: brtrue IL_0005 + + IL_008a: ldstr "end" + IL_008f: call void [mscorlib]System.Console::WriteLine(string) + IL_0094: nop + IL_0095: ret } // end of method Loops::MergeAroundContinue .method public hidebysig specialname rtspecialname diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.cs new file mode 100644 index 000000000..a08cd43e9 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.cs @@ -0,0 +1,270 @@ +using System; + +namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty +{ + public abstract class ReduceNesting + { + public abstract bool B(int i); + public abstract int I(int i); + + public void IfIf() + { + if (B(0)) { + Console.WriteLine(0); + return; + } + + if (B(1)) { + Console.WriteLine(1); + } + + Console.WriteLine("end"); + } + + public void IfSwitch() + { + if (B(0)) { + Console.WriteLine(0); + return; + } + + Console.WriteLine("switch"); + switch (I(0)) { + case 0: + Console.WriteLine("case 0"); + break; + case 1: + Console.WriteLine("case 1"); + break; + default: + Console.WriteLine("end"); + break; + } + } + + public void IfSwitchSwitch() + { + if (B(0)) { + Console.WriteLine(0); + return; + } + + Console.WriteLine("switch 0"); + switch (I(1)) { + case 0: + Console.WriteLine("case 0"); + return; + case 1: + Console.WriteLine("case 1"); + return; + } + + Console.WriteLine("switch 1"); + switch (I(1)) { + case 0: + Console.WriteLine("case 0"); + break; + case 1: + Console.WriteLine("case 1"); + break; + default: + Console.WriteLine("end"); + break; + } + } + + public void IfLoop() + { + if (B(0)) { + Console.WriteLine(0); + return; + } + + for (int i = 0; i < 10; i++) { + Console.WriteLine(i); + } + + Console.WriteLine("end"); + } + + public void LoopContinue() + { + for (int i = 0; i < 10; i++) { + Console.WriteLine(i); + if (B(0)) { + Console.WriteLine(0); + continue; + } + + if (B(1)) { + Console.WriteLine(1); + } + Console.WriteLine("loop-tail"); + } + } + + public void LoopBreak() + { + for (int i = 0; i < 10; i++) { + Console.WriteLine(i); + if (B(0)) { + Console.WriteLine(0); + continue; + } + + if (B(1)) { + Console.WriteLine(1); + break; + } + + if (B(2)) { + Console.WriteLine(2); + } + + Console.WriteLine("break"); + break; + } + Console.WriteLine("end"); + } + + public void LoopBreakElseIf() + { + for (int i = 0; i < 10; i++) { + Console.WriteLine(i); + if (B(0)) { + Console.WriteLine(0); + continue; + } + + if (B(1)) { + Console.WriteLine(1); + } else if (B(2)) { + Console.WriteLine(2); + } + break; + } + Console.WriteLine("end"); + } + + public void SwitchIf() + { + switch (I(0)) { + case 0: + Console.WriteLine("case 0"); + return; + case 1: + Console.WriteLine("case 1"); + return; + } + + if (B(0)) { + Console.WriteLine(0); + } + Console.WriteLine("end"); + } + + public void NestedSwitchIf() + { + if (B(0)) { + switch (I(0)) { + case 0: + Console.WriteLine("case 0"); + return; + case 1: + Console.WriteLine("case 1"); + return; + } + + if (B(1)) { + Console.WriteLine(1); + } + } else { + Console.WriteLine("else"); + } + } + + // nesting should not be reduced as maximum nesting level is 1 + public void EarlyExit1() + { + if (!B(0)) { + for (int i = 0; i < 10; i++) { + Console.WriteLine(i); + } + Console.WriteLine("end"); + } + } + + // nesting should not be reduced as maximum nesting level is 2 + public void EarlyExit2() + { + if (B(0)) { + return; + } + + for (int i = 0; i < 10; i++) { + Console.WriteLine(i); + if (i % 2 == 0) { + Console.WriteLine("even"); + } + } + + Console.WriteLine("end"); + } + + // nesting should not be reduced as maximum nesting level is 1 and the else block has no more instructions than any other block + public void BalancedIf() + { + if (B(0)) { + Console.WriteLine("true"); + if (B(1)) { + Console.WriteLine(1); + } + } else { + if (B(2)) { + Console.WriteLine(2); + } + Console.WriteLine("false"); + } + } + + public string ComplexCase1(string s) + { + if (B(0)) { + return s; + } + + for (int i = 0; i < s.Length; i++) { + if (B(1)) { + Console.WriteLine(1); + } else if (B(2)) { + switch (i) { + case 1: + if (B(3)) { + Console.WriteLine(3); + break; + } + + Console.WriteLine("case1"); + if (B(4)) { + Console.WriteLine(4); + } + break; + case 2: + case 3: + Console.WriteLine("case23"); + break; + } + Console.WriteLine(2); + } else if (B(5)) { + Console.WriteLine(5); + } else { + if (B(6)) { + Console.WriteLine(6); + } + Console.WriteLine("else"); + } + } + return s; + } + } +} diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.il new file mode 100644 index 000000000..b4493229c --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.il @@ -0,0 +1,949 @@ + + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly ReduceNesting +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx + 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module ReduceNesting.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 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting + extends [mscorlib]System.Object +{ + .method public hidebysig newslot abstract virtual + instance bool B(int32 i) cil managed + { + } // end of method ReduceNesting::B + + .method public hidebysig newslot abstract virtual + instance int32 I(int32 i) cil managed + { + } // end of method ReduceNesting::I + + .method public hidebysig instance void + IfIf() cil managed + { + // Code size 60 (0x3c) + .maxstack 2 + .locals init (bool V_0) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: ldc.i4.0 + IL_0009: ceq + IL_000b: stloc.0 + IL_000c: ldloc.0 + IL_000d: brtrue.s IL_0019 + + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: call void [mscorlib]System.Console::WriteLine(int32) + IL_0016: nop + IL_0017: br.s IL_003b + + IL_0019: ldarg.0 + IL_001a: ldc.i4.1 + IL_001b: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0020: ldc.i4.0 + IL_0021: ceq + IL_0023: stloc.0 + IL_0024: ldloc.0 + IL_0025: brtrue.s IL_0030 + + IL_0027: nop + IL_0028: ldc.i4.1 + IL_0029: call void [mscorlib]System.Console::WriteLine(int32) + IL_002e: nop + IL_002f: nop + IL_0030: ldstr "end" + IL_0035: call void [mscorlib]System.Console::WriteLine(string) + IL_003a: nop + IL_003b: ret + } // end of method ReduceNesting::IfIf + + .method public hidebysig instance void + IfSwitch() cil managed + { + // Code size 100 (0x64) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: ldc.i4.0 + IL_0009: ceq + IL_000b: stloc.0 + IL_000c: ldloc.0 + IL_000d: brtrue.s IL_0019 + + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: call void [mscorlib]System.Console::WriteLine(int32) + IL_0016: nop + IL_0017: br.s IL_0063 + + IL_0019: ldstr "switch" + IL_001e: call void [mscorlib]System.Console::WriteLine(string) + IL_0023: nop + IL_0024: ldarg.0 + IL_0025: ldc.i4.0 + IL_0026: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_002b: stloc.1 + IL_002c: ldloc.1 + IL_002d: switch ( + IL_003c, + IL_0049) + IL_003a: br.s IL_0056 + + IL_003c: ldstr "case 0" + IL_0041: call void [mscorlib]System.Console::WriteLine(string) + IL_0046: nop + IL_0047: br.s IL_0063 + + IL_0049: ldstr "case 1" + IL_004e: call void [mscorlib]System.Console::WriteLine(string) + IL_0053: nop + IL_0054: br.s IL_0063 + + IL_0056: ldstr "end" + IL_005b: call void [mscorlib]System.Console::WriteLine(string) + IL_0060: nop + IL_0061: br.s IL_0063 + + IL_0063: ret + } // end of method ReduceNesting::IfSwitch + + .method public hidebysig instance void + IfSwitchSwitch() cil managed + { + // Code size 164 (0xa4) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: ldc.i4.0 + IL_0009: ceq + IL_000b: stloc.0 + IL_000c: ldloc.0 + IL_000d: brtrue.s IL_001c + + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: call void [mscorlib]System.Console::WriteLine(int32) + IL_0016: nop + IL_0017: br IL_00a3 + + IL_001c: ldstr "switch 0" + IL_0021: call void [mscorlib]System.Console::WriteLine(string) + IL_0026: nop + IL_0027: ldarg.0 + IL_0028: ldc.i4.1 + IL_0029: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_002e: stloc.1 + IL_002f: ldloc.1 + IL_0030: switch ( + IL_003f, + IL_004c) + IL_003d: br.s IL_0059 + + IL_003f: ldstr "case 0" + IL_0044: call void [mscorlib]System.Console::WriteLine(string) + IL_0049: nop + IL_004a: br.s IL_00a3 + + IL_004c: ldstr "case 1" + IL_0051: call void [mscorlib]System.Console::WriteLine(string) + IL_0056: nop + IL_0057: br.s IL_00a3 + + IL_0059: ldstr "switch 1" + IL_005e: call void [mscorlib]System.Console::WriteLine(string) + IL_0063: nop + IL_0064: ldarg.0 + IL_0065: ldc.i4.1 + IL_0066: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_006b: stloc.1 + IL_006c: ldloc.1 + IL_006d: switch ( + IL_007c, + IL_0089) + IL_007a: br.s IL_0096 + + IL_007c: ldstr "case 0" + IL_0081: call void [mscorlib]System.Console::WriteLine(string) + IL_0086: nop + IL_0087: br.s IL_00a3 + + IL_0089: ldstr "case 1" + IL_008e: call void [mscorlib]System.Console::WriteLine(string) + IL_0093: nop + IL_0094: br.s IL_00a3 + + IL_0096: ldstr "end" + IL_009b: call void [mscorlib]System.Console::WriteLine(string) + IL_00a0: nop + IL_00a1: br.s IL_00a3 + + IL_00a3: ret + } // end of method ReduceNesting::IfSwitchSwitch + + .method public hidebysig instance void + IfLoop() cil managed + { + // Code size 63 (0x3f) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: ldc.i4.0 + IL_0009: ceq + IL_000b: stloc.1 + IL_000c: ldloc.1 + IL_000d: brtrue.s IL_0019 + + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: call void [mscorlib]System.Console::WriteLine(int32) + IL_0016: nop + IL_0017: br.s IL_003e + + IL_0019: ldc.i4.0 + IL_001a: stloc.0 + IL_001b: br.s IL_002a + + IL_001d: nop + IL_001e: ldloc.0 + IL_001f: call void [mscorlib]System.Console::WriteLine(int32) + IL_0024: nop + IL_0025: nop + IL_0026: ldloc.0 + IL_0027: ldc.i4.1 + IL_0028: add + IL_0029: stloc.0 + IL_002a: ldloc.0 + IL_002b: ldc.i4.s 10 + IL_002d: clt + IL_002f: stloc.1 + IL_0030: ldloc.1 + IL_0031: brtrue.s IL_001d + + IL_0033: ldstr "end" + IL_0038: call void [mscorlib]System.Console::WriteLine(string) + IL_003d: nop + IL_003e: ret + } // end of method ReduceNesting::IfLoop + + .method public hidebysig instance void + LoopContinue() cil managed + { + // Code size 86 (0x56) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_004c + + IL_0005: nop + IL_0006: ldloc.0 + IL_0007: call void [mscorlib]System.Console::WriteLine(int32) + IL_000c: nop + IL_000d: ldarg.0 + IL_000e: ldc.i4.0 + IL_000f: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0014: ldc.i4.0 + IL_0015: ceq + IL_0017: stloc.1 + IL_0018: ldloc.1 + IL_0019: brtrue.s IL_0025 + + IL_001b: nop + IL_001c: ldc.i4.0 + IL_001d: call void [mscorlib]System.Console::WriteLine(int32) + IL_0022: nop + IL_0023: br.s IL_0048 + + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_002c: ldc.i4.0 + IL_002d: ceq + IL_002f: stloc.1 + IL_0030: ldloc.1 + IL_0031: brtrue.s IL_003c + + IL_0033: nop + IL_0034: ldc.i4.1 + IL_0035: call void [mscorlib]System.Console::WriteLine(int32) + IL_003a: nop + IL_003b: nop + IL_003c: ldstr "loop-tail" + IL_0041: call void [mscorlib]System.Console::WriteLine(string) + IL_0046: nop + IL_0047: nop + IL_0048: ldloc.0 + IL_0049: ldc.i4.1 + IL_004a: add + IL_004b: stloc.0 + IL_004c: ldloc.0 + IL_004d: ldc.i4.s 10 + IL_004f: clt + IL_0051: stloc.1 + IL_0052: ldloc.1 + IL_0053: brtrue.s IL_0005 + + IL_0055: ret + } // end of method ReduceNesting::LoopContinue + + .method public hidebysig instance void + LoopBreak() cil managed + { + // Code size 122 (0x7a) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_0065 + + IL_0005: nop + IL_0006: ldloc.0 + IL_0007: call void [mscorlib]System.Console::WriteLine(int32) + IL_000c: nop + IL_000d: ldarg.0 + IL_000e: ldc.i4.0 + IL_000f: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0014: ldc.i4.0 + IL_0015: ceq + IL_0017: stloc.1 + IL_0018: ldloc.1 + IL_0019: brtrue.s IL_0025 + + IL_001b: nop + IL_001c: ldc.i4.0 + IL_001d: call void [mscorlib]System.Console::WriteLine(int32) + IL_0022: nop + IL_0023: br.s IL_0061 + + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_002c: ldc.i4.0 + IL_002d: ceq + IL_002f: stloc.1 + IL_0030: ldloc.1 + IL_0031: brtrue.s IL_003d + + IL_0033: nop + IL_0034: ldc.i4.1 + IL_0035: call void [mscorlib]System.Console::WriteLine(int32) + IL_003a: nop + IL_003b: br.s IL_006e + + IL_003d: ldarg.0 + IL_003e: ldc.i4.2 + IL_003f: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0044: ldc.i4.0 + IL_0045: ceq + IL_0047: stloc.1 + IL_0048: ldloc.1 + IL_0049: brtrue.s IL_0054 + + IL_004b: nop + IL_004c: ldc.i4.2 + IL_004d: call void [mscorlib]System.Console::WriteLine(int32) + IL_0052: nop + IL_0053: nop + IL_0054: ldstr "break" + IL_0059: call void [mscorlib]System.Console::WriteLine(string) + IL_005e: nop + IL_005f: br.s IL_006e + + IL_0061: ldloc.0 + IL_0062: ldc.i4.1 + IL_0063: add + IL_0064: stloc.0 + IL_0065: ldloc.0 + IL_0066: ldc.i4.s 10 + IL_0068: clt + IL_006a: stloc.1 + IL_006b: ldloc.1 + IL_006c: brtrue.s IL_0005 + + IL_006e: ldstr "end" + IL_0073: call void [mscorlib]System.Console::WriteLine(string) + IL_0078: nop + IL_0079: ret + } // end of method ReduceNesting::LoopBreak + + .method public hidebysig instance void + LoopBreakElseIf() cil managed + { + // Code size 112 (0x70) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_005b + + IL_0005: nop + IL_0006: ldloc.0 + IL_0007: call void [mscorlib]System.Console::WriteLine(int32) + IL_000c: nop + IL_000d: ldarg.0 + IL_000e: ldc.i4.0 + IL_000f: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0014: ldc.i4.0 + IL_0015: ceq + IL_0017: stloc.1 + IL_0018: ldloc.1 + IL_0019: brtrue.s IL_0025 + + IL_001b: nop + IL_001c: ldc.i4.0 + IL_001d: call void [mscorlib]System.Console::WriteLine(int32) + IL_0022: nop + IL_0023: br.s IL_0057 + + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_002c: ldc.i4.0 + IL_002d: ceq + IL_002f: stloc.1 + IL_0030: ldloc.1 + IL_0031: brtrue.s IL_003e + + IL_0033: nop + IL_0034: ldc.i4.1 + IL_0035: call void [mscorlib]System.Console::WriteLine(int32) + IL_003a: nop + IL_003b: nop + IL_003c: br.s IL_0055 + + IL_003e: ldarg.0 + IL_003f: ldc.i4.2 + IL_0040: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0045: ldc.i4.0 + IL_0046: ceq + IL_0048: stloc.1 + IL_0049: ldloc.1 + IL_004a: brtrue.s IL_0055 + + IL_004c: nop + IL_004d: ldc.i4.2 + IL_004e: call void [mscorlib]System.Console::WriteLine(int32) + IL_0053: nop + IL_0054: nop + IL_0055: br.s IL_0064 + + IL_0057: ldloc.0 + IL_0058: ldc.i4.1 + IL_0059: add + IL_005a: stloc.0 + IL_005b: ldloc.0 + IL_005c: ldc.i4.s 10 + IL_005e: clt + IL_0060: stloc.1 + IL_0061: ldloc.1 + IL_0062: brtrue.s IL_0005 + + IL_0064: ldstr "end" + IL_0069: call void [mscorlib]System.Console::WriteLine(string) + IL_006e: nop + IL_006f: ret + } // end of method ReduceNesting::LoopBreakElseIf + + .method public hidebysig instance void + SwitchIf() cil managed + { + // Code size 86 (0x56) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0008: stloc.0 + IL_0009: ldloc.0 + IL_000a: switch ( + IL_0019, + IL_0026) + IL_0017: br.s IL_0033 + + IL_0019: ldstr "case 0" + IL_001e: call void [mscorlib]System.Console::WriteLine(string) + IL_0023: nop + IL_0024: br.s IL_0055 + + IL_0026: ldstr "case 1" + IL_002b: call void [mscorlib]System.Console::WriteLine(string) + IL_0030: nop + IL_0031: br.s IL_0055 + + IL_0033: ldarg.0 + IL_0034: ldc.i4.0 + IL_0035: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_003a: ldc.i4.0 + IL_003b: ceq + IL_003d: stloc.1 + IL_003e: ldloc.1 + IL_003f: brtrue.s IL_004a + + IL_0041: nop + IL_0042: ldc.i4.0 + IL_0043: call void [mscorlib]System.Console::WriteLine(int32) + IL_0048: nop + IL_0049: nop + IL_004a: ldstr "end" + IL_004f: call void [mscorlib]System.Console::WriteLine(string) + IL_0054: nop + IL_0055: ret + } // end of method ReduceNesting::SwitchIf + + .method public hidebysig instance void + NestedSwitchIf() cil managed + { + // Code size 106 (0x6a) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: ldc.i4.0 + IL_0009: ceq + IL_000b: stloc.0 + IL_000c: ldloc.0 + IL_000d: brtrue.s IL_005c + + IL_000f: nop + IL_0010: ldarg.0 + IL_0011: ldc.i4.0 + IL_0012: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0017: stloc.1 + IL_0018: ldloc.1 + IL_0019: switch ( + IL_0028, + IL_0035) + IL_0026: br.s IL_0042 + + IL_0028: ldstr "case 0" + IL_002d: call void [mscorlib]System.Console::WriteLine(string) + IL_0032: nop + IL_0033: br.s IL_0069 + + IL_0035: ldstr "case 1" + IL_003a: call void [mscorlib]System.Console::WriteLine(string) + IL_003f: nop + IL_0040: br.s IL_0069 + + IL_0042: ldarg.0 + IL_0043: ldc.i4.1 + IL_0044: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0049: ldc.i4.0 + IL_004a: ceq + IL_004c: stloc.0 + IL_004d: ldloc.0 + IL_004e: brtrue.s IL_0059 + + IL_0050: nop + IL_0051: ldc.i4.1 + IL_0052: call void [mscorlib]System.Console::WriteLine(int32) + IL_0057: nop + IL_0058: nop + IL_0059: nop + IL_005a: br.s IL_0069 + + IL_005c: nop + IL_005d: ldstr "else" + IL_0062: call void [mscorlib]System.Console::WriteLine(string) + IL_0067: nop + IL_0068: nop + IL_0069: ret + } // end of method ReduceNesting::NestedSwitchIf + + .method public hidebysig instance void + EarlyExit1() cil managed + { + // Code size 52 (0x34) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: stloc.1 + IL_0009: ldloc.1 + IL_000a: brtrue.s IL_0033 + + IL_000c: nop + IL_000d: ldc.i4.0 + IL_000e: stloc.0 + IL_000f: br.s IL_001e + + IL_0011: nop + IL_0012: ldloc.0 + IL_0013: call void [mscorlib]System.Console::WriteLine(int32) + IL_0018: nop + IL_0019: nop + IL_001a: ldloc.0 + IL_001b: ldc.i4.1 + IL_001c: add + IL_001d: stloc.0 + IL_001e: ldloc.0 + IL_001f: ldc.i4.s 10 + IL_0021: clt + IL_0023: stloc.1 + IL_0024: ldloc.1 + IL_0025: brtrue.s IL_0011 + + IL_0027: ldstr "end" + IL_002c: call void [mscorlib]System.Console::WriteLine(string) + IL_0031: nop + IL_0032: nop + IL_0033: ret + } // end of method ReduceNesting::EarlyExit1 + + .method public hidebysig instance void + EarlyExit2() cil managed + { + // Code size 82 (0x52) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: ldc.i4.0 + IL_0009: ceq + IL_000b: stloc.1 + IL_000c: ldloc.1 + IL_000d: brtrue.s IL_0012 + + IL_000f: nop + IL_0010: br.s IL_0051 + + IL_0012: ldc.i4.0 + IL_0013: stloc.0 + IL_0014: br.s IL_003d + + IL_0016: nop + IL_0017: ldloc.0 + IL_0018: call void [mscorlib]System.Console::WriteLine(int32) + IL_001d: nop + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: rem + IL_0021: ldc.i4.0 + IL_0022: ceq + IL_0024: ldc.i4.0 + IL_0025: ceq + IL_0027: stloc.1 + IL_0028: ldloc.1 + IL_0029: brtrue.s IL_0038 + + IL_002b: nop + IL_002c: ldstr "even" + IL_0031: call void [mscorlib]System.Console::WriteLine(string) + IL_0036: nop + IL_0037: nop + IL_0038: nop + IL_0039: ldloc.0 + IL_003a: ldc.i4.1 + IL_003b: add + IL_003c: stloc.0 + IL_003d: ldloc.0 + IL_003e: ldc.i4.s 10 + IL_0040: clt + IL_0042: stloc.1 + IL_0043: ldloc.1 + IL_0044: brtrue.s IL_0016 + + IL_0046: ldstr "end" + IL_004b: call void [mscorlib]System.Console::WriteLine(string) + IL_0050: nop + IL_0051: ret + } // end of method ReduceNesting::EarlyExit2 + + .method public hidebysig instance void + BalancedIf() cil managed + { + // Code size 90 (0x5a) + .maxstack 2 + .locals init (bool V_0) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: ldc.i4.0 + IL_0009: ceq + IL_000b: stloc.0 + IL_000c: ldloc.0 + IL_000d: brtrue.s IL_0035 + + IL_000f: nop + IL_0010: ldstr "true" + IL_0015: call void [mscorlib]System.Console::WriteLine(string) + IL_001a: nop + IL_001b: ldarg.0 + IL_001c: ldc.i4.1 + IL_001d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0022: ldc.i4.0 + IL_0023: ceq + IL_0025: stloc.0 + IL_0026: ldloc.0 + IL_0027: brtrue.s IL_0032 + + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: call void [mscorlib]System.Console::WriteLine(int32) + IL_0030: nop + IL_0031: nop + IL_0032: nop + IL_0033: br.s IL_0059 + + IL_0035: nop + IL_0036: ldarg.0 + IL_0037: ldc.i4.2 + IL_0038: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_003d: ldc.i4.0 + IL_003e: ceq + IL_0040: stloc.0 + IL_0041: ldloc.0 + IL_0042: brtrue.s IL_004d + + IL_0044: nop + IL_0045: ldc.i4.2 + IL_0046: call void [mscorlib]System.Console::WriteLine(int32) + IL_004b: nop + IL_004c: nop + IL_004d: ldstr "false" + IL_0052: call void [mscorlib]System.Console::WriteLine(string) + IL_0057: nop + IL_0058: nop + IL_0059: ret + } // end of method ReduceNesting::BalancedIf + + .method public hidebysig instance string + ComplexCase1(string s) cil managed + { + // Code size 269 (0x10d) + .maxstack 2 + .locals init (int32 V_0, + string V_1, + bool V_2, + int32 V_3) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: ldc.i4.0 + IL_0009: ceq + IL_000b: stloc.2 + IL_000c: ldloc.2 + IL_000d: brtrue.s IL_0017 + + IL_000f: nop + IL_0010: ldarg.1 + IL_0011: stloc.1 + IL_0012: br IL_010b + + IL_0017: ldc.i4.0 + IL_0018: stloc.0 + IL_0019: br IL_00f7 + + IL_001e: nop + IL_001f: ldarg.0 + IL_0020: ldc.i4.1 + IL_0021: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0026: ldc.i4.0 + IL_0027: ceq + IL_0029: stloc.2 + IL_002a: ldloc.2 + IL_002b: brtrue.s IL_003b + + IL_002d: nop + IL_002e: ldc.i4.1 + IL_002f: call void [mscorlib]System.Console::WriteLine(int32) + IL_0034: nop + IL_0035: nop + IL_0036: br IL_00f2 + + IL_003b: ldarg.0 + IL_003c: ldc.i4.2 + IL_003d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0042: ldc.i4.0 + IL_0043: ceq + IL_0045: stloc.2 + IL_0046: ldloc.2 + IL_0047: brtrue.s IL_00b5 + + IL_0049: nop + IL_004a: ldloc.0 + IL_004b: stloc.3 + IL_004c: ldloc.3 + IL_004d: ldc.i4.1 + IL_004e: sub + IL_004f: switch ( + IL_0062, + IL_009e, + IL_009e) + IL_0060: br.s IL_00ab + + IL_0062: ldarg.0 + IL_0063: ldc.i4.3 + IL_0064: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0069: ldc.i4.0 + IL_006a: ceq + IL_006c: stloc.2 + IL_006d: ldloc.2 + IL_006e: brtrue.s IL_007a + + IL_0070: nop + IL_0071: ldc.i4.3 + IL_0072: call void [mscorlib]System.Console::WriteLine(int32) + IL_0077: nop + IL_0078: br.s IL_00ab + + IL_007a: ldstr "case1" + IL_007f: call void [mscorlib]System.Console::WriteLine(string) + IL_0084: nop + IL_0085: ldarg.0 + IL_0086: ldc.i4.4 + IL_0087: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_008c: ldc.i4.0 + IL_008d: ceq + IL_008f: stloc.2 + IL_0090: ldloc.2 + IL_0091: brtrue.s IL_009c + + IL_0093: nop + IL_0094: ldc.i4.4 + IL_0095: call void [mscorlib]System.Console::WriteLine(int32) + IL_009a: nop + IL_009b: nop + IL_009c: br.s IL_00ab + + IL_009e: ldstr "case23" + IL_00a3: call void [mscorlib]System.Console::WriteLine(string) + IL_00a8: nop + IL_00a9: br.s IL_00ab + + IL_00ab: ldc.i4.2 + IL_00ac: call void [mscorlib]System.Console::WriteLine(int32) + IL_00b1: nop + IL_00b2: nop + IL_00b3: br.s IL_00f2 + + IL_00b5: ldarg.0 + IL_00b6: ldc.i4.5 + IL_00b7: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_00bc: ldc.i4.0 + IL_00bd: ceq + IL_00bf: stloc.2 + IL_00c0: ldloc.2 + IL_00c1: brtrue.s IL_00ce + + IL_00c3: nop + IL_00c4: ldc.i4.5 + IL_00c5: call void [mscorlib]System.Console::WriteLine(int32) + IL_00ca: nop + IL_00cb: nop + IL_00cc: br.s IL_00f2 + + IL_00ce: nop + IL_00cf: ldarg.0 + IL_00d0: ldc.i4.6 + IL_00d1: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_00d6: ldc.i4.0 + IL_00d7: ceq + IL_00d9: stloc.2 + IL_00da: ldloc.2 + IL_00db: brtrue.s IL_00e6 + + IL_00dd: nop + IL_00de: ldc.i4.6 + IL_00df: call void [mscorlib]System.Console::WriteLine(int32) + IL_00e4: nop + IL_00e5: nop + IL_00e6: ldstr "else" + IL_00eb: call void [mscorlib]System.Console::WriteLine(string) + IL_00f0: nop + IL_00f1: nop + IL_00f2: nop + IL_00f3: ldloc.0 + IL_00f4: ldc.i4.1 + IL_00f5: add + IL_00f6: stloc.0 + IL_00f7: ldloc.0 + IL_00f8: ldarg.1 + IL_00f9: callvirt instance int32 [mscorlib]System.String::get_Length() + IL_00fe: clt + IL_0100: stloc.2 + IL_0101: ldloc.2 + IL_0102: brtrue IL_001e + + IL_0107: ldarg.1 + IL_0108: stloc.1 + IL_0109: br.s IL_010b + + IL_010b: ldloc.1 + IL_010c: ret + } // end of method ReduceNesting::ComplexCase1 + + .method family 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 ReduceNesting::.ctor + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.opt.il new file mode 100644 index 000000000..4a5b3e019 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.opt.il @@ -0,0 +1,650 @@ + + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly ReduceNesting.opt +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx + 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module ReduceNesting.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 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting + extends [mscorlib]System.Object +{ + .method public hidebysig newslot abstract virtual + instance bool B(int32 i) cil managed + { + } // end of method ReduceNesting::B + + .method public hidebysig newslot abstract virtual + instance int32 I(int32 i) cil managed + { + } // end of method ReduceNesting::I + + .method public hidebysig instance void + IfIf() cil managed + { + // Code size 42 (0x2a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0010 + + IL_0009: ldc.i4.0 + IL_000a: call void [mscorlib]System.Console::WriteLine(int32) + IL_000f: ret + + IL_0010: ldarg.0 + IL_0011: ldc.i4.1 + IL_0012: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0017: brfalse.s IL_001f + + IL_0019: ldc.i4.1 + IL_001a: call void [mscorlib]System.Console::WriteLine(int32) + IL_001f: ldstr "end" + IL_0024: call void [mscorlib]System.Console::WriteLine(string) + IL_0029: ret + } // end of method ReduceNesting::IfIf + + .method public hidebysig instance void + IfSwitch() cil managed + { + // Code size 83 (0x53) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0010 + + IL_0009: ldc.i4.0 + IL_000a: call void [mscorlib]System.Console::WriteLine(int32) + IL_000f: ret + + IL_0010: ldstr "switch" + IL_0015: call void [mscorlib]System.Console::WriteLine(string) + IL_001a: ldarg.0 + IL_001b: ldc.i4.0 + IL_001c: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0021: stloc.0 + IL_0022: ldloc.0 + IL_0023: switch ( + IL_0032, + IL_003d) + IL_0030: br.s IL_0048 + + IL_0032: ldstr "case 0" + IL_0037: call void [mscorlib]System.Console::WriteLine(string) + IL_003c: ret + + IL_003d: ldstr "case 1" + IL_0042: call void [mscorlib]System.Console::WriteLine(string) + IL_0047: ret + + IL_0048: ldstr "end" + IL_004d: call void [mscorlib]System.Console::WriteLine(string) + IL_0052: ret + } // end of method ReduceNesting::IfSwitch + + .method public hidebysig instance void + IfSwitchSwitch() cil managed + { + // Code size 139 (0x8b) + .maxstack 2 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0010 + + IL_0009: ldc.i4.0 + IL_000a: call void [mscorlib]System.Console::WriteLine(int32) + IL_000f: ret + + IL_0010: ldstr "switch 0" + IL_0015: call void [mscorlib]System.Console::WriteLine(string) + IL_001a: ldarg.0 + IL_001b: ldc.i4.1 + IL_001c: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0021: stloc.0 + IL_0022: ldloc.0 + IL_0023: switch ( + IL_0032, + IL_003d) + IL_0030: br.s IL_0048 + + IL_0032: ldstr "case 0" + IL_0037: call void [mscorlib]System.Console::WriteLine(string) + IL_003c: ret + + IL_003d: ldstr "case 1" + IL_0042: call void [mscorlib]System.Console::WriteLine(string) + IL_0047: ret + + IL_0048: ldstr "switch 1" + IL_004d: call void [mscorlib]System.Console::WriteLine(string) + IL_0052: ldarg.0 + IL_0053: ldc.i4.1 + IL_0054: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0059: stloc.1 + IL_005a: ldloc.1 + IL_005b: switch ( + IL_006a, + IL_0075) + IL_0068: br.s IL_0080 + + IL_006a: ldstr "case 0" + IL_006f: call void [mscorlib]System.Console::WriteLine(string) + IL_0074: ret + + IL_0075: ldstr "case 1" + IL_007a: call void [mscorlib]System.Console::WriteLine(string) + IL_007f: ret + + IL_0080: ldstr "end" + IL_0085: call void [mscorlib]System.Console::WriteLine(string) + IL_008a: ret + } // end of method ReduceNesting::IfSwitchSwitch + + .method public hidebysig instance void + IfLoop() cil managed + { + // Code size 46 (0x2e) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0010 + + IL_0009: ldc.i4.0 + IL_000a: call void [mscorlib]System.Console::WriteLine(int32) + IL_000f: ret + + IL_0010: ldc.i4.0 + IL_0011: stloc.0 + IL_0012: br.s IL_001e + + IL_0014: ldloc.0 + IL_0015: call void [mscorlib]System.Console::WriteLine(int32) + IL_001a: ldloc.0 + IL_001b: ldc.i4.1 + IL_001c: add + IL_001d: stloc.0 + IL_001e: ldloc.0 + IL_001f: ldc.i4.s 10 + IL_0021: blt.s IL_0014 + + IL_0023: ldstr "end" + IL_0028: call void [mscorlib]System.Console::WriteLine(string) + IL_002d: ret + } // end of method ReduceNesting::IfLoop + + .method public hidebysig instance void + LoopContinue() cil managed + { + // Code size 62 (0x3e) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_0038 + + IL_0004: ldloc.0 + IL_0005: call void [mscorlib]System.Console::WriteLine(int32) + IL_000a: ldarg.0 + IL_000b: ldc.i4.0 + IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0011: brfalse.s IL_001b + + IL_0013: ldc.i4.0 + IL_0014: call void [mscorlib]System.Console::WriteLine(int32) + IL_0019: br.s IL_0034 + + IL_001b: ldarg.0 + IL_001c: ldc.i4.1 + IL_001d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0022: brfalse.s IL_002a + + IL_0024: ldc.i4.1 + IL_0025: call void [mscorlib]System.Console::WriteLine(int32) + IL_002a: ldstr "loop-tail" + IL_002f: call void [mscorlib]System.Console::WriteLine(string) + IL_0034: ldloc.0 + IL_0035: ldc.i4.1 + IL_0036: add + IL_0037: stloc.0 + IL_0038: ldloc.0 + IL_0039: ldc.i4.s 10 + IL_003b: blt.s IL_0004 + + IL_003d: ret + } // end of method ReduceNesting::LoopContinue + + .method public hidebysig instance void + LoopBreak() cil managed + { + // Code size 91 (0x5b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_004b + + IL_0004: ldloc.0 + IL_0005: call void [mscorlib]System.Console::WriteLine(int32) + IL_000a: ldarg.0 + IL_000b: ldc.i4.0 + IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0011: brfalse.s IL_001b + + IL_0013: ldc.i4.0 + IL_0014: call void [mscorlib]System.Console::WriteLine(int32) + IL_0019: br.s IL_0047 + + IL_001b: ldarg.0 + IL_001c: ldc.i4.1 + IL_001d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0022: brfalse.s IL_002c + + IL_0024: ldc.i4.1 + IL_0025: call void [mscorlib]System.Console::WriteLine(int32) + IL_002a: br.s IL_0050 + + IL_002c: ldarg.0 + IL_002d: ldc.i4.2 + IL_002e: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0033: brfalse.s IL_003b + + IL_0035: ldc.i4.2 + IL_0036: call void [mscorlib]System.Console::WriteLine(int32) + IL_003b: ldstr "break" + IL_0040: call void [mscorlib]System.Console::WriteLine(string) + IL_0045: br.s IL_0050 + + IL_0047: ldloc.0 + IL_0048: ldc.i4.1 + IL_0049: add + IL_004a: stloc.0 + IL_004b: ldloc.0 + IL_004c: ldc.i4.s 10 + IL_004e: blt.s IL_0004 + + IL_0050: ldstr "end" + IL_0055: call void [mscorlib]System.Console::WriteLine(string) + IL_005a: ret + } // end of method ReduceNesting::LoopBreak + + .method public hidebysig instance void + LoopBreakElseIf() cil managed + { + // Code size 81 (0x51) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_0041 + + IL_0004: ldloc.0 + IL_0005: call void [mscorlib]System.Console::WriteLine(int32) + IL_000a: ldarg.0 + IL_000b: ldc.i4.0 + IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0011: brfalse.s IL_001b + + IL_0013: ldc.i4.0 + IL_0014: call void [mscorlib]System.Console::WriteLine(int32) + IL_0019: br.s IL_003d + + IL_001b: ldarg.0 + IL_001c: ldc.i4.1 + IL_001d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0022: brfalse.s IL_002c + + IL_0024: ldc.i4.1 + IL_0025: call void [mscorlib]System.Console::WriteLine(int32) + IL_002a: br.s IL_0046 + + IL_002c: ldarg.0 + IL_002d: ldc.i4.2 + IL_002e: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0033: brfalse.s IL_0046 + + IL_0035: ldc.i4.2 + IL_0036: call void [mscorlib]System.Console::WriteLine(int32) + IL_003b: br.s IL_0046 + + IL_003d: ldloc.0 + IL_003e: ldc.i4.1 + IL_003f: add + IL_0040: stloc.0 + IL_0041: ldloc.0 + IL_0042: ldc.i4.s 10 + IL_0044: blt.s IL_0004 + + IL_0046: ldstr "end" + IL_004b: call void [mscorlib]System.Console::WriteLine(string) + IL_0050: ret + } // end of method ReduceNesting::LoopBreakElseIf + + .method public hidebysig instance void + SwitchIf() cil managed + { + // Code size 72 (0x48) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: switch ( + IL_0018, + IL_0023) + IL_0016: br.s IL_002e + + IL_0018: ldstr "case 0" + IL_001d: call void [mscorlib]System.Console::WriteLine(string) + IL_0022: ret + + IL_0023: ldstr "case 1" + IL_0028: call void [mscorlib]System.Console::WriteLine(string) + IL_002d: ret + + IL_002e: ldarg.0 + IL_002f: ldc.i4.0 + IL_0030: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0035: brfalse.s IL_003d + + IL_0037: ldc.i4.0 + IL_0038: call void [mscorlib]System.Console::WriteLine(int32) + IL_003d: ldstr "end" + IL_0042: call void [mscorlib]System.Console::WriteLine(string) + IL_0047: ret + } // end of method ReduceNesting::SwitchIf + + .method public hidebysig instance void + NestedSwitchIf() cil managed + { + // Code size 82 (0x52) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0047 + + IL_0009: ldarg.0 + IL_000a: ldc.i4.0 + IL_000b: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0010: stloc.0 + IL_0011: ldloc.0 + IL_0012: switch ( + IL_0021, + IL_002c) + IL_001f: br.s IL_0037 + + IL_0021: ldstr "case 0" + IL_0026: call void [mscorlib]System.Console::WriteLine(string) + IL_002b: ret + + IL_002c: ldstr "case 1" + IL_0031: call void [mscorlib]System.Console::WriteLine(string) + IL_0036: ret + + IL_0037: ldarg.0 + IL_0038: ldc.i4.1 + IL_0039: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_003e: brfalse.s IL_0051 + + IL_0040: ldc.i4.1 + IL_0041: call void [mscorlib]System.Console::WriteLine(int32) + IL_0046: ret + + IL_0047: ldstr "else" + IL_004c: call void [mscorlib]System.Console::WriteLine(string) + IL_0051: ret + } // end of method ReduceNesting::NestedSwitchIf + + .method public hidebysig instance void + EarlyExit1() cil managed + { + // Code size 39 (0x27) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brtrue.s IL_0026 + + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: br.s IL_0017 + + IL_000d: ldloc.0 + IL_000e: call void [mscorlib]System.Console::WriteLine(int32) + IL_0013: ldloc.0 + IL_0014: ldc.i4.1 + IL_0015: add + IL_0016: stloc.0 + IL_0017: ldloc.0 + IL_0018: ldc.i4.s 10 + IL_001a: blt.s IL_000d + + IL_001c: ldstr "end" + IL_0021: call void [mscorlib]System.Console::WriteLine(string) + IL_0026: ret + } // end of method ReduceNesting::EarlyExit1 + + .method public hidebysig instance void + EarlyExit2() cil managed + { + // Code size 55 (0x37) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_000a + + IL_0009: ret + + IL_000a: ldc.i4.0 + IL_000b: stloc.0 + IL_000c: br.s IL_0027 + + IL_000e: ldloc.0 + IL_000f: call void [mscorlib]System.Console::WriteLine(int32) + IL_0014: ldloc.0 + IL_0015: ldc.i4.2 + IL_0016: rem + IL_0017: brtrue.s IL_0023 + + IL_0019: ldstr "even" + IL_001e: call void [mscorlib]System.Console::WriteLine(string) + IL_0023: ldloc.0 + IL_0024: ldc.i4.1 + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ldc.i4.s 10 + IL_002a: blt.s IL_000e + + IL_002c: ldstr "end" + IL_0031: call void [mscorlib]System.Console::WriteLine(string) + IL_0036: ret + } // end of method ReduceNesting::EarlyExit2 + + .method public hidebysig instance void + BalancedIf() cil managed + { + // Code size 61 (0x3d) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0023 + + IL_0009: ldstr "true" + IL_000e: call void [mscorlib]System.Console::WriteLine(string) + IL_0013: ldarg.0 + IL_0014: ldc.i4.1 + IL_0015: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_001a: brfalse.s IL_003c + + IL_001c: ldc.i4.1 + IL_001d: call void [mscorlib]System.Console::WriteLine(int32) + IL_0022: ret + + IL_0023: ldarg.0 + IL_0024: ldc.i4.2 + IL_0025: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_002a: brfalse.s IL_0032 + + IL_002c: ldc.i4.2 + IL_002d: call void [mscorlib]System.Console::WriteLine(int32) + IL_0032: ldstr "false" + IL_0037: call void [mscorlib]System.Console::WriteLine(string) + IL_003c: ret + } // end of method ReduceNesting::BalancedIf + + .method public hidebysig instance string + ComplexCase1(string s) cil managed + { + // Code size 193 (0xc1) + .maxstack 2 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_000b + + IL_0009: ldarg.1 + IL_000a: ret + + IL_000b: ldc.i4.0 + IL_000c: stloc.0 + IL_000d: br IL_00b3 + + IL_0012: ldarg.0 + IL_0013: ldc.i4.1 + IL_0014: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0019: brfalse.s IL_0026 + + IL_001b: ldc.i4.1 + IL_001c: call void [mscorlib]System.Console::WriteLine(int32) + IL_0021: br IL_00af + + IL_0026: ldarg.0 + IL_0027: ldc.i4.2 + IL_0028: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_002d: brfalse.s IL_0085 + + IL_002f: ldloc.0 + IL_0030: stloc.1 + IL_0031: ldloc.1 + IL_0032: ldc.i4.1 + IL_0033: sub + IL_0034: switch ( + IL_0047, + IL_0073, + IL_0073) + IL_0045: br.s IL_007d + + IL_0047: ldarg.0 + IL_0048: ldc.i4.3 + IL_0049: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_004e: brfalse.s IL_0058 + + IL_0050: ldc.i4.3 + IL_0051: call void [mscorlib]System.Console::WriteLine(int32) + IL_0056: br.s IL_007d + + IL_0058: ldstr "case1" + IL_005d: call void [mscorlib]System.Console::WriteLine(string) + IL_0062: ldarg.0 + IL_0063: ldc.i4.4 + IL_0064: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0069: brfalse.s IL_007d + + IL_006b: ldc.i4.4 + IL_006c: call void [mscorlib]System.Console::WriteLine(int32) + IL_0071: br.s IL_007d + + IL_0073: ldstr "case23" + IL_0078: call void [mscorlib]System.Console::WriteLine(string) + IL_007d: ldc.i4.2 + IL_007e: call void [mscorlib]System.Console::WriteLine(int32) + IL_0083: br.s IL_00af + + IL_0085: ldarg.0 + IL_0086: ldc.i4.5 + IL_0087: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_008c: brfalse.s IL_0096 + + IL_008e: ldc.i4.5 + IL_008f: call void [mscorlib]System.Console::WriteLine(int32) + IL_0094: br.s IL_00af + + IL_0096: ldarg.0 + IL_0097: ldc.i4.6 + IL_0098: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_009d: brfalse.s IL_00a5 + + IL_009f: ldc.i4.6 + IL_00a0: call void [mscorlib]System.Console::WriteLine(int32) + IL_00a5: ldstr "else" + IL_00aa: call void [mscorlib]System.Console::WriteLine(string) + IL_00af: ldloc.0 + IL_00b0: ldc.i4.1 + IL_00b1: add + IL_00b2: stloc.0 + IL_00b3: ldloc.0 + IL_00b4: ldarg.1 + IL_00b5: callvirt instance int32 [mscorlib]System.String::get_Length() + IL_00ba: blt IL_0012 + + IL_00bf: ldarg.1 + IL_00c0: ret + } // end of method ReduceNesting::ComplexCase1 + + .method family 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 ReduceNesting::.ctor + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.opt.roslyn.il new file mode 100644 index 000000000..e257c826a --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.opt.roslyn.il @@ -0,0 +1,668 @@ + + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly ReduceNesting +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx + 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 ) + + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module ReduceNesting.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 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting + extends [mscorlib]System.Object +{ + .method public hidebysig newslot abstract virtual + instance bool B(int32 i) cil managed + { + } // end of method ReduceNesting::B + + .method public hidebysig newslot abstract virtual + instance int32 I(int32 i) cil managed + { + } // end of method ReduceNesting::I + + .method public hidebysig instance void + IfIf() cil managed + { + // Code size 42 (0x2a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0010 + + IL_0009: ldc.i4.0 + IL_000a: call void [mscorlib]System.Console::WriteLine(int32) + IL_000f: ret + + IL_0010: ldarg.0 + IL_0011: ldc.i4.1 + IL_0012: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0017: brfalse.s IL_001f + + IL_0019: ldc.i4.1 + IL_001a: call void [mscorlib]System.Console::WriteLine(int32) + IL_001f: ldstr "end" + IL_0024: call void [mscorlib]System.Console::WriteLine(string) + IL_0029: ret + } // end of method ReduceNesting::IfIf + + .method public hidebysig instance void + IfSwitch() cil managed + { + // Code size 76 (0x4c) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0010 + + IL_0009: ldc.i4.0 + IL_000a: call void [mscorlib]System.Console::WriteLine(int32) + IL_000f: ret + + IL_0010: ldstr "switch" + IL_0015: call void [mscorlib]System.Console::WriteLine(string) + IL_001a: ldarg.0 + IL_001b: ldc.i4.0 + IL_001c: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0021: stloc.0 + IL_0022: ldloc.0 + IL_0023: brfalse.s IL_002b + + IL_0025: ldloc.0 + IL_0026: ldc.i4.1 + IL_0027: beq.s IL_0036 + + IL_0029: br.s IL_0041 + + IL_002b: ldstr "case 0" + IL_0030: call void [mscorlib]System.Console::WriteLine(string) + IL_0035: ret + + IL_0036: ldstr "case 1" + IL_003b: call void [mscorlib]System.Console::WriteLine(string) + IL_0040: ret + + IL_0041: ldstr "end" + IL_0046: call void [mscorlib]System.Console::WriteLine(string) + IL_004b: ret + } // end of method ReduceNesting::IfSwitch + + .method public hidebysig instance void + IfSwitchSwitch() cil managed + { + // Code size 125 (0x7d) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0010 + + IL_0009: ldc.i4.0 + IL_000a: call void [mscorlib]System.Console::WriteLine(int32) + IL_000f: ret + + IL_0010: ldstr "switch 0" + IL_0015: call void [mscorlib]System.Console::WriteLine(string) + IL_001a: ldarg.0 + IL_001b: ldc.i4.1 + IL_001c: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0021: stloc.0 + IL_0022: ldloc.0 + IL_0023: brfalse.s IL_002b + + IL_0025: ldloc.0 + IL_0026: ldc.i4.1 + IL_0027: beq.s IL_0036 + + IL_0029: br.s IL_0041 + + IL_002b: ldstr "case 0" + IL_0030: call void [mscorlib]System.Console::WriteLine(string) + IL_0035: ret + + IL_0036: ldstr "case 1" + IL_003b: call void [mscorlib]System.Console::WriteLine(string) + IL_0040: ret + + IL_0041: ldstr "switch 1" + IL_0046: call void [mscorlib]System.Console::WriteLine(string) + IL_004b: ldarg.0 + IL_004c: ldc.i4.1 + IL_004d: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0052: stloc.0 + IL_0053: ldloc.0 + IL_0054: brfalse.s IL_005c + + IL_0056: ldloc.0 + IL_0057: ldc.i4.1 + IL_0058: beq.s IL_0067 + + IL_005a: br.s IL_0072 + + IL_005c: ldstr "case 0" + IL_0061: call void [mscorlib]System.Console::WriteLine(string) + IL_0066: ret + + IL_0067: ldstr "case 1" + IL_006c: call void [mscorlib]System.Console::WriteLine(string) + IL_0071: ret + + IL_0072: ldstr "end" + IL_0077: call void [mscorlib]System.Console::WriteLine(string) + IL_007c: ret + } // end of method ReduceNesting::IfSwitchSwitch + + .method public hidebysig instance void + IfLoop() cil managed + { + // Code size 46 (0x2e) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0010 + + IL_0009: ldc.i4.0 + IL_000a: call void [mscorlib]System.Console::WriteLine(int32) + IL_000f: ret + + IL_0010: ldc.i4.0 + IL_0011: stloc.0 + IL_0012: br.s IL_001e + + IL_0014: ldloc.0 + IL_0015: call void [mscorlib]System.Console::WriteLine(int32) + IL_001a: ldloc.0 + IL_001b: ldc.i4.1 + IL_001c: add + IL_001d: stloc.0 + IL_001e: ldloc.0 + IL_001f: ldc.i4.s 10 + IL_0021: blt.s IL_0014 + + IL_0023: ldstr "end" + IL_0028: call void [mscorlib]System.Console::WriteLine(string) + IL_002d: ret + } // end of method ReduceNesting::IfLoop + + .method public hidebysig instance void + LoopContinue() cil managed + { + // Code size 62 (0x3e) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_0038 + + IL_0004: ldloc.0 + IL_0005: call void [mscorlib]System.Console::WriteLine(int32) + IL_000a: ldarg.0 + IL_000b: ldc.i4.0 + IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0011: brfalse.s IL_001b + + IL_0013: ldc.i4.0 + IL_0014: call void [mscorlib]System.Console::WriteLine(int32) + IL_0019: br.s IL_0034 + + IL_001b: ldarg.0 + IL_001c: ldc.i4.1 + IL_001d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0022: brfalse.s IL_002a + + IL_0024: ldc.i4.1 + IL_0025: call void [mscorlib]System.Console::WriteLine(int32) + IL_002a: ldstr "loop-tail" + IL_002f: call void [mscorlib]System.Console::WriteLine(string) + IL_0034: ldloc.0 + IL_0035: ldc.i4.1 + IL_0036: add + IL_0037: stloc.0 + IL_0038: ldloc.0 + IL_0039: ldc.i4.s 10 + IL_003b: blt.s IL_0004 + + IL_003d: ret + } // end of method ReduceNesting::LoopContinue + + .method public hidebysig instance void + LoopBreak() cil managed + { + // Code size 91 (0x5b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_004b + + IL_0004: ldloc.0 + IL_0005: call void [mscorlib]System.Console::WriteLine(int32) + IL_000a: ldarg.0 + IL_000b: ldc.i4.0 + IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0011: brfalse.s IL_001b + + IL_0013: ldc.i4.0 + IL_0014: call void [mscorlib]System.Console::WriteLine(int32) + IL_0019: br.s IL_0047 + + IL_001b: ldarg.0 + IL_001c: ldc.i4.1 + IL_001d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0022: brfalse.s IL_002c + + IL_0024: ldc.i4.1 + IL_0025: call void [mscorlib]System.Console::WriteLine(int32) + IL_002a: br.s IL_0050 + + IL_002c: ldarg.0 + IL_002d: ldc.i4.2 + IL_002e: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0033: brfalse.s IL_003b + + IL_0035: ldc.i4.2 + IL_0036: call void [mscorlib]System.Console::WriteLine(int32) + IL_003b: ldstr "break" + IL_0040: call void [mscorlib]System.Console::WriteLine(string) + IL_0045: br.s IL_0050 + + IL_0047: ldloc.0 + IL_0048: ldc.i4.1 + IL_0049: add + IL_004a: stloc.0 + IL_004b: ldloc.0 + IL_004c: ldc.i4.s 10 + IL_004e: blt.s IL_0004 + + IL_0050: ldstr "end" + IL_0055: call void [mscorlib]System.Console::WriteLine(string) + IL_005a: ret + } // end of method ReduceNesting::LoopBreak + + .method public hidebysig instance void + LoopBreakElseIf() cil managed + { + // Code size 81 (0x51) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + IL_0002: br.s IL_0041 + + IL_0004: ldloc.0 + IL_0005: call void [mscorlib]System.Console::WriteLine(int32) + IL_000a: ldarg.0 + IL_000b: ldc.i4.0 + IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0011: brfalse.s IL_001b + + IL_0013: ldc.i4.0 + IL_0014: call void [mscorlib]System.Console::WriteLine(int32) + IL_0019: br.s IL_003d + + IL_001b: ldarg.0 + IL_001c: ldc.i4.1 + IL_001d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0022: brfalse.s IL_002c + + IL_0024: ldc.i4.1 + IL_0025: call void [mscorlib]System.Console::WriteLine(int32) + IL_002a: br.s IL_0046 + + IL_002c: ldarg.0 + IL_002d: ldc.i4.2 + IL_002e: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0033: brfalse.s IL_0046 + + IL_0035: ldc.i4.2 + IL_0036: call void [mscorlib]System.Console::WriteLine(int32) + IL_003b: br.s IL_0046 + + IL_003d: ldloc.0 + IL_003e: ldc.i4.1 + IL_003f: add + IL_0040: stloc.0 + IL_0041: ldloc.0 + IL_0042: ldc.i4.s 10 + IL_0044: blt.s IL_0004 + + IL_0046: ldstr "end" + IL_004b: call void [mscorlib]System.Console::WriteLine(string) + IL_0050: ret + } // end of method ReduceNesting::LoopBreakElseIf + + .method public hidebysig instance void + SwitchIf() cil managed + { + // Code size 65 (0x41) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: brfalse.s IL_0011 + + IL_000b: ldloc.0 + IL_000c: ldc.i4.1 + IL_000d: beq.s IL_001c + + IL_000f: br.s IL_0027 + + IL_0011: ldstr "case 0" + IL_0016: call void [mscorlib]System.Console::WriteLine(string) + IL_001b: ret + + IL_001c: ldstr "case 1" + IL_0021: call void [mscorlib]System.Console::WriteLine(string) + IL_0026: ret + + IL_0027: ldarg.0 + IL_0028: ldc.i4.0 + IL_0029: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_002e: brfalse.s IL_0036 + + IL_0030: ldc.i4.0 + IL_0031: call void [mscorlib]System.Console::WriteLine(int32) + IL_0036: ldstr "end" + IL_003b: call void [mscorlib]System.Console::WriteLine(string) + IL_0040: ret + } // end of method ReduceNesting::SwitchIf + + .method public hidebysig instance void + NestedSwitchIf() cil managed + { + // Code size 75 (0x4b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0040 + + IL_0009: ldarg.0 + IL_000a: ldc.i4.0 + IL_000b: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0010: stloc.0 + IL_0011: ldloc.0 + IL_0012: brfalse.s IL_001a + + IL_0014: ldloc.0 + IL_0015: ldc.i4.1 + IL_0016: beq.s IL_0025 + + IL_0018: br.s IL_0030 + + IL_001a: ldstr "case 0" + IL_001f: call void [mscorlib]System.Console::WriteLine(string) + IL_0024: ret + + IL_0025: ldstr "case 1" + IL_002a: call void [mscorlib]System.Console::WriteLine(string) + IL_002f: ret + + IL_0030: ldarg.0 + IL_0031: ldc.i4.1 + IL_0032: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0037: brfalse.s IL_004a + + IL_0039: ldc.i4.1 + IL_003a: call void [mscorlib]System.Console::WriteLine(int32) + IL_003f: ret + + IL_0040: ldstr "else" + IL_0045: call void [mscorlib]System.Console::WriteLine(string) + IL_004a: ret + } // end of method ReduceNesting::NestedSwitchIf + + .method public hidebysig instance void + EarlyExit1() cil managed + { + // Code size 39 (0x27) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brtrue.s IL_0026 + + IL_0009: ldc.i4.0 + IL_000a: stloc.0 + IL_000b: br.s IL_0017 + + IL_000d: ldloc.0 + IL_000e: call void [mscorlib]System.Console::WriteLine(int32) + IL_0013: ldloc.0 + IL_0014: ldc.i4.1 + IL_0015: add + IL_0016: stloc.0 + IL_0017: ldloc.0 + IL_0018: ldc.i4.s 10 + IL_001a: blt.s IL_000d + + IL_001c: ldstr "end" + IL_0021: call void [mscorlib]System.Console::WriteLine(string) + IL_0026: ret + } // end of method ReduceNesting::EarlyExit1 + + .method public hidebysig instance void + EarlyExit2() cil managed + { + // Code size 55 (0x37) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_000a + + IL_0009: ret + + IL_000a: ldc.i4.0 + IL_000b: stloc.0 + IL_000c: br.s IL_0027 + + IL_000e: ldloc.0 + IL_000f: call void [mscorlib]System.Console::WriteLine(int32) + IL_0014: ldloc.0 + IL_0015: ldc.i4.2 + IL_0016: rem + IL_0017: brtrue.s IL_0023 + + IL_0019: ldstr "even" + IL_001e: call void [mscorlib]System.Console::WriteLine(string) + IL_0023: ldloc.0 + IL_0024: ldc.i4.1 + IL_0025: add + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: ldc.i4.s 10 + IL_002a: blt.s IL_000e + + IL_002c: ldstr "end" + IL_0031: call void [mscorlib]System.Console::WriteLine(string) + IL_0036: ret + } // end of method ReduceNesting::EarlyExit2 + + .method public hidebysig instance void + BalancedIf() cil managed + { + // Code size 61 (0x3d) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_0023 + + IL_0009: ldstr "true" + IL_000e: call void [mscorlib]System.Console::WriteLine(string) + IL_0013: ldarg.0 + IL_0014: ldc.i4.1 + IL_0015: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_001a: brfalse.s IL_003c + + IL_001c: ldc.i4.1 + IL_001d: call void [mscorlib]System.Console::WriteLine(int32) + IL_0022: ret + + IL_0023: ldarg.0 + IL_0024: ldc.i4.2 + IL_0025: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_002a: brfalse.s IL_0032 + + IL_002c: ldc.i4.2 + IL_002d: call void [mscorlib]System.Console::WriteLine(int32) + IL_0032: ldstr "false" + IL_0037: call void [mscorlib]System.Console::WriteLine(string) + IL_003c: ret + } // end of method ReduceNesting::BalancedIf + + .method public hidebysig instance string + ComplexCase1(string s) cil managed + { + // Code size 178 (0xb2) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0007: brfalse.s IL_000b + + IL_0009: ldarg.1 + IL_000a: ret + + IL_000b: ldc.i4.0 + IL_000c: stloc.0 + IL_000d: br IL_00a4 + + IL_0012: ldarg.0 + IL_0013: ldc.i4.1 + IL_0014: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0019: brfalse.s IL_0023 + + IL_001b: ldc.i4.1 + IL_001c: call void [mscorlib]System.Console::WriteLine(int32) + IL_0021: br.s IL_00a0 + + IL_0023: ldarg.0 + IL_0024: ldc.i4.2 + IL_0025: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_002a: brfalse.s IL_0076 + + IL_002c: ldloc.0 + IL_002d: ldc.i4.1 + IL_002e: beq.s IL_0038 + + IL_0030: ldloc.0 + IL_0031: ldc.i4.2 + IL_0032: sub + IL_0033: ldc.i4.1 + IL_0034: ble.un.s IL_0064 + + IL_0036: br.s IL_006e + + IL_0038: ldarg.0 + IL_0039: ldc.i4.3 + IL_003a: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_003f: brfalse.s IL_0049 + + IL_0041: ldc.i4.3 + IL_0042: call void [mscorlib]System.Console::WriteLine(int32) + IL_0047: br.s IL_006e + + IL_0049: ldstr "case1" + IL_004e: call void [mscorlib]System.Console::WriteLine(string) + IL_0053: ldarg.0 + IL_0054: ldc.i4.4 + IL_0055: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_005a: brfalse.s IL_006e + + IL_005c: ldc.i4.4 + IL_005d: call void [mscorlib]System.Console::WriteLine(int32) + IL_0062: br.s IL_006e + + IL_0064: ldstr "case23" + IL_0069: call void [mscorlib]System.Console::WriteLine(string) + IL_006e: ldc.i4.2 + IL_006f: call void [mscorlib]System.Console::WriteLine(int32) + IL_0074: br.s IL_00a0 + + IL_0076: ldarg.0 + IL_0077: ldc.i4.5 + IL_0078: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_007d: brfalse.s IL_0087 + + IL_007f: ldc.i4.5 + IL_0080: call void [mscorlib]System.Console::WriteLine(int32) + IL_0085: br.s IL_00a0 + + IL_0087: ldarg.0 + IL_0088: ldc.i4.6 + IL_0089: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_008e: brfalse.s IL_0096 + + IL_0090: ldc.i4.6 + IL_0091: call void [mscorlib]System.Console::WriteLine(int32) + IL_0096: ldstr "else" + IL_009b: call void [mscorlib]System.Console::WriteLine(string) + IL_00a0: ldloc.0 + IL_00a1: ldc.i4.1 + IL_00a2: add + IL_00a3: stloc.0 + IL_00a4: ldloc.0 + IL_00a5: ldarg.1 + IL_00a6: callvirt instance int32 [mscorlib]System.String::get_Length() + IL_00ab: blt IL_0012 + + IL_00b0: ldarg.1 + IL_00b1: ret + } // end of method ReduceNesting::ComplexCase1 + + .method family 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 ReduceNesting::.ctor + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.roslyn.il new file mode 100644 index 000000000..c4058adaf --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ReduceNesting.roslyn.il @@ -0,0 +1,954 @@ + + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly ReduceNesting +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx + 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 07 01 00 00 00 00 ) + + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module ReduceNesting.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 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public abstract auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting + extends [mscorlib]System.Object +{ + .method public hidebysig newslot abstract virtual + instance bool B(int32 i) cil managed + { + } // end of method ReduceNesting::B + + .method public hidebysig newslot abstract virtual + instance int32 I(int32 i) cil managed + { + } // end of method ReduceNesting::I + + .method public hidebysig instance void + IfIf() cil managed + { + // Code size 54 (0x36) + .maxstack 2 + .locals init (bool V_0, + bool V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: stloc.0 + IL_0009: ldloc.0 + IL_000a: brfalse.s IL_0016 + + IL_000c: nop + IL_000d: ldc.i4.0 + IL_000e: call void [mscorlib]System.Console::WriteLine(int32) + IL_0013: nop + IL_0014: br.s IL_0035 + + IL_0016: ldarg.0 + IL_0017: ldc.i4.1 + IL_0018: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_001d: stloc.1 + IL_001e: ldloc.1 + IL_001f: brfalse.s IL_002a + + IL_0021: nop + IL_0022: ldc.i4.1 + IL_0023: call void [mscorlib]System.Console::WriteLine(int32) + IL_0028: nop + IL_0029: nop + IL_002a: ldstr "end" + IL_002f: call void [mscorlib]System.Console::WriteLine(string) + IL_0034: nop + IL_0035: ret + } // end of method ReduceNesting::IfIf + + .method public hidebysig instance void + IfSwitch() cil managed + { + // Code size 92 (0x5c) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: stloc.0 + IL_0009: ldloc.0 + IL_000a: brfalse.s IL_0016 + + IL_000c: nop + IL_000d: ldc.i4.0 + IL_000e: call void [mscorlib]System.Console::WriteLine(int32) + IL_0013: nop + IL_0014: br.s IL_005b + + IL_0016: ldstr "switch" + IL_001b: call void [mscorlib]System.Console::WriteLine(string) + IL_0020: nop + IL_0021: ldarg.0 + IL_0022: ldc.i4.0 + IL_0023: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0028: stloc.1 + IL_0029: ldloc.1 + IL_002a: brfalse.s IL_0034 + + IL_002c: br.s IL_002e + + IL_002e: ldloc.1 + IL_002f: ldc.i4.1 + IL_0030: beq.s IL_0041 + + IL_0032: br.s IL_004e + + IL_0034: ldstr "case 0" + IL_0039: call void [mscorlib]System.Console::WriteLine(string) + IL_003e: nop + IL_003f: br.s IL_005b + + IL_0041: ldstr "case 1" + IL_0046: call void [mscorlib]System.Console::WriteLine(string) + IL_004b: nop + IL_004c: br.s IL_005b + + IL_004e: ldstr "end" + IL_0053: call void [mscorlib]System.Console::WriteLine(string) + IL_0058: nop + IL_0059: br.s IL_005b + + IL_005b: ret + } // end of method ReduceNesting::IfSwitch + + .method public hidebysig instance void + IfSwitchSwitch() cil managed + { + // Code size 148 (0x94) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + int32 V_2) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: stloc.0 + IL_0009: ldloc.0 + IL_000a: brfalse.s IL_0016 + + IL_000c: nop + IL_000d: ldc.i4.0 + IL_000e: call void [mscorlib]System.Console::WriteLine(int32) + IL_0013: nop + IL_0014: br.s IL_0093 + + IL_0016: ldstr "switch 0" + IL_001b: call void [mscorlib]System.Console::WriteLine(string) + IL_0020: nop + IL_0021: ldarg.0 + IL_0022: ldc.i4.1 + IL_0023: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0028: stloc.1 + IL_0029: ldloc.1 + IL_002a: brfalse.s IL_0034 + + IL_002c: br.s IL_002e + + IL_002e: ldloc.1 + IL_002f: ldc.i4.1 + IL_0030: beq.s IL_0041 + + IL_0032: br.s IL_004e + + IL_0034: ldstr "case 0" + IL_0039: call void [mscorlib]System.Console::WriteLine(string) + IL_003e: nop + IL_003f: br.s IL_0093 + + IL_0041: ldstr "case 1" + IL_0046: call void [mscorlib]System.Console::WriteLine(string) + IL_004b: nop + IL_004c: br.s IL_0093 + + IL_004e: ldstr "switch 1" + IL_0053: call void [mscorlib]System.Console::WriteLine(string) + IL_0058: nop + IL_0059: ldarg.0 + IL_005a: ldc.i4.1 + IL_005b: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0060: stloc.2 + IL_0061: ldloc.2 + IL_0062: brfalse.s IL_006c + + IL_0064: br.s IL_0066 + + IL_0066: ldloc.2 + IL_0067: ldc.i4.1 + IL_0068: beq.s IL_0079 + + IL_006a: br.s IL_0086 + + IL_006c: ldstr "case 0" + IL_0071: call void [mscorlib]System.Console::WriteLine(string) + IL_0076: nop + IL_0077: br.s IL_0093 + + IL_0079: ldstr "case 1" + IL_007e: call void [mscorlib]System.Console::WriteLine(string) + IL_0083: nop + IL_0084: br.s IL_0093 + + IL_0086: ldstr "end" + IL_008b: call void [mscorlib]System.Console::WriteLine(string) + IL_0090: nop + IL_0091: br.s IL_0093 + + IL_0093: ret + } // end of method ReduceNesting::IfSwitchSwitch + + .method public hidebysig instance void + IfLoop() cil managed + { + // Code size 60 (0x3c) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + bool V_2) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: stloc.0 + IL_0009: ldloc.0 + IL_000a: brfalse.s IL_0016 + + IL_000c: nop + IL_000d: ldc.i4.0 + IL_000e: call void [mscorlib]System.Console::WriteLine(int32) + IL_0013: nop + IL_0014: br.s IL_003b + + IL_0016: ldc.i4.0 + IL_0017: stloc.1 + IL_0018: br.s IL_0027 + + IL_001a: nop + IL_001b: ldloc.1 + IL_001c: call void [mscorlib]System.Console::WriteLine(int32) + IL_0021: nop + IL_0022: nop + IL_0023: ldloc.1 + IL_0024: ldc.i4.1 + IL_0025: add + IL_0026: stloc.1 + IL_0027: ldloc.1 + IL_0028: ldc.i4.s 10 + IL_002a: clt + IL_002c: stloc.2 + IL_002d: ldloc.2 + IL_002e: brtrue.s IL_001a + + IL_0030: ldstr "end" + IL_0035: call void [mscorlib]System.Console::WriteLine(string) + IL_003a: nop + IL_003b: ret + } // end of method ReduceNesting::IfLoop + + .method public hidebysig instance void + LoopContinue() cil managed + { + // Code size 80 (0x50) + .maxstack 2 + .locals init (int32 V_0, + bool V_1, + bool V_2, + bool V_3) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_0046 + + IL_0005: nop + IL_0006: ldloc.0 + IL_0007: call void [mscorlib]System.Console::WriteLine(int32) + IL_000c: nop + IL_000d: ldarg.0 + IL_000e: ldc.i4.0 + IL_000f: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0014: stloc.1 + IL_0015: ldloc.1 + IL_0016: brfalse.s IL_0022 + + IL_0018: nop + IL_0019: ldc.i4.0 + IL_001a: call void [mscorlib]System.Console::WriteLine(int32) + IL_001f: nop + IL_0020: br.s IL_0042 + + IL_0022: ldarg.0 + IL_0023: ldc.i4.1 + IL_0024: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0029: stloc.2 + IL_002a: ldloc.2 + IL_002b: brfalse.s IL_0036 + + IL_002d: nop + IL_002e: ldc.i4.1 + IL_002f: call void [mscorlib]System.Console::WriteLine(int32) + IL_0034: nop + IL_0035: nop + IL_0036: ldstr "loop-tail" + IL_003b: call void [mscorlib]System.Console::WriteLine(string) + IL_0040: nop + IL_0041: nop + IL_0042: ldloc.0 + IL_0043: ldc.i4.1 + IL_0044: add + IL_0045: stloc.0 + IL_0046: ldloc.0 + IL_0047: ldc.i4.s 10 + IL_0049: clt + IL_004b: stloc.3 + IL_004c: ldloc.3 + IL_004d: brtrue.s IL_0005 + + IL_004f: ret + } // end of method ReduceNesting::LoopContinue + + .method public hidebysig instance void + LoopBreak() cil managed + { + // Code size 115 (0x73) + .maxstack 2 + .locals init (int32 V_0, + bool V_1, + bool V_2, + bool V_3, + bool V_4) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_005c + + IL_0005: nop + IL_0006: ldloc.0 + IL_0007: call void [mscorlib]System.Console::WriteLine(int32) + IL_000c: nop + IL_000d: ldarg.0 + IL_000e: ldc.i4.0 + IL_000f: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0014: stloc.1 + IL_0015: ldloc.1 + IL_0016: brfalse.s IL_0022 + + IL_0018: nop + IL_0019: ldc.i4.0 + IL_001a: call void [mscorlib]System.Console::WriteLine(int32) + IL_001f: nop + IL_0020: br.s IL_0058 + + IL_0022: ldarg.0 + IL_0023: ldc.i4.1 + IL_0024: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0029: stloc.2 + IL_002a: ldloc.2 + IL_002b: brfalse.s IL_0037 + + IL_002d: nop + IL_002e: ldc.i4.1 + IL_002f: call void [mscorlib]System.Console::WriteLine(int32) + IL_0034: nop + IL_0035: br.s IL_0067 + + IL_0037: ldarg.0 + IL_0038: ldc.i4.2 + IL_0039: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_003e: stloc.3 + IL_003f: ldloc.3 + IL_0040: brfalse.s IL_004b + + IL_0042: nop + IL_0043: ldc.i4.2 + IL_0044: call void [mscorlib]System.Console::WriteLine(int32) + IL_0049: nop + IL_004a: nop + IL_004b: ldstr "break" + IL_0050: call void [mscorlib]System.Console::WriteLine(string) + IL_0055: nop + IL_0056: br.s IL_0067 + + IL_0058: ldloc.0 + IL_0059: ldc.i4.1 + IL_005a: add + IL_005b: stloc.0 + IL_005c: ldloc.0 + IL_005d: ldc.i4.s 10 + IL_005f: clt + IL_0061: stloc.s V_4 + IL_0063: ldloc.s V_4 + IL_0065: brtrue.s IL_0005 + + IL_0067: ldstr "end" + IL_006c: call void [mscorlib]System.Console::WriteLine(string) + IL_0071: nop + IL_0072: ret + } // end of method ReduceNesting::LoopBreak + + .method public hidebysig instance void + LoopBreakElseIf() cil managed + { + // Code size 105 (0x69) + .maxstack 2 + .locals init (int32 V_0, + bool V_1, + bool V_2, + bool V_3, + bool V_4) + IL_0000: nop + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: br.s IL_0052 + + IL_0005: nop + IL_0006: ldloc.0 + IL_0007: call void [mscorlib]System.Console::WriteLine(int32) + IL_000c: nop + IL_000d: ldarg.0 + IL_000e: ldc.i4.0 + IL_000f: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0014: stloc.1 + IL_0015: ldloc.1 + IL_0016: brfalse.s IL_0022 + + IL_0018: nop + IL_0019: ldc.i4.0 + IL_001a: call void [mscorlib]System.Console::WriteLine(int32) + IL_001f: nop + IL_0020: br.s IL_004e + + IL_0022: ldarg.0 + IL_0023: ldc.i4.1 + IL_0024: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0029: stloc.2 + IL_002a: ldloc.2 + IL_002b: brfalse.s IL_0038 + + IL_002d: nop + IL_002e: ldc.i4.1 + IL_002f: call void [mscorlib]System.Console::WriteLine(int32) + IL_0034: nop + IL_0035: nop + IL_0036: br.s IL_004c + + IL_0038: ldarg.0 + IL_0039: ldc.i4.2 + IL_003a: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_003f: stloc.3 + IL_0040: ldloc.3 + IL_0041: brfalse.s IL_004c + + IL_0043: nop + IL_0044: ldc.i4.2 + IL_0045: call void [mscorlib]System.Console::WriteLine(int32) + IL_004a: nop + IL_004b: nop + IL_004c: br.s IL_005d + + IL_004e: ldloc.0 + IL_004f: ldc.i4.1 + IL_0050: add + IL_0051: stloc.0 + IL_0052: ldloc.0 + IL_0053: ldc.i4.s 10 + IL_0055: clt + IL_0057: stloc.s V_4 + IL_0059: ldloc.s V_4 + IL_005b: brtrue.s IL_0005 + + IL_005d: ldstr "end" + IL_0062: call void [mscorlib]System.Console::WriteLine(string) + IL_0067: nop + IL_0068: ret + } // end of method ReduceNesting::LoopBreakElseIf + + .method public hidebysig instance void + SwitchIf() cil managed + { + // Code size 78 (0x4e) + .maxstack 2 + .locals init (int32 V_0, + bool V_1) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0008: stloc.0 + IL_0009: ldloc.0 + IL_000a: brfalse.s IL_0014 + + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ldc.i4.1 + IL_0010: beq.s IL_0021 + + IL_0012: br.s IL_002e + + IL_0014: ldstr "case 0" + IL_0019: call void [mscorlib]System.Console::WriteLine(string) + IL_001e: nop + IL_001f: br.s IL_004d + + IL_0021: ldstr "case 1" + IL_0026: call void [mscorlib]System.Console::WriteLine(string) + IL_002b: nop + IL_002c: br.s IL_004d + + IL_002e: ldarg.0 + IL_002f: ldc.i4.0 + IL_0030: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0035: stloc.1 + IL_0036: ldloc.1 + IL_0037: brfalse.s IL_0042 + + IL_0039: nop + IL_003a: ldc.i4.0 + IL_003b: call void [mscorlib]System.Console::WriteLine(int32) + IL_0040: nop + IL_0041: nop + IL_0042: ldstr "end" + IL_0047: call void [mscorlib]System.Console::WriteLine(string) + IL_004c: nop + IL_004d: ret + } // end of method ReduceNesting::SwitchIf + + .method public hidebysig instance void + NestedSwitchIf() cil managed + { + // Code size 95 (0x5f) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + bool V_2) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: stloc.0 + IL_0009: ldloc.0 + IL_000a: brfalse.s IL_0051 + + IL_000c: nop + IL_000d: ldarg.0 + IL_000e: ldc.i4.0 + IL_000f: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::I(int32) + IL_0014: stloc.1 + IL_0015: ldloc.1 + IL_0016: brfalse.s IL_0020 + + IL_0018: br.s IL_001a + + IL_001a: ldloc.1 + IL_001b: ldc.i4.1 + IL_001c: beq.s IL_002d + + IL_001e: br.s IL_003a + + IL_0020: ldstr "case 0" + IL_0025: call void [mscorlib]System.Console::WriteLine(string) + IL_002a: nop + IL_002b: br.s IL_005e + + IL_002d: ldstr "case 1" + IL_0032: call void [mscorlib]System.Console::WriteLine(string) + IL_0037: nop + IL_0038: br.s IL_005e + + IL_003a: ldarg.0 + IL_003b: ldc.i4.1 + IL_003c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0041: stloc.2 + IL_0042: ldloc.2 + IL_0043: brfalse.s IL_004e + + IL_0045: nop + IL_0046: ldc.i4.1 + IL_0047: call void [mscorlib]System.Console::WriteLine(int32) + IL_004c: nop + IL_004d: nop + IL_004e: nop + IL_004f: br.s IL_005e + + IL_0051: nop + IL_0052: ldstr "else" + IL_0057: call void [mscorlib]System.Console::WriteLine(string) + IL_005c: nop + IL_005d: nop + IL_005e: ret + } // end of method ReduceNesting::NestedSwitchIf + + .method public hidebysig instance void + EarlyExit1() cil managed + { + // Code size 55 (0x37) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + bool V_2) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: ldc.i4.0 + IL_0009: ceq + IL_000b: stloc.0 + IL_000c: ldloc.0 + IL_000d: brfalse.s IL_0036 + + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: stloc.1 + IL_0012: br.s IL_0021 + + IL_0014: nop + IL_0015: ldloc.1 + IL_0016: call void [mscorlib]System.Console::WriteLine(int32) + IL_001b: nop + IL_001c: nop + IL_001d: ldloc.1 + IL_001e: ldc.i4.1 + IL_001f: add + IL_0020: stloc.1 + IL_0021: ldloc.1 + IL_0022: ldc.i4.s 10 + IL_0024: clt + IL_0026: stloc.2 + IL_0027: ldloc.2 + IL_0028: brtrue.s IL_0014 + + IL_002a: ldstr "end" + IL_002f: call void [mscorlib]System.Console::WriteLine(string) + IL_0034: nop + IL_0035: nop + IL_0036: ret + } // end of method ReduceNesting::EarlyExit1 + + .method public hidebysig instance void + EarlyExit2() cil managed + { + // Code size 76 (0x4c) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + bool V_2, + bool V_3) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: stloc.0 + IL_0009: ldloc.0 + IL_000a: brfalse.s IL_000f + + IL_000c: nop + IL_000d: br.s IL_004b + + IL_000f: ldc.i4.0 + IL_0010: stloc.1 + IL_0011: br.s IL_0037 + + IL_0013: nop + IL_0014: ldloc.1 + IL_0015: call void [mscorlib]System.Console::WriteLine(int32) + IL_001a: nop + IL_001b: ldloc.1 + IL_001c: ldc.i4.2 + IL_001d: rem + IL_001e: ldc.i4.0 + IL_001f: ceq + IL_0021: stloc.2 + IL_0022: ldloc.2 + IL_0023: brfalse.s IL_0032 + + IL_0025: nop + IL_0026: ldstr "even" + IL_002b: call void [mscorlib]System.Console::WriteLine(string) + IL_0030: nop + IL_0031: nop + IL_0032: nop + IL_0033: ldloc.1 + IL_0034: ldc.i4.1 + IL_0035: add + IL_0036: stloc.1 + IL_0037: ldloc.1 + IL_0038: ldc.i4.s 10 + IL_003a: clt + IL_003c: stloc.3 + IL_003d: ldloc.3 + IL_003e: brtrue.s IL_0013 + + IL_0040: ldstr "end" + IL_0045: call void [mscorlib]System.Console::WriteLine(string) + IL_004a: nop + IL_004b: ret + } // end of method ReduceNesting::EarlyExit2 + + .method public hidebysig instance void + BalancedIf() cil managed + { + // Code size 81 (0x51) + .maxstack 2 + .locals init (bool V_0, + bool V_1, + bool V_2) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: stloc.0 + IL_0009: ldloc.0 + IL_000a: brfalse.s IL_002f + + IL_000c: nop + IL_000d: ldstr "true" + IL_0012: call void [mscorlib]System.Console::WriteLine(string) + IL_0017: nop + IL_0018: ldarg.0 + IL_0019: ldc.i4.1 + IL_001a: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_001f: stloc.1 + IL_0020: ldloc.1 + IL_0021: brfalse.s IL_002c + + IL_0023: nop + IL_0024: ldc.i4.1 + IL_0025: call void [mscorlib]System.Console::WriteLine(int32) + IL_002a: nop + IL_002b: nop + IL_002c: nop + IL_002d: br.s IL_0050 + + IL_002f: nop + IL_0030: ldarg.0 + IL_0031: ldc.i4.2 + IL_0032: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0037: stloc.2 + IL_0038: ldloc.2 + IL_0039: brfalse.s IL_0044 + + IL_003b: nop + IL_003c: ldc.i4.2 + IL_003d: call void [mscorlib]System.Console::WriteLine(int32) + IL_0042: nop + IL_0043: nop + IL_0044: ldstr "false" + IL_0049: call void [mscorlib]System.Console::WriteLine(string) + IL_004e: nop + IL_004f: nop + IL_0050: ret + } // end of method ReduceNesting::BalancedIf + + .method public hidebysig instance string + ComplexCase1(string s) cil managed + { + // Code size 255 (0xff) + .maxstack 2 + .locals init (bool V_0, + string V_1, + int32 V_2, + bool V_3, + bool V_4, + int32 V_5, + bool V_6, + bool V_7, + bool V_8, + bool V_9, + bool V_10) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.0 + IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0008: stloc.0 + IL_0009: ldloc.0 + IL_000a: brfalse.s IL_0014 + + IL_000c: nop + IL_000d: ldarg.1 + IL_000e: stloc.1 + IL_000f: br IL_00fd + + IL_0014: ldc.i4.0 + IL_0015: stloc.2 + IL_0016: br IL_00e7 + + IL_001b: nop + IL_001c: ldarg.0 + IL_001d: ldc.i4.1 + IL_001e: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_0023: stloc.3 + IL_0024: ldloc.3 + IL_0025: brfalse.s IL_0035 + + IL_0027: nop + IL_0028: ldc.i4.1 + IL_0029: call void [mscorlib]System.Console::WriteLine(int32) + IL_002e: nop + IL_002f: nop + IL_0030: br IL_00e2 + + IL_0035: ldarg.0 + IL_0036: ldc.i4.2 + IL_0037: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_003c: stloc.s V_4 + IL_003e: ldloc.s V_4 + IL_0040: brfalse.s IL_00a7 + + IL_0042: nop + IL_0043: ldloc.2 + IL_0044: stloc.s V_5 + IL_0046: ldloc.s V_5 + IL_0048: ldc.i4.1 + IL_0049: beq.s IL_0056 + + IL_004b: br.s IL_004d + + IL_004d: ldloc.s V_5 + IL_004f: ldc.i4.2 + IL_0050: sub + IL_0051: ldc.i4.1 + IL_0052: ble.un.s IL_0090 + + IL_0054: br.s IL_009d + + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_005d: stloc.s V_6 + IL_005f: ldloc.s V_6 + IL_0061: brfalse.s IL_006d + + IL_0063: nop + IL_0064: ldc.i4.3 + IL_0065: call void [mscorlib]System.Console::WriteLine(int32) + IL_006a: nop + IL_006b: br.s IL_009d + + IL_006d: ldstr "case1" + IL_0072: call void [mscorlib]System.Console::WriteLine(string) + IL_0077: nop + IL_0078: ldarg.0 + IL_0079: ldc.i4.4 + IL_007a: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_007f: stloc.s V_7 + IL_0081: ldloc.s V_7 + IL_0083: brfalse.s IL_008e + + IL_0085: nop + IL_0086: ldc.i4.4 + IL_0087: call void [mscorlib]System.Console::WriteLine(int32) + IL_008c: nop + IL_008d: nop + IL_008e: br.s IL_009d + + IL_0090: ldstr "case23" + IL_0095: call void [mscorlib]System.Console::WriteLine(string) + IL_009a: nop + IL_009b: br.s IL_009d + + IL_009d: ldc.i4.2 + IL_009e: call void [mscorlib]System.Console::WriteLine(int32) + IL_00a3: nop + IL_00a4: nop + IL_00a5: br.s IL_00e2 + + IL_00a7: ldarg.0 + IL_00a8: ldc.i4.5 + IL_00a9: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_00ae: stloc.s V_8 + IL_00b0: ldloc.s V_8 + IL_00b2: brfalse.s IL_00bf + + IL_00b4: nop + IL_00b5: ldc.i4.5 + IL_00b6: call void [mscorlib]System.Console::WriteLine(int32) + IL_00bb: nop + IL_00bc: nop + IL_00bd: br.s IL_00e2 + + IL_00bf: nop + IL_00c0: ldarg.0 + IL_00c1: ldc.i4.6 + IL_00c2: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting::B(int32) + IL_00c7: stloc.s V_9 + IL_00c9: ldloc.s V_9 + IL_00cb: brfalse.s IL_00d6 + + IL_00cd: nop + IL_00ce: ldc.i4.6 + IL_00cf: call void [mscorlib]System.Console::WriteLine(int32) + IL_00d4: nop + IL_00d5: nop + IL_00d6: ldstr "else" + IL_00db: call void [mscorlib]System.Console::WriteLine(string) + IL_00e0: nop + IL_00e1: nop + IL_00e2: nop + IL_00e3: ldloc.2 + IL_00e4: ldc.i4.1 + IL_00e5: add + IL_00e6: stloc.2 + IL_00e7: ldloc.2 + IL_00e8: ldarg.1 + IL_00e9: callvirt instance int32 [mscorlib]System.String::get_Length() + IL_00ee: clt + IL_00f0: stloc.s V_10 + IL_00f2: ldloc.s V_10 + IL_00f4: brtrue IL_001b + + IL_00f9: ldarg.1 + IL_00fa: stloc.1 + IL_00fb: br.s IL_00fd + + IL_00fd: ldloc.1 + IL_00fe: ret + } // end of method ReduceNesting::ComplexCase1 + + .method family 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 ReduceNesting::.ctor + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ReduceNesting + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.cs new file mode 100644 index 000000000..c2c19ce21 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.cs @@ -0,0 +1,339 @@ +// Copyright (c) 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.Tests.TestCases.Pretty +{ + public class YieldReturnPrettyTest + { + private int fieldOnThis; + + public static IEnumerable YieldChars { + get { + yield return 'a'; + yield return 'b'; + yield return 'c'; + } + } + + internal static void Print(string name, IEnumerator enumerator) + { + Console.WriteLine(name + ": Test start"); + while (enumerator.MoveNext()) { + Console.WriteLine(name + ": " + enumerator.Current); + } + } + + public static IEnumerable SimpleYieldReturn() + { + yield return "A"; + yield return "B"; + yield return "C"; + } + + public static IEnumerator SimpleYieldReturnEnumerator() + { + yield return "A"; + yield return "B"; + yield return "C"; + } + + public IEnumerable YieldReturnParameters(int p) + { + yield return p; + yield return fieldOnThis; + } + + public IEnumerator YieldReturnParametersEnumerator(int p) + { + yield return p; + yield return fieldOnThis; + } + + public static IEnumerable YieldReturnInLoop() + { + for (int i = 0; i < 100; i++) { + yield return i; + } + } + + public static IEnumerable YieldReturnWithTryFinally() + { + yield return 0; + try { + yield return 1; + } finally { + Console.WriteLine("Finally!"); + } + yield return 2; + } + +#if TODO + // TODO: adjust lock-pattern for this case + public static IEnumerable YieldReturnInLock1(object o) + { + lock (o) { + yield return 1; + } + } + + public static IEnumerable YieldReturnInLock2(object o) + { + lock (o) { + yield return 1; + o = null; + yield return 2; + } + } +#endif + + public static IEnumerable YieldReturnWithNestedTryFinally(bool breakInMiddle) + { + Console.WriteLine("Start of method - 1"); + yield return "Start of method"; + Console.WriteLine("Start of method - 2"); + try { + Console.WriteLine("Within outer try - 1"); + yield return "Within outer try"; + Console.WriteLine("Within outer try - 2"); + try { + Console.WriteLine("Within inner try - 1"); + yield return "Within inner try"; + Console.WriteLine("Within inner try - 2"); + if (breakInMiddle) { + Console.WriteLine("Breaking..."); + yield break; + } + Console.WriteLine("End of inner try - 1"); + yield return "End of inner try"; + Console.WriteLine("End of inner try - 2"); + } finally { + Console.WriteLine("Inner Finally"); + } + Console.WriteLine("End of outer try - 1"); + yield return "End of outer try"; + Console.WriteLine("End of outer try - 2"); + } finally { + Console.WriteLine("Outer Finally"); + } + Console.WriteLine("End of method - 1"); + yield return "End of method"; + Console.WriteLine("End of method - 2"); + } + + public static IEnumerable YieldReturnWithTwoNonNestedFinallyBlocks(IEnumerable input) + { + // outer try-finally block + foreach (string line in input) { + // nested try-finally block + try { + yield return line; + } finally { + Console.WriteLine("Processed " + line); + } + } + yield return "A"; + yield return "B"; + yield return "C"; + yield return "D"; + yield return "E"; + yield return "F"; + // outer try-finally block + foreach (string item in input) { + yield return item.ToUpper(); + } + } + + public static IEnumerable> YieldReturnWithAnonymousMethods1(IEnumerable input) + { + foreach (string line in input) { + yield return () => line; + } + } + + public static IEnumerable> YieldReturnWithAnonymousMethods2(IEnumerable input) + { + foreach (string item in input) { + string copy = item; + yield return () => copy; + } + } + + public static IEnumerable GetEvenNumbers(int n) + { + for (int i = 0; i < n; i++) { + if (i % 2 == 0) { + yield return i; + } + } + } + + public static IEnumerable ExceptionHandling() + { + yield return 'a'; + try { + Console.WriteLine("1 - try"); + } catch (Exception) { + Console.WriteLine("1 - catch"); + } + yield return 'b'; + try { + try { + Console.WriteLine("2 - try"); + } finally { + Console.WriteLine("2 - finally"); + } + yield return 'c'; + } finally { + Console.WriteLine("outer finally"); + } + } + + public static IEnumerable YieldBreakInCatch() + { + yield return 0; + try { + Console.WriteLine("In Try"); + } catch { + // yield return is not allowed in catch, but yield break is + yield break; + } + yield return 1; + } + + public static IEnumerable YieldBreakInCatchInTryFinally() + { + try { + yield return 0; + try { + Console.WriteLine("In Try"); + } catch { + // yield return is not allowed in catch, but yield break is + // Note that pre-roslyn, this code triggers a compiler bug: + // If the finally block throws an exception, it ends up getting + // called a second time. + yield break; + } + yield return 1; + } finally { + Console.WriteLine("Finally"); + } + } + + public static IEnumerable YieldBreakInTryCatchInTryFinally() + { + try { + yield return 0; + try { + Console.WriteLine("In Try"); + // same compiler bug as in YieldBreakInCatchInTryFinally + yield break; + } catch { + Console.WriteLine("Catch"); + } + yield return 1; + } finally { + Console.WriteLine("Finally"); + } + } + + public static IEnumerable YieldBreakInTryFinallyInTryFinally(bool b) + { + try { + yield return 0; + try { + Console.WriteLine("In Try"); + if (b) { + // same compiler bug as in YieldBreakInCatchInTryFinally + yield break; + } + } finally { + Console.WriteLine("Inner Finally"); + } + yield return 1; + } finally { + Console.WriteLine("Finally"); + } + } + + public static IEnumerable YieldBreakOnly() + { + yield break; + } + + public static IEnumerable UnconditionalThrowInTryFinally() + { + // Here, MoveNext() doesn't call the finally methods at all + // (only indirectly via Dispose()) + try { + yield return 0; + throw new NotImplementedException(); + } finally { + Console.WriteLine("Finally"); + } + } + + public static IEnumerable NestedTryFinallyStartingOnSamePosition() + { + // The first user IL instruction is already in 2 nested try blocks. + try { + try { + yield return 0; + } finally { + Console.WriteLine("Inner Finally"); + } + } finally { + Console.WriteLine("Outer Finally"); + } + } + + public static IEnumerable LocalInFinally(T a) where T : IDisposable + { + yield return 1; + try { + yield return 2; + } finally { + T val = a; + val.Dispose(); + val.Dispose(); + } + yield return 3; + } + + public static IEnumerable GenericYield() where T : new() + { + T val = new T(); + for (int i = 0; i < 3; i++) { + yield return val; + } + } + } + + internal struct StructWithYieldReturn + { + private int val; + + public IEnumerable Count() + { + yield return val++; + yield return val++; + } + } +} \ No newline at end of file diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.il new file mode 100644 index 000000000..5fd9effa9 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.il @@ -0,0 +1,7400 @@ + + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly YieldReturn +{ + .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 ) + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module YieldReturn.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 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest + extends [mscorlib]System.Object +{ + .class auto ansi sealed nested private beforefieldinit 'd__0' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private char '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__0'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__0'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 134 (0x86) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0025, + IL_001f, + IL_0021, + IL_0023) + IL_001d: br.s IL_0027 + + IL_001f: br.s IL_0044 + + IL_0021: br.s IL_005e + + IL_0023: br.s IL_0078 + + IL_0025: br.s IL_0029 + + IL_0027: br.s IL_0080 + + IL_0029: ldarg.0 + IL_002a: ldc.i4.m1 + IL_002b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0030: nop + IL_0031: ldarg.0 + IL_0032: ldc.i4.s 97 + IL_0034: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>2__current' + IL_0039: ldarg.0 + IL_003a: ldc.i4.1 + IL_003b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0040: ldc.i4.1 + IL_0041: stloc.0 + IL_0042: br.s IL_0084 + + IL_0044: ldarg.0 + IL_0045: ldc.i4.m1 + IL_0046: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_004b: ldarg.0 + IL_004c: ldc.i4.s 98 + IL_004e: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>2__current' + IL_0053: ldarg.0 + IL_0054: ldc.i4.2 + IL_0055: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_005a: ldc.i4.1 + IL_005b: stloc.0 + IL_005c: br.s IL_0084 + + IL_005e: ldarg.0 + IL_005f: ldc.i4.m1 + IL_0060: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0065: ldarg.0 + IL_0066: ldc.i4.s 99 + IL_0068: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>2__current' + IL_006d: ldarg.0 + IL_006e: ldc.i4.3 + IL_006f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0074: ldc.i4.1 + IL_0075: stloc.0 + IL_0076: br.s IL_0084 + + IL_0078: ldarg.0 + IL_0079: ldc.i4.m1 + IL_007a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_007f: nop + IL_0080: ldc.i4.0 + IL_0081: stloc.0 + IL_0082: br.s IL_0084 + + IL_0084: ldloc.0 + IL_0085: ret + } // end of method 'd__0'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance char 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (char V_0) + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__0'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__0'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__0'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>2__current' + IL_0006: box [mscorlib]System.Char + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__0'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__0'::.ctor + + .property instance char 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__0'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__0'::System.Collections.IEnumerator.Current + } // end of class 'd__0' + + .class auto ansi sealed nested private beforefieldinit 'd__3' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__3'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__3'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 143 (0x8f) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0025, + IL_001f, + IL_0021, + IL_0023) + IL_001d: br.s IL_0027 + + IL_001f: br.s IL_0047 + + IL_0021: br.s IL_0064 + + IL_0023: br.s IL_0081 + + IL_0025: br.s IL_0029 + + IL_0027: br.s IL_0089 + + IL_0029: ldarg.0 + IL_002a: ldc.i4.m1 + IL_002b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0030: nop + IL_0031: ldarg.0 + IL_0032: ldstr "A" + IL_0037: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>2__current' + IL_003c: ldarg.0 + IL_003d: ldc.i4.1 + IL_003e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0043: ldc.i4.1 + IL_0044: stloc.0 + IL_0045: br.s IL_008d + + IL_0047: ldarg.0 + IL_0048: ldc.i4.m1 + IL_0049: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_004e: ldarg.0 + IL_004f: ldstr "B" + IL_0054: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>2__current' + IL_0059: ldarg.0 + IL_005a: ldc.i4.2 + IL_005b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0060: ldc.i4.1 + IL_0061: stloc.0 + IL_0062: br.s IL_008d + + IL_0064: ldarg.0 + IL_0065: ldc.i4.m1 + IL_0066: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_006b: ldarg.0 + IL_006c: ldstr "C" + IL_0071: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>2__current' + IL_0076: ldarg.0 + IL_0077: ldc.i4.3 + IL_0078: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_007d: ldc.i4.1 + IL_007e: stloc.0 + IL_007f: br.s IL_008d + + IL_0081: ldarg.0 + IL_0082: ldc.i4.m1 + IL_0083: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0088: nop + IL_0089: ldc.i4.0 + IL_008a: stloc.0 + IL_008b: br.s IL_008d + + IL_008d: ldloc.0 + IL_008e: ret + } // end of method 'd__3'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (string V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__3'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__3'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__3'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 11 (0xb) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__3'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__3'::.ctor + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__3'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__3'::System.Collections.IEnumerator.Current + } // end of class 'd__3' + + .class auto ansi sealed nested private beforefieldinit 'd__6' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string '<>2__current' + .field private int32 '<>1__state' + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 143 (0x8f) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0025, + IL_001f, + IL_0021, + IL_0023) + IL_001d: br.s IL_0027 + + IL_001f: br.s IL_0047 + + IL_0021: br.s IL_0064 + + IL_0023: br.s IL_0081 + + IL_0025: br.s IL_0029 + + IL_0027: br.s IL_0089 + + IL_0029: ldarg.0 + IL_002a: ldc.i4.m1 + IL_002b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0030: nop + IL_0031: ldarg.0 + IL_0032: ldstr "A" + IL_0037: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_003c: ldarg.0 + IL_003d: ldc.i4.1 + IL_003e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0043: ldc.i4.1 + IL_0044: stloc.0 + IL_0045: br.s IL_008d + + IL_0047: ldarg.0 + IL_0048: ldc.i4.m1 + IL_0049: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_004e: ldarg.0 + IL_004f: ldstr "B" + IL_0054: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0059: ldarg.0 + IL_005a: ldc.i4.2 + IL_005b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0060: ldc.i4.1 + IL_0061: stloc.0 + IL_0062: br.s IL_008d + + IL_0064: ldarg.0 + IL_0065: ldc.i4.m1 + IL_0066: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_006b: ldarg.0 + IL_006c: ldstr "C" + IL_0071: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0076: ldarg.0 + IL_0077: ldc.i4.3 + IL_0078: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_007d: ldc.i4.1 + IL_007e: stloc.0 + IL_007f: br.s IL_008d + + IL_0081: ldarg.0 + IL_0082: ldc.i4.m1 + IL_0083: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0088: nop + IL_0089: ldc.i4.0 + IL_008a: stloc.0 + IL_008b: br.s IL_008d + + IL_008d: ldloc.0 + IL_008e: ret + } // end of method 'd__6'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (string V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__6'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__6'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__6'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 11 (0xb) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__6'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') 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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_000d: ret + } // end of method 'd__6'::.ctor + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__6'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__6'::System.Collections.IEnumerator.Current + } // end of class 'd__6' + + .class auto ansi sealed nested private beforefieldinit 'd__8' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest '<>4__this' + .field public int32 p + .field public int32 '<>3__p' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 82 (0x52) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0040 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldarg.0 + IL_0036: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>4__this' + IL_003b: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>4__this' + IL_0040: ldloc.0 + IL_0041: ldarg.0 + IL_0042: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>3__p' + IL_0047: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::p + IL_004c: ldloc.0 + IL_004d: stloc.1 + IL_004e: br.s IL_0050 + + IL_0050: ldloc.1 + IL_0051: ret + } // end of method 'd__8'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__8'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 115 (0x73) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001f, + IL_001b, + IL_001d) + IL_0019: br.s IL_0021 + + IL_001b: br.s IL_0042 + + IL_001d: br.s IL_0065 + + IL_001f: br.s IL_0023 + + IL_0021: br.s IL_006d + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: ldarg.0 + IL_002d: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::p + IL_0032: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_0037: ldarg.0 + IL_0038: ldc.i4.1 + IL_0039: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_003e: ldc.i4.1 + IL_003f: stloc.0 + IL_0040: br.s IL_0071 + + IL_0042: ldarg.0 + IL_0043: ldc.i4.m1 + IL_0044: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0049: ldarg.0 + IL_004a: ldarg.0 + IL_004b: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>4__this' + IL_0050: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::fieldOnThis + IL_0055: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_005a: ldarg.0 + IL_005b: ldc.i4.2 + IL_005c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0061: ldc.i4.1 + IL_0062: stloc.0 + IL_0063: br.s IL_0071 + + IL_0065: ldarg.0 + IL_0066: ldc.i4.m1 + IL_0067: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_006c: nop + IL_006d: ldc.i4.0 + IL_006e: stloc.0 + IL_006f: br.s IL_0071 + + IL_0071: ldloc.0 + IL_0072: ret + } // end of method 'd__8'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__8'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__8'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__8'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__8'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__8'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__8'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__8'::System.Collections.IEnumerator.Current + } // end of class 'd__8' + + .class auto ansi sealed nested private beforefieldinit 'd__b' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest '<>4__this' + .field public int32 p + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 115 (0x73) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001f, + IL_001b, + IL_001d) + IL_0019: br.s IL_0021 + + IL_001b: br.s IL_0042 + + IL_001d: br.s IL_0065 + + IL_001f: br.s IL_0023 + + IL_0021: br.s IL_006d + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: ldarg.0 + IL_002d: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::p + IL_0032: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>2__current' + IL_0037: ldarg.0 + IL_0038: ldc.i4.1 + IL_0039: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_003e: ldc.i4.1 + IL_003f: stloc.0 + IL_0040: br.s IL_0071 + + IL_0042: ldarg.0 + IL_0043: ldc.i4.m1 + IL_0044: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_0049: ldarg.0 + IL_004a: ldarg.0 + IL_004b: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>4__this' + IL_0050: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::fieldOnThis + IL_0055: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>2__current' + IL_005a: ldarg.0 + IL_005b: ldc.i4.2 + IL_005c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_0061: ldc.i4.1 + IL_0062: stloc.0 + IL_0063: br.s IL_0071 + + IL_0065: ldarg.0 + IL_0066: ldc.i4.m1 + IL_0067: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_006c: nop + IL_006d: ldc.i4.0 + IL_006e: stloc.0 + IL_006f: br.s IL_0071 + + IL_0071: ldloc.0 + IL_0072: ret + } // end of method 'd__b'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__b'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__b'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__b'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__b'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') 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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_000d: ret + } // end of method 'd__b'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__b'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__b'::System.Collections.IEnumerator.Current + } // end of class 'd__b' + + .class auto ansi sealed nested private beforefieldinit 'd__d' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public int32 '5__e' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__d'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__d'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 113 (0x71) + .maxstack 3 + .locals init (bool V_0, + int32 V_1, + bool V_2) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0019, + IL_0017) + IL_0015: br.s IL_001b + + IL_0017: br.s IL_0046 + + IL_0019: br.s IL_001d + + IL_001b: br.s IL_006b + + IL_001d: ldarg.0 + IL_001e: ldc.i4.m1 + IL_001f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_0024: nop + IL_0025: ldarg.0 + IL_0026: ldc.i4.0 + IL_0027: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'5__e' + IL_002c: br.s IL_005c + + IL_002e: nop + IL_002f: ldarg.0 + IL_0030: ldarg.0 + IL_0031: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'5__e' + IL_0036: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>2__current' + IL_003b: ldarg.0 + IL_003c: ldc.i4.1 + IL_003d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_0042: ldc.i4.1 + IL_0043: stloc.0 + IL_0044: br.s IL_006f + + IL_0046: ldarg.0 + IL_0047: ldc.i4.m1 + IL_0048: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_004d: nop + IL_004e: ldarg.0 + IL_004f: dup + IL_0050: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'5__e' + IL_0055: ldc.i4.1 + IL_0056: add + IL_0057: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'5__e' + IL_005c: ldarg.0 + IL_005d: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'5__e' + IL_0062: ldc.i4.s 100 + IL_0064: clt + IL_0066: stloc.2 + IL_0067: ldloc.2 + IL_0068: brtrue.s IL_002e + + IL_006a: nop + IL_006b: ldc.i4.0 + IL_006c: stloc.0 + IL_006d: br.s IL_006f + + IL_006f: ldloc.0 + IL_0070: ret + } // end of method 'd__d'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__d'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__d'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__d'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__d'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__d'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__d'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__d'::System.Collections.IEnumerator.Current + } // end of class 'd__d' + + .class auto ansi sealed nested private beforefieldinit 'd__11' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__11'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__11'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 160 (0xa0) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0029, + IL_0023, + IL_002b, + IL_0025, + IL_0027) + IL_0021: br.s IL_002b + + IL_0023: br.s IL_0047 + + IL_0025: br.s IL_0068 + + IL_0027: br.s IL_0089 + + IL_0029: br.s IL_002d + + IL_002b: br.s IL_0091 + + IL_002d: ldarg.0 + IL_002e: ldc.i4.m1 + IL_002f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0034: nop + IL_0035: ldarg.0 + IL_0036: ldc.i4.0 + IL_0037: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_003c: ldarg.0 + IL_003d: ldc.i4.1 + IL_003e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0043: ldc.i4.1 + IL_0044: stloc.0 + IL_0045: leave.s IL_009d + + IL_0047: ldarg.0 + IL_0048: ldc.i4.m1 + IL_0049: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_004e: nop + IL_004f: ldarg.0 + IL_0050: ldc.i4.2 + IL_0051: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0056: ldarg.0 + IL_0057: ldc.i4.1 + IL_0058: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_005d: ldarg.0 + IL_005e: ldc.i4.3 + IL_005f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0064: ldc.i4.1 + IL_0065: stloc.0 + IL_0066: leave.s IL_009d + + IL_0068: ldarg.0 + IL_0069: ldc.i4.2 + IL_006a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_006f: nop + IL_0070: ldarg.0 + IL_0071: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally12'() + IL_0076: nop + IL_0077: ldarg.0 + IL_0078: ldc.i4.2 + IL_0079: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_007e: ldarg.0 + IL_007f: ldc.i4.4 + IL_0080: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0085: ldc.i4.1 + IL_0086: stloc.0 + IL_0087: leave.s IL_009d + + IL_0089: ldarg.0 + IL_008a: ldc.i4.m1 + IL_008b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0090: nop + IL_0091: ldc.i4.0 + IL_0092: stloc.0 + IL_0093: leave.s IL_009d + + } // end .try + fault + { + IL_0095: ldarg.0 + IL_0096: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::System.IDisposable.Dispose() + IL_009b: nop + IL_009c: endfinally + } // end handler + IL_009d: nop + IL_009e: ldloc.0 + IL_009f: ret + } // end of method 'd__11'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__11'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__11'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 43 (0x2b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.2 + IL_0009: sub + IL_000a: switch ( + IL_001b, + IL_0019) + IL_0017: br.s IL_001d + + IL_0019: br.s IL_001f + + IL_001b: br.s IL_001f + + IL_001d: br.s IL_002a + + .try + { + IL_001f: leave.s IL_0029 + + } // end .try + finally + { + IL_0021: ldarg.0 + IL_0022: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally12'() + IL_0027: nop + IL_0028: endfinally + } // end handler + IL_0029: nop + IL_002a: ret + } // end of method 'd__11'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__11'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__11'::.ctor + + .method private hidebysig instance void + '<>m__Finally12'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.m1 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0008: ldstr "Finally!" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__11'::'<>m__Finally12' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__11'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__11'::System.Collections.IEnumerator.Current + } // end of class 'd__11' + + .class auto ansi sealed nested private beforefieldinit 'd__15' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public bool breakInMiddle + .field public bool '<>3__breakInMiddle' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 70 (0x46) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldarg.0 + IL_0036: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>3__breakInMiddle' + IL_003b: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::breakInMiddle + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: br.s IL_0044 + + IL_0044: ldloc.1 + IL_0045: ret + } // end of method 'd__15'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__15'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 497 (0x1f1) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + bool V_2) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_004e, + IL_0033, + IL_0050, + IL_0035, + IL_0050, + IL_003a, + IL_003f, + IL_0044, + IL_0049) + IL_0031: br.s IL_0050 + + IL_0033: br.s IL_0081 + + IL_0035: br IL_00bf + + IL_003a: br IL_00fd + + IL_003f: br IL_0158 + + IL_0044: br IL_0193 + + IL_0049: br IL_01ce + + IL_004e: br.s IL_0055 + + IL_0050: br IL_01e1 + + IL_0055: ldarg.0 + IL_0056: ldc.i4.m1 + IL_0057: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_005c: nop + IL_005d: ldstr "Start of method - 1" + IL_0062: call void [mscorlib]System.Console::WriteLine(string) + IL_0067: nop + IL_0068: ldarg.0 + IL_0069: ldstr "Start of method" + IL_006e: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0073: ldarg.0 + IL_0074: ldc.i4.1 + IL_0075: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_007a: ldc.i4.1 + IL_007b: stloc.0 + IL_007c: leave IL_01ee + + IL_0081: ldarg.0 + IL_0082: ldc.i4.m1 + IL_0083: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0088: ldstr "Start of method - 2" + IL_008d: call void [mscorlib]System.Console::WriteLine(string) + IL_0092: nop + IL_0093: nop + IL_0094: ldarg.0 + IL_0095: ldc.i4.2 + IL_0096: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_009b: ldstr "Within outer try - 1" + IL_00a0: call void [mscorlib]System.Console::WriteLine(string) + IL_00a5: nop + IL_00a6: ldarg.0 + IL_00a7: ldstr "Within outer try" + IL_00ac: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_00b1: ldarg.0 + IL_00b2: ldc.i4.3 + IL_00b3: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00b8: ldc.i4.1 + IL_00b9: stloc.0 + IL_00ba: leave IL_01ee + + IL_00bf: ldarg.0 + IL_00c0: ldc.i4.2 + IL_00c1: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00c6: ldstr "Within outer try - 2" + IL_00cb: call void [mscorlib]System.Console::WriteLine(string) + IL_00d0: nop + IL_00d1: nop + IL_00d2: ldarg.0 + IL_00d3: ldc.i4.4 + IL_00d4: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00d9: ldstr "Within inner try - 1" + IL_00de: call void [mscorlib]System.Console::WriteLine(string) + IL_00e3: nop + IL_00e4: ldarg.0 + IL_00e5: ldstr "Within inner try" + IL_00ea: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_00ef: ldarg.0 + IL_00f0: ldc.i4.5 + IL_00f1: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00f6: ldc.i4.1 + IL_00f7: stloc.0 + IL_00f8: leave IL_01ee + + IL_00fd: ldarg.0 + IL_00fe: ldc.i4.4 + IL_00ff: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0104: ldstr "Within inner try - 2" + IL_0109: call void [mscorlib]System.Console::WriteLine(string) + IL_010e: nop + IL_010f: ldarg.0 + IL_0110: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::breakInMiddle + IL_0115: ldc.i4.0 + IL_0116: ceq + IL_0118: stloc.2 + IL_0119: ldloc.2 + IL_011a: brtrue.s IL_0134 + + IL_011c: nop + IL_011d: ldstr "Breaking..." + IL_0122: call void [mscorlib]System.Console::WriteLine(string) + IL_0127: nop + IL_0128: ldarg.0 + IL_0129: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::System.IDisposable.Dispose() + IL_012e: nop + IL_012f: leave IL_01e1 + + IL_0134: ldstr "End of inner try - 1" + IL_0139: call void [mscorlib]System.Console::WriteLine(string) + IL_013e: nop + IL_013f: ldarg.0 + IL_0140: ldstr "End of inner try" + IL_0145: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_014a: ldarg.0 + IL_014b: ldc.i4.6 + IL_014c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0151: ldc.i4.1 + IL_0152: stloc.0 + IL_0153: leave IL_01ee + + IL_0158: ldarg.0 + IL_0159: ldc.i4.4 + IL_015a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_015f: ldstr "End of inner try - 2" + IL_0164: call void [mscorlib]System.Console::WriteLine(string) + IL_0169: nop + IL_016a: nop + IL_016b: ldarg.0 + IL_016c: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally17'() + IL_0171: nop + IL_0172: ldstr "End of outer try - 1" + IL_0177: call void [mscorlib]System.Console::WriteLine(string) + IL_017c: nop + IL_017d: ldarg.0 + IL_017e: ldstr "End of outer try" + IL_0183: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0188: ldarg.0 + IL_0189: ldc.i4.7 + IL_018a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_018f: ldc.i4.1 + IL_0190: stloc.0 + IL_0191: leave.s IL_01ee + + IL_0193: ldarg.0 + IL_0194: ldc.i4.2 + IL_0195: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_019a: ldstr "End of outer try - 2" + IL_019f: call void [mscorlib]System.Console::WriteLine(string) + IL_01a4: nop + IL_01a5: nop + IL_01a6: ldarg.0 + IL_01a7: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally16'() + IL_01ac: nop + IL_01ad: ldstr "End of method - 1" + IL_01b2: call void [mscorlib]System.Console::WriteLine(string) + IL_01b7: nop + IL_01b8: ldarg.0 + IL_01b9: ldstr "End of method" + IL_01be: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_01c3: ldarg.0 + IL_01c4: ldc.i4.8 + IL_01c5: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_01ca: ldc.i4.1 + IL_01cb: stloc.0 + IL_01cc: leave.s IL_01ee + + IL_01ce: ldarg.0 + IL_01cf: ldc.i4.m1 + IL_01d0: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_01d5: ldstr "End of method - 2" + IL_01da: call void [mscorlib]System.Console::WriteLine(string) + IL_01df: nop + IL_01e0: nop + IL_01e1: nop + IL_01e2: ldc.i4.0 + IL_01e3: stloc.0 + IL_01e4: leave.s IL_01ee + + } // end .try + fault + { + IL_01e6: ldarg.0 + IL_01e7: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::System.IDisposable.Dispose() + IL_01ec: nop + IL_01ed: endfinally + } // end handler + IL_01ee: nop + IL_01ef: ldloc.0 + IL_01f0: ret + } // end of method 'd__15'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (string V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__15'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__15'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 115 (0x73) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.2 + IL_0009: sub + IL_000a: switch ( + IL_0033, + IL_0029, + IL_002f, + IL_002b, + IL_002d, + IL_0031) + IL_0027: br.s IL_0035 + + IL_0029: br.s IL_0037 + + IL_002b: br.s IL_0037 + + IL_002d: br.s IL_0037 + + IL_002f: br.s IL_0037 + + IL_0031: br.s IL_0037 + + IL_0033: br.s IL_0037 + + IL_0035: br.s IL_0072 + + .try + { + IL_0037: ldarg.0 + IL_0038: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_003d: stloc.0 + IL_003e: ldloc.0 + IL_003f: ldc.i4.4 + IL_0040: sub + IL_0041: switch ( + IL_0058, + IL_0054, + IL_0056) + IL_0052: br.s IL_005a + + IL_0054: br.s IL_005c + + IL_0056: br.s IL_005c + + IL_0058: br.s IL_005c + + IL_005a: br.s IL_0067 + + .try + { + IL_005c: leave.s IL_0066 + + } // end .try + finally + { + IL_005e: ldarg.0 + IL_005f: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally17'() + IL_0064: nop + IL_0065: endfinally + } // end handler + IL_0066: nop + IL_0067: leave.s IL_0071 + + } // end .try + finally + { + IL_0069: ldarg.0 + IL_006a: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally16'() + IL_006f: nop + IL_0070: endfinally + } // end handler + IL_0071: nop + IL_0072: ret + } // end of method 'd__15'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 11 (0xb) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__15'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__15'::.ctor + + .method private hidebysig instance void + '<>m__Finally16'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.m1 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0008: ldstr "Outer Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__15'::'<>m__Finally16' + + .method private hidebysig instance void + '<>m__Finally17'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.2 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0008: ldstr "Inner Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__15'::'<>m__Finally17' + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__15'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__15'::System.Collections.IEnumerator.Current + } // end of class 'd__15' + + .class auto ansi sealed nested private beforefieldinit 'd__1a' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field public string '5__1b' + .field public string '5__1c' + .field public class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap1d' + .field public class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap20' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 70 (0x46) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldarg.0 + IL_0036: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>3__input' + IL_003b: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::input + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: br.s IL_0044 + + IL_0044: ldloc.1 + IL_0045: ret + } // end of method 'd__1a'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__1a'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 547 (0x223) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + bool V_2) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0067, + IL_0069, + IL_0069, + IL_003f, + IL_0044, + IL_0049, + IL_004e, + IL_0053, + IL_0058, + IL_005d, + IL_0069, + IL_0062) + IL_003d: br.s IL_0069 + + IL_003f: br IL_00c5 + + IL_0044: br IL_0104 + + IL_0049: br IL_0124 + + IL_004e: br IL_0144 + + IL_0053: br IL_0164 + + IL_0058: br IL_0184 + + IL_005d: br IL_01a2 + + IL_0062: br IL_01f4 + + IL_0067: br.s IL_006e + + IL_0069: br IL_0214 + + IL_006e: ldarg.0 + IL_006f: ldc.i4.m1 + IL_0070: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0075: nop + IL_0076: nop + IL_0077: ldarg.0 + IL_0078: ldarg.0 + IL_0079: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::input + IL_007e: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0083: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap1d' + IL_0088: ldarg.0 + IL_0089: ldc.i4.1 + IL_008a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_008f: br.s IL_00d5 + + IL_0091: ldarg.0 + IL_0092: ldarg.0 + IL_0093: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap1d' + IL_0098: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_009d: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'5__1b' + IL_00a2: nop + IL_00a3: nop + IL_00a4: ldarg.0 + IL_00a5: ldc.i4.2 + IL_00a6: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_00ab: ldarg.0 + IL_00ac: ldarg.0 + IL_00ad: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'5__1b' + IL_00b2: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_00b7: ldarg.0 + IL_00b8: ldc.i4.3 + IL_00b9: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_00be: ldc.i4.1 + IL_00bf: stloc.0 + IL_00c0: leave IL_0220 + + IL_00c5: ldarg.0 + IL_00c6: ldc.i4.2 + IL_00c7: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_00cc: nop + IL_00cd: ldarg.0 + IL_00ce: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally1f'() + IL_00d3: nop + IL_00d4: nop + IL_00d5: ldarg.0 + IL_00d6: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap1d' + IL_00db: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00e0: stloc.2 + IL_00e1: ldloc.2 + IL_00e2: brtrue.s IL_0091 + + IL_00e4: ldarg.0 + IL_00e5: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally1e'() + IL_00ea: nop + IL_00eb: ldarg.0 + IL_00ec: ldstr "A" + IL_00f1: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_00f6: ldarg.0 + IL_00f7: ldc.i4.4 + IL_00f8: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_00fd: ldc.i4.1 + IL_00fe: stloc.0 + IL_00ff: leave IL_0220 + + IL_0104: ldarg.0 + IL_0105: ldc.i4.m1 + IL_0106: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_010b: ldarg.0 + IL_010c: ldstr "B" + IL_0111: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0116: ldarg.0 + IL_0117: ldc.i4.5 + IL_0118: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_011d: ldc.i4.1 + IL_011e: stloc.0 + IL_011f: leave IL_0220 + + IL_0124: ldarg.0 + IL_0125: ldc.i4.m1 + IL_0126: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_012b: ldarg.0 + IL_012c: ldstr "C" + IL_0131: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0136: ldarg.0 + IL_0137: ldc.i4.6 + IL_0138: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_013d: ldc.i4.1 + IL_013e: stloc.0 + IL_013f: leave IL_0220 + + IL_0144: ldarg.0 + IL_0145: ldc.i4.m1 + IL_0146: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_014b: ldarg.0 + IL_014c: ldstr "D" + IL_0151: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0156: ldarg.0 + IL_0157: ldc.i4.7 + IL_0158: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_015d: ldc.i4.1 + IL_015e: stloc.0 + IL_015f: leave IL_0220 + + IL_0164: ldarg.0 + IL_0165: ldc.i4.m1 + IL_0166: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_016b: ldarg.0 + IL_016c: ldstr "E" + IL_0171: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0176: ldarg.0 + IL_0177: ldc.i4.8 + IL_0178: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_017d: ldc.i4.1 + IL_017e: stloc.0 + IL_017f: leave IL_0220 + + IL_0184: ldarg.0 + IL_0185: ldc.i4.m1 + IL_0186: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_018b: ldarg.0 + IL_018c: ldstr "F" + IL_0191: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0196: ldarg.0 + IL_0197: ldc.i4.s 9 + IL_0199: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_019e: ldc.i4.1 + IL_019f: stloc.0 + IL_01a0: leave.s IL_0220 + + IL_01a2: ldarg.0 + IL_01a3: ldc.i4.m1 + IL_01a4: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_01a9: nop + IL_01aa: ldarg.0 + IL_01ab: ldarg.0 + IL_01ac: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::input + IL_01b1: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_01b6: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap20' + IL_01bb: ldarg.0 + IL_01bc: ldc.i4.s 10 + IL_01be: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_01c3: br.s IL_01fd + + IL_01c5: ldarg.0 + IL_01c6: ldarg.0 + IL_01c7: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap20' + IL_01cc: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_01d1: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'5__1c' + IL_01d6: nop + IL_01d7: ldarg.0 + IL_01d8: ldarg.0 + IL_01d9: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'5__1c' + IL_01de: callvirt instance string [mscorlib]System.String::ToUpper() + IL_01e3: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_01e8: ldarg.0 + IL_01e9: ldc.i4.s 11 + IL_01eb: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_01f0: ldc.i4.1 + IL_01f1: stloc.0 + IL_01f2: leave.s IL_0220 + + IL_01f4: ldarg.0 + IL_01f5: ldc.i4.s 10 + IL_01f7: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_01fc: nop + IL_01fd: ldarg.0 + IL_01fe: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap20' + IL_0203: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0208: stloc.2 + IL_0209: ldloc.2 + IL_020a: brtrue.s IL_01c5 + + IL_020c: ldarg.0 + IL_020d: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally21'() + IL_0212: nop + IL_0213: nop + IL_0214: ldc.i4.0 + IL_0215: stloc.0 + IL_0216: leave.s IL_0220 + + } // end .try + fault + { + IL_0218: ldarg.0 + IL_0219: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::System.IDisposable.Dispose() + IL_021e: nop + IL_021f: endfinally + } // end handler + IL_0220: nop + IL_0221: ldloc.0 + IL_0222: ret + } // end of method 'd__1a'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (string V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__1a'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__1a'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 134 (0x86) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0021, + IL_001f, + IL_001d) + IL_001b: br.s IL_0023 + + IL_001d: br.s IL_0025 + + IL_001f: br.s IL_0025 + + IL_0021: br.s IL_0025 + + IL_0023: br.s IL_005a + + .try + { + IL_0025: ldarg.0 + IL_0026: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_002b: stloc.0 + IL_002c: ldloc.0 + IL_002d: ldc.i4.2 + IL_002e: sub + IL_002f: switch ( + IL_0040, + IL_003e) + IL_003c: br.s IL_0042 + + IL_003e: br.s IL_0044 + + IL_0040: br.s IL_0044 + + IL_0042: br.s IL_004f + + .try + { + IL_0044: leave.s IL_004e + + } // end .try + finally + { + IL_0046: ldarg.0 + IL_0047: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally1f'() + IL_004c: nop + IL_004d: endfinally + } // end handler + IL_004e: nop + IL_004f: leave.s IL_0059 + + } // end .try + finally + { + IL_0051: ldarg.0 + IL_0052: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally1e'() + IL_0057: nop + IL_0058: endfinally + } // end handler + IL_0059: nop + IL_005a: ldarg.0 + IL_005b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0060: stloc.0 + IL_0061: ldloc.0 + IL_0062: ldc.i4.s 10 + IL_0064: sub + IL_0065: switch ( + IL_0076, + IL_0074) + IL_0072: br.s IL_0078 + + IL_0074: br.s IL_007a + + IL_0076: br.s IL_007a + + IL_0078: br.s IL_0085 + + .try + { + IL_007a: leave.s IL_0084 + + } // end .try + finally + { + IL_007c: ldarg.0 + IL_007d: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally21'() + IL_0082: nop + IL_0083: endfinally + } // end handler + IL_0084: nop + IL_0085: ret + } // end of method 'd__1a'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 11 (0xb) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__1a'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__1a'::.ctor + + .method private hidebysig instance void + '<>m__Finally1e'() cil managed + { + // Code size 33 (0x21) + .maxstack 2 + .locals init (bool V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap1d' + IL_000d: ldnull + IL_000e: ceq + IL_0010: stloc.0 + IL_0011: ldloc.0 + IL_0012: brtrue.s IL_0020 + + IL_0014: ldarg.0 + IL_0015: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap1d' + IL_001a: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001f: nop + IL_0020: ret + } // end of method 'd__1a'::'<>m__Finally1e' + + .method private hidebysig instance void + '<>m__Finally1f'() cil managed + { + // Code size 32 (0x20) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.1 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0008: ldstr "Processed " + IL_000d: ldarg.0 + IL_000e: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'5__1b' + IL_0013: call string [mscorlib]System.String::Concat(string, + string) + IL_0018: call void [mscorlib]System.Console::WriteLine(string) + IL_001d: nop + IL_001e: nop + IL_001f: ret + } // end of method 'd__1a'::'<>m__Finally1f' + + .method private hidebysig instance void + '<>m__Finally21'() cil managed + { + // Code size 33 (0x21) + .maxstack 2 + .locals init (bool V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap20' + IL_000d: ldnull + IL_000e: ceq + IL_0010: stloc.0 + IL_0011: ldloc.0 + IL_0012: brtrue.s IL_0020 + + IL_0014: ldarg.0 + IL_0015: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap20' + IL_001a: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001f: nop + IL_0020: ret + } // end of method 'd__1a'::'<>m__Finally21' + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__1a'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__1a'::System.Collections.IEnumerator.Current + } // end of class 'd__1a' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass26' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public string line + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ret + } // end of method '<>c__DisplayClass26'::.ctor + + .method public hidebysig instance string + 'b__24'() cil managed + { + // Code size 11 (0xb) + .maxstack 1 + .locals init (string V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26'::line + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method '<>c__DisplayClass26'::'b__24' + + } // end of class '<>c__DisplayClass26' + + .class auto ansi sealed nested private beforefieldinit 'd__28' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1>, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1>, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private class [mscorlib]System.Func`1 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field public class [mscorlib]System.Func`1 'CS$<>9__CachedAnonymousMethodDelegate25' + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26' 'CS$<>8__locals27' + .field public class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap29' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1> + 'System.Collections.Generic.IEnumerable>.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1>::GetEnumerator() + // Code size 70 (0x46) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1> V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldarg.0 + IL_0036: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>3__input' + IL_003b: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::input + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: br.s IL_0044 + + IL_0044: ldloc.1 + IL_0045: ret + } // end of method 'd__28'::'System.Collections.Generic.IEnumerable>.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'System.Collections.Generic.IEnumerable>.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__28'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 217 (0xd9) + .maxstack 4 + .locals init (bool V_0, + int32 V_1, + bool V_2) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0020, + IL_0022, + IL_001b) + IL_0019: br.s IL_0022 + + IL_001b: br IL_00ab + + IL_0020: br.s IL_0027 + + IL_0022: br IL_00ca + + IL_0027: ldarg.0 + IL_0028: ldc.i4.m1 + IL_0029: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_002e: nop + IL_002f: nop + IL_0030: ldarg.0 + IL_0031: ldarg.0 + IL_0032: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::input + IL_0037: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003c: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>7__wrap29' + IL_0041: ldarg.0 + IL_0042: ldc.i4.1 + IL_0043: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0048: br.s IL_00b3 + + IL_004a: ldarg.0 + IL_004b: ldnull + IL_004c: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>9__CachedAnonymousMethodDelegate25' + IL_0051: ldarg.0 + IL_0052: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26'::.ctor() + IL_0057: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>8__locals27' + IL_005c: ldarg.0 + IL_005d: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>8__locals27' + IL_0062: ldarg.0 + IL_0063: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>7__wrap29' + IL_0068: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_006d: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26'::line + IL_0072: nop + IL_0073: ldarg.0 + IL_0074: ldarg.0 + IL_0075: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>9__CachedAnonymousMethodDelegate25' + IL_007a: brtrue.s IL_0095 + + IL_007c: ldarg.0 + IL_007d: ldarg.0 + IL_007e: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>8__locals27' + IL_0083: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26'::'b__24'() + IL_0089: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_008e: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>9__CachedAnonymousMethodDelegate25' + IL_0093: br.s IL_0095 + + IL_0095: ldarg.0 + IL_0096: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>9__CachedAnonymousMethodDelegate25' + IL_009b: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>2__current' + IL_00a0: ldarg.0 + IL_00a1: ldc.i4.2 + IL_00a2: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_00a7: ldc.i4.1 + IL_00a8: stloc.0 + IL_00a9: leave.s IL_00d6 + + IL_00ab: ldarg.0 + IL_00ac: ldc.i4.1 + IL_00ad: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_00b2: nop + IL_00b3: ldarg.0 + IL_00b4: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>7__wrap29' + IL_00b9: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00be: stloc.2 + IL_00bf: ldloc.2 + IL_00c0: brtrue.s IL_004a + + IL_00c2: ldarg.0 + IL_00c3: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>m__Finally2a'() + IL_00c8: nop + IL_00c9: nop + IL_00ca: ldc.i4.0 + IL_00cb: stloc.0 + IL_00cc: leave.s IL_00d6 + + } // end .try + fault + { + IL_00ce: ldarg.0 + IL_00cf: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::System.IDisposable.Dispose() + IL_00d4: nop + IL_00d5: endfinally + } // end handler + IL_00d6: nop + IL_00d7: ldloc.0 + IL_00d8: ret + } // end of method 'd__28'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1>::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Func`1 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__28'::'System.Collections.Generic.IEnumerator>.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__28'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 43 (0x2b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_001b, + IL_0019) + IL_0017: br.s IL_001d + + IL_0019: br.s IL_001f + + IL_001b: br.s IL_001f + + IL_001d: br.s IL_002a + + .try + { + IL_001f: leave.s IL_0029 + + } // end .try + finally + { + IL_0021: ldarg.0 + IL_0022: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>m__Finally2a'() + IL_0027: nop + IL_0028: endfinally + } // end handler + IL_0029: nop + IL_002a: ret + } // end of method 'd__28'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 11 (0xb) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__28'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__28'::.ctor + + .method private hidebysig instance void + '<>m__Finally2a'() cil managed + { + // Code size 33 (0x21) + .maxstack 2 + .locals init (bool V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>7__wrap29' + IL_000d: ldnull + IL_000e: ceq + IL_0010: stloc.0 + IL_0011: ldloc.0 + IL_0012: brtrue.s IL_0020 + + IL_0014: ldarg.0 + IL_0015: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>7__wrap29' + IL_001a: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001f: nop + IL_0020: ret + } // end of method 'd__28'::'<>m__Finally2a' + + .property instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.Current'() + { + .get instance class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'System.Collections.Generic.IEnumerator>.get_Current'() + } // end of property 'd__28'::'System.Collections.Generic.IEnumerator>.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__28'::System.Collections.IEnumerator.Current + } // end of class 'd__28' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass2e' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public string copy + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ret + } // end of method '<>c__DisplayClass2e'::.ctor + + .method public hidebysig instance string + 'b__2d'() cil managed + { + // Code size 11 (0xb) + .maxstack 1 + .locals init (string V_0) + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e'::copy + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method '<>c__DisplayClass2e'::'b__2d' + + } // end of class '<>c__DisplayClass2e' + + .class auto ansi sealed nested private beforefieldinit 'd__30' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1>, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1>, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private class [mscorlib]System.Func`1 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field public string '5__31' + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e' 'CS$<>8__locals2f' + .field public class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap32' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1> + 'System.Collections.Generic.IEnumerable>.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1>::GetEnumerator() + // Code size 70 (0x46) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1> V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldarg.0 + IL_0036: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>3__input' + IL_003b: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::input + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: br.s IL_0044 + + IL_0044: ldloc.1 + IL_0045: ret + } // end of method 'd__30'::'System.Collections.Generic.IEnumerable>.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'System.Collections.Generic.IEnumerable>.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__30'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 197 (0xc5) + .maxstack 3 + .locals init (bool V_0, + int32 V_1, + bool V_2) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001d, + IL_001f, + IL_001b) + IL_0019: br.s IL_001f + + IL_001b: br.s IL_0097 + + IL_001d: br.s IL_0024 + + IL_001f: br IL_00b6 + + IL_0024: ldarg.0 + IL_0025: ldc.i4.m1 + IL_0026: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_002b: nop + IL_002c: nop + IL_002d: ldarg.0 + IL_002e: ldarg.0 + IL_002f: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::input + IL_0034: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0039: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>7__wrap32' + IL_003e: ldarg.0 + IL_003f: ldc.i4.1 + IL_0040: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0045: br.s IL_009f + + IL_0047: ldarg.0 + IL_0048: ldarg.0 + IL_0049: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>7__wrap32' + IL_004e: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0053: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'5__31' + IL_0058: ldarg.0 + IL_0059: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e'::.ctor() + IL_005e: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'CS$<>8__locals2f' + IL_0063: nop + IL_0064: ldarg.0 + IL_0065: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'CS$<>8__locals2f' + IL_006a: ldarg.0 + IL_006b: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'5__31' + IL_0070: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e'::copy + IL_0075: ldarg.0 + IL_0076: ldarg.0 + IL_0077: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'CS$<>8__locals2f' + IL_007c: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e'::'b__2d'() + IL_0082: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0087: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>2__current' + IL_008c: ldarg.0 + IL_008d: ldc.i4.2 + IL_008e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0093: ldc.i4.1 + IL_0094: stloc.0 + IL_0095: leave.s IL_00c2 + + IL_0097: ldarg.0 + IL_0098: ldc.i4.1 + IL_0099: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_009e: nop + IL_009f: ldarg.0 + IL_00a0: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>7__wrap32' + IL_00a5: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00aa: stloc.2 + IL_00ab: ldloc.2 + IL_00ac: brtrue.s IL_0047 + + IL_00ae: ldarg.0 + IL_00af: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>m__Finally33'() + IL_00b4: nop + IL_00b5: nop + IL_00b6: ldc.i4.0 + IL_00b7: stloc.0 + IL_00b8: leave.s IL_00c2 + + } // end .try + fault + { + IL_00ba: ldarg.0 + IL_00bb: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::System.IDisposable.Dispose() + IL_00c0: nop + IL_00c1: endfinally + } // end handler + IL_00c2: nop + IL_00c3: ldloc.0 + IL_00c4: ret + } // end of method 'd__30'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1>::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Func`1 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__30'::'System.Collections.Generic.IEnumerator>.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__30'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 43 (0x2b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_001b, + IL_0019) + IL_0017: br.s IL_001d + + IL_0019: br.s IL_001f + + IL_001b: br.s IL_001f + + IL_001d: br.s IL_002a + + .try + { + IL_001f: leave.s IL_0029 + + } // end .try + finally + { + IL_0021: ldarg.0 + IL_0022: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>m__Finally33'() + IL_0027: nop + IL_0028: endfinally + } // end handler + IL_0029: nop + IL_002a: ret + } // end of method 'd__30'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 11 (0xb) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__30'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__30'::.ctor + + .method private hidebysig instance void + '<>m__Finally33'() cil managed + { + // Code size 33 (0x21) + .maxstack 2 + .locals init (bool V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>7__wrap32' + IL_000d: ldnull + IL_000e: ceq + IL_0010: stloc.0 + IL_0011: ldloc.0 + IL_0012: brtrue.s IL_0020 + + IL_0014: ldarg.0 + IL_0015: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>7__wrap32' + IL_001a: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001f: nop + IL_0020: ret + } // end of method 'd__30'::'<>m__Finally33' + + .property instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.Current'() + { + .get instance class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'System.Collections.Generic.IEnumerator>.get_Current'() + } // end of property 'd__30'::'System.Collections.Generic.IEnumerator>.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__30'::System.Collections.IEnumerator.Current + } // end of class 'd__30' + + .class auto ansi sealed nested private beforefieldinit 'd__36' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public int32 n + .field public int32 '<>3__n' + .field public int32 '5__37' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 70 (0x46) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldarg.0 + IL_0036: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>3__n' + IL_003b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::n + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: br.s IL_0044 + + IL_0044: ldloc.1 + IL_0045: ret + } // end of method 'd__36'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__36'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 137 (0x89) + .maxstack 3 + .locals init (bool V_0, + int32 V_1, + bool V_2) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0019, + IL_0017) + IL_0015: br.s IL_001b + + IL_0017: br.s IL_0059 + + IL_0019: br.s IL_001d + + IL_001b: br.s IL_0083 + + IL_001d: ldarg.0 + IL_001e: ldc.i4.m1 + IL_001f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_0024: nop + IL_0025: ldarg.0 + IL_0026: ldc.i4.0 + IL_0027: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_002c: br.s IL_0070 + + IL_002e: nop + IL_002f: ldarg.0 + IL_0030: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_0035: ldc.i4.2 + IL_0036: rem + IL_0037: ldc.i4.0 + IL_0038: ceq + IL_003a: ldc.i4.0 + IL_003b: ceq + IL_003d: stloc.2 + IL_003e: ldloc.2 + IL_003f: brtrue.s IL_0061 + + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldarg.0 + IL_0044: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_0049: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>2__current' + IL_004e: ldarg.0 + IL_004f: ldc.i4.1 + IL_0050: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_0055: ldc.i4.1 + IL_0056: stloc.0 + IL_0057: br.s IL_0087 + + IL_0059: ldarg.0 + IL_005a: ldc.i4.m1 + IL_005b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_0060: nop + IL_0061: nop + IL_0062: ldarg.0 + IL_0063: dup + IL_0064: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_0069: ldc.i4.1 + IL_006a: add + IL_006b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_0070: ldarg.0 + IL_0071: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_0076: ldarg.0 + IL_0077: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::n + IL_007c: clt + IL_007e: stloc.2 + IL_007f: ldloc.2 + IL_0080: brtrue.s IL_002e + + IL_0082: nop + IL_0083: ldc.i4.0 + IL_0084: stloc.0 + IL_0085: br.s IL_0087 + + IL_0087: ldloc.0 + IL_0088: ret + } // end of method 'd__36'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__36'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__36'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__36'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__36'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__36'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__36'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__36'::System.Collections.IEnumerator.Current + } // end of class 'd__36' + + .class auto ansi sealed nested private beforefieldinit 'd__3a' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private char '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__3a'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__3a'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 242 (0xf2) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0034, + IL_002b, + IL_0036, + IL_002d, + IL_0036, + IL_0036, + IL_002f) + IL_0029: br.s IL_0036 + + IL_002b: br.s IL_0059 + + IL_002d: br.s IL_0093 + + IL_002f: br IL_00d3 + + IL_0034: br.s IL_003b + + IL_0036: br IL_00e3 + + IL_003b: ldarg.0 + IL_003c: ldc.i4.m1 + IL_003d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0042: nop + IL_0043: ldarg.0 + IL_0044: ldc.i4.s 97 + IL_0046: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>2__current' + IL_004b: ldarg.0 + IL_004c: ldc.i4.1 + IL_004d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0052: ldc.i4.1 + IL_0053: stloc.0 + IL_0054: leave IL_00ef + + IL_0059: ldarg.0 + IL_005a: ldc.i4.m1 + IL_005b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + .try + { + IL_0060: nop + IL_0061: ldstr "1 - try" + IL_0066: call void [mscorlib]System.Console::WriteLine(string) + IL_006b: nop + IL_006c: nop + IL_006d: leave.s IL_007f + + } // end .try + catch [mscorlib]System.Exception + { + IL_006f: pop + IL_0070: nop + IL_0071: ldstr "1 - catch" + IL_0076: call void [mscorlib]System.Console::WriteLine(string) + IL_007b: nop + IL_007c: nop + IL_007d: leave.s IL_007f + + } // end handler + IL_007f: nop + IL_0080: ldarg.0 + IL_0081: ldc.i4.s 98 + IL_0083: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>2__current' + IL_0088: ldarg.0 + IL_0089: ldc.i4.3 + IL_008a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_008f: ldc.i4.1 + IL_0090: stloc.0 + IL_0091: leave.s IL_00ef + + IL_0093: ldarg.0 + IL_0094: ldc.i4.m1 + IL_0095: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_009a: nop + IL_009b: ldarg.0 + IL_009c: ldc.i4.4 + IL_009d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + .try + { + IL_00a2: nop + IL_00a3: ldstr "2 - try" + IL_00a8: call void [mscorlib]System.Console::WriteLine(string) + IL_00ad: nop + IL_00ae: nop + IL_00af: leave.s IL_00bf + + } // end .try + finally + { + IL_00b1: nop + IL_00b2: ldstr "2 - finally" + IL_00b7: call void [mscorlib]System.Console::WriteLine(string) + IL_00bc: nop + IL_00bd: nop + IL_00be: endfinally + } // end handler + IL_00bf: nop + IL_00c0: ldarg.0 + IL_00c1: ldc.i4.s 99 + IL_00c3: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>2__current' + IL_00c8: ldarg.0 + IL_00c9: ldc.i4.6 + IL_00ca: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_00cf: ldc.i4.1 + IL_00d0: stloc.0 + IL_00d1: leave.s IL_00ef + + IL_00d3: ldarg.0 + IL_00d4: ldc.i4.4 + IL_00d5: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_00da: nop + IL_00db: ldarg.0 + IL_00dc: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>m__Finally3b'() + IL_00e1: nop + IL_00e2: nop + IL_00e3: ldc.i4.0 + IL_00e4: stloc.0 + IL_00e5: leave.s IL_00ef + + } // end .try + fault + { + IL_00e7: ldarg.0 + IL_00e8: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::System.IDisposable.Dispose() + IL_00ed: nop + IL_00ee: endfinally + } // end handler + IL_00ef: nop + IL_00f0: ldloc.0 + IL_00f1: ret + } // end of method 'd__3a'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance char 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (char V_0) + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__3a'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__3a'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 47 (0x2f) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.4 + IL_0009: sub + IL_000a: switch ( + IL_001f, + IL_0021, + IL_001d) + IL_001b: br.s IL_0021 + + IL_001d: br.s IL_0023 + + IL_001f: br.s IL_0023 + + IL_0021: br.s IL_002e + + .try + { + IL_0023: leave.s IL_002d + + } // end .try + finally + { + IL_0025: ldarg.0 + IL_0026: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>m__Finally3b'() + IL_002b: nop + IL_002c: endfinally + } // end handler + IL_002d: nop + IL_002e: ret + } // end of method 'd__3a'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>2__current' + IL_0006: box [mscorlib]System.Char + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__3a'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__3a'::.ctor + + .method private hidebysig instance void + '<>m__Finally3b'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.m1 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0008: ldstr "outer finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__3a'::'<>m__Finally3b' + + .property instance char 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__3a'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__3a'::System.Collections.IEnumerator.Current + } // end of class 'd__3a' + + .class auto ansi sealed nested private beforefieldinit 'd__3e' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__3e'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__3e'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 125 (0x7d) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0023, + IL_001f, + IL_0025, + IL_0021) + IL_001d: br.s IL_0025 + + IL_001f: br.s IL_0041 + + IL_0021: br.s IL_006e + + IL_0023: br.s IL_0027 + + IL_0025: br.s IL_0076 + + IL_0027: ldarg.0 + IL_0028: ldc.i4.m1 + IL_0029: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_002e: nop + IL_002f: ldarg.0 + IL_0030: ldc.i4.0 + IL_0031: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>2__current' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_003d: ldc.i4.1 + IL_003e: stloc.0 + IL_003f: br.s IL_007b + + IL_0041: ldarg.0 + IL_0042: ldc.i4.m1 + IL_0043: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + .try + { + IL_0048: nop + IL_0049: ldstr "In Try" + IL_004e: call void [mscorlib]System.Console::WriteLine(string) + IL_0053: nop + IL_0054: nop + IL_0055: leave.s IL_005b + + } // end .try + catch [mscorlib]System.Object + { + IL_0057: pop + IL_0058: nop + IL_0059: leave.s IL_0076 + + } // end handler + IL_005b: nop + IL_005c: ldarg.0 + IL_005d: ldc.i4.1 + IL_005e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>2__current' + IL_0063: ldarg.0 + IL_0064: ldc.i4.3 + IL_0065: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_006a: ldc.i4.1 + IL_006b: stloc.0 + IL_006c: br.s IL_007b + + IL_006e: ldarg.0 + IL_006f: ldc.i4.m1 + IL_0070: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_0075: nop + IL_0076: nop + IL_0077: ldc.i4.0 + IL_0078: stloc.0 + IL_0079: br.s IL_007b + + IL_007b: ldloc.0 + IL_007c: ret + } // end of method 'd__3e'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__3e'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__3e'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__3e'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__3e'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__3e'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__3e'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__3e'::System.Collections.IEnumerator.Current + } // end of class 'd__3e' + + .class auto ansi sealed nested private beforefieldinit 'd__41' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__41'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__41'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 161 (0xa1) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0027, + IL_0029, + IL_0023, + IL_0029, + IL_0025) + IL_0021: br.s IL_0029 + + IL_0023: br.s IL_004d + + IL_0025: br.s IL_0081 + + IL_0027: br.s IL_002b + + IL_0029: br.s IL_0091 + + IL_002b: ldarg.0 + IL_002c: ldc.i4.m1 + IL_002d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0032: nop + IL_0033: nop + IL_0034: ldarg.0 + IL_0035: ldc.i4.1 + IL_0036: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_003b: ldarg.0 + IL_003c: ldc.i4.0 + IL_003d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>2__current' + IL_0042: ldarg.0 + IL_0043: ldc.i4.2 + IL_0044: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0049: ldc.i4.1 + IL_004a: stloc.0 + IL_004b: leave.s IL_009e + + IL_004d: ldarg.0 + IL_004e: ldc.i4.1 + IL_004f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + .try + { + IL_0054: nop + IL_0055: ldstr "In Try" + IL_005a: call void [mscorlib]System.Console::WriteLine(string) + IL_005f: nop + IL_0060: nop + IL_0061: leave.s IL_006e + + } // end .try + catch [mscorlib]System.Object + { + IL_0063: pop + IL_0064: nop + IL_0065: ldarg.0 + IL_0066: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::System.IDisposable.Dispose() + IL_006b: nop + IL_006c: leave.s IL_0091 + + } // end handler + IL_006e: nop + IL_006f: ldarg.0 + IL_0070: ldc.i4.1 + IL_0071: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>2__current' + IL_0076: ldarg.0 + IL_0077: ldc.i4.4 + IL_0078: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_007d: ldc.i4.1 + IL_007e: stloc.0 + IL_007f: leave.s IL_009e + + IL_0081: ldarg.0 + IL_0082: ldc.i4.1 + IL_0083: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0088: nop + IL_0089: ldarg.0 + IL_008a: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>m__Finally42'() + IL_008f: nop + IL_0090: nop + IL_0091: nop + IL_0092: ldc.i4.0 + IL_0093: stloc.0 + IL_0094: leave.s IL_009e + + } // end .try + fault + { + IL_0096: ldarg.0 + IL_0097: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::System.IDisposable.Dispose() + IL_009c: nop + IL_009d: endfinally + } // end handler + IL_009e: nop + IL_009f: ldloc.0 + IL_00a0: ret + } // end of method 'd__41'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__41'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__41'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 53 (0x35) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0025, + IL_0021, + IL_0027, + IL_0023) + IL_001f: br.s IL_0027 + + IL_0021: br.s IL_0029 + + IL_0023: br.s IL_0029 + + IL_0025: br.s IL_0029 + + IL_0027: br.s IL_0034 + + .try + { + IL_0029: leave.s IL_0033 + + } // end .try + finally + { + IL_002b: ldarg.0 + IL_002c: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>m__Finally42'() + IL_0031: nop + IL_0032: endfinally + } // end handler + IL_0033: nop + IL_0034: ret + } // end of method 'd__41'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__41'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__41'::.ctor + + .method private hidebysig instance void + '<>m__Finally42'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.m1 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0008: ldstr "Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__41'::'<>m__Finally42' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__41'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__41'::System.Collections.IEnumerator.Current + } // end of class 'd__41' + + .class auto ansi sealed nested private beforefieldinit 'd__45' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__45'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__45'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 172 (0xac) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0027, + IL_0029, + IL_0023, + IL_0029, + IL_0025) + IL_0021: br.s IL_0029 + + IL_0023: br.s IL_004d + + IL_0025: br.s IL_008c + + IL_0027: br.s IL_002b + + IL_0029: br.s IL_009c + + IL_002b: ldarg.0 + IL_002c: ldc.i4.m1 + IL_002d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0032: nop + IL_0033: nop + IL_0034: ldarg.0 + IL_0035: ldc.i4.1 + IL_0036: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_003b: ldarg.0 + IL_003c: ldc.i4.0 + IL_003d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>2__current' + IL_0042: ldarg.0 + IL_0043: ldc.i4.2 + IL_0044: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0049: ldc.i4.1 + IL_004a: stloc.0 + IL_004b: leave.s IL_00a9 + + IL_004d: ldarg.0 + IL_004e: ldc.i4.1 + IL_004f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + .try + { + IL_0054: nop + IL_0055: ldstr "In Try" + IL_005a: call void [mscorlib]System.Console::WriteLine(string) + IL_005f: nop + IL_0060: ldarg.0 + IL_0061: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::System.IDisposable.Dispose() + IL_0066: nop + IL_0067: leave.s IL_009c + + } // end .try + catch [mscorlib]System.Object + { + IL_0069: pop + IL_006a: nop + IL_006b: ldstr "Catch" + IL_0070: call void [mscorlib]System.Console::WriteLine(string) + IL_0075: nop + IL_0076: nop + IL_0077: leave.s IL_0079 + + } // end handler + IL_0079: nop + IL_007a: ldarg.0 + IL_007b: ldc.i4.1 + IL_007c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>2__current' + IL_0081: ldarg.0 + IL_0082: ldc.i4.4 + IL_0083: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0088: ldc.i4.1 + IL_0089: stloc.0 + IL_008a: leave.s IL_00a9 + + IL_008c: ldarg.0 + IL_008d: ldc.i4.1 + IL_008e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0093: nop + IL_0094: ldarg.0 + IL_0095: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>m__Finally46'() + IL_009a: nop + IL_009b: nop + IL_009c: nop + IL_009d: ldc.i4.0 + IL_009e: stloc.0 + IL_009f: leave.s IL_00a9 + + } // end .try + fault + { + IL_00a1: ldarg.0 + IL_00a2: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::System.IDisposable.Dispose() + IL_00a7: nop + IL_00a8: endfinally + } // end handler + IL_00a9: nop + IL_00aa: ldloc.0 + IL_00ab: ret + } // end of method 'd__45'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__45'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__45'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 53 (0x35) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0025, + IL_0021, + IL_0027, + IL_0023) + IL_001f: br.s IL_0027 + + IL_0021: br.s IL_0029 + + IL_0023: br.s IL_0029 + + IL_0025: br.s IL_0029 + + IL_0027: br.s IL_0034 + + .try + { + IL_0029: leave.s IL_0033 + + } // end .try + finally + { + IL_002b: ldarg.0 + IL_002c: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>m__Finally46'() + IL_0031: nop + IL_0032: endfinally + } // end handler + IL_0033: nop + IL_0034: ret + } // end of method 'd__45'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__45'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__45'::.ctor + + .method private hidebysig instance void + '<>m__Finally46'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.m1 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0008: ldstr "Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__45'::'<>m__Finally46' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__45'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__45'::System.Collections.IEnumerator.Current + } // end of class 'd__45' + + .class auto ansi sealed nested private beforefieldinit 'd__49' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public bool b + .field public bool '<>3__b' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 70 (0x46) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldarg.0 + IL_0036: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>3__b' + IL_003b: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::b + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: br.s IL_0044 + + IL_0044: ldloc.1 + IL_0045: ret + } // end of method 'd__49'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__49'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 190 (0xbe) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + bool V_2) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0027, + IL_0029, + IL_0023, + IL_0029, + IL_0025) + IL_0021: br.s IL_0029 + + IL_0023: br.s IL_0050 + + IL_0025: br.s IL_009e + + IL_0027: br.s IL_002e + + IL_0029: br IL_00ae + + IL_002e: ldarg.0 + IL_002f: ldc.i4.m1 + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0035: nop + IL_0036: nop + IL_0037: ldarg.0 + IL_0038: ldc.i4.1 + IL_0039: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_003e: ldarg.0 + IL_003f: ldc.i4.0 + IL_0040: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>2__current' + IL_0045: ldarg.0 + IL_0046: ldc.i4.2 + IL_0047: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_004c: ldc.i4.1 + IL_004d: stloc.0 + IL_004e: leave.s IL_00bb + + IL_0050: ldarg.0 + IL_0051: ldc.i4.1 + IL_0052: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + .try + { + IL_0057: nop + IL_0058: ldstr "In Try" + IL_005d: call void [mscorlib]System.Console::WriteLine(string) + IL_0062: nop + IL_0063: ldarg.0 + IL_0064: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::b + IL_0069: ldc.i4.0 + IL_006a: ceq + IL_006c: stloc.2 + IL_006d: ldloc.2 + IL_006e: brtrue.s IL_007a + + IL_0070: nop + IL_0071: ldarg.0 + IL_0072: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::System.IDisposable.Dispose() + IL_0077: nop + IL_0078: leave.s IL_00ae + + IL_007a: nop + IL_007b: leave.s IL_008b + + } // end .try + finally + { + IL_007d: nop + IL_007e: ldstr "Inner Finally" + IL_0083: call void [mscorlib]System.Console::WriteLine(string) + IL_0088: nop + IL_0089: nop + IL_008a: endfinally + } // end handler + IL_008b: nop + IL_008c: ldarg.0 + IL_008d: ldc.i4.1 + IL_008e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>2__current' + IL_0093: ldarg.0 + IL_0094: ldc.i4.4 + IL_0095: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_009a: ldc.i4.1 + IL_009b: stloc.0 + IL_009c: leave.s IL_00bb + + IL_009e: ldarg.0 + IL_009f: ldc.i4.1 + IL_00a0: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_00a5: nop + IL_00a6: ldarg.0 + IL_00a7: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>m__Finally4a'() + IL_00ac: nop + IL_00ad: nop + IL_00ae: nop + IL_00af: ldc.i4.0 + IL_00b0: stloc.0 + IL_00b1: leave.s IL_00bb + + } // end .try + fault + { + IL_00b3: ldarg.0 + IL_00b4: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::System.IDisposable.Dispose() + IL_00b9: nop + IL_00ba: endfinally + } // end handler + IL_00bb: nop + IL_00bc: ldloc.0 + IL_00bd: ret + } // end of method 'd__49'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__49'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__49'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 53 (0x35) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0025, + IL_0021, + IL_0027, + IL_0023) + IL_001f: br.s IL_0027 + + IL_0021: br.s IL_0029 + + IL_0023: br.s IL_0029 + + IL_0025: br.s IL_0029 + + IL_0027: br.s IL_0034 + + .try + { + IL_0029: leave.s IL_0033 + + } // end .try + finally + { + IL_002b: ldarg.0 + IL_002c: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>m__Finally4a'() + IL_0031: nop + IL_0032: endfinally + } // end handler + IL_0033: nop + IL_0034: ret + } // end of method 'd__49'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__49'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__49'::.ctor + + .method private hidebysig instance void + '<>m__Finally4a'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.m1 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0008: ldstr "Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__49'::'<>m__Finally4a' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__49'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__49'::System.Collections.IEnumerator.Current + } // end of class 'd__49' + + .class auto ansi sealed nested private beforefieldinit 'd__4d' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__4d'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__4d'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 33 (0x21) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: ldc.i4.0 + IL_0009: beq.s IL_000d + + IL_000b: br.s IL_000f + + IL_000d: br.s IL_0011 + + IL_000f: br.s IL_001b + + IL_0011: ldarg.0 + IL_0012: ldc.i4.m1 + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>1__state' + IL_0018: nop + IL_0019: br.s IL_001b + + IL_001b: ldc.i4.0 + IL_001c: stloc.0 + IL_001d: br.s IL_001f + + IL_001f: ldloc.0 + IL_0020: ret + } // end of method 'd__4d'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__4d'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__4d'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__4d'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__4d'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__4d'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__4d'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__4d'::System.Collections.IEnumerator.Current + } // end of class 'd__4d' + + .class auto ansi sealed nested private beforefieldinit 'd__50' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__50'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__50'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 95 (0x5f) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001d, + IL_001f, + IL_001b) + IL_0019: br.s IL_001f + + IL_001b: br.s IL_0043 + + IL_001d: br.s IL_0021 + + IL_001f: br.s IL_0050 + + IL_0021: ldarg.0 + IL_0022: ldc.i4.m1 + IL_0023: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0028: nop + IL_0029: nop + IL_002a: ldarg.0 + IL_002b: ldc.i4.1 + IL_002c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0031: ldarg.0 + IL_0032: ldc.i4.0 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>2__current' + IL_0038: ldarg.0 + IL_0039: ldc.i4.2 + IL_003a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_003f: ldc.i4.1 + IL_0040: stloc.0 + IL_0041: leave.s IL_005c + + IL_0043: ldarg.0 + IL_0044: ldc.i4.1 + IL_0045: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_004a: newobj instance void [mscorlib]System.NotImplementedException::.ctor() + IL_004f: throw + + IL_0050: ldc.i4.0 + IL_0051: stloc.0 + IL_0052: leave.s IL_005c + + } // end .try + fault + { + IL_0054: ldarg.0 + IL_0055: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::System.IDisposable.Dispose() + IL_005a: nop + IL_005b: endfinally + } // end handler + IL_005c: nop + IL_005d: ldloc.0 + IL_005e: ret + } // end of method 'd__50'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__50'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__50'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 43 (0x2b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_001b, + IL_0019) + IL_0017: br.s IL_001d + + IL_0019: br.s IL_001f + + IL_001b: br.s IL_001f + + IL_001d: br.s IL_002a + + .try + { + IL_001f: leave.s IL_0029 + + } // end .try + finally + { + IL_0021: ldarg.0 + IL_0022: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>m__Finally51'() + IL_0027: nop + IL_0028: endfinally + } // end handler + IL_0029: nop + IL_002a: ret + } // end of method 'd__50'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__50'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__50'::.ctor + + .method private hidebysig instance void + '<>m__Finally51'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.m1 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0008: ldstr "Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__50'::'<>m__Finally51' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__50'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__50'::System.Collections.IEnumerator.Current + } // end of class 'd__50' + + .class auto ansi sealed nested private beforefieldinit 'd__54' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__54'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__54'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 104 (0x68) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: ldc.i4.0 + IL_0009: beq.s IL_0013 + + IL_000b: ldloc.1 + IL_000c: ldc.i4.3 + IL_000d: beq.s IL_0011 + + IL_000f: br.s IL_0015 + + IL_0011: br.s IL_0041 + + IL_0013: br.s IL_0017 + + IL_0015: br.s IL_0059 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.m1 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_001e: nop + IL_001f: nop + IL_0020: ldarg.0 + IL_0021: ldc.i4.1 + IL_0022: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0027: nop + IL_0028: ldarg.0 + IL_0029: ldc.i4.2 + IL_002a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_002f: ldarg.0 + IL_0030: ldc.i4.0 + IL_0031: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>2__current' + IL_0036: ldarg.0 + IL_0037: ldc.i4.3 + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_003d: ldc.i4.1 + IL_003e: stloc.0 + IL_003f: leave.s IL_0065 + + IL_0041: ldarg.0 + IL_0042: ldc.i4.2 + IL_0043: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0048: nop + IL_0049: ldarg.0 + IL_004a: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>m__Finally56'() + IL_004f: nop + IL_0050: nop + IL_0051: ldarg.0 + IL_0052: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>m__Finally55'() + IL_0057: nop + IL_0058: nop + IL_0059: ldc.i4.0 + IL_005a: stloc.0 + IL_005b: leave.s IL_0065 + + } // end .try + fault + { + IL_005d: ldarg.0 + IL_005e: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::System.IDisposable.Dispose() + IL_0063: nop + IL_0064: endfinally + } // end handler + IL_0065: nop + IL_0066: ldloc.0 + IL_0067: ret + } // end of method 'd__54'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__54'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__54'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 91 (0x5b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0021, + IL_001f, + IL_001d) + IL_001b: br.s IL_0023 + + IL_001d: br.s IL_0025 + + IL_001f: br.s IL_0025 + + IL_0021: br.s IL_0025 + + IL_0023: br.s IL_005a + + .try + { + IL_0025: ldarg.0 + IL_0026: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_002b: stloc.0 + IL_002c: ldloc.0 + IL_002d: ldc.i4.2 + IL_002e: sub + IL_002f: switch ( + IL_0040, + IL_003e) + IL_003c: br.s IL_0042 + + IL_003e: br.s IL_0044 + + IL_0040: br.s IL_0044 + + IL_0042: br.s IL_004f + + .try + { + IL_0044: leave.s IL_004e + + } // end .try + finally + { + IL_0046: ldarg.0 + IL_0047: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>m__Finally56'() + IL_004c: nop + IL_004d: endfinally + } // end handler + IL_004e: nop + IL_004f: leave.s IL_0059 + + } // end .try + finally + { + IL_0051: ldarg.0 + IL_0052: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>m__Finally55'() + IL_0057: nop + IL_0058: endfinally + } // end handler + IL_0059: nop + IL_005a: ret + } // end of method 'd__54'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__54'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__54'::.ctor + + .method private hidebysig instance void + '<>m__Finally55'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.m1 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0008: ldstr "Outer Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__54'::'<>m__Finally55' + + .method private hidebysig instance void + '<>m__Finally56'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.1 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0008: ldstr "Inner Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__54'::'<>m__Finally56' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__54'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__54'::System.Collections.IEnumerator.Current + } // end of class 'd__54' + + .class auto ansi sealed nested private beforefieldinit 'd__59`1'<([mscorlib]System.IDisposable) T> + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public !T a + .field public !T '<>3__a' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 70 (0x46) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldarg.0 + IL_0036: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>3__a' + IL_003b: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::a + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: br.s IL_0044 + + IL_0044: ldloc.1 + IL_0045: ret + } // end of method 'd__59`1'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__59`1'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 160 (0xa0) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0029, + IL_0023, + IL_002b, + IL_0025, + IL_0027) + IL_0021: br.s IL_002b + + IL_0023: br.s IL_0047 + + IL_0025: br.s IL_0068 + + IL_0027: br.s IL_0089 + + IL_0029: br.s IL_002d + + IL_002b: br.s IL_0091 + + IL_002d: ldarg.0 + IL_002e: ldc.i4.m1 + IL_002f: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0034: nop + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>2__current' + IL_003c: ldarg.0 + IL_003d: ldc.i4.1 + IL_003e: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0043: ldc.i4.1 + IL_0044: stloc.0 + IL_0045: leave.s IL_009d + + IL_0047: ldarg.0 + IL_0048: ldc.i4.m1 + IL_0049: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_004e: nop + IL_004f: ldarg.0 + IL_0050: ldc.i4.2 + IL_0051: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0056: ldarg.0 + IL_0057: ldc.i4.2 + IL_0058: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>2__current' + IL_005d: ldarg.0 + IL_005e: ldc.i4.3 + IL_005f: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0064: ldc.i4.1 + IL_0065: stloc.0 + IL_0066: leave.s IL_009d + + IL_0068: ldarg.0 + IL_0069: ldc.i4.2 + IL_006a: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_006f: nop + IL_0070: ldarg.0 + IL_0071: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>m__Finally5a'() + IL_0076: nop + IL_0077: ldarg.0 + IL_0078: ldc.i4.3 + IL_0079: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>2__current' + IL_007e: ldarg.0 + IL_007f: ldc.i4.4 + IL_0080: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0085: ldc.i4.1 + IL_0086: stloc.0 + IL_0087: leave.s IL_009d + + IL_0089: ldarg.0 + IL_008a: ldc.i4.m1 + IL_008b: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0090: nop + IL_0091: ldc.i4.0 + IL_0092: stloc.0 + IL_0093: leave.s IL_009d + + } // end .try + fault + { + IL_0095: ldarg.0 + IL_0096: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::System.IDisposable.Dispose() + IL_009b: nop + IL_009c: endfinally + } // end handler + IL_009d: nop + IL_009e: ldloc.0 + IL_009f: ret + } // end of method 'd__59`1'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__59`1'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__59`1'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 43 (0x2b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.2 + IL_0009: sub + IL_000a: switch ( + IL_001b, + IL_0019) + IL_0017: br.s IL_001d + + IL_0019: br.s IL_001f + + IL_001b: br.s IL_001f + + IL_001d: br.s IL_002a + + .try + { + IL_001f: leave.s IL_0029 + + } // end .try + finally + { + IL_0021: ldarg.0 + IL_0022: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>m__Finally5a'() + IL_0027: nop + IL_0028: endfinally + } // end handler + IL_0029: nop + IL_002a: ret + } // end of method 'd__59`1'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__59`1'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__59`1'::.ctor + + .method private hidebysig instance void + '<>m__Finally5a'() cil managed + { + // Code size 45 (0x2d) + .maxstack 2 + .locals init (!T V_0) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldc.i4.m1 + IL_0003: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0008: ldarg.0 + IL_0009: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::a + IL_000e: stloc.0 + IL_000f: ldloca.s V_0 + IL_0011: constrained. !T + IL_0017: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001c: nop + IL_001d: ldloca.s V_0 + IL_001f: constrained. !T + IL_0025: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_002a: nop + IL_002b: nop + IL_002c: ret + } // end of method 'd__59`1'::'<>m__Finally5a' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__59`1'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__59`1'::System.Collections.IEnumerator.Current + } // end of class 'd__59`1' + + .class auto ansi sealed nested private beforefieldinit 'd__5d`1'<.ctor T> + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private !T '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public !T '5__5e' + .field public int32 '5__5f' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 58 (0x3a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0034 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: stloc.1 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.1 + IL_0039: ret + } // end of method 'd__5d`1'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__5d`1'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 151 (0x97) + .maxstack 3 + .locals init (bool V_0, + int32 V_1, + !T V_2, + bool V_3) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0019, + IL_0017) + IL_0015: br.s IL_001b + + IL_0017: br.s IL_006d + + IL_0019: br.s IL_001d + + IL_001b: br.s IL_0091 + + IL_001d: ldarg.0 + IL_001e: ldc.i4.m1 + IL_001f: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_0024: nop + IL_0025: ldarg.0 + IL_0026: ldloca.s V_2 + IL_0028: initobj !T + IL_002e: ldloc.2 + IL_002f: box !T + IL_0034: brfalse.s IL_0041 + + IL_0036: ldloca.s V_2 + IL_0038: initobj !T + IL_003e: ldloc.2 + IL_003f: br.s IL_0046 + + IL_0041: call !!0 [mscorlib]System.Activator::CreateInstance() + IL_0046: nop + IL_0047: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5e' + IL_004c: ldarg.0 + IL_004d: ldc.i4.0 + IL_004e: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5f' + IL_0053: br.s IL_0083 + + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldarg.0 + IL_0058: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5e' + IL_005d: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>2__current' + IL_0062: ldarg.0 + IL_0063: ldc.i4.1 + IL_0064: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_0069: ldc.i4.1 + IL_006a: stloc.0 + IL_006b: br.s IL_0095 + + IL_006d: ldarg.0 + IL_006e: ldc.i4.m1 + IL_006f: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_0074: nop + IL_0075: ldarg.0 + IL_0076: dup + IL_0077: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5f' + IL_007c: ldc.i4.1 + IL_007d: add + IL_007e: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5f' + IL_0083: ldarg.0 + IL_0084: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5f' + IL_0089: ldc.i4.3 + IL_008a: clt + IL_008c: stloc.3 + IL_008d: ldloc.3 + IL_008e: brtrue.s IL_0055 + + IL_0090: nop + IL_0091: ldc.i4.0 + IL_0092: stloc.0 + IL_0093: br.s IL_0095 + + IL_0095: ldloc.0 + IL_0096: ret + } // end of method 'd__5d`1'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance !T 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (!T V_0) + IL_0000: ldarg.0 + IL_0001: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__5d`1'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__5d`1'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__5d`1'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>2__current' + IL_0006: box !T + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__5d`1'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__5d`1'::.ctor + + .property instance !T 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance !T ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__5d`1'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__5d`1'::System.Collections.IEnumerator.Current + } // end of class 'd__5d`1' + + .field private int32 fieldOnThis + .method public hidebysig specialname static + class [mscorlib]System.Collections.Generic.IEnumerable`1 + get_YieldChars() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::get_YieldChars + + .method assembly hidebysig static void + Print(string name, + class [mscorlib]System.Collections.Generic.IEnumerator`1 enumerator) cil managed + { + // Code size 61 (0x3d) + .maxstack 3 + .locals init (bool V_0) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldstr ": Test start" + IL_0007: call string [mscorlib]System.String::Concat(string, + string) + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: nop + IL_0012: br.s IL_0032 + + IL_0014: nop + IL_0015: ldarg.0 + IL_0016: ldstr ": " + IL_001b: ldarg.1 + IL_001c: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0021: box !!T + IL_0026: call string [mscorlib]System.String::Concat(object, + object, + object) + IL_002b: call void [mscorlib]System.Console::WriteLine(string) + IL_0030: nop + IL_0031: nop + IL_0032: ldarg.1 + IL_0033: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0038: stloc.0 + IL_0039: ldloc.0 + IL_003a: brtrue.s IL_0014 + + IL_003c: ret + } // end of method YieldReturnPrettyTest::Print + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + SimpleYieldReturn() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::SimpleYieldReturn + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerator`1 + SimpleYieldReturnEnumerator() cil managed + { + // Code size 13 (0xd) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1) + IL_0000: ldc.i4.0 + IL_0001: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::.ctor(int32) + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: stloc.1 + IL_0009: br.s IL_000b + + IL_000b: ldloc.1 + IL_000c: ret + } // end of method YieldReturnPrettyTest::SimpleYieldReturnEnumerator + + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnParameters(int32 p) cil managed + { + // Code size 28 (0x1c) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>4__this' + IL_000f: ldloc.0 + IL_0010: ldarg.1 + IL_0011: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>3__p' + IL_0016: ldloc.0 + IL_0017: stloc.1 + IL_0018: br.s IL_001a + + IL_001a: ldloc.1 + IL_001b: ret + } // end of method YieldReturnPrettyTest::YieldReturnParameters + + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + YieldReturnParametersEnumerator(int32 p) cil managed + { + // Code size 27 (0x1b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1) + IL_0000: ldc.i4.0 + IL_0001: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::.ctor(int32) + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldarg.0 + IL_0009: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>4__this' + IL_000e: ldloc.0 + IL_000f: ldarg.1 + IL_0010: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::p + IL_0015: ldloc.0 + IL_0016: stloc.1 + IL_0017: br.s IL_0019 + + IL_0019: ldloc.1 + IL_001a: ret + } // end of method YieldReturnPrettyTest::YieldReturnParametersEnumerator + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnInLoop() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::YieldReturnInLoop + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithTryFinally() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithNestedTryFinally(bool breakInMiddle) cil managed + { + // Code size 21 (0x15) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>3__breakInMiddle' + IL_000f: ldloc.0 + IL_0010: stloc.1 + IL_0011: br.s IL_0013 + + IL_0013: ldloc.1 + IL_0014: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithNestedTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithTwoNonNestedFinallyBlocks(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + // Code size 21 (0x15) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>3__input' + IL_000f: ldloc.0 + IL_0010: stloc.1 + IL_0011: br.s IL_0013 + + IL_0013: ldloc.1 + IL_0014: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithTwoNonNestedFinallyBlocks + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1> + YieldReturnWithAnonymousMethods1(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + // Code size 21 (0x15) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1> V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>3__input' + IL_000f: ldloc.0 + IL_0010: stloc.1 + IL_0011: br.s IL_0013 + + IL_0013: ldloc.1 + IL_0014: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithAnonymousMethods1 + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1> + YieldReturnWithAnonymousMethods2(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + // Code size 21 (0x15) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1> V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>3__input' + IL_000f: ldloc.0 + IL_0010: stloc.1 + IL_0011: br.s IL_0013 + + IL_0013: ldloc.1 + IL_0014: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithAnonymousMethods2 + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + GetEvenNumbers(int32 n) cil managed + { + // Code size 21 (0x15) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>3__n' + IL_000f: ldloc.0 + IL_0010: stloc.1 + IL_0011: br.s IL_0013 + + IL_0013: ldloc.1 + IL_0014: ret + } // end of method YieldReturnPrettyTest::GetEvenNumbers + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + ExceptionHandling() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::ExceptionHandling + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInCatch() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::YieldBreakInCatch + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInCatchInTryFinally() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::YieldBreakInCatchInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInTryCatchInTryFinally() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::YieldBreakInTryCatchInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInTryFinallyInTryFinally(bool b) cil managed + { + // Code size 21 (0x15) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>3__b' + IL_000f: ldloc.0 + IL_0010: stloc.1 + IL_0011: br.s IL_0013 + + IL_0013: ldloc.1 + IL_0014: ret + } // end of method YieldReturnPrettyTest::YieldBreakInTryFinallyInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakOnly() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::YieldBreakOnly + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + UnconditionalThrowInTryFinally() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::UnconditionalThrowInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + NestedTryFinallyStartingOnSamePosition() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::NestedTryFinallyStartingOnSamePosition + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + LocalInFinally<([mscorlib]System.IDisposable) T>(!!T a) cil managed + { + // Code size 21 (0x15) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>3__a' + IL_000f: ldloc.0 + IL_0010: stloc.1 + IL_0011: br.s IL_0013 + + IL_0013: ldloc.1 + IL_0014: ret + } // end of method YieldReturnPrettyTest::LocalInFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + GenericYield<.ctor T>() cil managed + { + // Code size 14 (0xe) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ret + } // end of method YieldReturnPrettyTest::GenericYield + + .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 YieldReturnPrettyTest::.ctor + + .property class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldChars() + { + .get class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::get_YieldChars() + } // end of property YieldReturnPrettyTest::YieldChars +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest + +.class private sequential ansi sealed beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + extends [mscorlib]System.ValueType +{ + .class auto ansi sealed nested private beforefieldinit 'd__0' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn '<>4__this' + .field public valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn '<>3__<>4__this' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 82 (0x52) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0' V_0, + class [mscorlib]System.Collections.Generic.IEnumerator`1 V_1, + bool V_2) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_001c + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: ceq + IL_0017: ldc.i4.0 + IL_0018: ceq + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.1 + IL_001d: nop + IL_001e: stloc.2 + IL_001f: ldloc.2 + IL_0020: brtrue.s IL_002d + + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: stloc.0 + IL_002b: br.s IL_0040 + + IL_002d: ldc.i4.0 + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::.ctor(int32) + IL_0033: stloc.0 + IL_0034: ldloc.0 + IL_0035: ldarg.0 + IL_0036: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>4__this' + IL_003b: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>4__this' + IL_0040: ldloc.0 + IL_0041: ldarg.0 + IL_0042: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>3__<>4__this' + IL_0047: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>4__this' + IL_004c: ldloc.0 + IL_004d: stloc.1 + IL_004e: br.s IL_0050 + + IL_0050: ldloc.1 + IL_0051: ret + } // end of method 'd__0'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 11 (0xb) + .maxstack 1 + .locals init (class [mscorlib]System.Collections.IEnumerator V_0) + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__0'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 142 (0x8e) + .maxstack 4 + .locals init (bool V_0, + int32 V_1, + int32 V_2) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001f, + IL_001b, + IL_001d) + IL_0019: br.s IL_0021 + + IL_001b: br.s IL_0052 + + IL_001d: br.s IL_0080 + + IL_001f: br.s IL_0023 + + IL_0021: br.s IL_0088 + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: ldarg.0 + IL_002d: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>4__this' + IL_0032: dup + IL_0033: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_0038: dup + IL_0039: stloc.2 + IL_003a: ldc.i4.1 + IL_003b: add + IL_003c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_0041: ldloc.2 + IL_0042: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>2__current' + IL_0047: ldarg.0 + IL_0048: ldc.i4.1 + IL_0049: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_004e: ldc.i4.1 + IL_004f: stloc.0 + IL_0050: br.s IL_008c + + IL_0052: ldarg.0 + IL_0053: ldc.i4.m1 + IL_0054: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_0059: ldarg.0 + IL_005a: ldarg.0 + IL_005b: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>4__this' + IL_0060: dup + IL_0061: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_0066: dup + IL_0067: stloc.2 + IL_0068: ldc.i4.1 + IL_0069: add + IL_006a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_006f: ldloc.2 + IL_0070: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>2__current' + IL_0075: ldarg.0 + IL_0076: ldc.i4.2 + IL_0077: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_007c: ldc.i4.1 + IL_007d: stloc.0 + IL_007e: br.s IL_008c + + IL_0080: ldarg.0 + IL_0081: ldc.i4.m1 + IL_0082: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_0087: nop + IL_0088: ldc.i4.0 + IL_0089: stloc.0 + IL_008a: br.s IL_008c + + IL_008c: ldloc.0 + IL_008d: ret + } // end of method 'd__0'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 11 (0xb) + .maxstack 1 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>2__current' + IL_0006: stloc.0 + IL_0007: br.s IL_0009 + + IL_0009: ldloc.0 + IL_000a: ret + } // end of method 'd__0'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__0'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 2 (0x2) + .maxstack 8 + IL_0000: nop + IL_0001: ret + } // end of method 'd__0'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 16 (0x10) + .maxstack 1 + .locals init (object V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: stloc.0 + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ret + } // end of method 'd__0'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__0'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__0'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__0'::System.Collections.IEnumerator.Current + } // end of class 'd__0' + + .field private int32 val + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 + Count() cil managed + { + // Code size 26 (0x1a) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: ldobj ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + IL_000f: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>3__<>4__this' + IL_0014: ldloc.0 + IL_0015: stloc.1 + IL_0016: br.s IL_0018 + + IL_0018: ldloc.1 + IL_0019: ret + } // end of method StructWithYieldReturn::Count + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.opt.il new file mode 100644 index 000000000..a39d36a7f --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.opt.il @@ -0,0 +1,5897 @@ + + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly YieldReturn.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 ) + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module YieldReturn.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 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest + extends [mscorlib]System.Object +{ + .class auto ansi sealed nested private beforefieldinit 'd__0' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private char '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__0'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__0'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 112 (0x70) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001f, + IL_0037, + IL_004f, + IL_0067) + IL_001d: br.s IL_006e + + IL_001f: ldarg.0 + IL_0020: ldc.i4.m1 + IL_0021: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0026: ldarg.0 + IL_0027: ldc.i4.s 97 + IL_0029: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>2__current' + IL_002e: ldarg.0 + IL_002f: ldc.i4.1 + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0035: ldc.i4.1 + IL_0036: ret + + IL_0037: ldarg.0 + IL_0038: ldc.i4.m1 + IL_0039: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_003e: ldarg.0 + IL_003f: ldc.i4.s 98 + IL_0041: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>2__current' + IL_0046: ldarg.0 + IL_0047: ldc.i4.2 + IL_0048: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_004d: ldc.i4.1 + IL_004e: ret + + IL_004f: ldarg.0 + IL_0050: ldc.i4.m1 + IL_0051: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0056: ldarg.0 + IL_0057: ldc.i4.s 99 + IL_0059: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>2__current' + IL_005e: ldarg.0 + IL_005f: ldc.i4.3 + IL_0060: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_0065: ldc.i4.1 + IL_0066: ret + + IL_0067: ldarg.0 + IL_0068: ldc.i4.m1 + IL_0069: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_006e: ldc.i4.0 + IL_006f: ret + } // end of method 'd__0'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance char 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>2__current' + IL_0006: ret + } // end of method 'd__0'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__0'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__0'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>2__current' + IL_0006: box [mscorlib]System.Char + IL_000b: ret + } // end of method 'd__0'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__0'::.ctor + + .property instance char 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__0'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__0'::System.Collections.IEnumerator.Current + } // end of class 'd__0' + + .class auto ansi sealed nested private beforefieldinit 'd__3' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__3'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__3'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 121 (0x79) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001f, + IL_003a, + IL_0055, + IL_0070) + IL_001d: br.s IL_0077 + + IL_001f: ldarg.0 + IL_0020: ldc.i4.m1 + IL_0021: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0026: ldarg.0 + IL_0027: ldstr "A" + IL_002c: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>2__current' + IL_0031: ldarg.0 + IL_0032: ldc.i4.1 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0038: ldc.i4.1 + IL_0039: ret + + IL_003a: ldarg.0 + IL_003b: ldc.i4.m1 + IL_003c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0041: ldarg.0 + IL_0042: ldstr "B" + IL_0047: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>2__current' + IL_004c: ldarg.0 + IL_004d: ldc.i4.2 + IL_004e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0053: ldc.i4.1 + IL_0054: ret + + IL_0055: ldarg.0 + IL_0056: ldc.i4.m1 + IL_0057: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_005c: ldarg.0 + IL_005d: ldstr "C" + IL_0062: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>2__current' + IL_0067: ldarg.0 + IL_0068: ldc.i4.3 + IL_0069: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_006e: ldc.i4.1 + IL_006f: ret + + IL_0070: ldarg.0 + IL_0071: ldc.i4.m1 + IL_0072: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_0077: ldc.i4.0 + IL_0078: ret + } // end of method 'd__3'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>2__current' + IL_0006: ret + } // end of method 'd__3'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__3'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__3'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>2__current' + IL_0006: ret + } // end of method 'd__3'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__3'::.ctor + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__3'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__3'::System.Collections.IEnumerator.Current + } // end of class 'd__3' + + .class auto ansi sealed nested private beforefieldinit 'd__6' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string '<>2__current' + .field private int32 '<>1__state' + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 121 (0x79) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001f, + IL_003a, + IL_0055, + IL_0070) + IL_001d: br.s IL_0077 + + IL_001f: ldarg.0 + IL_0020: ldc.i4.m1 + IL_0021: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0026: ldarg.0 + IL_0027: ldstr "A" + IL_002c: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0031: ldarg.0 + IL_0032: ldc.i4.1 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0038: ldc.i4.1 + IL_0039: ret + + IL_003a: ldarg.0 + IL_003b: ldc.i4.m1 + IL_003c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0041: ldarg.0 + IL_0042: ldstr "B" + IL_0047: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_004c: ldarg.0 + IL_004d: ldc.i4.2 + IL_004e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0053: ldc.i4.1 + IL_0054: ret + + IL_0055: ldarg.0 + IL_0056: ldc.i4.m1 + IL_0057: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_005c: ldarg.0 + IL_005d: ldstr "C" + IL_0062: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0067: ldarg.0 + IL_0068: ldc.i4.3 + IL_0069: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_006e: ldc.i4.1 + IL_006f: ret + + IL_0070: ldarg.0 + IL_0071: ldc.i4.m1 + IL_0072: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0077: ldc.i4.0 + IL_0078: ret + } // end of method 'd__6'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0006: ret + } // end of method 'd__6'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__6'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__6'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0006: ret + } // end of method 'd__6'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') 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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_000d: ret + } // end of method 'd__6'::.ctor + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__6'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__6'::System.Collections.IEnumerator.Current + } // end of class 'd__6' + + .class auto ansi sealed nested private beforefieldinit 'd__8' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest '<>4__this' + .field public int32 p + .field public int32 '<>3__p' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 67 (0x43) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0035 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>4__this' + IL_0030: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>4__this' + IL_0035: ldloc.0 + IL_0036: ldarg.0 + IL_0037: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>3__p' + IL_003c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::p + IL_0041: ldloc.0 + IL_0042: ret + } // end of method 'd__8'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__8'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 97 (0x61) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001b, + IL_0037, + IL_0058) + IL_0019: br.s IL_005f + + IL_001b: ldarg.0 + IL_001c: ldc.i4.m1 + IL_001d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0022: ldarg.0 + IL_0023: ldarg.0 + IL_0024: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::p + IL_0029: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_002e: ldarg.0 + IL_002f: ldc.i4.1 + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0035: ldc.i4.1 + IL_0036: ret + + IL_0037: ldarg.0 + IL_0038: ldc.i4.m1 + IL_0039: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_003e: ldarg.0 + IL_003f: ldarg.0 + IL_0040: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>4__this' + IL_0045: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::fieldOnThis + IL_004a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_004f: ldarg.0 + IL_0050: ldc.i4.2 + IL_0051: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0056: ldc.i4.1 + IL_0057: ret + + IL_0058: ldarg.0 + IL_0059: ldc.i4.m1 + IL_005a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_005f: ldc.i4.0 + IL_0060: ret + } // end of method 'd__8'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_0006: ret + } // end of method 'd__8'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__8'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__8'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__8'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__8'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__8'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__8'::System.Collections.IEnumerator.Current + } // end of class 'd__8' + + .class auto ansi sealed nested private beforefieldinit 'd__b' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest '<>4__this' + .field public int32 p + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 97 (0x61) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001b, + IL_0037, + IL_0058) + IL_0019: br.s IL_005f + + IL_001b: ldarg.0 + IL_001c: ldc.i4.m1 + IL_001d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_0022: ldarg.0 + IL_0023: ldarg.0 + IL_0024: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::p + IL_0029: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>2__current' + IL_002e: ldarg.0 + IL_002f: ldc.i4.1 + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_0035: ldc.i4.1 + IL_0036: ret + + IL_0037: ldarg.0 + IL_0038: ldc.i4.m1 + IL_0039: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_003e: ldarg.0 + IL_003f: ldarg.0 + IL_0040: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>4__this' + IL_0045: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::fieldOnThis + IL_004a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>2__current' + IL_004f: ldarg.0 + IL_0050: ldc.i4.2 + IL_0051: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_0056: ldc.i4.1 + IL_0057: ret + + IL_0058: ldarg.0 + IL_0059: ldc.i4.m1 + IL_005a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_005f: ldc.i4.0 + IL_0060: ret + } // end of method 'd__b'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>2__current' + IL_0006: ret + } // end of method 'd__b'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__b'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__b'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__b'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') 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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>1__state' + IL_000d: ret + } // end of method 'd__b'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__b'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__b'::System.Collections.IEnumerator.Current + } // end of class 'd__b' + + .class auto ansi sealed nested private beforefieldinit 'd__d' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public int32 '5__e' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__d'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__d'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 93 (0x5d) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_0017, + IL_003c) + IL_0015: br.s IL_005b + + IL_0017: ldarg.0 + IL_0018: ldc.i4.m1 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: ldc.i4.0 + IL_0020: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'5__e' + IL_0025: br.s IL_0051 + + IL_0027: ldarg.0 + IL_0028: ldarg.0 + IL_0029: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'5__e' + IL_002e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>2__current' + IL_0033: ldarg.0 + IL_0034: ldc.i4.1 + IL_0035: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_003a: ldc.i4.1 + IL_003b: ret + + IL_003c: ldarg.0 + IL_003d: ldc.i4.m1 + IL_003e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_0043: ldarg.0 + IL_0044: dup + IL_0045: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'5__e' + IL_004a: ldc.i4.1 + IL_004b: add + IL_004c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'5__e' + IL_0051: ldarg.0 + IL_0052: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'5__e' + IL_0057: ldc.i4.s 100 + IL_0059: blt.s IL_0027 + + IL_005b: ldc.i4.0 + IL_005c: ret + } // end of method 'd__d'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>2__current' + IL_0006: ret + } // end of method 'd__d'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__d'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__d'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__d'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__d'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__d'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__d'::System.Collections.IEnumerator.Current + } // end of class 'd__d' + + .class auto ansi sealed nested private beforefieldinit 'd__11' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__11'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__11'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 143 (0x8f) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0023, + IL_003c, + IL_0082, + IL_005c, + IL_007b) + IL_0021: br.s IL_0082 + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_002a: ldarg.0 + IL_002b: ldc.i4.0 + IL_002c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0031: ldarg.0 + IL_0032: ldc.i4.1 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0038: ldc.i4.1 + IL_0039: stloc.0 + IL_003a: leave.s IL_008d + + IL_003c: ldarg.0 + IL_003d: ldc.i4.m1 + IL_003e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0043: ldarg.0 + IL_0044: ldc.i4.2 + IL_0045: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_004a: ldarg.0 + IL_004b: ldc.i4.1 + IL_004c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0051: ldarg.0 + IL_0052: ldc.i4.3 + IL_0053: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0058: ldc.i4.1 + IL_0059: stloc.0 + IL_005a: leave.s IL_008d + + IL_005c: ldarg.0 + IL_005d: ldc.i4.2 + IL_005e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0063: ldarg.0 + IL_0064: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally12'() + IL_0069: ldarg.0 + IL_006a: ldc.i4.2 + IL_006b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0070: ldarg.0 + IL_0071: ldc.i4.4 + IL_0072: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0077: ldc.i4.1 + IL_0078: stloc.0 + IL_0079: leave.s IL_008d + + IL_007b: ldarg.0 + IL_007c: ldc.i4.m1 + IL_007d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0082: ldc.i4.0 + IL_0083: stloc.0 + IL_0084: leave.s IL_008d + + } // end .try + fault + { + IL_0086: ldarg.0 + IL_0087: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::System.IDisposable.Dispose() + IL_008c: endfinally + } // end handler + IL_008d: ldloc.0 + IL_008e: ret + } // end of method 'd__11'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0006: ret + } // end of method 'd__11'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__11'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 34 (0x22) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.2 + IL_0009: sub + IL_000a: switch ( + IL_0018, + IL_0018) + IL_0017: ret + + .try + { + IL_0018: leave.s IL_0021 + + } // end .try + finally + { + IL_001a: ldarg.0 + IL_001b: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally12'() + IL_0020: endfinally + } // end handler + IL_0021: ret + } // end of method 'd__11'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__11'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__11'::.ctor + + .method private hidebysig instance void + '<>m__Finally12'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0007: ldstr "Finally!" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__11'::'<>m__Finally12' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__11'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__11'::System.Collections.IEnumerator.Current + } // end of class 'd__11' + + .class auto ansi sealed nested private beforefieldinit 'd__15' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public bool breakInMiddle + .field public bool '<>3__breakInMiddle' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>3__breakInMiddle' + IL_0030: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::breakInMiddle + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__15'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__15'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 435 (0x1b3) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0036, + IL_0060, + IL_01a6, + IL_009b, + IL_01a6, + IL_00d6, + IL_0127, + IL_015e, + IL_0195) + IL_0031: br IL_01a6 + + IL_0036: ldarg.0 + IL_0037: ldc.i4.m1 + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_003d: ldstr "Start of method - 1" + IL_0042: call void [mscorlib]System.Console::WriteLine(string) + IL_0047: ldarg.0 + IL_0048: ldstr "Start of method" + IL_004d: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0052: ldarg.0 + IL_0053: ldc.i4.1 + IL_0054: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0059: ldc.i4.1 + IL_005a: stloc.0 + IL_005b: leave IL_01b1 + + IL_0060: ldarg.0 + IL_0061: ldc.i4.m1 + IL_0062: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0067: ldstr "Start of method - 2" + IL_006c: call void [mscorlib]System.Console::WriteLine(string) + IL_0071: ldarg.0 + IL_0072: ldc.i4.2 + IL_0073: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0078: ldstr "Within outer try - 1" + IL_007d: call void [mscorlib]System.Console::WriteLine(string) + IL_0082: ldarg.0 + IL_0083: ldstr "Within outer try" + IL_0088: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_008d: ldarg.0 + IL_008e: ldc.i4.3 + IL_008f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0094: ldc.i4.1 + IL_0095: stloc.0 + IL_0096: leave IL_01b1 + + IL_009b: ldarg.0 + IL_009c: ldc.i4.2 + IL_009d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00a2: ldstr "Within outer try - 2" + IL_00a7: call void [mscorlib]System.Console::WriteLine(string) + IL_00ac: ldarg.0 + IL_00ad: ldc.i4.4 + IL_00ae: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00b3: ldstr "Within inner try - 1" + IL_00b8: call void [mscorlib]System.Console::WriteLine(string) + IL_00bd: ldarg.0 + IL_00be: ldstr "Within inner try" + IL_00c3: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_00c8: ldarg.0 + IL_00c9: ldc.i4.5 + IL_00ca: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00cf: ldc.i4.1 + IL_00d0: stloc.0 + IL_00d1: leave IL_01b1 + + IL_00d6: ldarg.0 + IL_00d7: ldc.i4.4 + IL_00d8: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00dd: ldstr "Within inner try - 2" + IL_00e2: call void [mscorlib]System.Console::WriteLine(string) + IL_00e7: ldarg.0 + IL_00e8: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::breakInMiddle + IL_00ed: brfalse.s IL_0104 + + IL_00ef: ldstr "Breaking..." + IL_00f4: call void [mscorlib]System.Console::WriteLine(string) + IL_00f9: ldarg.0 + IL_00fa: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::System.IDisposable.Dispose() + IL_00ff: leave IL_01a6 + + IL_0104: ldstr "End of inner try - 1" + IL_0109: call void [mscorlib]System.Console::WriteLine(string) + IL_010e: ldarg.0 + IL_010f: ldstr "End of inner try" + IL_0114: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0119: ldarg.0 + IL_011a: ldc.i4.6 + IL_011b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0120: ldc.i4.1 + IL_0121: stloc.0 + IL_0122: leave IL_01b1 + + IL_0127: ldarg.0 + IL_0128: ldc.i4.4 + IL_0129: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_012e: ldstr "End of inner try - 2" + IL_0133: call void [mscorlib]System.Console::WriteLine(string) + IL_0138: ldarg.0 + IL_0139: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally17'() + IL_013e: ldstr "End of outer try - 1" + IL_0143: call void [mscorlib]System.Console::WriteLine(string) + IL_0148: ldarg.0 + IL_0149: ldstr "End of outer try" + IL_014e: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0153: ldarg.0 + IL_0154: ldc.i4.7 + IL_0155: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_015a: ldc.i4.1 + IL_015b: stloc.0 + IL_015c: leave.s IL_01b1 + + IL_015e: ldarg.0 + IL_015f: ldc.i4.2 + IL_0160: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0165: ldstr "End of outer try - 2" + IL_016a: call void [mscorlib]System.Console::WriteLine(string) + IL_016f: ldarg.0 + IL_0170: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally16'() + IL_0175: ldstr "End of method - 1" + IL_017a: call void [mscorlib]System.Console::WriteLine(string) + IL_017f: ldarg.0 + IL_0180: ldstr "End of method" + IL_0185: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_018a: ldarg.0 + IL_018b: ldc.i4.8 + IL_018c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0191: ldc.i4.1 + IL_0192: stloc.0 + IL_0193: leave.s IL_01b1 + + IL_0195: ldarg.0 + IL_0196: ldc.i4.m1 + IL_0197: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_019c: ldstr "End of method - 2" + IL_01a1: call void [mscorlib]System.Console::WriteLine(string) + IL_01a6: ldc.i4.0 + IL_01a7: stloc.0 + IL_01a8: leave.s IL_01b1 + + } // end .try + fault + { + IL_01aa: ldarg.0 + IL_01ab: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::System.IDisposable.Dispose() + IL_01b0: endfinally + } // end handler + IL_01b1: ldloc.0 + IL_01b2: ret + } // end of method 'd__15'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0006: ret + } // end of method 'd__15'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__15'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 88 (0x58) + .maxstack 2 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.2 + IL_0009: sub + IL_000a: switch ( + IL_0028, + IL_0028, + IL_0028, + IL_0028, + IL_0028, + IL_0028) + IL_0027: ret + + .try + { + IL_0028: ldarg.0 + IL_0029: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_002e: stloc.1 + IL_002f: ldloc.1 + IL_0030: ldc.i4.4 + IL_0031: sub + IL_0032: switch ( + IL_0045, + IL_0045, + IL_0045) + IL_0043: br.s IL_004e + + .try + { + IL_0045: leave.s IL_004e + + } // end .try + finally + { + IL_0047: ldarg.0 + IL_0048: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally17'() + IL_004d: endfinally + } // end handler + IL_004e: leave.s IL_0057 + + } // end .try + finally + { + IL_0050: ldarg.0 + IL_0051: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally16'() + IL_0056: endfinally + } // end handler + IL_0057: ret + } // end of method 'd__15'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0006: ret + } // end of method 'd__15'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__15'::.ctor + + .method private hidebysig instance void + '<>m__Finally16'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0007: ldstr "Outer Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__15'::'<>m__Finally16' + + .method private hidebysig instance void + '<>m__Finally17'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.2 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0007: ldstr "Inner Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__15'::'<>m__Finally17' + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__15'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__15'::System.Collections.IEnumerator.Current + } // end of class 'd__15' + + .class auto ansi sealed nested private beforefieldinit 'd__1a' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private string '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field public string '5__1b' + .field public string '5__1c' + .field public class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap1d' + .field public class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap20' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>3__input' + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::input + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__1a'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__1a'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 484 (0x1e4) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0042, + IL_01d7, + IL_01d7, + IL_0095, + IL_00ce, + IL_00ee, + IL_010e, + IL_012e, + IL_014e, + IL_016c, + IL_01d7, + IL_01bc) + IL_003d: br IL_01d7 + + IL_0042: ldarg.0 + IL_0043: ldc.i4.m1 + IL_0044: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0049: ldarg.0 + IL_004a: ldarg.0 + IL_004b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::input + IL_0050: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0055: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap1d' + IL_005a: ldarg.0 + IL_005b: ldc.i4.1 + IL_005c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0061: br.s IL_00a2 + + IL_0063: ldarg.0 + IL_0064: ldarg.0 + IL_0065: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap1d' + IL_006a: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_006f: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'5__1b' + IL_0074: ldarg.0 + IL_0075: ldc.i4.2 + IL_0076: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_007b: ldarg.0 + IL_007c: ldarg.0 + IL_007d: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'5__1b' + IL_0082: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0087: ldarg.0 + IL_0088: ldc.i4.3 + IL_0089: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_008e: ldc.i4.1 + IL_008f: stloc.0 + IL_0090: leave IL_01e2 + + IL_0095: ldarg.0 + IL_0096: ldc.i4.2 + IL_0097: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_009c: ldarg.0 + IL_009d: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally1f'() + IL_00a2: ldarg.0 + IL_00a3: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap1d' + IL_00a8: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00ad: brtrue.s IL_0063 + + IL_00af: ldarg.0 + IL_00b0: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally1e'() + IL_00b5: ldarg.0 + IL_00b6: ldstr "A" + IL_00bb: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_00c0: ldarg.0 + IL_00c1: ldc.i4.4 + IL_00c2: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_00c7: ldc.i4.1 + IL_00c8: stloc.0 + IL_00c9: leave IL_01e2 + + IL_00ce: ldarg.0 + IL_00cf: ldc.i4.m1 + IL_00d0: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_00d5: ldarg.0 + IL_00d6: ldstr "B" + IL_00db: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_00e0: ldarg.0 + IL_00e1: ldc.i4.5 + IL_00e2: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_00e7: ldc.i4.1 + IL_00e8: stloc.0 + IL_00e9: leave IL_01e2 + + IL_00ee: ldarg.0 + IL_00ef: ldc.i4.m1 + IL_00f0: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_00f5: ldarg.0 + IL_00f6: ldstr "C" + IL_00fb: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0100: ldarg.0 + IL_0101: ldc.i4.6 + IL_0102: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0107: ldc.i4.1 + IL_0108: stloc.0 + IL_0109: leave IL_01e2 + + IL_010e: ldarg.0 + IL_010f: ldc.i4.m1 + IL_0110: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0115: ldarg.0 + IL_0116: ldstr "D" + IL_011b: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0120: ldarg.0 + IL_0121: ldc.i4.7 + IL_0122: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0127: ldc.i4.1 + IL_0128: stloc.0 + IL_0129: leave IL_01e2 + + IL_012e: ldarg.0 + IL_012f: ldc.i4.m1 + IL_0130: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0135: ldarg.0 + IL_0136: ldstr "E" + IL_013b: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0140: ldarg.0 + IL_0141: ldc.i4.8 + IL_0142: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0147: ldc.i4.1 + IL_0148: stloc.0 + IL_0149: leave IL_01e2 + + IL_014e: ldarg.0 + IL_014f: ldc.i4.m1 + IL_0150: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0155: ldarg.0 + IL_0156: ldstr "F" + IL_015b: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0160: ldarg.0 + IL_0161: ldc.i4.s 9 + IL_0163: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0168: ldc.i4.1 + IL_0169: stloc.0 + IL_016a: leave.s IL_01e2 + + IL_016c: ldarg.0 + IL_016d: ldc.i4.m1 + IL_016e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0173: ldarg.0 + IL_0174: ldarg.0 + IL_0175: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::input + IL_017a: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_017f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap20' + IL_0184: ldarg.0 + IL_0185: ldc.i4.s 10 + IL_0187: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_018c: br.s IL_01c4 + + IL_018e: ldarg.0 + IL_018f: ldarg.0 + IL_0190: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap20' + IL_0195: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_019a: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'5__1c' + IL_019f: ldarg.0 + IL_01a0: ldarg.0 + IL_01a1: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'5__1c' + IL_01a6: callvirt instance string [mscorlib]System.String::ToUpper() + IL_01ab: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_01b0: ldarg.0 + IL_01b1: ldc.i4.s 11 + IL_01b3: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_01b8: ldc.i4.1 + IL_01b9: stloc.0 + IL_01ba: leave.s IL_01e2 + + IL_01bc: ldarg.0 + IL_01bd: ldc.i4.s 10 + IL_01bf: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_01c4: ldarg.0 + IL_01c5: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap20' + IL_01ca: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_01cf: brtrue.s IL_018e + + IL_01d1: ldarg.0 + IL_01d2: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally21'() + IL_01d7: ldc.i4.0 + IL_01d8: stloc.0 + IL_01d9: leave.s IL_01e2 + + } // end .try + fault + { + IL_01db: ldarg.0 + IL_01dc: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::System.IDisposable.Dispose() + IL_01e1: endfinally + } // end handler + IL_01e2: ldloc.0 + IL_01e3: ret + } // end of method 'd__1a'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0006: ret + } // end of method 'd__1a'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__1a'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 107 (0x6b) + .maxstack 2 + .locals init (int32 V_0, + int32 V_1, + int32 V_2) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_001d, + IL_001d, + IL_001d) + IL_001b: br.s IL_0048 + + .try + { + IL_001d: ldarg.0 + IL_001e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0023: stloc.1 + IL_0024: ldloc.1 + IL_0025: ldc.i4.2 + IL_0026: sub + IL_0027: switch ( + IL_0036, + IL_0036) + IL_0034: br.s IL_003f + + .try + { + IL_0036: leave.s IL_003f + + } // end .try + finally + { + IL_0038: ldarg.0 + IL_0039: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally1f'() + IL_003e: endfinally + } // end handler + IL_003f: leave.s IL_0048 + + } // end .try + finally + { + IL_0041: ldarg.0 + IL_0042: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally1e'() + IL_0047: endfinally + } // end handler + IL_0048: ldarg.0 + IL_0049: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_004e: stloc.2 + IL_004f: ldloc.2 + IL_0050: ldc.i4.s 10 + IL_0052: sub + IL_0053: switch ( + IL_0061, + IL_0061) + IL_0060: ret + + .try + { + IL_0061: leave.s IL_006a + + } // end .try + finally + { + IL_0063: ldarg.0 + IL_0064: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>m__Finally21'() + IL_0069: endfinally + } // end handler + IL_006a: ret + } // end of method 'd__1a'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>2__current' + IL_0006: ret + } // end of method 'd__1a'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__1a'::.ctor + + .method private hidebysig instance void + '<>m__Finally1e'() cil managed + { + // Code size 27 (0x1b) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap1d' + IL_000d: brfalse.s IL_001a + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap1d' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: ret + } // end of method 'd__1a'::'<>m__Finally1e' + + .method private hidebysig instance void + '<>m__Finally1f'() cil managed + { + // Code size 29 (0x1d) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0007: ldstr "Processed " + IL_000c: ldarg.0 + IL_000d: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'5__1b' + IL_0012: call string [mscorlib]System.String::Concat(string, + string) + IL_0017: call void [mscorlib]System.Console::WriteLine(string) + IL_001c: ret + } // end of method 'd__1a'::'<>m__Finally1f' + + .method private hidebysig instance void + '<>m__Finally21'() cil managed + { + // Code size 27 (0x1b) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap20' + IL_000d: brfalse.s IL_001a + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>7__wrap20' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: ret + } // end of method 'd__1a'::'<>m__Finally21' + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__1a'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__1a'::System.Collections.IEnumerator.Current + } // end of class 'd__1a' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass26' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public string line + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ret + } // end of method '<>c__DisplayClass26'::.ctor + + .method public hidebysig instance string + 'b__24'() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26'::line + IL_0006: ret + } // end of method '<>c__DisplayClass26'::'b__24' + + } // end of class '<>c__DisplayClass26' + + .class auto ansi sealed nested private beforefieldinit 'd__28' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1>, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1>, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private class [mscorlib]System.Func`1 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field public class [mscorlib]System.Func`1 'CS$<>9__CachedAnonymousMethodDelegate25' + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26' 'CS$<>8__locals27' + .field public class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap29' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1> + 'System.Collections.Generic.IEnumerable>.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1>::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>3__input' + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::input + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__28'::'System.Collections.Generic.IEnumerable>.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'System.Collections.Generic.IEnumerable>.GetEnumerator'() + IL_0006: ret + } // end of method 'd__28'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 196 (0xc4) + .maxstack 4 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001e, + IL_00b7, + IL_009d) + IL_0019: br IL_00b7 + + IL_001e: ldarg.0 + IL_001f: ldc.i4.m1 + IL_0020: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::input + IL_002c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0031: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>7__wrap29' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_003d: br.s IL_00a4 + + IL_003f: ldarg.0 + IL_0040: ldnull + IL_0041: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>9__CachedAnonymousMethodDelegate25' + IL_0046: ldarg.0 + IL_0047: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26'::.ctor() + IL_004c: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>8__locals27' + IL_0051: ldarg.0 + IL_0052: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>8__locals27' + IL_0057: ldarg.0 + IL_0058: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>7__wrap29' + IL_005d: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0062: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26'::line + IL_0067: ldarg.0 + IL_0068: ldarg.0 + IL_0069: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>9__CachedAnonymousMethodDelegate25' + IL_006e: brtrue.s IL_0087 + + IL_0070: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>8__locals27' + IL_0077: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass26'::'b__24'() + IL_007d: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0082: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>9__CachedAnonymousMethodDelegate25' + IL_0087: ldarg.0 + IL_0088: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'CS$<>9__CachedAnonymousMethodDelegate25' + IL_008d: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>2__current' + IL_0092: ldarg.0 + IL_0093: ldc.i4.2 + IL_0094: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0099: ldc.i4.1 + IL_009a: stloc.0 + IL_009b: leave.s IL_00c2 + + IL_009d: ldarg.0 + IL_009e: ldc.i4.1 + IL_009f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_00a4: ldarg.0 + IL_00a5: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>7__wrap29' + IL_00aa: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00af: brtrue.s IL_003f + + IL_00b1: ldarg.0 + IL_00b2: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>m__Finally2a'() + IL_00b7: ldc.i4.0 + IL_00b8: stloc.0 + IL_00b9: leave.s IL_00c2 + + } // end .try + fault + { + IL_00bb: ldarg.0 + IL_00bc: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::System.IDisposable.Dispose() + IL_00c1: endfinally + } // end handler + IL_00c2: ldloc.0 + IL_00c3: ret + } // end of method 'd__28'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1>::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>2__current' + IL_0006: ret + } // end of method 'd__28'::'System.Collections.Generic.IEnumerator>.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__28'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 34 (0x22) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0018, + IL_0018) + IL_0017: ret + + .try + { + IL_0018: leave.s IL_0021 + + } // end .try + finally + { + IL_001a: ldarg.0 + IL_001b: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>m__Finally2a'() + IL_0020: endfinally + } // end handler + IL_0021: ret + } // end of method 'd__28'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>2__current' + IL_0006: ret + } // end of method 'd__28'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__28'::.ctor + + .method private hidebysig instance void + '<>m__Finally2a'() cil managed + { + // Code size 27 (0x1b) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>7__wrap29' + IL_000d: brfalse.s IL_001a + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>7__wrap29' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: ret + } // end of method 'd__28'::'<>m__Finally2a' + + .property instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.Current'() + { + .get instance class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'System.Collections.Generic.IEnumerator>.get_Current'() + } // end of property 'd__28'::'System.Collections.Generic.IEnumerator>.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__28'::System.Collections.IEnumerator.Current + } // end of class 'd__28' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass2e' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public string copy + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ret + } // end of method '<>c__DisplayClass2e'::.ctor + + .method public hidebysig instance string + 'b__2d'() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e'::copy + IL_0006: ret + } // end of method '<>c__DisplayClass2e'::'b__2d' + + } // end of class '<>c__DisplayClass2e' + + .class auto ansi sealed nested private beforefieldinit 'd__30' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1>, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1>, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private class [mscorlib]System.Func`1 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field public string '5__31' + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e' 'CS$<>8__locals2f' + .field public class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap32' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1> + 'System.Collections.Generic.IEnumerable>.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1>::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>3__input' + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::input + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__30'::'System.Collections.Generic.IEnumerable>.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'System.Collections.Generic.IEnumerable>.GetEnumerator'() + IL_0006: ret + } // end of method 'd__30'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 181 (0xb5) + .maxstack 3 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001e, + IL_00a8, + IL_008e) + IL_0019: br IL_00a8 + + IL_001e: ldarg.0 + IL_001f: ldc.i4.m1 + IL_0020: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::input + IL_002c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0031: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>7__wrap32' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_003d: br.s IL_0095 + + IL_003f: ldarg.0 + IL_0040: ldarg.0 + IL_0041: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>7__wrap32' + IL_0046: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_004b: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'5__31' + IL_0050: ldarg.0 + IL_0051: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e'::.ctor() + IL_0056: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'CS$<>8__locals2f' + IL_005b: ldarg.0 + IL_005c: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'CS$<>8__locals2f' + IL_0061: ldarg.0 + IL_0062: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'5__31' + IL_0067: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e'::copy + IL_006c: ldarg.0 + IL_006d: ldarg.0 + IL_006e: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'CS$<>8__locals2f' + IL_0073: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass2e'::'b__2d'() + IL_0079: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_007e: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>2__current' + IL_0083: ldarg.0 + IL_0084: ldc.i4.2 + IL_0085: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_008a: ldc.i4.1 + IL_008b: stloc.0 + IL_008c: leave.s IL_00b3 + + IL_008e: ldarg.0 + IL_008f: ldc.i4.1 + IL_0090: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0095: ldarg.0 + IL_0096: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>7__wrap32' + IL_009b: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00a0: brtrue.s IL_003f + + IL_00a2: ldarg.0 + IL_00a3: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>m__Finally33'() + IL_00a8: ldc.i4.0 + IL_00a9: stloc.0 + IL_00aa: leave.s IL_00b3 + + } // end .try + fault + { + IL_00ac: ldarg.0 + IL_00ad: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::System.IDisposable.Dispose() + IL_00b2: endfinally + } // end handler + IL_00b3: ldloc.0 + IL_00b4: ret + } // end of method 'd__30'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1>::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>2__current' + IL_0006: ret + } // end of method 'd__30'::'System.Collections.Generic.IEnumerator>.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__30'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 34 (0x22) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0018, + IL_0018) + IL_0017: ret + + .try + { + IL_0018: leave.s IL_0021 + + } // end .try + finally + { + IL_001a: ldarg.0 + IL_001b: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>m__Finally33'() + IL_0020: endfinally + } // end handler + IL_0021: ret + } // end of method 'd__30'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>2__current' + IL_0006: ret + } // end of method 'd__30'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__30'::.ctor + + .method private hidebysig instance void + '<>m__Finally33'() cil managed + { + // Code size 27 (0x1b) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>7__wrap32' + IL_000d: brfalse.s IL_001a + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>7__wrap32' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: ret + } // end of method 'd__30'::'<>m__Finally33' + + .property instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.Current'() + { + .get instance class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'System.Collections.Generic.IEnumerator>.get_Current'() + } // end of property 'd__30'::'System.Collections.Generic.IEnumerator>.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__30'::System.Collections.IEnumerator.Current + } // end of class 'd__30' + + .class auto ansi sealed nested private beforefieldinit 'd__36' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public int32 n + .field public int32 '<>3__n' + .field public int32 '5__37' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>3__n' + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::n + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__36'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__36'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 107 (0x6b) + .maxstack 3 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_0017, + IL_0046) + IL_0015: br.s IL_0069 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.m1 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: ldc.i4.0 + IL_0020: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_0025: br.s IL_005b + + IL_0027: ldarg.0 + IL_0028: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_002d: ldc.i4.2 + IL_002e: rem + IL_002f: brtrue.s IL_004d + + IL_0031: ldarg.0 + IL_0032: ldarg.0 + IL_0033: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>2__current' + IL_003d: ldarg.0 + IL_003e: ldc.i4.1 + IL_003f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_0044: ldc.i4.1 + IL_0045: ret + + IL_0046: ldarg.0 + IL_0047: ldc.i4.m1 + IL_0048: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_004d: ldarg.0 + IL_004e: dup + IL_004f: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_0054: ldc.i4.1 + IL_0055: add + IL_0056: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_005b: ldarg.0 + IL_005c: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'5__37' + IL_0061: ldarg.0 + IL_0062: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::n + IL_0067: blt.s IL_0027 + + IL_0069: ldc.i4.0 + IL_006a: ret + } // end of method 'd__36'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>2__current' + IL_0006: ret + } // end of method 'd__36'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__36'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__36'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__36'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__36'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__36'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__36'::System.Collections.IEnumerator.Current + } // end of class 'd__36' + + .class auto ansi sealed nested private beforefieldinit 'd__3a' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private char '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__3a'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__3a'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 208 (0xd0) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_002e, + IL_004b, + IL_00c3, + IL_007e, + IL_00c3, + IL_00c3, + IL_00b6) + IL_0029: br IL_00c3 + + IL_002e: ldarg.0 + IL_002f: ldc.i4.m1 + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0035: ldarg.0 + IL_0036: ldc.i4.s 97 + IL_0038: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>2__current' + IL_003d: ldarg.0 + IL_003e: ldc.i4.1 + IL_003f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0044: ldc.i4.1 + IL_0045: stloc.0 + IL_0046: leave IL_00ce + + IL_004b: ldarg.0 + IL_004c: ldc.i4.m1 + IL_004d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + .try + { + IL_0052: ldstr "1 - try" + IL_0057: call void [mscorlib]System.Console::WriteLine(string) + IL_005c: leave.s IL_006b + + } // end .try + catch [mscorlib]System.Exception + { + IL_005e: pop + IL_005f: ldstr "1 - catch" + IL_0064: call void [mscorlib]System.Console::WriteLine(string) + IL_0069: leave.s IL_006b + + } // end handler + IL_006b: ldarg.0 + IL_006c: ldc.i4.s 98 + IL_006e: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>2__current' + IL_0073: ldarg.0 + IL_0074: ldc.i4.3 + IL_0075: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_007a: ldc.i4.1 + IL_007b: stloc.0 + IL_007c: leave.s IL_00ce + + IL_007e: ldarg.0 + IL_007f: ldc.i4.m1 + IL_0080: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0085: ldarg.0 + IL_0086: ldc.i4.4 + IL_0087: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + .try + { + IL_008c: ldstr "2 - try" + IL_0091: call void [mscorlib]System.Console::WriteLine(string) + IL_0096: leave.s IL_00a3 + + } // end .try + finally + { + IL_0098: ldstr "2 - finally" + IL_009d: call void [mscorlib]System.Console::WriteLine(string) + IL_00a2: endfinally + } // end handler + IL_00a3: ldarg.0 + IL_00a4: ldc.i4.s 99 + IL_00a6: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>2__current' + IL_00ab: ldarg.0 + IL_00ac: ldc.i4.6 + IL_00ad: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_00b2: ldc.i4.1 + IL_00b3: stloc.0 + IL_00b4: leave.s IL_00ce + + IL_00b6: ldarg.0 + IL_00b7: ldc.i4.4 + IL_00b8: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_00bd: ldarg.0 + IL_00be: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>m__Finally3b'() + IL_00c3: ldc.i4.0 + IL_00c4: stloc.0 + IL_00c5: leave.s IL_00ce + + } // end .try + fault + { + IL_00c7: ldarg.0 + IL_00c8: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::System.IDisposable.Dispose() + IL_00cd: endfinally + } // end handler + IL_00ce: ldloc.0 + IL_00cf: ret + } // end of method 'd__3a'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance char 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>2__current' + IL_0006: ret + } // end of method 'd__3a'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__3a'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 38 (0x26) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.4 + IL_0009: sub + IL_000a: switch ( + IL_001c, + IL_0025, + IL_001c) + IL_001b: ret + + .try + { + IL_001c: leave.s IL_0025 + + } // end .try + finally + { + IL_001e: ldarg.0 + IL_001f: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>m__Finally3b'() + IL_0024: endfinally + } // end handler + IL_0025: ret + } // end of method 'd__3a'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>2__current' + IL_0006: box [mscorlib]System.Char + IL_000b: ret + } // end of method 'd__3a'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__3a'::.ctor + + .method private hidebysig instance void + '<>m__Finally3b'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'<>1__state' + IL_0007: ldstr "outer finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__3a'::'<>m__Finally3b' + + .property instance char 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__3a'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__3a'::System.Collections.IEnumerator.Current + } // end of class 'd__3a' + + .class auto ansi sealed nested private beforefieldinit 'd__3e' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__3e'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__3e'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 101 (0x65) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001f, + IL_0036, + IL_0063, + IL_005c) + IL_001d: br.s IL_0063 + + IL_001f: ldarg.0 + IL_0020: ldc.i4.m1 + IL_0021: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_0026: ldarg.0 + IL_0027: ldc.i4.0 + IL_0028: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>2__current' + IL_002d: ldarg.0 + IL_002e: ldc.i4.1 + IL_002f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_0034: ldc.i4.1 + IL_0035: ret + + IL_0036: ldarg.0 + IL_0037: ldc.i4.m1 + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + .try + { + IL_003d: ldstr "In Try" + IL_0042: call void [mscorlib]System.Console::WriteLine(string) + IL_0047: leave.s IL_004c + + } // end .try + catch [mscorlib]System.Object + { + IL_0049: pop + IL_004a: leave.s IL_0063 + + } // end handler + IL_004c: ldarg.0 + IL_004d: ldc.i4.1 + IL_004e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>2__current' + IL_0053: ldarg.0 + IL_0054: ldc.i4.3 + IL_0055: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_005a: ldc.i4.1 + IL_005b: ret + + IL_005c: ldarg.0 + IL_005d: ldc.i4.m1 + IL_005e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_0063: ldc.i4.0 + IL_0064: ret + } // end of method 'd__3e'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>2__current' + IL_0006: ret + } // end of method 'd__3e'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__3e'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__3e'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__3e'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__3e'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__3e'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__3e'::System.Collections.IEnumerator.Current + } // end of class 'd__3e' + + .class auto ansi sealed nested private beforefieldinit 'd__41' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__41'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__41'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 139 (0x8b) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0023, + IL_007e, + IL_0043, + IL_007e, + IL_0071) + IL_0021: br.s IL_007e + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_002a: ldarg.0 + IL_002b: ldc.i4.1 + IL_002c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0031: ldarg.0 + IL_0032: ldc.i4.0 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>2__current' + IL_0038: ldarg.0 + IL_0039: ldc.i4.2 + IL_003a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_003f: ldc.i4.1 + IL_0040: stloc.0 + IL_0041: leave.s IL_0089 + + IL_0043: ldarg.0 + IL_0044: ldc.i4.1 + IL_0045: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + .try + { + IL_004a: ldstr "In Try" + IL_004f: call void [mscorlib]System.Console::WriteLine(string) + IL_0054: leave.s IL_005f + + } // end .try + catch [mscorlib]System.Object + { + IL_0056: pop + IL_0057: ldarg.0 + IL_0058: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::System.IDisposable.Dispose() + IL_005d: leave.s IL_007e + + } // end handler + IL_005f: ldarg.0 + IL_0060: ldc.i4.1 + IL_0061: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>2__current' + IL_0066: ldarg.0 + IL_0067: ldc.i4.4 + IL_0068: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_006d: ldc.i4.1 + IL_006e: stloc.0 + IL_006f: leave.s IL_0089 + + IL_0071: ldarg.0 + IL_0072: ldc.i4.1 + IL_0073: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0078: ldarg.0 + IL_0079: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>m__Finally42'() + IL_007e: ldc.i4.0 + IL_007f: stloc.0 + IL_0080: leave.s IL_0089 + + } // end .try + fault + { + IL_0082: ldarg.0 + IL_0083: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::System.IDisposable.Dispose() + IL_0088: endfinally + } // end handler + IL_0089: ldloc.0 + IL_008a: ret + } // end of method 'd__41'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>2__current' + IL_0006: ret + } // end of method 'd__41'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__41'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 42 (0x2a) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0020, + IL_0020, + IL_0029, + IL_0020) + IL_001f: ret + + .try + { + IL_0020: leave.s IL_0029 + + } // end .try + finally + { + IL_0022: ldarg.0 + IL_0023: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>m__Finally42'() + IL_0028: endfinally + } // end handler + IL_0029: ret + } // end of method 'd__41'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__41'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__41'::.ctor + + .method private hidebysig instance void + '<>m__Finally42'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'<>1__state' + IL_0007: ldstr "Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__41'::'<>m__Finally42' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__41'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__41'::System.Collections.IEnumerator.Current + } // end of class 'd__41' + + .class auto ansi sealed nested private beforefieldinit 'd__45' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__45'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__45'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 149 (0x95) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0023, + IL_0088, + IL_0043, + IL_0088, + IL_007b) + IL_0021: br.s IL_0088 + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_002a: ldarg.0 + IL_002b: ldc.i4.1 + IL_002c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0031: ldarg.0 + IL_0032: ldc.i4.0 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>2__current' + IL_0038: ldarg.0 + IL_0039: ldc.i4.2 + IL_003a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_003f: ldc.i4.1 + IL_0040: stloc.0 + IL_0041: leave.s IL_0093 + + IL_0043: ldarg.0 + IL_0044: ldc.i4.1 + IL_0045: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + .try + { + IL_004a: ldstr "In Try" + IL_004f: call void [mscorlib]System.Console::WriteLine(string) + IL_0054: ldarg.0 + IL_0055: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::System.IDisposable.Dispose() + IL_005a: leave.s IL_0088 + + } // end .try + catch [mscorlib]System.Object + { + IL_005c: pop + IL_005d: ldstr "Catch" + IL_0062: call void [mscorlib]System.Console::WriteLine(string) + IL_0067: leave.s IL_0069 + + } // end handler + IL_0069: ldarg.0 + IL_006a: ldc.i4.1 + IL_006b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>2__current' + IL_0070: ldarg.0 + IL_0071: ldc.i4.4 + IL_0072: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0077: ldc.i4.1 + IL_0078: stloc.0 + IL_0079: leave.s IL_0093 + + IL_007b: ldarg.0 + IL_007c: ldc.i4.1 + IL_007d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0082: ldarg.0 + IL_0083: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>m__Finally46'() + IL_0088: ldc.i4.0 + IL_0089: stloc.0 + IL_008a: leave.s IL_0093 + + } // end .try + fault + { + IL_008c: ldarg.0 + IL_008d: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::System.IDisposable.Dispose() + IL_0092: endfinally + } // end handler + IL_0093: ldloc.0 + IL_0094: ret + } // end of method 'd__45'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>2__current' + IL_0006: ret + } // end of method 'd__45'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__45'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 42 (0x2a) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0020, + IL_0020, + IL_0029, + IL_0020) + IL_001f: ret + + .try + { + IL_0020: leave.s IL_0029 + + } // end .try + finally + { + IL_0022: ldarg.0 + IL_0023: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>m__Finally46'() + IL_0028: endfinally + } // end handler + IL_0029: ret + } // end of method 'd__45'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__45'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__45'::.ctor + + .method private hidebysig instance void + '<>m__Finally46'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'<>1__state' + IL_0007: ldstr "Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__45'::'<>m__Finally46' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__45'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__45'::System.Collections.IEnumerator.Current + } // end of class 'd__45' + + .class auto ansi sealed nested private beforefieldinit 'd__49' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public bool b + .field public bool '<>3__b' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>3__b' + IL_0030: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::b + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__49'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__49'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 157 (0x9d) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0023, + IL_0090, + IL_0043, + IL_0090, + IL_0083) + IL_0021: br.s IL_0090 + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_002a: ldarg.0 + IL_002b: ldc.i4.1 + IL_002c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0031: ldarg.0 + IL_0032: ldc.i4.0 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>2__current' + IL_0038: ldarg.0 + IL_0039: ldc.i4.2 + IL_003a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_003f: ldc.i4.1 + IL_0040: stloc.0 + IL_0041: leave.s IL_009b + + IL_0043: ldarg.0 + IL_0044: ldc.i4.1 + IL_0045: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + .try + { + IL_004a: ldstr "In Try" + IL_004f: call void [mscorlib]System.Console::WriteLine(string) + IL_0054: ldarg.0 + IL_0055: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::b + IL_005a: brfalse.s IL_0064 + + IL_005c: ldarg.0 + IL_005d: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::System.IDisposable.Dispose() + IL_0062: leave.s IL_0090 + + IL_0064: leave.s IL_0071 + + } // end .try + finally + { + IL_0066: ldstr "Inner Finally" + IL_006b: call void [mscorlib]System.Console::WriteLine(string) + IL_0070: endfinally + } // end handler + IL_0071: ldarg.0 + IL_0072: ldc.i4.1 + IL_0073: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>2__current' + IL_0078: ldarg.0 + IL_0079: ldc.i4.4 + IL_007a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_007f: ldc.i4.1 + IL_0080: stloc.0 + IL_0081: leave.s IL_009b + + IL_0083: ldarg.0 + IL_0084: ldc.i4.1 + IL_0085: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_008a: ldarg.0 + IL_008b: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>m__Finally4a'() + IL_0090: ldc.i4.0 + IL_0091: stloc.0 + IL_0092: leave.s IL_009b + + } // end .try + fault + { + IL_0094: ldarg.0 + IL_0095: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::System.IDisposable.Dispose() + IL_009a: endfinally + } // end handler + IL_009b: ldloc.0 + IL_009c: ret + } // end of method 'd__49'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>2__current' + IL_0006: ret + } // end of method 'd__49'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__49'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 42 (0x2a) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0020, + IL_0020, + IL_0029, + IL_0020) + IL_001f: ret + + .try + { + IL_0020: leave.s IL_0029 + + } // end .try + finally + { + IL_0022: ldarg.0 + IL_0023: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>m__Finally4a'() + IL_0028: endfinally + } // end handler + IL_0029: ret + } // end of method 'd__49'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__49'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__49'::.ctor + + .method private hidebysig instance void + '<>m__Finally4a'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>1__state' + IL_0007: ldstr "Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__49'::'<>m__Finally4a' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__49'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__49'::System.Collections.IEnumerator.Current + } // end of class 'd__49' + + .class auto ansi sealed nested private beforefieldinit 'd__4d' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__4d'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__4d'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 20 (0x14) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.0 + IL_0009: bne.un.s IL_0012 + + IL_000b: ldarg.0 + IL_000c: ldc.i4.m1 + IL_000d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>1__state' + IL_0012: ldc.i4.0 + IL_0013: ret + } // end of method 'd__4d'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>2__current' + IL_0006: ret + } // end of method 'd__4d'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__4d'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__4d'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__4d'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__4d'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__4d'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__4d'::System.Collections.IEnumerator.Current + } // end of class 'd__4d' + + .class auto ansi sealed nested private beforefieldinit 'd__50' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__50'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__50'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 85 (0x55) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001b, + IL_0048, + IL_003b) + IL_0019: br.s IL_0048 + + IL_001b: ldarg.0 + IL_001c: ldc.i4.m1 + IL_001d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0022: ldarg.0 + IL_0023: ldc.i4.1 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: ldc.i4.0 + IL_002b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>2__current' + IL_0030: ldarg.0 + IL_0031: ldc.i4.2 + IL_0032: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0037: ldc.i4.1 + IL_0038: stloc.0 + IL_0039: leave.s IL_0053 + + IL_003b: ldarg.0 + IL_003c: ldc.i4.1 + IL_003d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0042: newobj instance void [mscorlib]System.NotImplementedException::.ctor() + IL_0047: throw + + IL_0048: ldc.i4.0 + IL_0049: stloc.0 + IL_004a: leave.s IL_0053 + + } // end .try + fault + { + IL_004c: ldarg.0 + IL_004d: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::System.IDisposable.Dispose() + IL_0052: endfinally + } // end handler + IL_0053: ldloc.0 + IL_0054: ret + } // end of method 'd__50'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>2__current' + IL_0006: ret + } // end of method 'd__50'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__50'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 34 (0x22) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0018, + IL_0018) + IL_0017: ret + + .try + { + IL_0018: leave.s IL_0021 + + } // end .try + finally + { + IL_001a: ldarg.0 + IL_001b: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>m__Finally51'() + IL_0020: endfinally + } // end handler + IL_0021: ret + } // end of method 'd__50'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__50'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__50'::.ctor + + .method private hidebysig instance void + '<>m__Finally51'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'<>1__state' + IL_0007: ldstr "Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__50'::'<>m__Finally51' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__50'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__50'::System.Collections.IEnumerator.Current + } // end of class 'd__50' + + .class auto ansi sealed nested private beforefieldinit 'd__54' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__54'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__54'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 88 (0x58) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: ldc.i4.0 + IL_0009: beq.s IL_0011 + + IL_000b: ldloc.1 + IL_000c: ldc.i4.3 + IL_000d: beq.s IL_0038 + + IL_000f: br.s IL_004b + + IL_0011: ldarg.0 + IL_0012: ldc.i4.m1 + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0018: ldarg.0 + IL_0019: ldc.i4.1 + IL_001a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_001f: ldarg.0 + IL_0020: ldc.i4.2 + IL_0021: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0026: ldarg.0 + IL_0027: ldc.i4.0 + IL_0028: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>2__current' + IL_002d: ldarg.0 + IL_002e: ldc.i4.3 + IL_002f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0034: ldc.i4.1 + IL_0035: stloc.0 + IL_0036: leave.s IL_0056 + + IL_0038: ldarg.0 + IL_0039: ldc.i4.2 + IL_003a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_003f: ldarg.0 + IL_0040: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>m__Finally56'() + IL_0045: ldarg.0 + IL_0046: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>m__Finally55'() + IL_004b: ldc.i4.0 + IL_004c: stloc.0 + IL_004d: leave.s IL_0056 + + } // end .try + fault + { + IL_004f: ldarg.0 + IL_0050: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::System.IDisposable.Dispose() + IL_0055: endfinally + } // end handler + IL_0056: ldloc.0 + IL_0057: ret + } // end of method 'd__54'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>2__current' + IL_0006: ret + } // end of method 'd__54'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__54'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 72 (0x48) + .maxstack 2 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_001c, + IL_001c, + IL_001c) + IL_001b: ret + + .try + { + IL_001c: ldarg.0 + IL_001d: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0022: stloc.1 + IL_0023: ldloc.1 + IL_0024: ldc.i4.2 + IL_0025: sub + IL_0026: switch ( + IL_0035, + IL_0035) + IL_0033: br.s IL_003e + + .try + { + IL_0035: leave.s IL_003e + + } // end .try + finally + { + IL_0037: ldarg.0 + IL_0038: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>m__Finally56'() + IL_003d: endfinally + } // end handler + IL_003e: leave.s IL_0047 + + } // end .try + finally + { + IL_0040: ldarg.0 + IL_0041: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>m__Finally55'() + IL_0046: endfinally + } // end handler + IL_0047: ret + } // end of method 'd__54'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__54'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__54'::.ctor + + .method private hidebysig instance void + '<>m__Finally55'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0007: ldstr "Outer Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__54'::'<>m__Finally55' + + .method private hidebysig instance void + '<>m__Finally56'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'<>1__state' + IL_0007: ldstr "Inner Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__54'::'<>m__Finally56' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__54'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__54'::System.Collections.IEnumerator.Current + } // end of class 'd__54' + + .class auto ansi sealed nested private beforefieldinit 'd__59`1'<([mscorlib]System.IDisposable) T> + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public !T a + .field public !T '<>3__a' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>3__a' + IL_0030: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::a + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__59`1'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__59`1'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 143 (0x8f) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0023, + IL_003c, + IL_0082, + IL_005c, + IL_007b) + IL_0021: br.s IL_0082 + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_002a: ldarg.0 + IL_002b: ldc.i4.1 + IL_002c: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>2__current' + IL_0031: ldarg.0 + IL_0032: ldc.i4.1 + IL_0033: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0038: ldc.i4.1 + IL_0039: stloc.0 + IL_003a: leave.s IL_008d + + IL_003c: ldarg.0 + IL_003d: ldc.i4.m1 + IL_003e: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0043: ldarg.0 + IL_0044: ldc.i4.2 + IL_0045: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_004a: ldarg.0 + IL_004b: ldc.i4.2 + IL_004c: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>2__current' + IL_0051: ldarg.0 + IL_0052: ldc.i4.3 + IL_0053: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0058: ldc.i4.1 + IL_0059: stloc.0 + IL_005a: leave.s IL_008d + + IL_005c: ldarg.0 + IL_005d: ldc.i4.2 + IL_005e: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0063: ldarg.0 + IL_0064: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>m__Finally5a'() + IL_0069: ldarg.0 + IL_006a: ldc.i4.3 + IL_006b: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>2__current' + IL_0070: ldarg.0 + IL_0071: ldc.i4.4 + IL_0072: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0077: ldc.i4.1 + IL_0078: stloc.0 + IL_0079: leave.s IL_008d + + IL_007b: ldarg.0 + IL_007c: ldc.i4.m1 + IL_007d: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0082: ldc.i4.0 + IL_0083: stloc.0 + IL_0084: leave.s IL_008d + + } // end .try + fault + { + IL_0086: ldarg.0 + IL_0087: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::System.IDisposable.Dispose() + IL_008c: endfinally + } // end handler + IL_008d: ldloc.0 + IL_008e: ret + } // end of method 'd__59`1'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>2__current' + IL_0006: ret + } // end of method 'd__59`1'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__59`1'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 34 (0x22) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.2 + IL_0009: sub + IL_000a: switch ( + IL_0018, + IL_0018) + IL_0017: ret + + .try + { + IL_0018: leave.s IL_0021 + + } // end .try + finally + { + IL_001a: ldarg.0 + IL_001b: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>m__Finally5a'() + IL_0020: endfinally + } // end handler + IL_0021: ret + } // end of method 'd__59`1'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__59`1'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__59`1'::.ctor + + .method private hidebysig instance void + '<>m__Finally5a'() cil managed + { + // Code size 41 (0x29) + .maxstack 2 + .locals init (!T V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::a + IL_000d: stloc.0 + IL_000e: ldloca.s V_0 + IL_0010: constrained. !T + IL_0016: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001b: ldloca.s V_0 + IL_001d: constrained. !T + IL_0023: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0028: ret + } // end of method 'd__59`1'::'<>m__Finally5a' + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__59`1'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__59`1'::System.Collections.IEnumerator.Current + } // end of class 'd__59`1' + + .class auto ansi sealed nested private beforefieldinit 'd__5d`1'<.ctor T> + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private !T '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public !T '5__5e' + .field public int32 '5__5f' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__5d`1'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__5d`1'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 130 (0x82) + .maxstack 3 + .locals init (int32 V_0, + !T V_1, + !T V_2) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_0017, + IL_0062) + IL_0015: br.s IL_0080 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.m1 + IL_0019: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: ldloca.s V_1 + IL_0021: initobj !T + IL_0027: ldloc.1 + IL_0028: box !T + IL_002d: brfalse.s IL_003a + + IL_002f: ldloca.s V_2 + IL_0031: initobj !T + IL_0037: ldloc.2 + IL_0038: br.s IL_003f + + IL_003a: call !!0 [mscorlib]System.Activator::CreateInstance() + IL_003f: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5e' + IL_0044: ldarg.0 + IL_0045: ldc.i4.0 + IL_0046: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5f' + IL_004b: br.s IL_0077 + + IL_004d: ldarg.0 + IL_004e: ldarg.0 + IL_004f: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5e' + IL_0054: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>2__current' + IL_0059: ldarg.0 + IL_005a: ldc.i4.1 + IL_005b: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_0060: ldc.i4.1 + IL_0061: ret + + IL_0062: ldarg.0 + IL_0063: ldc.i4.m1 + IL_0064: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_0069: ldarg.0 + IL_006a: dup + IL_006b: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5f' + IL_0070: ldc.i4.1 + IL_0071: add + IL_0072: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5f' + IL_0077: ldarg.0 + IL_0078: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'5__5f' + IL_007d: ldc.i4.3 + IL_007e: blt.s IL_004d + + IL_0080: ldc.i4.0 + IL_0081: ret + } // end of method 'd__5d`1'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance !T 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>2__current' + IL_0006: ret + } // end of method 'd__5d`1'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__5d`1'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__5d`1'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>2__current' + IL_0006: box !T + IL_000b: ret + } // end of method 'd__5d`1'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__5d`1'::.ctor + + .property instance !T 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance !T ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__5d`1'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__5d`1'::System.Collections.IEnumerator.Current + } // end of class 'd__5d`1' + + .field private int32 fieldOnThis + .method public hidebysig specialname static + class [mscorlib]System.Collections.Generic.IEnumerable`1 + get_YieldChars() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__0'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::get_YieldChars + + .method assembly hidebysig static void + Print(string name, + class [mscorlib]System.Collections.Generic.IEnumerator`1 enumerator) cil managed + { + // Code size 54 (0x36) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldstr ": Test start" + IL_0006: call string [mscorlib]System.String::Concat(string, + string) + IL_000b: call void [mscorlib]System.Console::WriteLine(string) + IL_0010: br.s IL_002d + + IL_0012: ldarg.0 + IL_0013: ldstr ": " + IL_0018: ldarg.1 + IL_0019: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_001e: box !!T + IL_0023: call string [mscorlib]System.String::Concat(object, + object, + object) + IL_0028: call void [mscorlib]System.Console::WriteLine(string) + IL_002d: ldarg.1 + IL_002e: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0033: brtrue.s IL_0012 + + IL_0035: ret + } // end of method YieldReturnPrettyTest::Print + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + SimpleYieldReturn() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::SimpleYieldReturn + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerator`1 + SimpleYieldReturnEnumerator() cil managed + { + // Code size 9 (0x9) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6' V_0) + IL_0000: ldc.i4.0 + IL_0001: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::.ctor(int32) + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ret + } // end of method YieldReturnPrettyTest::SimpleYieldReturnEnumerator + + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnParameters(int32 p) cil managed + { + // Code size 24 (0x18) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>4__this' + IL_000f: ldloc.0 + IL_0010: ldarg.1 + IL_0011: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>3__p' + IL_0016: ldloc.0 + IL_0017: ret + } // end of method YieldReturnPrettyTest::YieldReturnParameters + + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + YieldReturnParametersEnumerator(int32 p) cil managed + { + // Code size 23 (0x17) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b' V_0) + IL_0000: ldc.i4.0 + IL_0001: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::.ctor(int32) + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldarg.0 + IL_0009: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::'<>4__this' + IL_000e: ldloc.0 + IL_000f: ldarg.1 + IL_0010: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__b'::p + IL_0015: ldloc.0 + IL_0016: ret + } // end of method YieldReturnPrettyTest::YieldReturnParametersEnumerator + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnInLoop() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__d'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::YieldReturnInLoop + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithTryFinally() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithNestedTryFinally(bool breakInMiddle) cil managed + { + // Code size 17 (0x11) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>3__breakInMiddle' + IL_000f: ldloc.0 + IL_0010: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithNestedTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithTwoNonNestedFinallyBlocks(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + // Code size 17 (0x11) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__1a'::'<>3__input' + IL_000f: ldloc.0 + IL_0010: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithTwoNonNestedFinallyBlocks + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1> + YieldReturnWithAnonymousMethods1(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + // Code size 17 (0x11) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__28'::'<>3__input' + IL_000f: ldloc.0 + IL_0010: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithAnonymousMethods1 + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1> + YieldReturnWithAnonymousMethods2(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + // Code size 17 (0x11) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__30'::'<>3__input' + IL_000f: ldloc.0 + IL_0010: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithAnonymousMethods2 + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + GetEvenNumbers(int32 n) cil managed + { + // Code size 17 (0x11) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__36'::'<>3__n' + IL_000f: ldloc.0 + IL_0010: ret + } // end of method YieldReturnPrettyTest::GetEvenNumbers + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + ExceptionHandling() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3a'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::ExceptionHandling + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInCatch() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__3e'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::YieldBreakInCatch + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInCatchInTryFinally() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__41'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::YieldBreakInCatchInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInTryCatchInTryFinally() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__45'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::YieldBreakInTryCatchInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInTryFinallyInTryFinally(bool b) cil managed + { + // Code size 17 (0x11) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__49'::'<>3__b' + IL_000f: ldloc.0 + IL_0010: ret + } // end of method YieldReturnPrettyTest::YieldBreakInTryFinallyInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakOnly() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4d'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::YieldBreakOnly + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + UnconditionalThrowInTryFinally() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__50'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::UnconditionalThrowInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + NestedTryFinallyStartingOnSamePosition() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__54'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::NestedTryFinallyStartingOnSamePosition + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + LocalInFinally<([mscorlib]System.IDisposable) T>(!!T a) cil managed + { + // Code size 17 (0x11) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__59`1'::'<>3__a' + IL_000f: ldloc.0 + IL_0010: ret + } // end of method YieldReturnPrettyTest::LocalInFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + GenericYield<.ctor T>() cil managed + { + // Code size 10 (0xa) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5d`1'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ret + } // end of method YieldReturnPrettyTest::GenericYield + + .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 YieldReturnPrettyTest::.ctor + + .property class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldChars() + { + .get class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::get_YieldChars() + } // end of property YieldReturnPrettyTest::YieldChars +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest + +.class private sequential ansi sealed beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + extends [mscorlib]System.ValueType +{ + .class auto ansi sealed nested private beforefieldinit 'd__0' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.Collections.IEnumerator, + [mscorlib]System.IDisposable + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>2__current' + .field private int32 '<>1__state' + .field private int32 '<>l__initialThreadId' + .field public valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn '<>4__this' + .field public valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn '<>3__<>4__this' + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 67 (0x43) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0' V_0) + IL_0000: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0005: ldarg.0 + IL_0006: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>l__initialThreadId' + IL_000b: bne.un.s IL_0022 + + IL_000d: ldarg.0 + IL_000e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_0013: ldc.i4.s -2 + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0035 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>4__this' + IL_0030: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>4__this' + IL_0035: ldloc.0 + IL_0036: ldarg.0 + IL_0037: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>3__<>4__this' + IL_003c: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>4__this' + IL_0041: ldloc.0 + IL_0042: ret + } // end of method 'd__0'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__0'::System.Collections.IEnumerable.GetEnumerator + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 124 (0x7c) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1, + int32 V_2) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001b, + IL_0047, + IL_0073) + IL_0019: br.s IL_007a + + IL_001b: ldarg.0 + IL_001c: ldc.i4.m1 + IL_001d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_0022: ldarg.0 + IL_0023: ldarg.0 + IL_0024: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>4__this' + IL_0029: dup + IL_002a: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_002f: dup + IL_0030: stloc.1 + IL_0031: ldc.i4.1 + IL_0032: add + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_0038: ldloc.1 + IL_0039: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>2__current' + IL_003e: ldarg.0 + IL_003f: ldc.i4.1 + IL_0040: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_0045: ldc.i4.1 + IL_0046: ret + + IL_0047: ldarg.0 + IL_0048: ldc.i4.m1 + IL_0049: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_004e: ldarg.0 + IL_004f: ldarg.0 + IL_0050: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>4__this' + IL_0055: dup + IL_0056: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_005b: dup + IL_005c: stloc.2 + IL_005d: ldc.i4.1 + IL_005e: add + IL_005f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_0064: ldloc.2 + IL_0065: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>2__current' + IL_006a: ldarg.0 + IL_006b: ldc.i4.2 + IL_006c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_0071: ldc.i4.1 + IL_0072: ret + + IL_0073: ldarg.0 + IL_0074: ldc.i4.m1 + IL_0075: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_007a: ldc.i4.0 + IL_007b: ret + } // end of method 'd__0'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>2__current' + IL_0006: ret + } // end of method 'd__0'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__0'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__0'::System.IDisposable.Dispose + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__0'::System.Collections.IEnumerator.get_Current + + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__0'::.ctor + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__0'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__0'::System.Collections.IEnumerator.Current + } // end of class 'd__0' + + .field private int32 val + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 + Count() cil managed + { + // Code size 22 (0x16) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0' V_0) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: ldarg.0 + IL_000a: ldobj ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + IL_000f: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__0'::'<>3__<>4__this' + IL_0014: ldloc.0 + IL_0015: ret + } // end of method StructWithYieldReturn::Count + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.opt.roslyn.il new file mode 100644 index 000000000..0b5d5001c --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.opt.roslyn.il @@ -0,0 +1,6068 @@ + + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly YieldReturn +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx + 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 ) + + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module YieldReturn.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 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest + extends [mscorlib]System.Object +{ + .class auto ansi sealed nested private beforefieldinit 'd__2' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private char '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__2'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__2'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 112 (0x70) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001f, + IL_0037, + IL_004f, + IL_0067) + IL_001d: ldc.i4.0 + IL_001e: ret + + IL_001f: ldarg.0 + IL_0020: ldc.i4.m1 + IL_0021: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0026: ldarg.0 + IL_0027: ldc.i4.s 97 + IL_0029: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>2__current' + IL_002e: ldarg.0 + IL_002f: ldc.i4.1 + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0035: ldc.i4.1 + IL_0036: ret + + IL_0037: ldarg.0 + IL_0038: ldc.i4.m1 + IL_0039: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_003e: ldarg.0 + IL_003f: ldc.i4.s 98 + IL_0041: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>2__current' + IL_0046: ldarg.0 + IL_0047: ldc.i4.2 + IL_0048: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_004d: ldc.i4.1 + IL_004e: ret + + IL_004f: ldarg.0 + IL_0050: ldc.i4.m1 + IL_0051: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0056: ldarg.0 + IL_0057: ldc.i4.s 99 + IL_0059: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>2__current' + IL_005e: ldarg.0 + IL_005f: ldc.i4.3 + IL_0060: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0065: ldc.i4.1 + IL_0066: ret + + IL_0067: ldarg.0 + IL_0068: ldc.i4.m1 + IL_0069: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_006e: ldc.i4.0 + IL_006f: ret + } // end of method 'd__2'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance char 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>2__current' + IL_0006: ret + } // end of method 'd__2'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__2'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>2__current' + IL_0006: box [mscorlib]System.Char + IL_000b: ret + } // end of method 'd__2'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__2'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__2'::System.Collections.IEnumerable.GetEnumerator + + .property instance char 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__2'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__2'::System.Collections.IEnumerator.Current + } // end of class 'd__2' + + .class auto ansi sealed nested private beforefieldinit 'd__4' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private string '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__4'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__4'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 121 (0x79) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001f, + IL_003a, + IL_0055, + IL_0070) + IL_001d: ldc.i4.0 + IL_001e: ret + + IL_001f: ldarg.0 + IL_0020: ldc.i4.m1 + IL_0021: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0026: ldarg.0 + IL_0027: ldstr "A" + IL_002c: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>2__current' + IL_0031: ldarg.0 + IL_0032: ldc.i4.1 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0038: ldc.i4.1 + IL_0039: ret + + IL_003a: ldarg.0 + IL_003b: ldc.i4.m1 + IL_003c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0041: ldarg.0 + IL_0042: ldstr "B" + IL_0047: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>2__current' + IL_004c: ldarg.0 + IL_004d: ldc.i4.2 + IL_004e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0053: ldc.i4.1 + IL_0054: ret + + IL_0055: ldarg.0 + IL_0056: ldc.i4.m1 + IL_0057: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_005c: ldarg.0 + IL_005d: ldstr "C" + IL_0062: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>2__current' + IL_0067: ldarg.0 + IL_0068: ldc.i4.3 + IL_0069: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_006e: ldc.i4.1 + IL_006f: ret + + IL_0070: ldarg.0 + IL_0071: ldc.i4.m1 + IL_0072: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0077: ldc.i4.0 + IL_0078: ret + } // end of method 'd__4'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>2__current' + IL_0006: ret + } // end of method 'd__4'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__4'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>2__current' + IL_0006: ret + } // end of method 'd__4'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__4'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__4'::System.Collections.IEnumerable.GetEnumerator + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__4'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__4'::System.Collections.IEnumerator.Current + } // end of class 'd__4' + + .class auto ansi sealed nested private beforefieldinit 'd__5' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private string '<>2__current' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') 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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_000d: ret + } // end of method 'd__5'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__5'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 121 (0x79) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001f, + IL_003a, + IL_0055, + IL_0070) + IL_001d: ldc.i4.0 + IL_001e: ret + + IL_001f: ldarg.0 + IL_0020: ldc.i4.m1 + IL_0021: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0026: ldarg.0 + IL_0027: ldstr "A" + IL_002c: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>2__current' + IL_0031: ldarg.0 + IL_0032: ldc.i4.1 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0038: ldc.i4.1 + IL_0039: ret + + IL_003a: ldarg.0 + IL_003b: ldc.i4.m1 + IL_003c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0041: ldarg.0 + IL_0042: ldstr "B" + IL_0047: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>2__current' + IL_004c: ldarg.0 + IL_004d: ldc.i4.2 + IL_004e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0053: ldc.i4.1 + IL_0054: ret + + IL_0055: ldarg.0 + IL_0056: ldc.i4.m1 + IL_0057: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_005c: ldarg.0 + IL_005d: ldstr "C" + IL_0062: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>2__current' + IL_0067: ldarg.0 + IL_0068: ldc.i4.3 + IL_0069: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_006e: ldc.i4.1 + IL_006f: ret + + IL_0070: ldarg.0 + IL_0071: ldc.i4.m1 + IL_0072: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0077: ldc.i4.0 + IL_0078: ret + } // end of method 'd__5'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>2__current' + IL_0006: ret + } // end of method 'd__5'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__5'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>2__current' + IL_0006: ret + } // end of method 'd__5'::System.Collections.IEnumerator.get_Current + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__5'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__5'::System.Collections.IEnumerator.Current + } // end of class 'd__5' + + .class auto ansi sealed nested private beforefieldinit 'd__6' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private int32 p + .field public int32 '<>3__p' + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest '<>4__this' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__6'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__6'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 99 (0x63) + .maxstack 2 + .locals init (int32 V_0, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>4__this' + IL_000d: stloc.1 + IL_000e: ldloc.0 + IL_000f: switch ( + IL_0022, + IL_003e, + IL_005a) + IL_0020: ldc.i4.0 + IL_0021: ret + + IL_0022: ldarg.0 + IL_0023: ldc.i4.m1 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: ldarg.0 + IL_002b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::p + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_003c: ldc.i4.1 + IL_003d: ret + + IL_003e: ldarg.0 + IL_003f: ldc.i4.m1 + IL_0040: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0045: ldarg.0 + IL_0046: ldloc.1 + IL_0047: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::fieldOnThis + IL_004c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0051: ldarg.0 + IL_0052: ldc.i4.2 + IL_0053: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0058: ldc.i4.1 + IL_0059: ret + + IL_005a: ldarg.0 + IL_005b: ldc.i4.m1 + IL_005c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0061: ldc.i4.0 + IL_0062: ret + } // end of method 'd__6'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0006: ret + } // end of method 'd__6'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__6'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__6'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 67 (0x43) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0035 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>4__this' + IL_0030: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>4__this' + IL_0035: ldloc.0 + IL_0036: ldarg.0 + IL_0037: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>3__p' + IL_003c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::p + IL_0041: ldloc.0 + IL_0042: ret + } // end of method 'd__6'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__6'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__6'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__6'::System.Collections.IEnumerator.Current + } // end of class 'd__6' + + .class auto ansi sealed nested private beforefieldinit 'd__7' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field public int32 p + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest '<>4__this' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') 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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_000d: ret + } // end of method 'd__7'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__7'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 99 (0x63) + .maxstack 2 + .locals init (int32 V_0, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldarg.0 + IL_0008: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>4__this' + IL_000d: stloc.1 + IL_000e: ldloc.0 + IL_000f: switch ( + IL_0022, + IL_003e, + IL_005a) + IL_0020: ldc.i4.0 + IL_0021: ret + + IL_0022: ldarg.0 + IL_0023: ldc.i4.m1 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: ldarg.0 + IL_002b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::p + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>2__current' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_003c: ldc.i4.1 + IL_003d: ret + + IL_003e: ldarg.0 + IL_003f: ldc.i4.m1 + IL_0040: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_0045: ldarg.0 + IL_0046: ldloc.1 + IL_0047: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::fieldOnThis + IL_004c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>2__current' + IL_0051: ldarg.0 + IL_0052: ldc.i4.2 + IL_0053: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_0058: ldc.i4.1 + IL_0059: ret + + IL_005a: ldarg.0 + IL_005b: ldc.i4.m1 + IL_005c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_0061: ldc.i4.0 + IL_0062: ret + } // end of method 'd__7'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>2__current' + IL_0006: ret + } // end of method 'd__7'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__7'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__7'::System.Collections.IEnumerator.get_Current + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__7'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__7'::System.Collections.IEnumerator.Current + } // end of class 'd__7' + + .class auto ansi sealed nested private beforefieldinit 'd__8' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private int32 '5__2' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__8'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__8'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 88 (0x58) + .maxstack 3 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0010 + + IL_000a: ldloc.0 + IL_000b: ldc.i4.1 + IL_000c: beq.s IL_0035 + + IL_000e: ldc.i4.0 + IL_000f: ret + + IL_0010: ldarg.0 + IL_0011: ldc.i4.m1 + IL_0012: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'5__2' + IL_001e: br.s IL_004c + + IL_0020: ldarg.0 + IL_0021: ldarg.0 + IL_0022: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'5__2' + IL_0027: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_002c: ldarg.0 + IL_002d: ldc.i4.1 + IL_002e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0033: ldc.i4.1 + IL_0034: ret + + IL_0035: ldarg.0 + IL_0036: ldc.i4.m1 + IL_0037: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_003c: ldarg.0 + IL_003d: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'5__2' + IL_0042: stloc.1 + IL_0043: ldarg.0 + IL_0044: ldloc.1 + IL_0045: ldc.i4.1 + IL_0046: add + IL_0047: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'5__2' + IL_004c: ldarg.0 + IL_004d: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'5__2' + IL_0052: ldc.i4.s 100 + IL_0054: blt.s IL_0020 + + IL_0056: ldc.i4.0 + IL_0057: ret + } // end of method 'd__8'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_0006: ret + } // end of method 'd__8'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__8'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__8'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__8'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__8'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__8'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__8'::System.Collections.IEnumerator.Current + } // end of class 'd__8' + + .class auto ansi sealed nested private beforefieldinit 'd__9' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__9'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 27 (0x1b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0010 + + IL_000c: ldloc.0 + IL_000d: ldc.i4.2 + IL_000e: bne.un.s IL_001a + + IL_0010: nop + .try + { + IL_0011: leave.s IL_001a + + } // end .try + finally + { + IL_0013: ldarg.0 + IL_0014: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>m__Finally1'() + IL_0019: endfinally + } // end handler + IL_001a: ret + } // end of method 'd__9'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 143 (0x8f) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0021, + IL_003a, + IL_005b, + IL_007b) + IL_001d: ldc.i4.0 + IL_001e: stloc.0 + IL_001f: leave.s IL_008d + + IL_0021: ldarg.0 + IL_0022: ldc.i4.m1 + IL_0023: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0028: ldarg.0 + IL_0029: ldc.i4.0 + IL_002a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>2__current' + IL_002f: ldarg.0 + IL_0030: ldc.i4.1 + IL_0031: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0036: ldc.i4.1 + IL_0037: stloc.0 + IL_0038: leave.s IL_008d + + IL_003a: ldarg.0 + IL_003b: ldc.i4.m1 + IL_003c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0041: ldarg.0 + IL_0042: ldc.i4.s -3 + IL_0044: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0049: ldarg.0 + IL_004a: ldc.i4.1 + IL_004b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>2__current' + IL_0050: ldarg.0 + IL_0051: ldc.i4.2 + IL_0052: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0057: ldc.i4.1 + IL_0058: stloc.0 + IL_0059: leave.s IL_008d + + IL_005b: ldarg.0 + IL_005c: ldc.i4.s -3 + IL_005e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0063: ldarg.0 + IL_0064: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>m__Finally1'() + IL_0069: ldarg.0 + IL_006a: ldc.i4.2 + IL_006b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>2__current' + IL_0070: ldarg.0 + IL_0071: ldc.i4.3 + IL_0072: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0077: ldc.i4.1 + IL_0078: stloc.0 + IL_0079: leave.s IL_008d + + IL_007b: ldarg.0 + IL_007c: ldc.i4.m1 + IL_007d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0082: ldc.i4.0 + IL_0083: stloc.0 + IL_0084: leave.s IL_008d + + } // end .try + fault + { + IL_0086: ldarg.0 + IL_0087: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::System.IDisposable.Dispose() + IL_008c: endfinally + } // end handler + IL_008d: ldloc.0 + IL_008e: ret + } // end of method 'd__9'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0007: ldstr "Finally!" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__9'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>2__current' + IL_0006: ret + } // end of method 'd__9'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__9'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__9'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__9'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__9'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__9'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__9'::System.Collections.IEnumerator.Current + } // end of class 'd__9' + + .class auto ansi sealed nested private beforefieldinit 'd__10' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private string '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private bool breakInMiddle + .field public bool '<>3__breakInMiddle' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__10'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 52 (0x34) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -4 + IL_000a: sub + IL_000b: ldc.i4.1 + IL_000c: ble.un.s IL_0014 + + IL_000e: ldloc.0 + IL_000f: ldc.i4.2 + IL_0010: sub + IL_0011: ldc.i4.3 + IL_0012: bgt.un.s IL_0033 + + IL_0014: nop + .try + { + IL_0015: ldloc.0 + IL_0016: ldc.i4.s -4 + IL_0018: beq.s IL_0022 + + IL_001a: ldloc.0 + IL_001b: ldc.i4.3 + IL_001c: sub + IL_001d: ldc.i4.1 + IL_001e: ble.un.s IL_0022 + + IL_0020: leave.s IL_0033 + + IL_0022: nop + .try + { + IL_0023: leave.s IL_0033 + + } // end .try + finally + { + IL_0025: ldarg.0 + IL_0026: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally2'() + IL_002b: endfinally + } // end handler + } // end .try + finally + { + IL_002c: ldarg.0 + IL_002d: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally1'() + IL_0032: endfinally + } // end handler + IL_0033: ret + } // end of method 'd__10'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 448 (0x1c0) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0030, + IL_005a, + IL_0096, + IL_00d3, + IL_011e, + IL_0160, + IL_01a2) + IL_0029: ldc.i4.0 + IL_002a: stloc.0 + IL_002b: leave IL_01be + + IL_0030: ldarg.0 + IL_0031: ldc.i4.m1 + IL_0032: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0037: ldstr "Start of method - 1" + IL_003c: call void [mscorlib]System.Console::WriteLine(string) + IL_0041: ldarg.0 + IL_0042: ldstr "Start of method" + IL_0047: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_004c: ldarg.0 + IL_004d: ldc.i4.1 + IL_004e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0053: ldc.i4.1 + IL_0054: stloc.0 + IL_0055: leave IL_01be + + IL_005a: ldarg.0 + IL_005b: ldc.i4.m1 + IL_005c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0061: ldstr "Start of method - 2" + IL_0066: call void [mscorlib]System.Console::WriteLine(string) + IL_006b: ldarg.0 + IL_006c: ldc.i4.s -3 + IL_006e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0073: ldstr "Within outer try - 1" + IL_0078: call void [mscorlib]System.Console::WriteLine(string) + IL_007d: ldarg.0 + IL_007e: ldstr "Within outer try" + IL_0083: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_0088: ldarg.0 + IL_0089: ldc.i4.2 + IL_008a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_008f: ldc.i4.1 + IL_0090: stloc.0 + IL_0091: leave IL_01be + + IL_0096: ldarg.0 + IL_0097: ldc.i4.s -3 + IL_0099: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_009e: ldstr "Within outer try - 2" + IL_00a3: call void [mscorlib]System.Console::WriteLine(string) + IL_00a8: ldarg.0 + IL_00a9: ldc.i4.s -4 + IL_00ab: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_00b0: ldstr "Within inner try - 1" + IL_00b5: call void [mscorlib]System.Console::WriteLine(string) + IL_00ba: ldarg.0 + IL_00bb: ldstr "Within inner try" + IL_00c0: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_00c5: ldarg.0 + IL_00c6: ldc.i4.3 + IL_00c7: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_00cc: ldc.i4.1 + IL_00cd: stloc.0 + IL_00ce: leave IL_01be + + IL_00d3: ldarg.0 + IL_00d4: ldc.i4.s -4 + IL_00d6: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_00db: ldstr "Within inner try - 2" + IL_00e0: call void [mscorlib]System.Console::WriteLine(string) + IL_00e5: ldarg.0 + IL_00e6: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::breakInMiddle + IL_00eb: brfalse.s IL_00fb + + IL_00ed: ldstr "Breaking..." + IL_00f2: call void [mscorlib]System.Console::WriteLine(string) + IL_00f7: ldc.i4.0 + IL_00f8: stloc.0 + IL_00f9: br.s IL_0138 + + IL_00fb: ldstr "End of inner try - 1" + IL_0100: call void [mscorlib]System.Console::WriteLine(string) + IL_0105: ldarg.0 + IL_0106: ldstr "End of inner try" + IL_010b: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_0110: ldarg.0 + IL_0111: ldc.i4.4 + IL_0112: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0117: ldc.i4.1 + IL_0118: stloc.0 + IL_0119: leave IL_01be + + IL_011e: ldarg.0 + IL_011f: ldc.i4.s -4 + IL_0121: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0126: ldstr "End of inner try - 2" + IL_012b: call void [mscorlib]System.Console::WriteLine(string) + IL_0130: ldarg.0 + IL_0131: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally2'() + IL_0136: br.s IL_0140 + + IL_0138: ldarg.0 + IL_0139: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally2'() + IL_013e: br.s IL_017a + + IL_0140: ldstr "End of outer try - 1" + IL_0145: call void [mscorlib]System.Console::WriteLine(string) + IL_014a: ldarg.0 + IL_014b: ldstr "End of outer try" + IL_0150: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_0155: ldarg.0 + IL_0156: ldc.i4.5 + IL_0157: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_015c: ldc.i4.1 + IL_015d: stloc.0 + IL_015e: leave.s IL_01be + + IL_0160: ldarg.0 + IL_0161: ldc.i4.s -3 + IL_0163: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0168: ldstr "End of outer try - 2" + IL_016d: call void [mscorlib]System.Console::WriteLine(string) + IL_0172: ldarg.0 + IL_0173: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally1'() + IL_0178: br.s IL_0182 + + IL_017a: ldarg.0 + IL_017b: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally1'() + IL_0180: leave.s IL_01be + + IL_0182: ldstr "End of method - 1" + IL_0187: call void [mscorlib]System.Console::WriteLine(string) + IL_018c: ldarg.0 + IL_018d: ldstr "End of method" + IL_0192: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_0197: ldarg.0 + IL_0198: ldc.i4.6 + IL_0199: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_019e: ldc.i4.1 + IL_019f: stloc.0 + IL_01a0: leave.s IL_01be + + IL_01a2: ldarg.0 + IL_01a3: ldc.i4.m1 + IL_01a4: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_01a9: ldstr "End of method - 2" + IL_01ae: call void [mscorlib]System.Console::WriteLine(string) + IL_01b3: ldc.i4.0 + IL_01b4: stloc.0 + IL_01b5: leave.s IL_01be + + } // end .try + fault + { + IL_01b7: ldarg.0 + IL_01b8: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::System.IDisposable.Dispose() + IL_01bd: endfinally + } // end handler + IL_01be: ldloc.0 + IL_01bf: ret + } // end of method 'd__10'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0007: ldstr "Outer Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__10'::'<>m__Finally1' + + .method private hidebysig instance void + '<>m__Finally2'() cil managed + { + // Code size 19 (0x13) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.s -3 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0008: ldstr "Inner Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: ret + } // end of method 'd__10'::'<>m__Finally2' + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_0006: ret + } // end of method 'd__10'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__10'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_0006: ret + } // end of method 'd__10'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>3__breakInMiddle' + IL_0030: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::breakInMiddle + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__10'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__10'::System.Collections.IEnumerable.GetEnumerator + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__10'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__10'::System.Collections.IEnumerator.Current + } // end of class 'd__10' + + .class auto ansi sealed nested private beforefieldinit 'd__11' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private string '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field private class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap1' + .field private string '5__3' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__11'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 89 (0x59) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -5 + IL_000a: sub + IL_000b: switch ( + IL_004e, + IL_0031, + IL_0031, + IL_0058, + IL_0058, + IL_0058, + IL_0031) + IL_002c: ldloc.0 + IL_002d: ldc.i4.8 + IL_002e: beq.s IL_004e + + IL_0030: ret + + IL_0031: nop + .try + { + IL_0032: ldloc.0 + IL_0033: ldc.i4.s -4 + IL_0035: beq.s IL_003d + + IL_0037: ldloc.0 + IL_0038: ldc.i4.1 + IL_0039: beq.s IL_003d + + IL_003b: leave.s IL_0058 + + IL_003d: nop + .try + { + IL_003e: leave.s IL_0058 + + } // end .try + finally + { + IL_0040: ldarg.0 + IL_0041: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally2'() + IL_0046: endfinally + } // end handler + } // end .try + finally + { + IL_0047: ldarg.0 + IL_0048: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally1'() + IL_004d: endfinally + } // end handler + IL_004e: nop + .try + { + IL_004f: leave.s IL_0058 + + } // end .try + finally + { + IL_0051: ldarg.0 + IL_0052: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally3'() + IL_0057: endfinally + } // end handler + IL_0058: ret + } // end of method 'd__11'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 486 (0x1e6) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + string V_2) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0038, + IL_008d, + IL_00d5, + IL_00f5, + IL_0115, + IL_0135, + IL_0155, + IL_0172, + IL_01b7) + IL_0031: ldc.i4.0 + IL_0032: stloc.0 + IL_0033: leave IL_01e4 + + IL_0038: ldarg.0 + IL_0039: ldc.i4.m1 + IL_003a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_003f: ldarg.0 + IL_0040: ldarg.0 + IL_0041: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::input + IL_0046: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_004b: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_0050: ldarg.0 + IL_0051: ldc.i4.s -3 + IL_0053: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0058: br.s IL_00a2 + + IL_005a: ldarg.0 + IL_005b: ldarg.0 + IL_005c: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_0061: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0066: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__3' + IL_006b: ldarg.0 + IL_006c: ldc.i4.s -4 + IL_006e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0073: ldarg.0 + IL_0074: ldarg.0 + IL_0075: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__3' + IL_007a: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_007f: ldarg.0 + IL_0080: ldc.i4.1 + IL_0081: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0086: ldc.i4.1 + IL_0087: stloc.0 + IL_0088: leave IL_01e4 + + IL_008d: ldarg.0 + IL_008e: ldc.i4.s -4 + IL_0090: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0095: ldarg.0 + IL_0096: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally2'() + IL_009b: ldarg.0 + IL_009c: ldnull + IL_009d: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__3' + IL_00a2: ldarg.0 + IL_00a3: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_00a8: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00ad: brtrue.s IL_005a + + IL_00af: ldarg.0 + IL_00b0: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally1'() + IL_00b5: ldarg.0 + IL_00b6: ldnull + IL_00b7: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_00bc: ldarg.0 + IL_00bd: ldstr "A" + IL_00c2: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_00c7: ldarg.0 + IL_00c8: ldc.i4.2 + IL_00c9: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_00ce: ldc.i4.1 + IL_00cf: stloc.0 + IL_00d0: leave IL_01e4 + + IL_00d5: ldarg.0 + IL_00d6: ldc.i4.m1 + IL_00d7: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_00dc: ldarg.0 + IL_00dd: ldstr "B" + IL_00e2: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_00e7: ldarg.0 + IL_00e8: ldc.i4.3 + IL_00e9: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_00ee: ldc.i4.1 + IL_00ef: stloc.0 + IL_00f0: leave IL_01e4 + + IL_00f5: ldarg.0 + IL_00f6: ldc.i4.m1 + IL_00f7: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_00fc: ldarg.0 + IL_00fd: ldstr "C" + IL_0102: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0107: ldarg.0 + IL_0108: ldc.i4.4 + IL_0109: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_010e: ldc.i4.1 + IL_010f: stloc.0 + IL_0110: leave IL_01e4 + + IL_0115: ldarg.0 + IL_0116: ldc.i4.m1 + IL_0117: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_011c: ldarg.0 + IL_011d: ldstr "D" + IL_0122: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0127: ldarg.0 + IL_0128: ldc.i4.5 + IL_0129: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_012e: ldc.i4.1 + IL_012f: stloc.0 + IL_0130: leave IL_01e4 + + IL_0135: ldarg.0 + IL_0136: ldc.i4.m1 + IL_0137: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_013c: ldarg.0 + IL_013d: ldstr "E" + IL_0142: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0147: ldarg.0 + IL_0148: ldc.i4.6 + IL_0149: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_014e: ldc.i4.1 + IL_014f: stloc.0 + IL_0150: leave IL_01e4 + + IL_0155: ldarg.0 + IL_0156: ldc.i4.m1 + IL_0157: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_015c: ldarg.0 + IL_015d: ldstr "F" + IL_0162: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0167: ldarg.0 + IL_0168: ldc.i4.7 + IL_0169: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_016e: ldc.i4.1 + IL_016f: stloc.0 + IL_0170: leave.s IL_01e4 + + IL_0172: ldarg.0 + IL_0173: ldc.i4.m1 + IL_0174: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0179: ldarg.0 + IL_017a: ldarg.0 + IL_017b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::input + IL_0180: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0185: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_018a: ldarg.0 + IL_018b: ldc.i4.s -5 + IL_018d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0192: br.s IL_01bf + + IL_0194: ldarg.0 + IL_0195: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_019a: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_019f: stloc.2 + IL_01a0: ldarg.0 + IL_01a1: ldloc.2 + IL_01a2: callvirt instance string [mscorlib]System.String::ToUpper() + IL_01a7: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_01ac: ldarg.0 + IL_01ad: ldc.i4.8 + IL_01ae: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_01b3: ldc.i4.1 + IL_01b4: stloc.0 + IL_01b5: leave.s IL_01e4 + + IL_01b7: ldarg.0 + IL_01b8: ldc.i4.s -5 + IL_01ba: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_01bf: ldarg.0 + IL_01c0: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_01c5: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_01ca: brtrue.s IL_0194 + + IL_01cc: ldarg.0 + IL_01cd: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally3'() + IL_01d2: ldarg.0 + IL_01d3: ldnull + IL_01d4: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_01d9: ldc.i4.0 + IL_01da: stloc.0 + IL_01db: leave.s IL_01e4 + + } // end .try + fault + { + IL_01dd: ldarg.0 + IL_01de: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::System.IDisposable.Dispose() + IL_01e3: endfinally + } // end handler + IL_01e4: ldloc.0 + IL_01e5: ret + } // end of method 'd__11'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 27 (0x1b) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_000d: brfalse.s IL_001a + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: ret + } // end of method 'd__11'::'<>m__Finally1' + + .method private hidebysig instance void + '<>m__Finally2'() cil managed + { + // Code size 30 (0x1e) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.s -3 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0008: ldstr "Processed " + IL_000d: ldarg.0 + IL_000e: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__3' + IL_0013: call string [mscorlib]System.String::Concat(string, + string) + IL_0018: call void [mscorlib]System.Console::WriteLine(string) + IL_001d: ret + } // end of method 'd__11'::'<>m__Finally2' + + .method private hidebysig instance void + '<>m__Finally3'() cil managed + { + // Code size 27 (0x1b) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_000d: brfalse.s IL_001a + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>7__wrap1' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: ret + } // end of method 'd__11'::'<>m__Finally3' + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0006: ret + } // end of method 'd__11'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__11'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0006: ret + } // end of method 'd__11'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>3__input' + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::input + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__11'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__11'::System.Collections.IEnumerable.GetEnumerator + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__11'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__11'::System.Collections.IEnumerator.Current + } // end of class 'd__11' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass12_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public string line + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ret + } // end of method '<>c__DisplayClass12_0'::.ctor + + .method assembly hidebysig instance string + 'b__0'() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0'::line + IL_0006: ret + } // end of method '<>c__DisplayClass12_0'::'b__0' + + } // end of class '<>c__DisplayClass12_0' + + .class auto ansi sealed nested private beforefieldinit 'd__12' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1>, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1>, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private class [mscorlib]System.Func`1 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field private class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap1' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__12'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 27 (0x1b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0010 + + IL_000c: ldloc.0 + IL_000d: ldc.i4.1 + IL_000e: bne.un.s IL_001a + + IL_0010: nop + .try + { + IL_0011: leave.s IL_001a + + } // end .try + finally + { + IL_0013: ldarg.0 + IL_0014: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>m__Finally1'() + IL_0019: endfinally + } // end handler + IL_001a: ret + } // end of method 'd__12'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 154 (0x9a) + .maxstack 3 + .locals init (bool V_0, + int32 V_1, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0' V_2) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: brfalse.s IL_0015 + + IL_000a: ldloc.1 + IL_000b: ldc.i4.1 + IL_000c: beq.s IL_006b + + IL_000e: ldc.i4.0 + IL_000f: stloc.0 + IL_0010: leave IL_0098 + + IL_0015: ldarg.0 + IL_0016: ldc.i4.m1 + IL_0017: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_001c: ldarg.0 + IL_001d: ldarg.0 + IL_001e: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::input + IL_0023: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0028: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>7__wrap1' + IL_002d: ldarg.0 + IL_002e: ldc.i4.s -3 + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0035: br.s IL_0073 + + IL_0037: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0'::.ctor() + IL_003c: stloc.2 + IL_003d: ldloc.2 + IL_003e: ldarg.0 + IL_003f: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>7__wrap1' + IL_0044: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0049: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0'::line + IL_004e: ldarg.0 + IL_004f: ldloc.2 + IL_0050: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0'::'b__0'() + IL_0056: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_005b: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>2__current' + IL_0060: ldarg.0 + IL_0061: ldc.i4.1 + IL_0062: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0067: ldc.i4.1 + IL_0068: stloc.0 + IL_0069: leave.s IL_0098 + + IL_006b: ldarg.0 + IL_006c: ldc.i4.s -3 + IL_006e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0073: ldarg.0 + IL_0074: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>7__wrap1' + IL_0079: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_007e: brtrue.s IL_0037 + + IL_0080: ldarg.0 + IL_0081: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>m__Finally1'() + IL_0086: ldarg.0 + IL_0087: ldnull + IL_0088: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>7__wrap1' + IL_008d: ldc.i4.0 + IL_008e: stloc.0 + IL_008f: leave.s IL_0098 + + } // end .try + fault + { + IL_0091: ldarg.0 + IL_0092: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::System.IDisposable.Dispose() + IL_0097: endfinally + } // end handler + IL_0098: ldloc.0 + IL_0099: ret + } // end of method 'd__12'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 27 (0x1b) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>7__wrap1' + IL_000d: brfalse.s IL_001a + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>7__wrap1' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: ret + } // end of method 'd__12'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1>::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>2__current' + IL_0006: ret + } // end of method 'd__12'::'System.Collections.Generic.IEnumerator>.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__12'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>2__current' + IL_0006: ret + } // end of method 'd__12'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1> + 'System.Collections.Generic.IEnumerable>.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1>::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>3__input' + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::input + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__12'::'System.Collections.Generic.IEnumerable>.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'System.Collections.Generic.IEnumerable>.GetEnumerator'() + IL_0006: ret + } // end of method 'd__12'::System.Collections.IEnumerable.GetEnumerator + + .property instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.Current'() + { + .get instance class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'System.Collections.Generic.IEnumerator>.get_Current'() + } // end of property 'd__12'::'System.Collections.Generic.IEnumerator>.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__12'::System.Collections.IEnumerator.Current + } // end of class 'd__12' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass13_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public string copy + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ret + } // end of method '<>c__DisplayClass13_0'::.ctor + + .method assembly hidebysig instance string + 'b__0'() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0'::copy + IL_0006: ret + } // end of method '<>c__DisplayClass13_0'::'b__0' + + } // end of class '<>c__DisplayClass13_0' + + .class auto ansi sealed nested private beforefieldinit 'd__13' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1>, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1>, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private class [mscorlib]System.Func`1 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field private class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>7__wrap1' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__13'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 27 (0x1b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0010 + + IL_000c: ldloc.0 + IL_000d: ldc.i4.1 + IL_000e: bne.un.s IL_001a + + IL_0010: nop + .try + { + IL_0011: leave.s IL_001a + + } // end .try + finally + { + IL_0013: ldarg.0 + IL_0014: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>m__Finally1'() + IL_0019: endfinally + } // end handler + IL_001a: ret + } // end of method 'd__13'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 156 (0x9c) + .maxstack 3 + .locals init (bool V_0, + int32 V_1, + string V_2, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0' V_3) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: brfalse.s IL_0015 + + IL_000a: ldloc.1 + IL_000b: ldc.i4.1 + IL_000c: beq.s IL_006d + + IL_000e: ldc.i4.0 + IL_000f: stloc.0 + IL_0010: leave IL_009a + + IL_0015: ldarg.0 + IL_0016: ldc.i4.m1 + IL_0017: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_001c: ldarg.0 + IL_001d: ldarg.0 + IL_001e: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::input + IL_0023: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0028: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>7__wrap1' + IL_002d: ldarg.0 + IL_002e: ldc.i4.s -3 + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0035: br.s IL_0075 + + IL_0037: ldarg.0 + IL_0038: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>7__wrap1' + IL_003d: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0042: stloc.2 + IL_0043: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0'::.ctor() + IL_0048: stloc.3 + IL_0049: ldloc.3 + IL_004a: ldloc.2 + IL_004b: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0'::copy + IL_0050: ldarg.0 + IL_0051: ldloc.3 + IL_0052: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0'::'b__0'() + IL_0058: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_005d: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>2__current' + IL_0062: ldarg.0 + IL_0063: ldc.i4.1 + IL_0064: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0069: ldc.i4.1 + IL_006a: stloc.0 + IL_006b: leave.s IL_009a + + IL_006d: ldarg.0 + IL_006e: ldc.i4.s -3 + IL_0070: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0075: ldarg.0 + IL_0076: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>7__wrap1' + IL_007b: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0080: brtrue.s IL_0037 + + IL_0082: ldarg.0 + IL_0083: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>m__Finally1'() + IL_0088: ldarg.0 + IL_0089: ldnull + IL_008a: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>7__wrap1' + IL_008f: ldc.i4.0 + IL_0090: stloc.0 + IL_0091: leave.s IL_009a + + } // end .try + fault + { + IL_0093: ldarg.0 + IL_0094: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::System.IDisposable.Dispose() + IL_0099: endfinally + } // end handler + IL_009a: ldloc.0 + IL_009b: ret + } // end of method 'd__13'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 27 (0x1b) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>7__wrap1' + IL_000d: brfalse.s IL_001a + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>7__wrap1' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: ret + } // end of method 'd__13'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1>::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>2__current' + IL_0006: ret + } // end of method 'd__13'::'System.Collections.Generic.IEnumerator>.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__13'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>2__current' + IL_0006: ret + } // end of method 'd__13'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1> + 'System.Collections.Generic.IEnumerable>.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1>::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>3__input' + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::input + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__13'::'System.Collections.Generic.IEnumerable>.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'System.Collections.Generic.IEnumerable>.GetEnumerator'() + IL_0006: ret + } // end of method 'd__13'::System.Collections.IEnumerable.GetEnumerator + + .property instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.Current'() + { + .get instance class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'System.Collections.Generic.IEnumerator>.get_Current'() + } // end of property 'd__13'::'System.Collections.Generic.IEnumerator>.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__13'::System.Collections.IEnumerator.Current + } // end of class 'd__13' + + .class auto ansi sealed nested private beforefieldinit 'd__14' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private int32 n + .field public int32 '<>3__n' + .field private int32 '5__2' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__14'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__14'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 102 (0x66) + .maxstack 3 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0010 + + IL_000a: ldloc.0 + IL_000b: ldc.i4.1 + IL_000c: beq.s IL_003f + + IL_000e: ldc.i4.0 + IL_000f: ret + + IL_0010: ldarg.0 + IL_0011: ldc.i4.m1 + IL_0012: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__2' + IL_001e: br.s IL_0056 + + IL_0020: ldarg.0 + IL_0021: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__2' + IL_0026: ldc.i4.2 + IL_0027: rem + IL_0028: brtrue.s IL_0046 + + IL_002a: ldarg.0 + IL_002b: ldarg.0 + IL_002c: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__2' + IL_0031: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>2__current' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_003d: ldc.i4.1 + IL_003e: ret + + IL_003f: ldarg.0 + IL_0040: ldc.i4.m1 + IL_0041: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_0046: ldarg.0 + IL_0047: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__2' + IL_004c: stloc.1 + IL_004d: ldarg.0 + IL_004e: ldloc.1 + IL_004f: ldc.i4.1 + IL_0050: add + IL_0051: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__2' + IL_0056: ldarg.0 + IL_0057: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__2' + IL_005c: ldarg.0 + IL_005d: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::n + IL_0062: blt.s IL_0020 + + IL_0064: ldc.i4.0 + IL_0065: ret + } // end of method 'd__14'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>2__current' + IL_0006: ret + } // end of method 'd__14'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__14'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__14'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>3__n' + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::n + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__14'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__14'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__14'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__14'::System.Collections.IEnumerator.Current + } // end of class 'd__14' + + .class auto ansi sealed nested private beforefieldinit 'd__15' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private char '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__15'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 27 (0x1b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0010 + + IL_000c: ldloc.0 + IL_000d: ldc.i4.3 + IL_000e: bne.un.s IL_001a + + IL_0010: nop + .try + { + IL_0011: leave.s IL_001a + + } // end .try + finally + { + IL_0013: ldarg.0 + IL_0014: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally1'() + IL_0019: endfinally + } // end handler + IL_001a: ret + } // end of method 'd__15'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 200 (0xc8) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0024, + IL_0041, + IL_0074, + IL_00ad) + IL_001d: ldc.i4.0 + IL_001e: stloc.0 + IL_001f: leave IL_00c6 + + IL_0024: ldarg.0 + IL_0025: ldc.i4.m1 + IL_0026: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_002b: ldarg.0 + IL_002c: ldc.i4.s 97 + IL_002e: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0033: ldarg.0 + IL_0034: ldc.i4.1 + IL_0035: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_003a: ldc.i4.1 + IL_003b: stloc.0 + IL_003c: leave IL_00c6 + + IL_0041: ldarg.0 + IL_0042: ldc.i4.m1 + IL_0043: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + .try + { + IL_0048: ldstr "1 - try" + IL_004d: call void [mscorlib]System.Console::WriteLine(string) + IL_0052: leave.s IL_0061 + + } // end .try + catch [mscorlib]System.Exception + { + IL_0054: pop + IL_0055: ldstr "1 - catch" + IL_005a: call void [mscorlib]System.Console::WriteLine(string) + IL_005f: leave.s IL_0061 + + } // end handler + IL_0061: ldarg.0 + IL_0062: ldc.i4.s 98 + IL_0064: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0069: ldarg.0 + IL_006a: ldc.i4.2 + IL_006b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0070: ldc.i4.1 + IL_0071: stloc.0 + IL_0072: leave.s IL_00c6 + + IL_0074: ldarg.0 + IL_0075: ldc.i4.m1 + IL_0076: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_007b: ldarg.0 + IL_007c: ldc.i4.s -3 + IL_007e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + .try + { + IL_0083: ldstr "2 - try" + IL_0088: call void [mscorlib]System.Console::WriteLine(string) + IL_008d: leave.s IL_009a + + } // end .try + finally + { + IL_008f: ldstr "2 - finally" + IL_0094: call void [mscorlib]System.Console::WriteLine(string) + IL_0099: endfinally + } // end handler + IL_009a: ldarg.0 + IL_009b: ldc.i4.s 99 + IL_009d: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_00a2: ldarg.0 + IL_00a3: ldc.i4.3 + IL_00a4: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00a9: ldc.i4.1 + IL_00aa: stloc.0 + IL_00ab: leave.s IL_00c6 + + IL_00ad: ldarg.0 + IL_00ae: ldc.i4.s -3 + IL_00b0: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00b5: ldarg.0 + IL_00b6: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally1'() + IL_00bb: ldc.i4.0 + IL_00bc: stloc.0 + IL_00bd: leave.s IL_00c6 + + } // end .try + fault + { + IL_00bf: ldarg.0 + IL_00c0: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::System.IDisposable.Dispose() + IL_00c5: endfinally + } // end handler + IL_00c6: ldloc.0 + IL_00c7: ret + } // end of method 'd__15'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0007: ldstr "outer finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__15'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance char 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0006: ret + } // end of method 'd__15'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__15'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0006: box [mscorlib]System.Char + IL_000b: ret + } // end of method 'd__15'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__15'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__15'::System.Collections.IEnumerable.GetEnumerator + + .property instance char 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__15'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__15'::System.Collections.IEnumerator.Current + } // end of class 'd__15' + + .class auto ansi sealed nested private beforefieldinit 'd__16' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__16'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__16'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 101 (0x65) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001b, + IL_0032, + IL_005a) + IL_0019: ldc.i4.0 + IL_001a: ret + + IL_001b: ldarg.0 + IL_001c: ldc.i4.m1 + IL_001d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>2__current' + IL_0029: ldarg.0 + IL_002a: ldc.i4.1 + IL_002b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_0030: ldc.i4.1 + IL_0031: ret + + IL_0032: ldarg.0 + IL_0033: ldc.i4.m1 + IL_0034: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + .try + { + IL_0039: ldstr "In Try" + IL_003e: call void [mscorlib]System.Console::WriteLine(string) + IL_0043: leave.s IL_004a + + } // end .try + catch [mscorlib]System.Object + { + IL_0045: pop + IL_0046: ldc.i4.0 + IL_0047: stloc.0 + IL_0048: leave.s IL_0063 + + } // end handler + IL_004a: ldarg.0 + IL_004b: ldc.i4.1 + IL_004c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>2__current' + IL_0051: ldarg.0 + IL_0052: ldc.i4.2 + IL_0053: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_0058: ldc.i4.1 + IL_0059: ret + + IL_005a: ldarg.0 + IL_005b: ldc.i4.m1 + IL_005c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_0061: ldc.i4.0 + IL_0062: ret + + IL_0063: ldloc.0 + IL_0064: ret + } // end of method 'd__16'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>2__current' + IL_0006: ret + } // end of method 'd__16'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__16'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__16'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__16'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__16'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__16'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__16'::System.Collections.IEnumerator.Current + } // end of class 'd__16' + + .class auto ansi sealed nested private beforefieldinit 'd__17' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__17'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 29 (0x1d) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0012 + + IL_000c: ldloc.0 + IL_000d: ldc.i4.1 + IL_000e: sub + IL_000f: ldc.i4.1 + IL_0010: bgt.un.s IL_001c + + IL_0012: nop + .try + { + IL_0013: leave.s IL_001c + + } // end .try + finally + { + IL_0015: ldarg.0 + IL_0016: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>m__Finally1'() + IL_001b: endfinally + } // end handler + IL_001c: ret + } // end of method 'd__17'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 142 (0x8e) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001d, + IL_003e, + IL_0069) + IL_0019: ldc.i4.0 + IL_001a: stloc.0 + IL_001b: leave.s IL_008c + + IL_001d: ldarg.0 + IL_001e: ldc.i4.m1 + IL_001f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0024: ldarg.0 + IL_0025: ldc.i4.s -3 + IL_0027: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_002c: ldarg.0 + IL_002d: ldc.i4.0 + IL_002e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>2__current' + IL_0033: ldarg.0 + IL_0034: ldc.i4.1 + IL_0035: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_003a: ldc.i4.1 + IL_003b: stloc.0 + IL_003c: leave.s IL_008c + + IL_003e: ldarg.0 + IL_003f: ldc.i4.s -3 + IL_0041: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + .try + { + IL_0046: ldstr "In Try" + IL_004b: call void [mscorlib]System.Console::WriteLine(string) + IL_0050: leave.s IL_0057 + + } // end .try + catch [mscorlib]System.Object + { + IL_0052: pop + IL_0053: ldc.i4.0 + IL_0054: stloc.0 + IL_0055: leave.s IL_0079 + + } // end handler + IL_0057: ldarg.0 + IL_0058: ldc.i4.1 + IL_0059: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>2__current' + IL_005e: ldarg.0 + IL_005f: ldc.i4.2 + IL_0060: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0065: ldc.i4.1 + IL_0066: stloc.0 + IL_0067: leave.s IL_008c + + IL_0069: ldarg.0 + IL_006a: ldc.i4.s -3 + IL_006c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0071: ldarg.0 + IL_0072: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>m__Finally1'() + IL_0077: br.s IL_0081 + + IL_0079: ldarg.0 + IL_007a: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>m__Finally1'() + IL_007f: leave.s IL_008c + + IL_0081: ldc.i4.0 + IL_0082: stloc.0 + IL_0083: leave.s IL_008c + + } // end .try + fault + { + IL_0085: ldarg.0 + IL_0086: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::System.IDisposable.Dispose() + IL_008b: endfinally + } // end handler + IL_008c: ldloc.0 + IL_008d: ret + } // end of method 'd__17'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0007: ldstr "Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__17'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>2__current' + IL_0006: ret + } // end of method 'd__17'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__17'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__17'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__17'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__17'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__17'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__17'::System.Collections.IEnumerator.Current + } // end of class 'd__17' + + .class auto ansi sealed nested private beforefieldinit 'd__18' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__18'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 29 (0x1d) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0012 + + IL_000c: ldloc.0 + IL_000d: ldc.i4.1 + IL_000e: sub + IL_000f: ldc.i4.1 + IL_0010: bgt.un.s IL_001c + + IL_0012: nop + .try + { + IL_0013: leave.s IL_001c + + } // end .try + finally + { + IL_0015: ldarg.0 + IL_0016: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>m__Finally1'() + IL_001b: endfinally + } // end handler + IL_001c: ret + } // end of method 'd__18'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 152 (0x98) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001d, + IL_003e, + IL_0073) + IL_0019: ldc.i4.0 + IL_001a: stloc.0 + IL_001b: leave.s IL_0096 + + IL_001d: ldarg.0 + IL_001e: ldc.i4.m1 + IL_001f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0024: ldarg.0 + IL_0025: ldc.i4.s -3 + IL_0027: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_002c: ldarg.0 + IL_002d: ldc.i4.0 + IL_002e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>2__current' + IL_0033: ldarg.0 + IL_0034: ldc.i4.1 + IL_0035: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_003a: ldc.i4.1 + IL_003b: stloc.0 + IL_003c: leave.s IL_0096 + + IL_003e: ldarg.0 + IL_003f: ldc.i4.s -3 + IL_0041: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + .try + { + IL_0046: ldstr "In Try" + IL_004b: call void [mscorlib]System.Console::WriteLine(string) + IL_0050: ldc.i4.0 + IL_0051: stloc.0 + IL_0052: leave.s IL_0083 + + } // end .try + catch [mscorlib]System.Object + { + IL_0054: pop + IL_0055: ldstr "Catch" + IL_005a: call void [mscorlib]System.Console::WriteLine(string) + IL_005f: leave.s IL_0061 + + } // end handler + IL_0061: ldarg.0 + IL_0062: ldc.i4.1 + IL_0063: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>2__current' + IL_0068: ldarg.0 + IL_0069: ldc.i4.2 + IL_006a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_006f: ldc.i4.1 + IL_0070: stloc.0 + IL_0071: leave.s IL_0096 + + IL_0073: ldarg.0 + IL_0074: ldc.i4.s -3 + IL_0076: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_007b: ldarg.0 + IL_007c: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>m__Finally1'() + IL_0081: br.s IL_008b + + IL_0083: ldarg.0 + IL_0084: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>m__Finally1'() + IL_0089: leave.s IL_0096 + + IL_008b: ldc.i4.0 + IL_008c: stloc.0 + IL_008d: leave.s IL_0096 + + } // end .try + fault + { + IL_008f: ldarg.0 + IL_0090: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::System.IDisposable.Dispose() + IL_0095: endfinally + } // end handler + IL_0096: ldloc.0 + IL_0097: ret + } // end of method 'd__18'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0007: ldstr "Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__18'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>2__current' + IL_0006: ret + } // end of method 'd__18'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__18'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__18'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__18'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__18'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__18'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__18'::System.Collections.IEnumerator.Current + } // end of class 'd__18' + + .class auto ansi sealed nested private beforefieldinit 'd__19' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private bool b + .field public bool '<>3__b' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__19'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 29 (0x1d) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0012 + + IL_000c: ldloc.0 + IL_000d: ldc.i4.1 + IL_000e: sub + IL_000f: ldc.i4.1 + IL_0010: bgt.un.s IL_001c + + IL_0012: nop + .try + { + IL_0013: leave.s IL_001c + + } // end .try + finally + { + IL_0015: ldarg.0 + IL_0016: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>m__Finally1'() + IL_001b: endfinally + } // end handler + IL_001c: ret + } // end of method 'd__19'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 163 (0xa3) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0020, + IL_0041, + IL_007e) + IL_0019: ldc.i4.0 + IL_001a: stloc.0 + IL_001b: leave IL_00a1 + + IL_0020: ldarg.0 + IL_0021: ldc.i4.m1 + IL_0022: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0027: ldarg.0 + IL_0028: ldc.i4.s -3 + IL_002a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_002f: ldarg.0 + IL_0030: ldc.i4.0 + IL_0031: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>2__current' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_003d: ldc.i4.1 + IL_003e: stloc.0 + IL_003f: leave.s IL_00a1 + + IL_0041: ldarg.0 + IL_0042: ldc.i4.s -3 + IL_0044: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + .try + { + IL_0049: ldstr "In Try" + IL_004e: call void [mscorlib]System.Console::WriteLine(string) + IL_0053: ldarg.0 + IL_0054: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::b + IL_0059: brfalse.s IL_005f + + IL_005b: ldc.i4.0 + IL_005c: stloc.0 + IL_005d: leave.s IL_008e + + IL_005f: leave.s IL_006c + + } // end .try + finally + { + IL_0061: ldstr "Inner Finally" + IL_0066: call void [mscorlib]System.Console::WriteLine(string) + IL_006b: endfinally + } // end handler + IL_006c: ldarg.0 + IL_006d: ldc.i4.1 + IL_006e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>2__current' + IL_0073: ldarg.0 + IL_0074: ldc.i4.2 + IL_0075: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_007a: ldc.i4.1 + IL_007b: stloc.0 + IL_007c: leave.s IL_00a1 + + IL_007e: ldarg.0 + IL_007f: ldc.i4.s -3 + IL_0081: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0086: ldarg.0 + IL_0087: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>m__Finally1'() + IL_008c: br.s IL_0096 + + IL_008e: ldarg.0 + IL_008f: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>m__Finally1'() + IL_0094: leave.s IL_00a1 + + IL_0096: ldc.i4.0 + IL_0097: stloc.0 + IL_0098: leave.s IL_00a1 + + } // end .try + fault + { + IL_009a: ldarg.0 + IL_009b: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::System.IDisposable.Dispose() + IL_00a0: endfinally + } // end handler + IL_00a1: ldloc.0 + IL_00a2: ret + } // end of method 'd__19'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0007: ldstr "Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__19'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>2__current' + IL_0006: ret + } // end of method 'd__19'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__19'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__19'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>3__b' + IL_0030: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::b + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__19'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__19'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__19'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__19'::System.Collections.IEnumerator.Current + } // end of class 'd__19' + + .class auto ansi sealed nested private beforefieldinit 'd__20' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__20'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__20'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 21 (0x15) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_000c + + IL_000a: ldc.i4.0 + IL_000b: ret + + IL_000c: ldarg.0 + IL_000d: ldc.i4.m1 + IL_000e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>1__state' + IL_0013: ldc.i4.0 + IL_0014: ret + } // end of method 'd__20'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>2__current' + IL_0006: ret + } // end of method 'd__20'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__20'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__20'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__20'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__20'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__20'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__20'::System.Collections.IEnumerator.Current + } // end of class 'd__20' + + .class auto ansi sealed nested private beforefieldinit 'd__21' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__21'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 27 (0x1b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0010 + + IL_000c: ldloc.0 + IL_000d: ldc.i4.1 + IL_000e: bne.un.s IL_001a + + IL_0010: nop + .try + { + IL_0011: leave.s IL_001a + + } // end .try + finally + { + IL_0013: ldarg.0 + IL_0014: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>m__Finally1'() + IL_0019: endfinally + } // end handler + IL_001a: ret + } // end of method 'd__21'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 74 (0x4a) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldloc.1 + IL_000b: ldc.i4.1 + IL_000c: beq.s IL_0033 + + IL_000e: ldc.i4.0 + IL_000f: stloc.0 + IL_0010: leave.s IL_0048 + + IL_0012: ldarg.0 + IL_0013: ldc.i4.m1 + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0019: ldarg.0 + IL_001a: ldc.i4.s -3 + IL_001c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0021: ldarg.0 + IL_0022: ldc.i4.0 + IL_0023: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>2__current' + IL_0028: ldarg.0 + IL_0029: ldc.i4.1 + IL_002a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_002f: ldc.i4.1 + IL_0030: stloc.0 + IL_0031: leave.s IL_0048 + + IL_0033: ldarg.0 + IL_0034: ldc.i4.s -3 + IL_0036: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_003b: newobj instance void [mscorlib]System.NotImplementedException::.ctor() + IL_0040: throw + + } // end .try + fault + { + IL_0041: ldarg.0 + IL_0042: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::System.IDisposable.Dispose() + IL_0047: endfinally + } // end handler + IL_0048: ldloc.0 + IL_0049: ret + } // end of method 'd__21'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0007: ldstr "Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__21'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>2__current' + IL_0006: ret + } // end of method 'd__21'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__21'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__21'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__21'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__21'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__21'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__21'::System.Collections.IEnumerator.Current + } // end of class 'd__21' + + .class auto ansi sealed nested private beforefieldinit 'd__22' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__22'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 48 (0x30) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -4 + IL_000a: sub + IL_000b: ldc.i4.1 + IL_000c: ble.un.s IL_0012 + + IL_000e: ldloc.0 + IL_000f: ldc.i4.1 + IL_0010: bne.un.s IL_002f + + IL_0012: nop + .try + { + IL_0013: ldloc.0 + IL_0014: ldc.i4.s -4 + IL_0016: beq.s IL_001e + + IL_0018: ldloc.0 + IL_0019: ldc.i4.1 + IL_001a: beq.s IL_001e + + IL_001c: leave.s IL_002f + + IL_001e: nop + .try + { + IL_001f: leave.s IL_002f + + } // end .try + finally + { + IL_0021: ldarg.0 + IL_0022: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>m__Finally2'() + IL_0027: endfinally + } // end handler + } // end .try + finally + { + IL_0028: ldarg.0 + IL_0029: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>m__Finally1'() + IL_002e: endfinally + } // end handler + IL_002f: ret + } // end of method 'd__22'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 92 (0x5c) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: brfalse.s IL_0012 + + IL_000a: ldloc.1 + IL_000b: ldc.i4.1 + IL_000c: beq.s IL_003b + + IL_000e: ldc.i4.0 + IL_000f: stloc.0 + IL_0010: leave.s IL_005a + + IL_0012: ldarg.0 + IL_0013: ldc.i4.m1 + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0019: ldarg.0 + IL_001a: ldc.i4.s -3 + IL_001c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0021: ldarg.0 + IL_0022: ldc.i4.s -4 + IL_0024: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0029: ldarg.0 + IL_002a: ldc.i4.0 + IL_002b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>2__current' + IL_0030: ldarg.0 + IL_0031: ldc.i4.1 + IL_0032: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0037: ldc.i4.1 + IL_0038: stloc.0 + IL_0039: leave.s IL_005a + + IL_003b: ldarg.0 + IL_003c: ldc.i4.s -4 + IL_003e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0043: ldarg.0 + IL_0044: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>m__Finally2'() + IL_0049: ldarg.0 + IL_004a: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>m__Finally1'() + IL_004f: ldc.i4.0 + IL_0050: stloc.0 + IL_0051: leave.s IL_005a + + } // end .try + fault + { + IL_0053: ldarg.0 + IL_0054: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::System.IDisposable.Dispose() + IL_0059: endfinally + } // end handler + IL_005a: ldloc.0 + IL_005b: ret + } // end of method 'd__22'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 18 (0x12) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0007: ldstr "Outer Finally" + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: ret + } // end of method 'd__22'::'<>m__Finally1' + + .method private hidebysig instance void + '<>m__Finally2'() cil managed + { + // Code size 19 (0x13) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.s -3 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0008: ldstr "Inner Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: ret + } // end of method 'd__22'::'<>m__Finally2' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>2__current' + IL_0006: ret + } // end of method 'd__22'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__22'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__22'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__22'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__22'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__22'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__22'::System.Collections.IEnumerator.Current + } // end of class 'd__22' + + .class auto ansi sealed nested private beforefieldinit 'd__23`1'<([mscorlib]System.IDisposable) T> + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private !T a + .field public !T '<>3__a' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__23`1'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 27 (0x1b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0010 + + IL_000c: ldloc.0 + IL_000d: ldc.i4.2 + IL_000e: bne.un.s IL_001a + + IL_0010: nop + .try + { + IL_0011: leave.s IL_001a + + } // end .try + finally + { + IL_0013: ldarg.0 + IL_0014: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>m__Finally1'() + IL_0019: endfinally + } // end handler + IL_001a: ret + } // end of method 'd__23`1'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 143 (0x8f) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0021, + IL_003a, + IL_005b, + IL_007b) + IL_001d: ldc.i4.0 + IL_001e: stloc.0 + IL_001f: leave.s IL_008d + + IL_0021: ldarg.0 + IL_0022: ldc.i4.m1 + IL_0023: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0028: ldarg.0 + IL_0029: ldc.i4.1 + IL_002a: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>2__current' + IL_002f: ldarg.0 + IL_0030: ldc.i4.1 + IL_0031: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0036: ldc.i4.1 + IL_0037: stloc.0 + IL_0038: leave.s IL_008d + + IL_003a: ldarg.0 + IL_003b: ldc.i4.m1 + IL_003c: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0041: ldarg.0 + IL_0042: ldc.i4.s -3 + IL_0044: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0049: ldarg.0 + IL_004a: ldc.i4.2 + IL_004b: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>2__current' + IL_0050: ldarg.0 + IL_0051: ldc.i4.2 + IL_0052: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0057: ldc.i4.1 + IL_0058: stloc.0 + IL_0059: leave.s IL_008d + + IL_005b: ldarg.0 + IL_005c: ldc.i4.s -3 + IL_005e: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0063: ldarg.0 + IL_0064: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>m__Finally1'() + IL_0069: ldarg.0 + IL_006a: ldc.i4.3 + IL_006b: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>2__current' + IL_0070: ldarg.0 + IL_0071: ldc.i4.3 + IL_0072: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0077: ldc.i4.1 + IL_0078: stloc.0 + IL_0079: leave.s IL_008d + + IL_007b: ldarg.0 + IL_007c: ldc.i4.m1 + IL_007d: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0082: ldc.i4.0 + IL_0083: stloc.0 + IL_0084: leave.s IL_008d + + } // end .try + fault + { + IL_0086: ldarg.0 + IL_0087: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::System.IDisposable.Dispose() + IL_008c: endfinally + } // end handler + IL_008d: ldloc.0 + IL_008e: ret + } // end of method 'd__23`1'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 41 (0x29) + .maxstack 2 + .locals init (!T V_0) + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::a + IL_000d: stloc.0 + IL_000e: ldloca.s V_0 + IL_0010: constrained. !T + IL_0016: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001b: ldloca.s V_0 + IL_001d: constrained. !T + IL_0023: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0028: ret + } // end of method 'd__23`1'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>2__current' + IL_0006: ret + } // end of method 'd__23`1'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__23`1'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__23`1'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>3__a' + IL_0030: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::a + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__23`1'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__23`1'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__23`1'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__23`1'::System.Collections.IEnumerator.Current + } // end of class 'd__23`1' + + .class auto ansi sealed nested private beforefieldinit 'd__24`1'<.ctor T> + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private !T '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private !T '5__2' + .field private int32 '5__3' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__24`1'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__24`1'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 98 (0x62) + .maxstack 3 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0010 + + IL_000a: ldloc.0 + IL_000b: ldc.i4.1 + IL_000c: beq.s IL_0040 + + IL_000e: ldc.i4.0 + IL_000f: ret + + IL_0010: ldarg.0 + IL_0011: ldc.i4.m1 + IL_0012: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_0017: ldarg.0 + IL_0018: call !!0 [mscorlib]System.Activator::CreateInstance() + IL_001d: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__2' + IL_0022: ldarg.0 + IL_0023: ldc.i4.0 + IL_0024: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__3' + IL_0029: br.s IL_0057 + + IL_002b: ldarg.0 + IL_002c: ldarg.0 + IL_002d: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__2' + IL_0032: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>2__current' + IL_0037: ldarg.0 + IL_0038: ldc.i4.1 + IL_0039: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_003e: ldc.i4.1 + IL_003f: ret + + IL_0040: ldarg.0 + IL_0041: ldc.i4.m1 + IL_0042: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_0047: ldarg.0 + IL_0048: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__3' + IL_004d: stloc.1 + IL_004e: ldarg.0 + IL_004f: ldloc.1 + IL_0050: ldc.i4.1 + IL_0051: add + IL_0052: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__3' + IL_0057: ldarg.0 + IL_0058: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__3' + IL_005d: ldc.i4.3 + IL_005e: blt.s IL_002b + + IL_0060: ldc.i4.0 + IL_0061: ret + } // end of method 'd__24`1'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance !T 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>2__current' + IL_0006: ret + } // end of method 'd__24`1'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__24`1'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>2__current' + IL_0006: box !T + IL_000b: ret + } // end of method 'd__24`1'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__24`1'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__24`1'::System.Collections.IEnumerable.GetEnumerator + + .property instance !T 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance !T ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__24`1'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__24`1'::System.Collections.IEnumerator.Current + } // end of class 'd__24`1' + + .field private int32 fieldOnThis + .method public hidebysig specialname static + class [mscorlib]System.Collections.Generic.IEnumerable`1 + get_YieldChars() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 58 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..XICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 67 65 74 5F 59 69 65 6C // tyTest+d__2.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::get_YieldChars + + .method assembly hidebysig static void + Print(string name, + class [mscorlib]System.Collections.Generic.IEnumerator`1 enumerator) cil managed + { + // Code size 54 (0x36) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldstr ": Test start" + IL_0006: call string [mscorlib]System.String::Concat(string, + string) + IL_000b: call void [mscorlib]System.Console::WriteLine(string) + IL_0010: br.s IL_002d + + IL_0012: ldarg.0 + IL_0013: ldstr ": " + IL_0018: ldarg.1 + IL_0019: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_001e: box !!T + IL_0023: call string [mscorlib]System.String::Concat(object, + object, + object) + IL_0028: call void [mscorlib]System.Console::WriteLine(string) + IL_002d: ldarg.1 + IL_002e: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0033: brtrue.s IL_0012 + + IL_0035: ret + } // end of method YieldReturnPrettyTest::Print + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + SimpleYieldReturn() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..[ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 53 69 6D 70 6C 65 59 69 // tyTest+d__4.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::SimpleYieldReturn + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerator`1 + SimpleYieldReturnEnumerator() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 65 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..eICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 53 69 6D 70 6C 65 59 69 // tyTest+d__5.. + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::.ctor(int32) + IL_0006: ret + } // end of method YieldReturnPrettyTest::SimpleYieldReturnEnumerator + + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnParameters(int32 p) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5F 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // .._ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d_ + 5F 36 00 00 ) // _6.. + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>4__this' + IL_000e: dup + IL_000f: ldarg.1 + IL_0010: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>3__p' + IL_0015: ret + } // end of method YieldReturnPrettyTest::YieldReturnParameters + + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + YieldReturnParametersEnumerator(int32 p) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 69 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..iICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__7.. + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::.ctor(int32) + IL_0006: dup + IL_0007: ldarg.0 + IL_0008: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>4__this' + IL_000d: dup + IL_000e: ldarg.1 + IL_000f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::p + IL_0014: ret + } // end of method YieldReturnPrettyTest::YieldReturnParametersEnumerator + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnInLoop() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..[ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__8.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldReturnInLoop + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithTryFinally() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 63 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..cICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__9.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithNestedTryFinally(bool breakInMiddle) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 6A 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..jICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__10.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>3__breakInMiddle' + IL_000e: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithNestedTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithTwoNonNestedFinallyBlocks(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 73 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..sICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__11.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>3__input' + IL_000e: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithTwoNonNestedFinallyBlocks + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1> + YieldReturnWithAnonymousMethods1(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 6B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..kICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__12.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>3__input' + IL_000e: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithAnonymousMethods1 + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1> + YieldReturnWithAnonymousMethods2(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 6B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..kICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__13.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>3__input' + IL_000e: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithAnonymousMethods2 + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + GetEvenNumbers(int32 n) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 59 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..YICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 47 65 74 45 76 65 6E 4E // tyTest+d__14.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>3__n' + IL_000e: ret + } // end of method YieldReturnPrettyTest::GetEvenNumbers + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + ExceptionHandling() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5C 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..\ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 45 78 63 65 70 74 69 6F // tyTest+d__15. + 00 ) + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::ExceptionHandling + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInCatch() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5C 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..\ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 42 72 65 // tyTest+d__16. + 00 ) + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldBreakInCatch + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInCatchInTryFinally() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 68 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..hICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 42 72 65 // tyTest+d__17.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldBreakInCatchInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInTryCatchInTryFinally() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 6B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..kICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 42 72 65 // tyTest+d__18.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldBreakInTryCatchInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInTryFinallyInTryFinally(bool b) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 6D 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..mICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 42 72 65 // tyTest+d__19 + 00 00 ) + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>3__b' + IL_000e: ret + } // end of method YieldReturnPrettyTest::YieldBreakInTryFinallyInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakOnly() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 59 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..YICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 42 72 65 // tyTest+d__20.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldBreakOnly + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + UnconditionalThrowInTryFinally() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 69 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..iICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 55 6E 63 6F 6E 64 69 74 // tyTest+d__21.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::UnconditionalThrowInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + NestedTryFinallyStartingOnSamePosition() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 71 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..qICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 4E 65 73 74 65 64 54 72 // tyTest+d + 5F 5F 32 32 00 00 ) // __22.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::NestedTryFinallyStartingOnSamePosition + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + LocalInFinally<([mscorlib]System.IDisposable) T>(!!T a) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..[ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 4C 6F 63 61 6C 49 6E 46 // tyTest+d__23`1.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>3__a' + IL_000e: ret + } // end of method YieldReturnPrettyTest::LocalInFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + GenericYield<.ctor T>() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 59 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..YICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 47 65 6E 65 72 69 63 59 // tyTest+d__24`1.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::GenericYield + + .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 YieldReturnPrettyTest::.ctor + + .property class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldChars() + { + .get class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::get_YieldChars() + } // end of property YieldReturnPrettyTest::YieldChars +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest + +.class private sequential ansi sealed beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + extends [mscorlib]System.ValueType +{ + .class auto ansi sealed nested private beforefieldinit 'd__1' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field public valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn '<>4__this' + .field public valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn '<>3__<>4__this' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 25 (0x19) + .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 int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_000d: ldarg.0 + IL_000e: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0013: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>l__initialThreadId' + IL_0018: ret + } // end of method 'd__1'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__1'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 134 (0x86) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001b, + IL_004c, + IL_007d) + IL_0019: ldc.i4.0 + IL_001a: ret + + IL_001b: ldarg.0 + IL_001c: ldc.i4.m1 + IL_001d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_0022: ldarg.0 + IL_0023: ldarg.0 + IL_0024: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>4__this' + IL_0029: ldarg.0 + IL_002a: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>4__this' + IL_002f: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_0034: stloc.1 + IL_0035: ldloc.1 + IL_0036: ldc.i4.1 + IL_0037: add + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_003d: ldloc.1 + IL_003e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>2__current' + IL_0043: ldarg.0 + IL_0044: ldc.i4.1 + IL_0045: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_004a: ldc.i4.1 + IL_004b: ret + + IL_004c: ldarg.0 + IL_004d: ldc.i4.m1 + IL_004e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_0053: ldarg.0 + IL_0054: ldarg.0 + IL_0055: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>4__this' + IL_005a: ldarg.0 + IL_005b: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>4__this' + IL_0060: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_0065: stloc.1 + IL_0066: ldloc.1 + IL_0067: ldc.i4.1 + IL_0068: add + IL_0069: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_006e: ldloc.1 + IL_006f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>2__current' + IL_0074: ldarg.0 + IL_0075: ldc.i4.2 + IL_0076: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_007b: ldc.i4.1 + IL_007c: ret + + IL_007d: ldarg.0 + IL_007e: ldc.i4.m1 + IL_007f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_0084: ldc.i4.0 + IL_0085: ret + } // end of method 'd__1'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>2__current' + IL_0006: ret + } // end of method 'd__1'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__1'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__1'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>3__<>4__this' + IL_0030: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>4__this' + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__1'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__1'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__1'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__1'::System.Collections.IEnumerator.Current + } // end of class 'd__1' + + .field private int32 val + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 + Count() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 4F 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..OICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 53 74 72 75 63 74 57 69 74 68 59 69 65 6C 64 // .StructWithYield + 52 65 74 75 72 6E 2B 3C 43 6F 75 6E 74 3E 64 5F // Return+d_ + 5F 31 00 00 ) // _1.. + // Code size 20 (0x14) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: ldobj ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + IL_000e: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>3__<>4__this' + IL_0013: ret + } // end of method StructWithYieldReturn::Count + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.roslyn.il new file mode 100644 index 000000000..0226e10e6 --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/YieldReturn.roslyn.il @@ -0,0 +1,6641 @@ + + + + +// Metadata version: v4.0.30319 +.assembly extern mscorlib +{ + .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. + .ver 4:0:0:0 +} +.assembly YieldReturn +{ + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx + 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. + + // --- The following custom attribute is added automatically, do not uncomment ------- + // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 07 01 00 00 00 00 ) + + .permissionset reqmin + = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}} + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module YieldReturn.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 + + +// =============== CLASS MEMBERS DECLARATION =================== + +.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest + extends [mscorlib]System.Object +{ + .class auto ansi sealed nested private beforefieldinit 'd__2' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private char '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__2'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__2'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 123 (0x7b) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001f, + IL_0021, + IL_0023, + IL_0025) + IL_001d: br.s IL_0027 + + IL_001f: br.s IL_0029 + + IL_0021: br.s IL_0042 + + IL_0023: br.s IL_005a + + IL_0025: br.s IL_0072 + + IL_0027: ldc.i4.0 + IL_0028: ret + + IL_0029: ldarg.0 + IL_002a: ldc.i4.m1 + IL_002b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0030: nop + IL_0031: ldarg.0 + IL_0032: ldc.i4.s 97 + IL_0034: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>2__current' + IL_0039: ldarg.0 + IL_003a: ldc.i4.1 + IL_003b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0040: ldc.i4.1 + IL_0041: ret + + IL_0042: ldarg.0 + IL_0043: ldc.i4.m1 + IL_0044: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0049: ldarg.0 + IL_004a: ldc.i4.s 98 + IL_004c: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>2__current' + IL_0051: ldarg.0 + IL_0052: ldc.i4.2 + IL_0053: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0058: ldc.i4.1 + IL_0059: ret + + IL_005a: ldarg.0 + IL_005b: ldc.i4.m1 + IL_005c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0061: ldarg.0 + IL_0062: ldc.i4.s 99 + IL_0064: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>2__current' + IL_0069: ldarg.0 + IL_006a: ldc.i4.3 + IL_006b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0070: ldc.i4.1 + IL_0071: ret + + IL_0072: ldarg.0 + IL_0073: ldc.i4.m1 + IL_0074: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0079: ldc.i4.0 + IL_007a: ret + } // end of method 'd__2'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance char 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>2__current' + IL_0006: ret + } // end of method 'd__2'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__2'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>2__current' + IL_0006: box [mscorlib]System.Char + IL_000b: ret + } // end of method 'd__2'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__2'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__2'::System.Collections.IEnumerable.GetEnumerator + + .property instance char 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__2'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__2'::System.Collections.IEnumerator.Current + } // end of class 'd__2' + + .class auto ansi sealed nested private beforefieldinit 'd__4' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private string '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__4'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__4'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 132 (0x84) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001f, + IL_0021, + IL_0023, + IL_0025) + IL_001d: br.s IL_0027 + + IL_001f: br.s IL_0029 + + IL_0021: br.s IL_0045 + + IL_0023: br.s IL_0060 + + IL_0025: br.s IL_007b + + IL_0027: ldc.i4.0 + IL_0028: ret + + IL_0029: ldarg.0 + IL_002a: ldc.i4.m1 + IL_002b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0030: nop + IL_0031: ldarg.0 + IL_0032: ldstr "A" + IL_0037: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>2__current' + IL_003c: ldarg.0 + IL_003d: ldc.i4.1 + IL_003e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0043: ldc.i4.1 + IL_0044: ret + + IL_0045: ldarg.0 + IL_0046: ldc.i4.m1 + IL_0047: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_004c: ldarg.0 + IL_004d: ldstr "B" + IL_0052: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>2__current' + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_005e: ldc.i4.1 + IL_005f: ret + + IL_0060: ldarg.0 + IL_0061: ldc.i4.m1 + IL_0062: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0067: ldarg.0 + IL_0068: ldstr "C" + IL_006d: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>2__current' + IL_0072: ldarg.0 + IL_0073: ldc.i4.3 + IL_0074: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0079: ldc.i4.1 + IL_007a: ret + + IL_007b: ldarg.0 + IL_007c: ldc.i4.m1 + IL_007d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0082: ldc.i4.0 + IL_0083: ret + } // end of method 'd__4'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>2__current' + IL_0006: ret + } // end of method 'd__4'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__4'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>2__current' + IL_0006: ret + } // end of method 'd__4'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__4'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__4'::System.Collections.IEnumerable.GetEnumerator + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__4'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__4'::System.Collections.IEnumerator.Current + } // end of class 'd__4' + + .class auto ansi sealed nested private beforefieldinit 'd__5' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private string '<>2__current' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_000e: ret + } // end of method 'd__5'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__5'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 132 (0x84) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001f, + IL_0021, + IL_0023, + IL_0025) + IL_001d: br.s IL_0027 + + IL_001f: br.s IL_0029 + + IL_0021: br.s IL_0045 + + IL_0023: br.s IL_0060 + + IL_0025: br.s IL_007b + + IL_0027: ldc.i4.0 + IL_0028: ret + + IL_0029: ldarg.0 + IL_002a: ldc.i4.m1 + IL_002b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0030: nop + IL_0031: ldarg.0 + IL_0032: ldstr "A" + IL_0037: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>2__current' + IL_003c: ldarg.0 + IL_003d: ldc.i4.1 + IL_003e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0043: ldc.i4.1 + IL_0044: ret + + IL_0045: ldarg.0 + IL_0046: ldc.i4.m1 + IL_0047: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_004c: ldarg.0 + IL_004d: ldstr "B" + IL_0052: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>2__current' + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_005e: ldc.i4.1 + IL_005f: ret + + IL_0060: ldarg.0 + IL_0061: ldc.i4.m1 + IL_0062: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0067: ldarg.0 + IL_0068: ldstr "C" + IL_006d: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>2__current' + IL_0072: ldarg.0 + IL_0073: ldc.i4.3 + IL_0074: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0079: ldc.i4.1 + IL_007a: ret + + IL_007b: ldarg.0 + IL_007c: ldc.i4.m1 + IL_007d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>1__state' + IL_0082: ldc.i4.0 + IL_0083: ret + } // end of method 'd__5'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>2__current' + IL_0006: ret + } // end of method 'd__5'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__5'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'<>2__current' + IL_0006: ret + } // end of method 'd__5'::System.Collections.IEnumerator.get_Current + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__5'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__5'::System.Collections.IEnumerator.Current + } // end of class 'd__5' + + .class auto ansi sealed nested private beforefieldinit 'd__6' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private int32 p + .field public int32 '<>3__p' + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest '<>4__this' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__6'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__6'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 106 (0x6a) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001b, + IL_001d, + IL_001f) + IL_0019: br.s IL_0021 + + IL_001b: br.s IL_0023 + + IL_001d: br.s IL_0040 + + IL_001f: br.s IL_0061 + + IL_0021: ldc.i4.0 + IL_0022: ret + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: ldarg.0 + IL_002d: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::p + IL_0032: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0037: ldarg.0 + IL_0038: ldc.i4.1 + IL_0039: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_003e: ldc.i4.1 + IL_003f: ret + + IL_0040: ldarg.0 + IL_0041: ldc.i4.m1 + IL_0042: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0047: ldarg.0 + IL_0048: ldarg.0 + IL_0049: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>4__this' + IL_004e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::fieldOnThis + IL_0053: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0058: ldarg.0 + IL_0059: ldc.i4.2 + IL_005a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_005f: ldc.i4.1 + IL_0060: ret + + IL_0061: ldarg.0 + IL_0062: ldc.i4.m1 + IL_0063: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0068: ldc.i4.0 + IL_0069: ret + } // end of method 'd__6'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0006: ret + } // end of method 'd__6'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__6'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__6'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 67 (0x43) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0035 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>4__this' + IL_0030: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>4__this' + IL_0035: ldloc.0 + IL_0036: ldarg.0 + IL_0037: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>3__p' + IL_003c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::p + IL_0041: ldloc.0 + IL_0042: ret + } // end of method 'd__6'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__6'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__6'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__6'::System.Collections.IEnumerator.Current + } // end of class 'd__6' + + .class auto ansi sealed nested private beforefieldinit 'd__7' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field public int32 p + .field public class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest '<>4__this' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_000e: ret + } // end of method 'd__7'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__7'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 106 (0x6a) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001b, + IL_001d, + IL_001f) + IL_0019: br.s IL_0021 + + IL_001b: br.s IL_0023 + + IL_001d: br.s IL_0040 + + IL_001f: br.s IL_0061 + + IL_0021: ldc.i4.0 + IL_0022: ret + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: ldarg.0 + IL_002d: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::p + IL_0032: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>2__current' + IL_0037: ldarg.0 + IL_0038: ldc.i4.1 + IL_0039: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_003e: ldc.i4.1 + IL_003f: ret + + IL_0040: ldarg.0 + IL_0041: ldc.i4.m1 + IL_0042: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_0047: ldarg.0 + IL_0048: ldarg.0 + IL_0049: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>4__this' + IL_004e: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::fieldOnThis + IL_0053: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>2__current' + IL_0058: ldarg.0 + IL_0059: ldc.i4.2 + IL_005a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_005f: ldc.i4.1 + IL_0060: ret + + IL_0061: ldarg.0 + IL_0062: ldc.i4.m1 + IL_0063: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>1__state' + IL_0068: ldc.i4.0 + IL_0069: ret + } // end of method 'd__7'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>2__current' + IL_0006: ret + } // end of method 'd__7'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__7'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__7'::System.Collections.IEnumerator.get_Current + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__7'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__7'::System.Collections.IEnumerator.Current + } // end of class 'd__7' + + .class auto ansi sealed nested private beforefieldinit 'd__8' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private int32 '5__1' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__8'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__8'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 103 (0x67) + .maxstack 3 + .locals init (int32 V_0, + int32 V_1, + bool V_2) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: br.s IL_000c + + IL_000c: ldloc.0 + IL_000d: ldc.i4.1 + IL_000e: beq.s IL_0014 + + IL_0010: br.s IL_0016 + + IL_0012: br.s IL_0018 + + IL_0014: br.s IL_003f + + IL_0016: ldc.i4.0 + IL_0017: ret + + IL_0018: ldarg.0 + IL_0019: ldc.i4.m1 + IL_001a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_001f: nop + IL_0020: ldarg.0 + IL_0021: ldc.i4.0 + IL_0022: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'5__1' + IL_0027: br.s IL_0057 + + IL_0029: nop + IL_002a: ldarg.0 + IL_002b: ldarg.0 + IL_002c: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'5__1' + IL_0031: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_003d: ldc.i4.1 + IL_003e: ret + + IL_003f: ldarg.0 + IL_0040: ldc.i4.m1 + IL_0041: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0046: nop + IL_0047: ldarg.0 + IL_0048: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'5__1' + IL_004d: stloc.1 + IL_004e: ldarg.0 + IL_004f: ldloc.1 + IL_0050: ldc.i4.1 + IL_0051: add + IL_0052: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'5__1' + IL_0057: ldarg.0 + IL_0058: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'5__1' + IL_005d: ldc.i4.s 100 + IL_005f: clt + IL_0061: stloc.2 + IL_0062: ldloc.2 + IL_0063: brtrue.s IL_0029 + + IL_0065: ldc.i4.0 + IL_0066: ret + } // end of method 'd__8'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_0006: ret + } // end of method 'd__8'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__8'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__8'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__8'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__8'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__8'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__8'::System.Collections.IEnumerator.Current + } // end of class 'd__8' + + .class auto ansi sealed nested private beforefieldinit 'd__9' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__9'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 33 (0x21) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0014 + + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ldc.i4.2 + IL_0010: beq.s IL_0014 + + IL_0012: br.s IL_0020 + + IL_0014: nop + .try + { + IL_0015: leave.s IL_001e + + } // end .try + finally + { + IL_0017: ldarg.0 + IL_0018: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>m__Finally1'() + IL_001d: endfinally + } // end handler + IL_001e: br.s IL_0020 + + IL_0020: ret + } // end of method 'd__9'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 158 (0x9e) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001f, + IL_0021, + IL_0023, + IL_0025) + IL_001d: br.s IL_0027 + + IL_001f: br.s IL_002b + + IL_0021: br.s IL_0045 + + IL_0023: br.s IL_0067 + + IL_0025: br.s IL_0089 + + IL_0027: ldc.i4.0 + IL_0028: stloc.0 + IL_0029: leave.s IL_009c + + IL_002b: ldarg.0 + IL_002c: ldc.i4.m1 + IL_002d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0032: nop + IL_0033: ldarg.0 + IL_0034: ldc.i4.0 + IL_0035: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>2__current' + IL_003a: ldarg.0 + IL_003b: ldc.i4.1 + IL_003c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0041: ldc.i4.1 + IL_0042: stloc.0 + IL_0043: leave.s IL_009c + + IL_0045: ldarg.0 + IL_0046: ldc.i4.m1 + IL_0047: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_004c: ldarg.0 + IL_004d: ldc.i4.s -3 + IL_004f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0054: nop + IL_0055: ldarg.0 + IL_0056: ldc.i4.1 + IL_0057: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>2__current' + IL_005c: ldarg.0 + IL_005d: ldc.i4.2 + IL_005e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0063: ldc.i4.1 + IL_0064: stloc.0 + IL_0065: leave.s IL_009c + + IL_0067: ldarg.0 + IL_0068: ldc.i4.s -3 + IL_006a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_006f: nop + IL_0070: ldarg.0 + IL_0071: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>m__Finally1'() + IL_0076: nop + IL_0077: ldarg.0 + IL_0078: ldc.i4.2 + IL_0079: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>2__current' + IL_007e: ldarg.0 + IL_007f: ldc.i4.3 + IL_0080: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0085: ldc.i4.1 + IL_0086: stloc.0 + IL_0087: leave.s IL_009c + + IL_0089: ldarg.0 + IL_008a: ldc.i4.m1 + IL_008b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0090: ldc.i4.0 + IL_0091: stloc.0 + IL_0092: leave.s IL_009c + + } // end .try + fault + { + IL_0094: ldarg.0 + IL_0095: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::System.IDisposable.Dispose() + IL_009a: nop + IL_009b: endfinally + } // end handler + IL_009c: ldloc.0 + IL_009d: ret + } // end of method 'd__9'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0007: nop + IL_0008: ldstr "Finally!" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__9'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>2__current' + IL_0006: ret + } // end of method 'd__9'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__9'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__9'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__9'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__9'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__9'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__9'::System.Collections.IEnumerator.Current + } // end of class 'd__9' + + .class auto ansi sealed nested private beforefieldinit 'd__10' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private string '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private bool breakInMiddle + .field public bool '<>3__breakInMiddle' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__10'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 64 (0x40) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -4 + IL_000a: sub + IL_000b: ldc.i4.1 + IL_000c: ble.un.s IL_0018 + + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ldc.i4.2 + IL_0012: sub + IL_0013: ldc.i4.3 + IL_0014: ble.un.s IL_0018 + + IL_0016: br.s IL_003f + + IL_0018: nop + .try + { + IL_0019: ldloc.0 + IL_001a: ldc.i4.s -4 + IL_001c: beq.s IL_0028 + + IL_001e: br.s IL_0020 + + IL_0020: ldloc.0 + IL_0021: ldc.i4.3 + IL_0022: sub + IL_0023: ldc.i4.1 + IL_0024: ble.un.s IL_0028 + + IL_0026: br.s IL_0034 + + IL_0028: nop + .try + { + IL_0029: leave.s IL_0032 + + } // end .try + finally + { + IL_002b: ldarg.0 + IL_002c: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally2'() + IL_0031: endfinally + } // end handler + IL_0032: br.s IL_0034 + + IL_0034: leave.s IL_003d + + } // end .try + finally + { + IL_0036: ldarg.0 + IL_0037: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally1'() + IL_003c: endfinally + } // end handler + IL_003d: br.s IL_003f + + IL_003f: ret + } // end of method 'd__10'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 505 (0x1f9) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + bool V_2) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_002b, + IL_002d, + IL_002f, + IL_0034, + IL_0039, + IL_003e, + IL_0043) + IL_0029: br.s IL_0048 + + IL_002b: br.s IL_004f + + IL_002d: br.s IL_007b + + IL_002f: br IL_00ba + + IL_0034: br IL_00fa + + IL_0039: br IL_014b + + IL_003e: br IL_0192 + + IL_0043: br IL_01d9 + + IL_0048: ldc.i4.0 + IL_0049: stloc.0 + IL_004a: leave IL_01f7 + + IL_004f: ldarg.0 + IL_0050: ldc.i4.m1 + IL_0051: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0056: nop + IL_0057: ldstr "Start of method - 1" + IL_005c: call void [mscorlib]System.Console::WriteLine(string) + IL_0061: nop + IL_0062: ldarg.0 + IL_0063: ldstr "Start of method" + IL_0068: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_006d: ldarg.0 + IL_006e: ldc.i4.1 + IL_006f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0074: ldc.i4.1 + IL_0075: stloc.0 + IL_0076: leave IL_01f7 + + IL_007b: ldarg.0 + IL_007c: ldc.i4.m1 + IL_007d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0082: ldstr "Start of method - 2" + IL_0087: call void [mscorlib]System.Console::WriteLine(string) + IL_008c: nop + IL_008d: ldarg.0 + IL_008e: ldc.i4.s -3 + IL_0090: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0095: nop + IL_0096: ldstr "Within outer try - 1" + IL_009b: call void [mscorlib]System.Console::WriteLine(string) + IL_00a0: nop + IL_00a1: ldarg.0 + IL_00a2: ldstr "Within outer try" + IL_00a7: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_00ac: ldarg.0 + IL_00ad: ldc.i4.2 + IL_00ae: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_00b3: ldc.i4.1 + IL_00b4: stloc.0 + IL_00b5: leave IL_01f7 + + IL_00ba: ldarg.0 + IL_00bb: ldc.i4.s -3 + IL_00bd: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_00c2: ldstr "Within outer try - 2" + IL_00c7: call void [mscorlib]System.Console::WriteLine(string) + IL_00cc: nop + IL_00cd: ldarg.0 + IL_00ce: ldc.i4.s -4 + IL_00d0: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_00d5: nop + IL_00d6: ldstr "Within inner try - 1" + IL_00db: call void [mscorlib]System.Console::WriteLine(string) + IL_00e0: nop + IL_00e1: ldarg.0 + IL_00e2: ldstr "Within inner try" + IL_00e7: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_00ec: ldarg.0 + IL_00ed: ldc.i4.3 + IL_00ee: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_00f3: ldc.i4.1 + IL_00f4: stloc.0 + IL_00f5: leave IL_01f7 + + IL_00fa: ldarg.0 + IL_00fb: ldc.i4.s -4 + IL_00fd: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0102: ldstr "Within inner try - 2" + IL_0107: call void [mscorlib]System.Console::WriteLine(string) + IL_010c: nop + IL_010d: ldarg.0 + IL_010e: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::breakInMiddle + IL_0113: stloc.2 + IL_0114: ldloc.2 + IL_0115: brfalse.s IL_0127 + + IL_0117: nop + IL_0118: ldstr "Breaking..." + IL_011d: call void [mscorlib]System.Console::WriteLine(string) + IL_0122: nop + IL_0123: ldc.i4.0 + IL_0124: stloc.0 + IL_0125: br.s IL_0168 + + IL_0127: ldstr "End of inner try - 1" + IL_012c: call void [mscorlib]System.Console::WriteLine(string) + IL_0131: nop + IL_0132: ldarg.0 + IL_0133: ldstr "End of inner try" + IL_0138: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_013d: ldarg.0 + IL_013e: ldc.i4.4 + IL_013f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0144: ldc.i4.1 + IL_0145: stloc.0 + IL_0146: leave IL_01f7 + + IL_014b: ldarg.0 + IL_014c: ldc.i4.s -4 + IL_014e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0153: ldstr "End of inner try - 2" + IL_0158: call void [mscorlib]System.Console::WriteLine(string) + IL_015d: nop + IL_015e: nop + IL_015f: ldarg.0 + IL_0160: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally2'() + IL_0165: nop + IL_0166: br.s IL_0171 + + IL_0168: ldarg.0 + IL_0169: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally2'() + IL_016e: nop + IL_016f: br.s IL_01af + + IL_0171: ldstr "End of outer try - 1" + IL_0176: call void [mscorlib]System.Console::WriteLine(string) + IL_017b: nop + IL_017c: ldarg.0 + IL_017d: ldstr "End of outer try" + IL_0182: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_0187: ldarg.0 + IL_0188: ldc.i4.5 + IL_0189: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_018e: ldc.i4.1 + IL_018f: stloc.0 + IL_0190: leave.s IL_01f7 + + IL_0192: ldarg.0 + IL_0193: ldc.i4.s -3 + IL_0195: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_019a: ldstr "End of outer try - 2" + IL_019f: call void [mscorlib]System.Console::WriteLine(string) + IL_01a4: nop + IL_01a5: nop + IL_01a6: ldarg.0 + IL_01a7: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally1'() + IL_01ac: nop + IL_01ad: br.s IL_01b8 + + IL_01af: ldarg.0 + IL_01b0: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>m__Finally1'() + IL_01b5: nop + IL_01b6: leave.s IL_01f7 + + IL_01b8: ldstr "End of method - 1" + IL_01bd: call void [mscorlib]System.Console::WriteLine(string) + IL_01c2: nop + IL_01c3: ldarg.0 + IL_01c4: ldstr "End of method" + IL_01c9: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_01ce: ldarg.0 + IL_01cf: ldc.i4.6 + IL_01d0: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_01d5: ldc.i4.1 + IL_01d6: stloc.0 + IL_01d7: leave.s IL_01f7 + + IL_01d9: ldarg.0 + IL_01da: ldc.i4.m1 + IL_01db: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_01e0: ldstr "End of method - 2" + IL_01e5: call void [mscorlib]System.Console::WriteLine(string) + IL_01ea: nop + IL_01eb: ldc.i4.0 + IL_01ec: stloc.0 + IL_01ed: leave.s IL_01f7 + + } // end .try + fault + { + IL_01ef: ldarg.0 + IL_01f0: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::System.IDisposable.Dispose() + IL_01f5: nop + IL_01f6: endfinally + } // end handler + IL_01f7: ldloc.0 + IL_01f8: ret + } // end of method 'd__10'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0007: nop + IL_0008: ldstr "Outer Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__10'::'<>m__Finally1' + + .method private hidebysig instance void + '<>m__Finally2'() cil managed + { + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.s -3 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0008: nop + IL_0009: ldstr "Inner Finally" + IL_000e: call void [mscorlib]System.Console::WriteLine(string) + IL_0013: nop + IL_0014: nop + IL_0015: ret + } // end of method 'd__10'::'<>m__Finally2' + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_0006: ret + } // end of method 'd__10'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__10'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>2__current' + IL_0006: ret + } // end of method 'd__10'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>3__breakInMiddle' + IL_0030: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::breakInMiddle + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__10'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__10'::System.Collections.IEnumerable.GetEnumerator + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__10'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__10'::System.Collections.IEnumerator.Current + } // end of class 'd__10' + + .class auto ansi sealed nested private beforefieldinit 'd__11' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private string '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field private class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>s__1' + .field private string '5__2' + .field private class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>s__3' + .field private string '5__4' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__11'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 102 (0x66) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -5 + IL_000a: sub + IL_000b: switch ( + IL_0059, + IL_0034, + IL_0034, + IL_0065, + IL_0065, + IL_0065, + IL_0034) + IL_002c: br.s IL_002e + + IL_002e: ldloc.0 + IL_002f: ldc.i4.8 + IL_0030: beq.s IL_0059 + + IL_0032: br.s IL_0065 + + IL_0034: nop + .try + { + IL_0035: ldloc.0 + IL_0036: ldc.i4.s -4 + IL_0038: beq.s IL_0042 + + IL_003a: br.s IL_003c + + IL_003c: ldloc.0 + IL_003d: ldc.i4.1 + IL_003e: beq.s IL_0042 + + IL_0040: br.s IL_004e + + IL_0042: nop + .try + { + IL_0043: leave.s IL_004c + + } // end .try + finally + { + IL_0045: ldarg.0 + IL_0046: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally2'() + IL_004b: endfinally + } // end handler + IL_004c: br.s IL_004e + + IL_004e: leave.s IL_0057 + + } // end .try + finally + { + IL_0050: ldarg.0 + IL_0051: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally1'() + IL_0056: endfinally + } // end handler + IL_0057: br.s IL_0065 + + IL_0059: nop + .try + { + IL_005a: leave.s IL_0063 + + } // end .try + finally + { + IL_005c: ldarg.0 + IL_005d: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally3'() + IL_0062: endfinally + } // end handler + IL_0063: br.s IL_0065 + + IL_0065: ret + } // end of method 'd__11'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 563 (0x233) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_0033, + IL_0035, + IL_003a, + IL_003f, + IL_0044, + IL_0049, + IL_004e, + IL_0053, + IL_0058) + IL_0031: br.s IL_005d + + IL_0033: br.s IL_0064 + + IL_0035: br IL_00bd + + IL_003a: br IL_0109 + + IL_003f: br IL_0129 + + IL_0044: br IL_0149 + + IL_0049: br IL_0169 + + IL_004e: br IL_0189 + + IL_0053: br IL_01a9 + + IL_0058: br IL_01fa + + IL_005d: ldc.i4.0 + IL_005e: stloc.0 + IL_005f: leave IL_0231 + + IL_0064: ldarg.0 + IL_0065: ldc.i4.m1 + IL_0066: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_006b: nop + IL_006c: nop + IL_006d: ldarg.0 + IL_006e: ldarg.0 + IL_006f: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::input + IL_0074: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0079: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__1' + IL_007e: ldarg.0 + IL_007f: ldc.i4.s -3 + IL_0081: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0086: br.s IL_00d5 + + IL_0088: ldarg.0 + IL_0089: ldarg.0 + IL_008a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__1' + IL_008f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0094: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__2' + IL_0099: nop + IL_009a: ldarg.0 + IL_009b: ldc.i4.s -4 + IL_009d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_00a2: nop + IL_00a3: ldarg.0 + IL_00a4: ldarg.0 + IL_00a5: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__2' + IL_00aa: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_00af: ldarg.0 + IL_00b0: ldc.i4.1 + IL_00b1: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_00b6: ldc.i4.1 + IL_00b7: stloc.0 + IL_00b8: leave IL_0231 + + IL_00bd: ldarg.0 + IL_00be: ldc.i4.s -4 + IL_00c0: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_00c5: nop + IL_00c6: ldarg.0 + IL_00c7: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally2'() + IL_00cc: nop + IL_00cd: nop + IL_00ce: ldarg.0 + IL_00cf: ldnull + IL_00d0: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__2' + IL_00d5: ldarg.0 + IL_00d6: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__1' + IL_00db: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00e0: brtrue.s IL_0088 + + IL_00e2: ldarg.0 + IL_00e3: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally1'() + IL_00e8: nop + IL_00e9: ldarg.0 + IL_00ea: ldnull + IL_00eb: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__1' + IL_00f0: ldarg.0 + IL_00f1: ldstr "A" + IL_00f6: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_00fb: ldarg.0 + IL_00fc: ldc.i4.2 + IL_00fd: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0102: ldc.i4.1 + IL_0103: stloc.0 + IL_0104: leave IL_0231 + + IL_0109: ldarg.0 + IL_010a: ldc.i4.m1 + IL_010b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0110: ldarg.0 + IL_0111: ldstr "B" + IL_0116: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_011b: ldarg.0 + IL_011c: ldc.i4.3 + IL_011d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0122: ldc.i4.1 + IL_0123: stloc.0 + IL_0124: leave IL_0231 + + IL_0129: ldarg.0 + IL_012a: ldc.i4.m1 + IL_012b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0130: ldarg.0 + IL_0131: ldstr "C" + IL_0136: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_013b: ldarg.0 + IL_013c: ldc.i4.4 + IL_013d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0142: ldc.i4.1 + IL_0143: stloc.0 + IL_0144: leave IL_0231 + + IL_0149: ldarg.0 + IL_014a: ldc.i4.m1 + IL_014b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0150: ldarg.0 + IL_0151: ldstr "D" + IL_0156: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_015b: ldarg.0 + IL_015c: ldc.i4.5 + IL_015d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0162: ldc.i4.1 + IL_0163: stloc.0 + IL_0164: leave IL_0231 + + IL_0169: ldarg.0 + IL_016a: ldc.i4.m1 + IL_016b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0170: ldarg.0 + IL_0171: ldstr "E" + IL_0176: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_017b: ldarg.0 + IL_017c: ldc.i4.6 + IL_017d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0182: ldc.i4.1 + IL_0183: stloc.0 + IL_0184: leave IL_0231 + + IL_0189: ldarg.0 + IL_018a: ldc.i4.m1 + IL_018b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0190: ldarg.0 + IL_0191: ldstr "F" + IL_0196: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_019b: ldarg.0 + IL_019c: ldc.i4.7 + IL_019d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_01a2: ldc.i4.1 + IL_01a3: stloc.0 + IL_01a4: leave IL_0231 + + IL_01a9: ldarg.0 + IL_01aa: ldc.i4.m1 + IL_01ab: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_01b0: nop + IL_01b1: ldarg.0 + IL_01b2: ldarg.0 + IL_01b3: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::input + IL_01b8: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_01bd: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__3' + IL_01c2: ldarg.0 + IL_01c3: ldc.i4.s -5 + IL_01c5: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_01ca: br.s IL_020a + + IL_01cc: ldarg.0 + IL_01cd: ldarg.0 + IL_01ce: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__3' + IL_01d3: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_01d8: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__4' + IL_01dd: nop + IL_01de: ldarg.0 + IL_01df: ldarg.0 + IL_01e0: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__4' + IL_01e5: callvirt instance string [mscorlib]System.String::ToUpper() + IL_01ea: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_01ef: ldarg.0 + IL_01f0: ldc.i4.8 + IL_01f1: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_01f6: ldc.i4.1 + IL_01f7: stloc.0 + IL_01f8: leave.s IL_0231 + + IL_01fa: ldarg.0 + IL_01fb: ldc.i4.s -5 + IL_01fd: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0202: nop + IL_0203: ldarg.0 + IL_0204: ldnull + IL_0205: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__4' + IL_020a: ldarg.0 + IL_020b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__3' + IL_0210: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0215: brtrue.s IL_01cc + + IL_0217: ldarg.0 + IL_0218: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>m__Finally3'() + IL_021d: nop + IL_021e: ldarg.0 + IL_021f: ldnull + IL_0220: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__3' + IL_0225: ldc.i4.0 + IL_0226: stloc.0 + IL_0227: leave.s IL_0231 + + } // end .try + fault + { + IL_0229: ldarg.0 + IL_022a: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::System.IDisposable.Dispose() + IL_022f: nop + IL_0230: endfinally + } // end handler + IL_0231: ldloc.0 + IL_0232: ret + } // end of method 'd__11'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 28 (0x1c) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__1' + IL_000d: brfalse.s IL_001b + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__1' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: nop + IL_001b: ret + } // end of method 'd__11'::'<>m__Finally1' + + .method private hidebysig instance void + '<>m__Finally2'() cil managed + { + // Code size 33 (0x21) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.s -3 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0008: nop + IL_0009: ldstr "Processed " + IL_000e: ldarg.0 + IL_000f: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'5__2' + IL_0014: call string [mscorlib]System.String::Concat(string, + string) + IL_0019: call void [mscorlib]System.Console::WriteLine(string) + IL_001e: nop + IL_001f: nop + IL_0020: ret + } // end of method 'd__11'::'<>m__Finally2' + + .method private hidebysig instance void + '<>m__Finally3'() cil managed + { + // Code size 28 (0x1c) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__3' + IL_000d: brfalse.s IL_001b + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>s__3' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: nop + IL_001b: ret + } // end of method 'd__11'::'<>m__Finally3' + + .method private hidebysig newslot specialname virtual final + instance string 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0006: ret + } // end of method 'd__11'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__11'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>2__current' + IL_0006: ret + } // end of method 'd__11'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>3__input' + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::input + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__11'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__11'::System.Collections.IEnumerable.GetEnumerator + + .property instance string 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__11'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__11'::System.Collections.IEnumerator.Current + } // end of class 'd__11' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass12_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public string line + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ret + } // end of method '<>c__DisplayClass12_0'::.ctor + + .method assembly hidebysig instance string + 'b__0'() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0'::line + IL_0006: ret + } // end of method '<>c__DisplayClass12_0'::'b__0' + + } // end of class '<>c__DisplayClass12_0' + + .class auto ansi sealed nested private beforefieldinit 'd__12' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1>, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1>, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private class [mscorlib]System.Func`1 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field private class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>s__1' + .field private class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0' '<>8__2' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__12'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 33 (0x21) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0014 + + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ldc.i4.1 + IL_0010: beq.s IL_0014 + + IL_0012: br.s IL_0020 + + IL_0014: nop + .try + { + IL_0015: leave.s IL_001e + + } // end .try + finally + { + IL_0017: ldarg.0 + IL_0018: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>m__Finally1'() + IL_001d: endfinally + } // end handler + IL_001e: br.s IL_0020 + + IL_0020: ret + } // end of method 'd__12'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 190 (0xbe) + .maxstack 3 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: brfalse.s IL_0012 + + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ldc.i4.1 + IL_000e: beq.s IL_0014 + + IL_0010: br.s IL_0016 + + IL_0012: br.s IL_001d + + IL_0014: br.s IL_0085 + + IL_0016: ldc.i4.0 + IL_0017: stloc.0 + IL_0018: leave IL_00bc + + IL_001d: ldarg.0 + IL_001e: ldc.i4.m1 + IL_001f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0024: nop + IL_0025: nop + IL_0026: ldarg.0 + IL_0027: ldarg.0 + IL_0028: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::input + IL_002d: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0032: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>s__1' + IL_0037: ldarg.0 + IL_0038: ldc.i4.s -3 + IL_003a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_003f: br.s IL_0095 + + IL_0041: ldarg.0 + IL_0042: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0'::.ctor() + IL_0047: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>8__2' + IL_004c: ldarg.0 + IL_004d: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>8__2' + IL_0052: ldarg.0 + IL_0053: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>s__1' + IL_0058: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_005d: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0'::line + IL_0062: nop + IL_0063: ldarg.0 + IL_0064: ldarg.0 + IL_0065: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>8__2' + IL_006a: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0'::'b__0'() + IL_0070: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0075: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>2__current' + IL_007a: ldarg.0 + IL_007b: ldc.i4.1 + IL_007c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0081: ldc.i4.1 + IL_0082: stloc.0 + IL_0083: leave.s IL_00bc + + IL_0085: ldarg.0 + IL_0086: ldc.i4.s -3 + IL_0088: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_008d: nop + IL_008e: ldarg.0 + IL_008f: ldnull + IL_0090: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass12_0' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>8__2' + IL_0095: ldarg.0 + IL_0096: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>s__1' + IL_009b: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00a0: brtrue.s IL_0041 + + IL_00a2: ldarg.0 + IL_00a3: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>m__Finally1'() + IL_00a8: nop + IL_00a9: ldarg.0 + IL_00aa: ldnull + IL_00ab: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>s__1' + IL_00b0: ldc.i4.0 + IL_00b1: stloc.0 + IL_00b2: leave.s IL_00bc + + } // end .try + fault + { + IL_00b4: ldarg.0 + IL_00b5: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::System.IDisposable.Dispose() + IL_00ba: nop + IL_00bb: endfinally + } // end handler + IL_00bc: ldloc.0 + IL_00bd: ret + } // end of method 'd__12'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 28 (0x1c) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>s__1' + IL_000d: brfalse.s IL_001b + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>s__1' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: nop + IL_001b: ret + } // end of method 'd__12'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1>::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>2__current' + IL_0006: ret + } // end of method 'd__12'::'System.Collections.Generic.IEnumerator>.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__12'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>2__current' + IL_0006: ret + } // end of method 'd__12'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1> + 'System.Collections.Generic.IEnumerable>.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1>::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>3__input' + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::input + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__12'::'System.Collections.Generic.IEnumerable>.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'System.Collections.Generic.IEnumerable>.GetEnumerator'() + IL_0006: ret + } // end of method 'd__12'::System.Collections.IEnumerable.GetEnumerator + + .property instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.Current'() + { + .get instance class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'System.Collections.Generic.IEnumerator>.get_Current'() + } // end of property 'd__12'::'System.Collections.Generic.IEnumerator>.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__12'::System.Collections.IEnumerator.Current + } // end of class 'd__12' + + .class auto ansi sealed nested private beforefieldinit '<>c__DisplayClass13_0' + extends [mscorlib]System.Object + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field public string copy + .method public hidebysig specialname rtspecialname + instance void .ctor() cil managed + { + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ret + } // end of method '<>c__DisplayClass13_0'::.ctor + + .method assembly hidebysig instance string + 'b__0'() cil managed + { + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0'::copy + IL_0006: ret + } // end of method '<>c__DisplayClass13_0'::'b__0' + + } // end of class '<>c__DisplayClass13_0' + + .class auto ansi sealed nested private beforefieldinit 'd__13' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1>, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1>, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private class [mscorlib]System.Func`1 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private class [mscorlib]System.Collections.Generic.IEnumerable`1 input + .field public class [mscorlib]System.Collections.Generic.IEnumerable`1 '<>3__input' + .field private class [mscorlib]System.Collections.Generic.IEnumerator`1 '<>s__1' + .field private string '5__2' + .field private class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0' '<>8__3' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__13'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 33 (0x21) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0014 + + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ldc.i4.1 + IL_0010: beq.s IL_0014 + + IL_0012: br.s IL_0020 + + IL_0014: nop + .try + { + IL_0015: leave.s IL_001e + + } // end .try + finally + { + IL_0017: ldarg.0 + IL_0018: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>m__Finally1'() + IL_001d: endfinally + } // end handler + IL_001e: br.s IL_0020 + + IL_0020: ret + } // end of method 'd__13'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 209 (0xd1) + .maxstack 3 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: brfalse.s IL_0012 + + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ldc.i4.1 + IL_000e: beq.s IL_0014 + + IL_0010: br.s IL_0016 + + IL_0012: br.s IL_001d + + IL_0014: br.s IL_0091 + + IL_0016: ldc.i4.0 + IL_0017: stloc.0 + IL_0018: leave IL_00cf + + IL_001d: ldarg.0 + IL_001e: ldc.i4.m1 + IL_001f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0024: nop + IL_0025: nop + IL_0026: ldarg.0 + IL_0027: ldarg.0 + IL_0028: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::input + IL_002d: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0032: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>s__1' + IL_0037: ldarg.0 + IL_0038: ldc.i4.s -3 + IL_003a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_003f: br.s IL_00a8 + + IL_0041: ldarg.0 + IL_0042: ldarg.0 + IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>s__1' + IL_0048: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_004d: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'5__2' + IL_0052: ldarg.0 + IL_0053: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0'::.ctor() + IL_0058: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>8__3' + IL_005d: nop + IL_005e: ldarg.0 + IL_005f: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>8__3' + IL_0064: ldarg.0 + IL_0065: ldfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'5__2' + IL_006a: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0'::copy + IL_006f: ldarg.0 + IL_0070: ldarg.0 + IL_0071: ldfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>8__3' + IL_0076: ldftn instance string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0'::'b__0'() + IL_007c: newobj instance void class [mscorlib]System.Func`1::.ctor(object, + native int) + IL_0081: stfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>2__current' + IL_0086: ldarg.0 + IL_0087: ldc.i4.1 + IL_0088: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_008d: ldc.i4.1 + IL_008e: stloc.0 + IL_008f: leave.s IL_00cf + + IL_0091: ldarg.0 + IL_0092: ldc.i4.s -3 + IL_0094: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0099: nop + IL_009a: ldarg.0 + IL_009b: ldnull + IL_009c: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'<>c__DisplayClass13_0' ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>8__3' + IL_00a1: ldarg.0 + IL_00a2: ldnull + IL_00a3: stfld string ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'5__2' + IL_00a8: ldarg.0 + IL_00a9: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>s__1' + IL_00ae: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00b3: brtrue.s IL_0041 + + IL_00b5: ldarg.0 + IL_00b6: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>m__Finally1'() + IL_00bb: nop + IL_00bc: ldarg.0 + IL_00bd: ldnull + IL_00be: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>s__1' + IL_00c3: ldc.i4.0 + IL_00c4: stloc.0 + IL_00c5: leave.s IL_00cf + + } // end .try + fault + { + IL_00c7: ldarg.0 + IL_00c8: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::System.IDisposable.Dispose() + IL_00cd: nop + IL_00ce: endfinally + } // end handler + IL_00cf: ldloc.0 + IL_00d0: ret + } // end of method 'd__13'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 28 (0x1c) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0007: ldarg.0 + IL_0008: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>s__1' + IL_000d: brfalse.s IL_001b + + IL_000f: ldarg.0 + IL_0010: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>s__1' + IL_0015: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_001a: nop + IL_001b: ret + } // end of method 'd__13'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1>::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>2__current' + IL_0006: ret + } // end of method 'd__13'::'System.Collections.Generic.IEnumerator>.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__13'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>2__current' + IL_0006: ret + } // end of method 'd__13'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1> + 'System.Collections.Generic.IEnumerable>.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1>::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>3__input' + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::input + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__13'::'System.Collections.Generic.IEnumerable>.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1> ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'System.Collections.Generic.IEnumerable>.GetEnumerator'() + IL_0006: ret + } // end of method 'd__13'::System.Collections.IEnumerable.GetEnumerator + + .property instance class [mscorlib]System.Func`1 + 'System.Collections.Generic.IEnumerator>.Current'() + { + .get instance class [mscorlib]System.Func`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'System.Collections.Generic.IEnumerator>.get_Current'() + } // end of property 'd__13'::'System.Collections.Generic.IEnumerator>.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__13'::System.Collections.IEnumerator.Current + } // end of class 'd__13' + + .class auto ansi sealed nested private beforefieldinit 'd__14' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private int32 n + .field public int32 '<>3__n' + .field private int32 '5__1' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__14'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__14'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 124 (0x7c) + .maxstack 3 + .locals init (int32 V_0, + bool V_1, + int32 V_2, + bool V_3) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: br.s IL_000c + + IL_000c: ldloc.0 + IL_000d: ldc.i4.1 + IL_000e: beq.s IL_0014 + + IL_0010: br.s IL_0016 + + IL_0012: br.s IL_0018 + + IL_0014: br.s IL_004f + + IL_0016: ldc.i4.0 + IL_0017: ret + + IL_0018: ldarg.0 + IL_0019: ldc.i4.m1 + IL_001a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_001f: nop + IL_0020: ldarg.0 + IL_0021: ldc.i4.0 + IL_0022: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__1' + IL_0027: br.s IL_0068 + + IL_0029: nop + IL_002a: ldarg.0 + IL_002b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__1' + IL_0030: ldc.i4.2 + IL_0031: rem + IL_0032: ldc.i4.0 + IL_0033: ceq + IL_0035: stloc.1 + IL_0036: ldloc.1 + IL_0037: brfalse.s IL_0057 + + IL_0039: nop + IL_003a: ldarg.0 + IL_003b: ldarg.0 + IL_003c: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__1' + IL_0041: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>2__current' + IL_0046: ldarg.0 + IL_0047: ldc.i4.1 + IL_0048: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_004d: ldc.i4.1 + IL_004e: ret + + IL_004f: ldarg.0 + IL_0050: ldc.i4.m1 + IL_0051: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_0056: nop + IL_0057: nop + IL_0058: ldarg.0 + IL_0059: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__1' + IL_005e: stloc.2 + IL_005f: ldarg.0 + IL_0060: ldloc.2 + IL_0061: ldc.i4.1 + IL_0062: add + IL_0063: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__1' + IL_0068: ldarg.0 + IL_0069: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'5__1' + IL_006e: ldarg.0 + IL_006f: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::n + IL_0074: clt + IL_0076: stloc.3 + IL_0077: ldloc.3 + IL_0078: brtrue.s IL_0029 + + IL_007a: ldc.i4.0 + IL_007b: ret + } // end of method 'd__14'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>2__current' + IL_0006: ret + } // end of method 'd__14'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__14'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__14'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>3__n' + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::n + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__14'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__14'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__14'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__14'::System.Collections.IEnumerator.Current + } // end of class 'd__14' + + .class auto ansi sealed nested private beforefieldinit 'd__15' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private char '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__15'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 33 (0x21) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0014 + + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ldc.i4.3 + IL_0010: beq.s IL_0014 + + IL_0012: br.s IL_0020 + + IL_0014: nop + .try + { + IL_0015: leave.s IL_001e + + } // end .try + finally + { + IL_0017: ldarg.0 + IL_0018: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally1'() + IL_001d: endfinally + } // end handler + IL_001e: br.s IL_0020 + + IL_0020: ret + } // end of method 'd__15'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 230 (0xe6) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001f, + IL_0021, + IL_0023, + IL_0025) + IL_001d: br.s IL_002a + + IL_001f: br.s IL_0031 + + IL_0021: br.s IL_004f + + IL_0023: br.s IL_0088 + + IL_0025: br IL_00c8 + + IL_002a: ldc.i4.0 + IL_002b: stloc.0 + IL_002c: leave IL_00e4 + + IL_0031: ldarg.0 + IL_0032: ldc.i4.m1 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0038: nop + IL_0039: ldarg.0 + IL_003a: ldc.i4.s 97 + IL_003c: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0041: ldarg.0 + IL_0042: ldc.i4.1 + IL_0043: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0048: ldc.i4.1 + IL_0049: stloc.0 + IL_004a: leave IL_00e4 + + IL_004f: ldarg.0 + IL_0050: ldc.i4.m1 + IL_0051: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + .try + { + IL_0056: nop + IL_0057: ldstr "1 - try" + IL_005c: call void [mscorlib]System.Console::WriteLine(string) + IL_0061: nop + IL_0062: nop + IL_0063: leave.s IL_0075 + + } // end .try + catch [mscorlib]System.Exception + { + IL_0065: pop + IL_0066: nop + IL_0067: ldstr "1 - catch" + IL_006c: call void [mscorlib]System.Console::WriteLine(string) + IL_0071: nop + IL_0072: nop + IL_0073: leave.s IL_0075 + + } // end handler + IL_0075: ldarg.0 + IL_0076: ldc.i4.s 98 + IL_0078: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_007d: ldarg.0 + IL_007e: ldc.i4.2 + IL_007f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0084: ldc.i4.1 + IL_0085: stloc.0 + IL_0086: leave.s IL_00e4 + + IL_0088: ldarg.0 + IL_0089: ldc.i4.m1 + IL_008a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_008f: ldarg.0 + IL_0090: ldc.i4.s -3 + IL_0092: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0097: nop + .try + { + IL_0098: nop + IL_0099: ldstr "2 - try" + IL_009e: call void [mscorlib]System.Console::WriteLine(string) + IL_00a3: nop + IL_00a4: nop + IL_00a5: leave.s IL_00b5 + + } // end .try + finally + { + IL_00a7: nop + IL_00a8: ldstr "2 - finally" + IL_00ad: call void [mscorlib]System.Console::WriteLine(string) + IL_00b2: nop + IL_00b3: nop + IL_00b4: endfinally + } // end handler + IL_00b5: ldarg.0 + IL_00b6: ldc.i4.s 99 + IL_00b8: stfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_00bd: ldarg.0 + IL_00be: ldc.i4.3 + IL_00bf: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00c4: ldc.i4.1 + IL_00c5: stloc.0 + IL_00c6: leave.s IL_00e4 + + IL_00c8: ldarg.0 + IL_00c9: ldc.i4.s -3 + IL_00cb: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_00d0: nop + IL_00d1: ldarg.0 + IL_00d2: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>m__Finally1'() + IL_00d7: nop + IL_00d8: ldc.i4.0 + IL_00d9: stloc.0 + IL_00da: leave.s IL_00e4 + + } // end .try + fault + { + IL_00dc: ldarg.0 + IL_00dd: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::System.IDisposable.Dispose() + IL_00e2: nop + IL_00e3: endfinally + } // end handler + IL_00e4: ldloc.0 + IL_00e5: ret + } // end of method 'd__15'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0007: nop + IL_0008: ldstr "outer finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__15'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance char 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0006: ret + } // end of method 'd__15'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__15'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>2__current' + IL_0006: box [mscorlib]System.Char + IL_000b: ret + } // end of method 'd__15'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__15'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__15'::System.Collections.IEnumerable.GetEnumerator + + .property instance char 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance char ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__15'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__15'::System.Collections.IEnumerator.Current + } // end of class 'd__15' + + .class auto ansi sealed nested private beforefieldinit 'd__16' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__16'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__16'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 114 (0x72) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001b, + IL_001d, + IL_001f) + IL_0019: br.s IL_0021 + + IL_001b: br.s IL_0023 + + IL_001d: br.s IL_003b + + IL_001f: br.s IL_0067 + + IL_0021: ldc.i4.0 + IL_0022: ret + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: ldc.i4.0 + IL_002d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>2__current' + IL_0032: ldarg.0 + IL_0033: ldc.i4.1 + IL_0034: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_0039: ldc.i4.1 + IL_003a: ret + + IL_003b: ldarg.0 + IL_003c: ldc.i4.m1 + IL_003d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + .try + { + IL_0042: nop + IL_0043: ldstr "In Try" + IL_0048: call void [mscorlib]System.Console::WriteLine(string) + IL_004d: nop + IL_004e: nop + IL_004f: leave.s IL_0057 + + } // end .try + catch [mscorlib]System.Object + { + IL_0051: pop + IL_0052: nop + IL_0053: ldc.i4.0 + IL_0054: stloc.0 + IL_0055: leave.s IL_0070 + + } // end handler + IL_0057: ldarg.0 + IL_0058: ldc.i4.1 + IL_0059: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>2__current' + IL_005e: ldarg.0 + IL_005f: ldc.i4.2 + IL_0060: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_0065: ldc.i4.1 + IL_0066: ret + + IL_0067: ldarg.0 + IL_0068: ldc.i4.m1 + IL_0069: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_006e: ldc.i4.0 + IL_006f: ret + + IL_0070: ldloc.0 + IL_0071: ret + } // end of method 'd__16'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>2__current' + IL_0006: ret + } // end of method 'd__16'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__16'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__16'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__16'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__16'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__16'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__16'::System.Collections.IEnumerator.Current + } // end of class 'd__16' + + .class auto ansi sealed nested private beforefieldinit 'd__17' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__17'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 35 (0x23) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0016 + + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ldc.i4.1 + IL_0010: sub + IL_0011: ldc.i4.1 + IL_0012: ble.un.s IL_0016 + + IL_0014: br.s IL_0022 + + IL_0016: nop + .try + { + IL_0017: leave.s IL_0020 + + } // end .try + finally + { + IL_0019: ldarg.0 + IL_001a: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>m__Finally1'() + IL_001f: endfinally + } // end handler + IL_0020: br.s IL_0022 + + IL_0022: ret + } // end of method 'd__17'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 160 (0xa0) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001b, + IL_001d, + IL_001f) + IL_0019: br.s IL_0021 + + IL_001b: br.s IL_0025 + + IL_001d: br.s IL_0048 + + IL_001f: br.s IL_0077 + + IL_0021: ldc.i4.0 + IL_0022: stloc.0 + IL_0023: leave.s IL_009e + + IL_0025: ldarg.0 + IL_0026: ldc.i4.m1 + IL_0027: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_002c: nop + IL_002d: ldarg.0 + IL_002e: ldc.i4.s -3 + IL_0030: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0035: nop + IL_0036: ldarg.0 + IL_0037: ldc.i4.0 + IL_0038: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>2__current' + IL_003d: ldarg.0 + IL_003e: ldc.i4.1 + IL_003f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0044: ldc.i4.1 + IL_0045: stloc.0 + IL_0046: leave.s IL_009e + + IL_0048: ldarg.0 + IL_0049: ldc.i4.s -3 + IL_004b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + .try + { + IL_0050: nop + IL_0051: ldstr "In Try" + IL_0056: call void [mscorlib]System.Console::WriteLine(string) + IL_005b: nop + IL_005c: nop + IL_005d: leave.s IL_0065 + + } // end .try + catch [mscorlib]System.Object + { + IL_005f: pop + IL_0060: nop + IL_0061: ldc.i4.0 + IL_0062: stloc.0 + IL_0063: leave.s IL_0089 + + } // end handler + IL_0065: ldarg.0 + IL_0066: ldc.i4.1 + IL_0067: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>2__current' + IL_006c: ldarg.0 + IL_006d: ldc.i4.2 + IL_006e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0073: ldc.i4.1 + IL_0074: stloc.0 + IL_0075: leave.s IL_009e + + IL_0077: ldarg.0 + IL_0078: ldc.i4.s -3 + IL_007a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_007f: nop + IL_0080: ldarg.0 + IL_0081: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>m__Finally1'() + IL_0086: nop + IL_0087: br.s IL_0092 + + IL_0089: ldarg.0 + IL_008a: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>m__Finally1'() + IL_008f: nop + IL_0090: leave.s IL_009e + + IL_0092: ldc.i4.0 + IL_0093: stloc.0 + IL_0094: leave.s IL_009e + + } // end .try + fault + { + IL_0096: ldarg.0 + IL_0097: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::System.IDisposable.Dispose() + IL_009c: nop + IL_009d: endfinally + } // end handler + IL_009e: ldloc.0 + IL_009f: ret + } // end of method 'd__17'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0007: nop + IL_0008: ldstr "Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__17'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>2__current' + IL_0006: ret + } // end of method 'd__17'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__17'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__17'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__17'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__17'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__17'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__17'::System.Collections.IEnumerator.Current + } // end of class 'd__17' + + .class auto ansi sealed nested private beforefieldinit 'd__18' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__18'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 35 (0x23) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0016 + + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ldc.i4.1 + IL_0010: sub + IL_0011: ldc.i4.1 + IL_0012: ble.un.s IL_0016 + + IL_0014: br.s IL_0022 + + IL_0016: nop + .try + { + IL_0017: leave.s IL_0020 + + } // end .try + finally + { + IL_0019: ldarg.0 + IL_001a: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>m__Finally1'() + IL_001f: endfinally + } // end handler + IL_0020: br.s IL_0022 + + IL_0022: ret + } // end of method 'd__18'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 174 (0xae) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001b, + IL_001d, + IL_001f) + IL_0019: br.s IL_0021 + + IL_001b: br.s IL_0028 + + IL_001d: br.s IL_004b + + IL_001f: br.s IL_0085 + + IL_0021: ldc.i4.0 + IL_0022: stloc.0 + IL_0023: leave IL_00ac + + IL_0028: ldarg.0 + IL_0029: ldc.i4.m1 + IL_002a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_002f: nop + IL_0030: ldarg.0 + IL_0031: ldc.i4.s -3 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0038: nop + IL_0039: ldarg.0 + IL_003a: ldc.i4.0 + IL_003b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>2__current' + IL_0040: ldarg.0 + IL_0041: ldc.i4.1 + IL_0042: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0047: ldc.i4.1 + IL_0048: stloc.0 + IL_0049: leave.s IL_00ac + + IL_004b: ldarg.0 + IL_004c: ldc.i4.s -3 + IL_004e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + .try + { + IL_0053: nop + IL_0054: ldstr "In Try" + IL_0059: call void [mscorlib]System.Console::WriteLine(string) + IL_005e: nop + IL_005f: ldc.i4.0 + IL_0060: stloc.0 + IL_0061: leave.s IL_0097 + + } // end .try + catch [mscorlib]System.Object + { + IL_0063: pop + IL_0064: nop + IL_0065: ldstr "Catch" + IL_006a: call void [mscorlib]System.Console::WriteLine(string) + IL_006f: nop + IL_0070: nop + IL_0071: leave.s IL_0073 + + } // end handler + IL_0073: ldarg.0 + IL_0074: ldc.i4.1 + IL_0075: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>2__current' + IL_007a: ldarg.0 + IL_007b: ldc.i4.2 + IL_007c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0081: ldc.i4.1 + IL_0082: stloc.0 + IL_0083: leave.s IL_00ac + + IL_0085: ldarg.0 + IL_0086: ldc.i4.s -3 + IL_0088: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_008d: nop + IL_008e: ldarg.0 + IL_008f: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>m__Finally1'() + IL_0094: nop + IL_0095: br.s IL_00a0 + + IL_0097: ldarg.0 + IL_0098: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>m__Finally1'() + IL_009d: nop + IL_009e: leave.s IL_00ac + + IL_00a0: ldc.i4.0 + IL_00a1: stloc.0 + IL_00a2: leave.s IL_00ac + + } // end .try + fault + { + IL_00a4: ldarg.0 + IL_00a5: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::System.IDisposable.Dispose() + IL_00aa: nop + IL_00ab: endfinally + } // end handler + IL_00ac: ldloc.0 + IL_00ad: ret + } // end of method 'd__18'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0007: nop + IL_0008: ldstr "Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__18'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>2__current' + IL_0006: ret + } // end of method 'd__18'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__18'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__18'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__18'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__18'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__18'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__18'::System.Collections.IEnumerator.Current + } // end of class 'd__18' + + .class auto ansi sealed nested private beforefieldinit 'd__19' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private bool b + .field public bool '<>3__b' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__19'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 35 (0x23) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0016 + + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ldc.i4.1 + IL_0010: sub + IL_0011: ldc.i4.1 + IL_0012: ble.un.s IL_0016 + + IL_0014: br.s IL_0022 + + IL_0016: nop + .try + { + IL_0017: leave.s IL_0020 + + } // end .try + finally + { + IL_0019: ldarg.0 + IL_001a: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>m__Finally1'() + IL_001f: endfinally + } // end handler + IL_0020: br.s IL_0022 + + IL_0022: ret + } // end of method 'd__19'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 186 (0xba) + .maxstack 2 + .locals init (bool V_0, + int32 V_1, + bool V_2) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001b, + IL_001d, + IL_001f) + IL_0019: br.s IL_0021 + + IL_001b: br.s IL_0028 + + IL_001d: br.s IL_004b + + IL_001f: br.s IL_0091 + + IL_0021: ldc.i4.0 + IL_0022: stloc.0 + IL_0023: leave IL_00b8 + + IL_0028: ldarg.0 + IL_0029: ldc.i4.m1 + IL_002a: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_002f: nop + IL_0030: ldarg.0 + IL_0031: ldc.i4.s -3 + IL_0033: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0038: nop + IL_0039: ldarg.0 + IL_003a: ldc.i4.0 + IL_003b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>2__current' + IL_0040: ldarg.0 + IL_0041: ldc.i4.1 + IL_0042: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0047: ldc.i4.1 + IL_0048: stloc.0 + IL_0049: leave.s IL_00b8 + + IL_004b: ldarg.0 + IL_004c: ldc.i4.s -3 + IL_004e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + .try + { + IL_0053: nop + IL_0054: ldstr "In Try" + IL_0059: call void [mscorlib]System.Console::WriteLine(string) + IL_005e: nop + IL_005f: ldarg.0 + IL_0060: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::b + IL_0065: stloc.2 + IL_0066: ldloc.2 + IL_0067: brfalse.s IL_006e + + IL_0069: nop + IL_006a: ldc.i4.0 + IL_006b: stloc.0 + IL_006c: leave.s IL_00a3 + + IL_006e: nop + IL_006f: leave.s IL_007f + + } // end .try + finally + { + IL_0071: nop + IL_0072: ldstr "Inner Finally" + IL_0077: call void [mscorlib]System.Console::WriteLine(string) + IL_007c: nop + IL_007d: nop + IL_007e: endfinally + } // end handler + IL_007f: ldarg.0 + IL_0080: ldc.i4.1 + IL_0081: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>2__current' + IL_0086: ldarg.0 + IL_0087: ldc.i4.2 + IL_0088: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_008d: ldc.i4.1 + IL_008e: stloc.0 + IL_008f: leave.s IL_00b8 + + IL_0091: ldarg.0 + IL_0092: ldc.i4.s -3 + IL_0094: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0099: nop + IL_009a: ldarg.0 + IL_009b: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>m__Finally1'() + IL_00a0: nop + IL_00a1: br.s IL_00ac + + IL_00a3: ldarg.0 + IL_00a4: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>m__Finally1'() + IL_00a9: nop + IL_00aa: leave.s IL_00b8 + + IL_00ac: ldc.i4.0 + IL_00ad: stloc.0 + IL_00ae: leave.s IL_00b8 + + } // end .try + fault + { + IL_00b0: ldarg.0 + IL_00b1: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::System.IDisposable.Dispose() + IL_00b6: nop + IL_00b7: endfinally + } // end handler + IL_00b8: ldloc.0 + IL_00b9: ret + } // end of method 'd__19'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0007: nop + IL_0008: ldstr "Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__19'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>2__current' + IL_0006: ret + } // end of method 'd__19'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__19'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__19'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>3__b' + IL_0030: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::b + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__19'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__19'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__19'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__19'::System.Collections.IEnumerator.Current + } // end of class 'd__19' + + .class auto ansi sealed nested private beforefieldinit 'd__20' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__20'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__20'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 26 (0x1a) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_000c + + IL_000a: br.s IL_000e + + IL_000c: br.s IL_0010 + + IL_000e: ldc.i4.0 + IL_000f: ret + + IL_0010: ldarg.0 + IL_0011: ldc.i4.m1 + IL_0012: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>1__state' + IL_0017: nop + IL_0018: ldc.i4.0 + IL_0019: ret + } // end of method 'd__20'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>2__current' + IL_0006: ret + } // end of method 'd__20'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__20'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__20'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__20'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__20'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__20'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__20'::System.Collections.IEnumerator.Current + } // end of class 'd__20' + + .class auto ansi sealed nested private beforefieldinit 'd__21' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__21'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 33 (0x21) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0014 + + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ldc.i4.1 + IL_0010: beq.s IL_0014 + + IL_0012: br.s IL_0020 + + IL_0014: nop + .try + { + IL_0015: leave.s IL_001e + + } // end .try + finally + { + IL_0017: ldarg.0 + IL_0018: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>m__Finally1'() + IL_001d: endfinally + } // end handler + IL_001e: br.s IL_0020 + + IL_0020: ret + } // end of method 'd__21'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 85 (0x55) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: brfalse.s IL_0012 + + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ldc.i4.1 + IL_000e: beq.s IL_0014 + + IL_0010: br.s IL_0016 + + IL_0012: br.s IL_001a + + IL_0014: br.s IL_003d + + IL_0016: ldc.i4.0 + IL_0017: stloc.0 + IL_0018: leave.s IL_0053 + + IL_001a: ldarg.0 + IL_001b: ldc.i4.m1 + IL_001c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0021: nop + IL_0022: ldarg.0 + IL_0023: ldc.i4.s -3 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: ldc.i4.0 + IL_002d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>2__current' + IL_0032: ldarg.0 + IL_0033: ldc.i4.1 + IL_0034: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0039: ldc.i4.1 + IL_003a: stloc.0 + IL_003b: leave.s IL_0053 + + IL_003d: ldarg.0 + IL_003e: ldc.i4.s -3 + IL_0040: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0045: newobj instance void [mscorlib]System.NotImplementedException::.ctor() + IL_004a: throw + + } // end .try + fault + { + IL_004b: ldarg.0 + IL_004c: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::System.IDisposable.Dispose() + IL_0051: nop + IL_0052: endfinally + } // end handler + IL_0053: ldloc.0 + IL_0054: ret + } // end of method 'd__21'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0007: nop + IL_0008: ldstr "Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__21'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>2__current' + IL_0006: ret + } // end of method 'd__21'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__21'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__21'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__21'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__21'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__21'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__21'::System.Collections.IEnumerator.Current + } // end of class 'd__21' + + .class auto ansi sealed nested private beforefieldinit 'd__22' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__22'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 60 (0x3c) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -4 + IL_000a: sub + IL_000b: ldc.i4.1 + IL_000c: ble.un.s IL_0016 + + IL_000e: br.s IL_0010 + + IL_0010: ldloc.0 + IL_0011: ldc.i4.1 + IL_0012: beq.s IL_0016 + + IL_0014: br.s IL_003b + + IL_0016: nop + .try + { + IL_0017: ldloc.0 + IL_0018: ldc.i4.s -4 + IL_001a: beq.s IL_0024 + + IL_001c: br.s IL_001e + + IL_001e: ldloc.0 + IL_001f: ldc.i4.1 + IL_0020: beq.s IL_0024 + + IL_0022: br.s IL_0030 + + IL_0024: nop + .try + { + IL_0025: leave.s IL_002e + + } // end .try + finally + { + IL_0027: ldarg.0 + IL_0028: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>m__Finally2'() + IL_002d: endfinally + } // end handler + IL_002e: br.s IL_0030 + + IL_0030: leave.s IL_0039 + + } // end .try + finally + { + IL_0032: ldarg.0 + IL_0033: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>m__Finally1'() + IL_0038: endfinally + } // end handler + IL_0039: br.s IL_003b + + IL_003b: ret + } // end of method 'd__22'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 108 (0x6c) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: brfalse.s IL_0012 + + IL_000a: br.s IL_000c + + IL_000c: ldloc.1 + IL_000d: ldc.i4.1 + IL_000e: beq.s IL_0014 + + IL_0010: br.s IL_0016 + + IL_0012: br.s IL_001a + + IL_0014: br.s IL_0046 + + IL_0016: ldc.i4.0 + IL_0017: stloc.0 + IL_0018: leave.s IL_006a + + IL_001a: ldarg.0 + IL_001b: ldc.i4.m1 + IL_001c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0021: nop + IL_0022: ldarg.0 + IL_0023: ldc.i4.s -3 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: ldc.i4.s -4 + IL_002e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0033: nop + IL_0034: ldarg.0 + IL_0035: ldc.i4.0 + IL_0036: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>2__current' + IL_003b: ldarg.0 + IL_003c: ldc.i4.1 + IL_003d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0042: ldc.i4.1 + IL_0043: stloc.0 + IL_0044: leave.s IL_006a + + IL_0046: ldarg.0 + IL_0047: ldc.i4.s -4 + IL_0049: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_004e: nop + IL_004f: ldarg.0 + IL_0050: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>m__Finally2'() + IL_0055: nop + IL_0056: nop + IL_0057: ldarg.0 + IL_0058: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>m__Finally1'() + IL_005d: nop + IL_005e: ldc.i4.0 + IL_005f: stloc.0 + IL_0060: leave.s IL_006a + + } // end .try + fault + { + IL_0062: ldarg.0 + IL_0063: call instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::System.IDisposable.Dispose() + IL_0068: nop + IL_0069: endfinally + } // end handler + IL_006a: ldloc.0 + IL_006b: ret + } // end of method 'd__22'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0007: nop + IL_0008: ldstr "Outer Finally" + IL_000d: call void [mscorlib]System.Console::WriteLine(string) + IL_0012: nop + IL_0013: nop + IL_0014: ret + } // end of method 'd__22'::'<>m__Finally1' + + .method private hidebysig instance void + '<>m__Finally2'() cil managed + { + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.s -3 + IL_0003: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0008: nop + IL_0009: ldstr "Inner Finally" + IL_000e: call void [mscorlib]System.Console::WriteLine(string) + IL_0013: nop + IL_0014: nop + IL_0015: ret + } // end of method 'd__22'::'<>m__Finally2' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>2__current' + IL_0006: ret + } // end of method 'd__22'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__22'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__22'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__22'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__22'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__22'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__22'::System.Collections.IEnumerator.Current + } // end of class 'd__22' + + .class auto ansi sealed nested private beforefieldinit 'd__23`1'<([mscorlib]System.IDisposable) T> + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private !T a + .field public !T '<>3__a' + .field private !T '5__1' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__23`1'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 33 (0x21) + .maxstack 2 + .locals init (int32 V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.s -3 + IL_000a: beq.s IL_0014 + + IL_000c: br.s IL_000e + + IL_000e: ldloc.0 + IL_000f: ldc.i4.2 + IL_0010: beq.s IL_0014 + + IL_0012: br.s IL_0020 + + IL_0014: nop + .try + { + IL_0015: leave.s IL_001e + + } // end .try + finally + { + IL_0017: ldarg.0 + IL_0018: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>m__Finally1'() + IL_001d: endfinally + } // end handler + IL_001e: br.s IL_0020 + + IL_0020: ret + } // end of method 'd__23`1'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 158 (0x9e) + .maxstack 2 + .locals init (bool V_0, + int32 V_1) + .try + { + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0006: stloc.1 + IL_0007: ldloc.1 + IL_0008: switch ( + IL_001f, + IL_0021, + IL_0023, + IL_0025) + IL_001d: br.s IL_0027 + + IL_001f: br.s IL_002b + + IL_0021: br.s IL_0045 + + IL_0023: br.s IL_0067 + + IL_0025: br.s IL_0089 + + IL_0027: ldc.i4.0 + IL_0028: stloc.0 + IL_0029: leave.s IL_009c + + IL_002b: ldarg.0 + IL_002c: ldc.i4.m1 + IL_002d: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0032: nop + IL_0033: ldarg.0 + IL_0034: ldc.i4.1 + IL_0035: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>2__current' + IL_003a: ldarg.0 + IL_003b: ldc.i4.1 + IL_003c: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0041: ldc.i4.1 + IL_0042: stloc.0 + IL_0043: leave.s IL_009c + + IL_0045: ldarg.0 + IL_0046: ldc.i4.m1 + IL_0047: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_004c: ldarg.0 + IL_004d: ldc.i4.s -3 + IL_004f: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0054: nop + IL_0055: ldarg.0 + IL_0056: ldc.i4.2 + IL_0057: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>2__current' + IL_005c: ldarg.0 + IL_005d: ldc.i4.2 + IL_005e: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0063: ldc.i4.1 + IL_0064: stloc.0 + IL_0065: leave.s IL_009c + + IL_0067: ldarg.0 + IL_0068: ldc.i4.s -3 + IL_006a: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_006f: nop + IL_0070: ldarg.0 + IL_0071: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>m__Finally1'() + IL_0076: nop + IL_0077: ldarg.0 + IL_0078: ldc.i4.3 + IL_0079: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>2__current' + IL_007e: ldarg.0 + IL_007f: ldc.i4.3 + IL_0080: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0085: ldc.i4.1 + IL_0086: stloc.0 + IL_0087: leave.s IL_009c + + IL_0089: ldarg.0 + IL_008a: ldc.i4.m1 + IL_008b: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0090: ldc.i4.0 + IL_0091: stloc.0 + IL_0092: leave.s IL_009c + + } // end .try + fault + { + IL_0094: ldarg.0 + IL_0095: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::System.IDisposable.Dispose() + IL_009a: nop + IL_009b: endfinally + } // end handler + IL_009c: ldloc.0 + IL_009d: ret + } // end of method 'd__23`1'::MoveNext + + .method private hidebysig instance void + '<>m__Finally1'() cil managed + { + // Code size 70 (0x46) + .maxstack 2 + IL_0000: ldarg.0 + IL_0001: ldc.i4.m1 + IL_0002: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0007: nop + IL_0008: ldarg.0 + IL_0009: ldarg.0 + IL_000a: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::a + IL_000f: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'5__1' + IL_0014: ldarg.0 + IL_0015: ldflda !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'5__1' + IL_001a: constrained. !T + IL_0020: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0025: nop + IL_0026: ldarg.0 + IL_0027: ldflda !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'5__1' + IL_002c: constrained. !T + IL_0032: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0037: nop + IL_0038: nop + IL_0039: ldarg.0 + IL_003a: ldflda !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'5__1' + IL_003f: initobj !T + IL_0045: ret + } // end of method 'd__23`1'::'<>m__Finally1' + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>2__current' + IL_0006: ret + } // end of method 'd__23`1'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__23`1'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__23`1'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>3__a' + IL_0030: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::a + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__23`1'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__23`1'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__23`1'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__23`1'::System.Collections.IEnumerator.Current + } // end of class 'd__23`1' + + .class auto ansi sealed nested private beforefieldinit 'd__24`1'<.ctor T> + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private !T '<>2__current' + .field private int32 '<>l__initialThreadId' + .field private !T '5__1' + .field private int32 '5__2' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__24`1'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__24`1'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 113 (0x71) + .maxstack 3 + .locals init (int32 V_0, + int32 V_1, + bool V_2) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: brfalse.s IL_0012 + + IL_000a: br.s IL_000c + + IL_000c: ldloc.0 + IL_000d: ldc.i4.1 + IL_000e: beq.s IL_0014 + + IL_0010: br.s IL_0016 + + IL_0012: br.s IL_0018 + + IL_0014: br.s IL_004a + + IL_0016: ldc.i4.0 + IL_0017: ret + + IL_0018: ldarg.0 + IL_0019: ldc.i4.m1 + IL_001a: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_001f: nop + IL_0020: ldarg.0 + IL_0021: call !!0 [mscorlib]System.Activator::CreateInstance() + IL_0026: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__1' + IL_002b: ldarg.0 + IL_002c: ldc.i4.0 + IL_002d: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__2' + IL_0032: br.s IL_0062 + + IL_0034: nop + IL_0035: ldarg.0 + IL_0036: ldarg.0 + IL_0037: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__1' + IL_003c: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>2__current' + IL_0041: ldarg.0 + IL_0042: ldc.i4.1 + IL_0043: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_0048: ldc.i4.1 + IL_0049: ret + + IL_004a: ldarg.0 + IL_004b: ldc.i4.m1 + IL_004c: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_0051: nop + IL_0052: ldarg.0 + IL_0053: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__2' + IL_0058: stloc.1 + IL_0059: ldarg.0 + IL_005a: ldloc.1 + IL_005b: ldc.i4.1 + IL_005c: add + IL_005d: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__2' + IL_0062: ldarg.0 + IL_0063: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'5__2' + IL_0068: ldc.i4.3 + IL_0069: clt + IL_006b: stloc.2 + IL_006c: ldloc.2 + IL_006d: brtrue.s IL_0034 + + IL_006f: ldc.i4.0 + IL_0070: ret + } // end of method 'd__24`1'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance !T 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>2__current' + IL_0006: ret + } // end of method 'd__24`1'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__24`1'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>2__current' + IL_0006: box !T + IL_000b: ret + } // end of method 'd__24`1'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 43 (0x2b) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ret + } // end of method 'd__24`1'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__24`1'::System.Collections.IEnumerable.GetEnumerator + + .property instance !T 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance !T ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__24`1'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__24`1'::System.Collections.IEnumerator.Current + } // end of class 'd__24`1' + + .field private int32 fieldOnThis + .method public hidebysig specialname static + class [mscorlib]System.Collections.Generic.IEnumerable`1 + get_YieldChars() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 58 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..XICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 67 65 74 5F 59 69 65 6C // tyTest+d__2.. + // Code size 12 (0xc) + .maxstack 1 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2' V_0, + class [mscorlib]System.Collections.Generic.IEnumerable`1 V_1) + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__2'::.ctor(int32) + IL_0007: stloc.0 + IL_0008: ldloc.0 + IL_0009: stloc.1 + IL_000a: ldloc.1 + IL_000b: ret + } // end of method YieldReturnPrettyTest::get_YieldChars + + .method assembly hidebysig static void + Print(string name, + class [mscorlib]System.Collections.Generic.IEnumerator`1 enumerator) cil managed + { + // Code size 61 (0x3d) + .maxstack 3 + .locals init (bool V_0) + IL_0000: nop + IL_0001: ldarg.0 + IL_0002: ldstr ": Test start" + IL_0007: call string [mscorlib]System.String::Concat(string, + string) + IL_000c: call void [mscorlib]System.Console::WriteLine(string) + IL_0011: nop + IL_0012: br.s IL_0032 + + IL_0014: nop + IL_0015: ldarg.0 + IL_0016: ldstr ": " + IL_001b: ldarg.1 + IL_001c: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0021: box !!T + IL_0026: call string [mscorlib]System.String::Concat(object, + object, + object) + IL_002b: call void [mscorlib]System.Console::WriteLine(string) + IL_0030: nop + IL_0031: nop + IL_0032: ldarg.1 + IL_0033: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0038: stloc.0 + IL_0039: ldloc.0 + IL_003a: brtrue.s IL_0014 + + IL_003c: ret + } // end of method YieldReturnPrettyTest::Print + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + SimpleYieldReturn() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..[ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 53 69 6D 70 6C 65 59 69 // tyTest+d__4.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__4'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::SimpleYieldReturn + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerator`1 + SimpleYieldReturnEnumerator() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 65 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..eICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 53 69 6D 70 6C 65 59 69 // tyTest+d__5.. + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__5'::.ctor(int32) + IL_0006: ret + } // end of method YieldReturnPrettyTest::SimpleYieldReturnEnumerator + + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnParameters(int32 p) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5F 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // .._ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d_ + 5F 36 00 00 ) // _6.. + // Code size 22 (0x16) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>4__this' + IL_000e: dup + IL_000f: ldarg.1 + IL_0010: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__6'::'<>3__p' + IL_0015: ret + } // end of method YieldReturnPrettyTest::YieldReturnParameters + + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + YieldReturnParametersEnumerator(int32 p) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 69 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..iICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__7.. + // Code size 21 (0x15) + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::.ctor(int32) + IL_0006: dup + IL_0007: ldarg.0 + IL_0008: stfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::'<>4__this' + IL_000d: dup + IL_000e: ldarg.1 + IL_000f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__7'::p + IL_0014: ret + } // end of method YieldReturnPrettyTest::YieldReturnParametersEnumerator + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnInLoop() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..[ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__8.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__8'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldReturnInLoop + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithTryFinally() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 63 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..cICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__9.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__9'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithNestedTryFinally(bool breakInMiddle) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 6A 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..jICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__10.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__10'::'<>3__breakInMiddle' + IL_000e: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithNestedTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldReturnWithTwoNonNestedFinallyBlocks(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 73 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..sICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__11.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__11'::'<>3__input' + IL_000e: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithTwoNonNestedFinallyBlocks + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1> + YieldReturnWithAnonymousMethods1(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 6B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..kICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__12.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__12'::'<>3__input' + IL_000e: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithAnonymousMethods1 + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1> + YieldReturnWithAnonymousMethods2(class [mscorlib]System.Collections.Generic.IEnumerable`1 input) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 6B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..kICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 52 65 74 // tyTest+d__13.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__13'::'<>3__input' + IL_000e: ret + } // end of method YieldReturnPrettyTest::YieldReturnWithAnonymousMethods2 + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + GetEvenNumbers(int32 n) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 59 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..YICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 47 65 74 45 76 65 6E 4E // tyTest+d__14.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__14'::'<>3__n' + IL_000e: ret + } // end of method YieldReturnPrettyTest::GetEvenNumbers + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + ExceptionHandling() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5C 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..\ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 45 78 63 65 70 74 69 6F // tyTest+d__15. + 00 ) + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__15'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::ExceptionHandling + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInCatch() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5C 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..\ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 42 72 65 // tyTest+d__16. + 00 ) + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__16'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldBreakInCatch + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInCatchInTryFinally() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 68 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..hICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 42 72 65 // tyTest+d__17.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__17'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldBreakInCatchInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInTryCatchInTryFinally() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 6B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..kICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 42 72 65 // tyTest+d__18.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__18'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldBreakInTryCatchInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakInTryFinallyInTryFinally(bool b) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 6D 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..mICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 42 72 65 // tyTest+d__19 + 00 00 ) + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__19'::'<>3__b' + IL_000e: ret + } // end of method YieldReturnPrettyTest::YieldBreakInTryFinallyInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldBreakOnly() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 59 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..YICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 59 69 65 6C 64 42 72 65 // tyTest+d__20.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__20'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::YieldBreakOnly + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + UnconditionalThrowInTryFinally() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 69 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..iICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 55 6E 63 6F 6E 64 69 74 // tyTest+d__21.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__21'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::UnconditionalThrowInTryFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + NestedTryFinallyStartingOnSamePosition() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 71 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..qICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 4E 65 73 74 65 64 54 72 // tyTest+d + 5F 5F 32 32 00 00 ) // __22.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__22'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::NestedTryFinallyStartingOnSamePosition + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + LocalInFinally<([mscorlib]System.IDisposable) T>(!!T a) cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 5B 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..[ICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 4C 6F 63 61 6C 49 6E 46 // tyTest+d__23`1.. + // Code size 15 (0xf) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: stfld !0 class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__23`1'::'<>3__a' + IL_000e: ret + } // end of method YieldReturnPrettyTest::LocalInFinally + + .method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1 + GenericYield<.ctor T>() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 59 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..YICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 59 69 65 6C 64 52 65 74 75 72 6E 50 72 65 74 // .YieldReturnPret + 74 79 54 65 73 74 2B 3C 47 65 6E 65 72 69 63 59 // tyTest+d__24`1.. + // Code size 8 (0x8) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest/'d__24`1'::.ctor(int32) + IL_0007: ret + } // end of method YieldReturnPrettyTest::GenericYield + + .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 YieldReturnPrettyTest::.ctor + + .property class [mscorlib]System.Collections.Generic.IEnumerable`1 + YieldChars() + { + .get class [mscorlib]System.Collections.Generic.IEnumerable`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest::get_YieldChars() + } // end of property YieldReturnPrettyTest::YieldChars +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.YieldReturnPrettyTest + +.class private sequential ansi sealed beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + extends [mscorlib]System.ValueType +{ + .class auto ansi sealed nested private beforefieldinit 'd__1' + extends [mscorlib]System.Object + implements class [mscorlib]System.Collections.Generic.IEnumerable`1, + [mscorlib]System.Collections.IEnumerable, + class [mscorlib]System.Collections.Generic.IEnumerator`1, + [mscorlib]System.IDisposable, + [mscorlib]System.Collections.IEnumerator + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .field private int32 '<>1__state' + .field private int32 '<>2__current' + .field private int32 '<>l__initialThreadId' + .field public valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn '<>4__this' + .field public valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn '<>3__<>4__this' + .method public hidebysig specialname rtspecialname + instance void .ctor(int32 '<>1__state') cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + // Code size 26 (0x1a) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: ldarg.0 + IL_0008: ldarg.1 + IL_0009: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_000e: ldarg.0 + IL_000f: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0014: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>l__initialThreadId' + IL_0019: ret + } // end of method 'd__1'::.ctor + + .method private hidebysig newslot virtual final + instance void System.IDisposable.Dispose() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.IDisposable::Dispose + // Code size 1 (0x1) + .maxstack 8 + IL_0000: ret + } // end of method 'd__1'::System.IDisposable.Dispose + + .method private hidebysig newslot virtual final + instance bool MoveNext() cil managed + { + .override [mscorlib]System.Collections.IEnumerator::MoveNext + // Code size 143 (0x8f) + .maxstack 4 + .locals init (int32 V_0, + int32 V_1) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: switch ( + IL_001b, + IL_001d, + IL_001f) + IL_0019: br.s IL_0021 + + IL_001b: br.s IL_0023 + + IL_001d: br.s IL_0055 + + IL_001f: br.s IL_0086 + + IL_0021: ldc.i4.0 + IL_0022: ret + + IL_0023: ldarg.0 + IL_0024: ldc.i4.m1 + IL_0025: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: ldarg.0 + IL_002d: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>4__this' + IL_0032: ldarg.0 + IL_0033: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>4__this' + IL_0038: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_003d: stloc.1 + IL_003e: ldloc.1 + IL_003f: ldc.i4.1 + IL_0040: add + IL_0041: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_0046: ldloc.1 + IL_0047: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>2__current' + IL_004c: ldarg.0 + IL_004d: ldc.i4.1 + IL_004e: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_0053: ldc.i4.1 + IL_0054: ret + + IL_0055: ldarg.0 + IL_0056: ldc.i4.m1 + IL_0057: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_005c: ldarg.0 + IL_005d: ldarg.0 + IL_005e: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>4__this' + IL_0063: ldarg.0 + IL_0064: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>4__this' + IL_0069: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_006e: stloc.1 + IL_006f: ldloc.1 + IL_0070: ldc.i4.1 + IL_0071: add + IL_0072: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn::val + IL_0077: ldloc.1 + IL_0078: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>2__current' + IL_007d: ldarg.0 + IL_007e: ldc.i4.2 + IL_007f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_0084: ldc.i4.1 + IL_0085: ret + + IL_0086: ldarg.0 + IL_0087: ldc.i4.m1 + IL_0088: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_008d: ldc.i4.0 + IL_008e: ret + } // end of method 'd__1'::MoveNext + + .method private hidebysig newslot specialname virtual final + instance int32 'System.Collections.Generic.IEnumerator.get_Current'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>2__current' + IL_0006: ret + } // end of method 'd__1'::'System.Collections.Generic.IEnumerator.get_Current' + + .method private hidebysig newslot virtual final + instance void System.Collections.IEnumerator.Reset() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::Reset + // Code size 6 (0x6) + .maxstack 8 + IL_0000: newobj instance void [mscorlib]System.NotSupportedException::.ctor() + IL_0005: throw + } // end of method 'd__1'::System.Collections.IEnumerator.Reset + + .method private hidebysig newslot specialname virtual final + instance object System.Collections.IEnumerator.get_Current() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerator::get_Current + // Code size 12 (0xc) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>2__current' + IL_0006: box [mscorlib]System.Int32 + IL_000b: ret + } // end of method 'd__1'::System.Collections.IEnumerator.get_Current + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.Generic.IEnumerator`1 + 'System.Collections.Generic.IEnumerable.GetEnumerator'() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + // Code size 55 (0x37) + .maxstack 2 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1' V_0) + IL_0000: ldarg.0 + IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_0006: ldc.i4.s -2 + IL_0008: bne.un.s IL_0022 + + IL_000a: ldarg.0 + IL_000b: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>l__initialThreadId' + IL_0010: call int32 [mscorlib]System.Environment::get_CurrentManagedThreadId() + IL_0015: bne.un.s IL_0022 + + IL_0017: ldarg.0 + IL_0018: ldc.i4.0 + IL_0019: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>1__state' + IL_001e: ldarg.0 + IL_001f: stloc.0 + IL_0020: br.s IL_0029 + + IL_0022: ldc.i4.0 + IL_0023: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::.ctor(int32) + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: ldarg.0 + IL_002b: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>3__<>4__this' + IL_0030: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>4__this' + IL_0035: ldloc.0 + IL_0036: ret + } // end of method 'd__1'::'System.Collections.Generic.IEnumerable.GetEnumerator' + + .method private hidebysig newslot virtual final + instance class [mscorlib]System.Collections.IEnumerator + System.Collections.IEnumerable.GetEnumerator() cil managed + { + .custom instance void [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor() = ( 01 00 00 00 ) + .override [mscorlib]System.Collections.IEnumerable::GetEnumerator + // Code size 7 (0x7) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'System.Collections.Generic.IEnumerable.GetEnumerator'() + IL_0006: ret + } // end of method 'd__1'::System.Collections.IEnumerable.GetEnumerator + + .property instance int32 'System.Collections.Generic.IEnumerator.Current'() + { + .get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'System.Collections.Generic.IEnumerator.get_Current'() + } // end of property 'd__1'::'System.Collections.Generic.IEnumerator.Current' + .property instance object System.Collections.IEnumerator.Current() + { + .get instance object ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::System.Collections.IEnumerator.get_Current() + } // end of property 'd__1'::System.Collections.IEnumerator.Current + } // end of class 'd__1' + + .field private int32 val + .method public hidebysig instance class [mscorlib]System.Collections.Generic.IEnumerable`1 + Count() cil managed + { + .custom instance void [mscorlib]System.Runtime.CompilerServices.IteratorStateMachineAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 4F 49 43 53 68 61 72 70 43 6F 64 65 2E 44 // ..OICSharpCode.D + 65 63 6F 6D 70 69 6C 65 72 2E 54 65 73 74 73 2E // ecompiler.Tests. + 54 65 73 74 43 61 73 65 73 2E 50 72 65 74 74 79 // TestCases.Pretty + 2E 53 74 72 75 63 74 57 69 74 68 59 69 65 6C 64 // .StructWithYield + 52 65 74 75 72 6E 2B 3C 43 6F 75 6E 74 3E 64 5F // Return+d_ + 5F 31 00 00 ) // _1.. + // Code size 20 (0x14) + .maxstack 8 + IL_0000: ldc.i4.s -2 + IL_0002: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::.ctor(int32) + IL_0007: dup + IL_0008: ldarg.0 + IL_0009: ldobj ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + IL_000e: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn/'d__1'::'<>3__<>4__this' + IL_0013: ret + } // end of method StructWithYieldReturn::Count + +} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.StructWithYieldReturn + + +// ============================================================= + +// *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemLoaderTests.cs b/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemLoaderTests.cs index 9f26f41e7..f967cf060 100644 --- a/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemLoaderTests.cs +++ b/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemLoaderTests.cs @@ -22,12 +22,10 @@ using System.Collections.Immutable; using System.IO; using System.Linq; using System.Reflection.Metadata; -using System.Reflection.PortableExecutable; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text; using ICSharpCode.Decompiler.Metadata; -using ICSharpCode.Decompiler.Semantics; using ICSharpCode.Decompiler.TypeSystem; using ICSharpCode.Decompiler.TypeSystem.Implementation; using NUnit.Framework; @@ -677,6 +675,26 @@ namespace ICSharpCode.Decompiler.Tests.TypeSystem Assert.AreEqual((int)CharSet.Unicode, dllImport.NamedArguments.Single().Value); } + [Test] + public void DllImportAttributeWithPreserveSigFalse() + { + IMethod method = GetTypeDefinition(typeof(NonCustomAttributes)).Methods.Single(m => m.Name == "DoNotPreserveSig"); + IAttribute dllImport = method.GetAttributes().Single(); + Assert.AreEqual("System.Runtime.InteropServices.DllImportAttribute", dllImport.AttributeType.FullName); + Assert.AreEqual("unmanaged.dll", dllImport.FixedArguments[0].Value); + Assert.AreEqual(false, dllImport.NamedArguments.Single().Value); + } + + [Test] + public void PreserveSigAttribute() + { + IMethod method = GetTypeDefinition(typeof(NonCustomAttributes)).Methods.Single(m => m.Name == "PreserveSigAsAttribute"); + IAttribute preserveSig = method.GetAttributes().Single(); + Assert.AreEqual("System.Runtime.InteropServices.PreserveSigAttribute", preserveSig.AttributeType.FullName); + Assert.IsTrue(preserveSig.FixedArguments.Length == 0); + Assert.IsTrue(preserveSig.NamedArguments.Length == 0); + } + [Test] public void InOutParametersOnRefMethod() { diff --git a/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemTestCase.cs b/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemTestCase.cs index e819918a8..399c684c8 100644 --- a/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemTestCase.cs +++ b/ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemTestCase.cs @@ -153,6 +153,14 @@ namespace ICSharpCode.Decompiler.Tests.TypeSystem [DllImport("unmanaged.dll", CharSet = CharSet.Unicode)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool DllMethod([In, Out] ref int p); + + [DllImport("unmanaged.dll", PreserveSig = false)] + public static extern bool DoNotPreserveSig(); + + [PreserveSig] + public static void PreserveSigAsAttribute() + { + } } [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Unicode, Pack = 8)] diff --git a/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs b/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs index 9328792e7..01f8a8abb 100644 --- a/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs +++ b/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs @@ -153,6 +153,7 @@ namespace ICSharpCode.Decompiler.CSharp new ProxyCallReplacer(), new DelegateConstruction(), new HighLevelLoopTransform(), + new ReduceNestingTransform(), new IntroduceDynamicTypeOnLocals(), new AssignVariableNames(), }; @@ -678,12 +679,15 @@ namespace ICSharpCode.Decompiler.CSharp /// /// /// Unlike Decompile(IMemberDefinition[]), this method will add namespace declarations around the type definition. + /// Note that decompiling types from modules other than the main module is not supported. /// public SyntaxTree DecompileType(FullTypeName fullTypeName) { var type = typeSystem.FindType(fullTypeName.TopLevelTypeName).GetDefinition(); if (type == null) throw new InvalidOperationException($"Could not find type definition {fullTypeName} in type system."); + if (type.ParentModule != typeSystem.MainModule) + throw new NotSupportedException("Decompiling types that are not part of the main module is not supported."); var decompilationContext = new SimpleTypeResolveContext(typeSystem.MainModule); var decompileRun = new DecompileRun(settings) { DocumentationProvider = DocumentationProvider ?? CreateDefaultDocumentationProvider(), @@ -980,6 +984,9 @@ namespace ICSharpCode.Decompiler.CSharp case EnumValueDisplayMode.None: foreach (var enumMember in typeDecl.Members.OfType()) { enumMember.Initializer = null; + if (enumMember.GetSymbol() is IField f && f.ConstantValue == null) { + typeDecl.InsertChildBefore(enumMember, new Comment(" error: enumerator has no value"), Roles.Comment); + } } break; case EnumValueDisplayMode.All: @@ -1006,7 +1013,7 @@ namespace ICSharpCode.Decompiler.CSharp bool first = true; long firstValue = 0, previousValue = 0; foreach (var field in typeDef.Fields) { - if (MemberIsHidden(module, field.MetadataToken, settings)) continue; + if (MemberIsHidden(module, field.MetadataToken, settings) || field.ConstantValue == null) continue; long currentValue = (long)CSharpPrimitiveCast.Cast(TypeCode.Int64, field.ConstantValue, false); if (first) { firstValue = currentValue; @@ -1233,15 +1240,16 @@ namespace ICSharpCode.Decompiler.CSharp { Debug.Assert(decompilationContext.CurrentMember == field); var typeSystemAstBuilder = CreateAstBuilder(decompilationContext); - if (decompilationContext.CurrentTypeDefinition.Kind == TypeKind.Enum && field.ConstantValue != null) { + if (decompilationContext.CurrentTypeDefinition.Kind == TypeKind.Enum) { var enumDec = new EnumMemberDeclaration { Name = field.Name }; - long initValue = (long)CSharpPrimitiveCast.Cast(TypeCode.Int64, field.ConstantValue, false); - enumDec.Initializer = typeSystemAstBuilder.ConvertConstantValue(decompilationContext.CurrentTypeDefinition.EnumUnderlyingType, field.ConstantValue); - if (enumDec.Initializer is PrimitiveExpression primitive - && initValue >= 0 && (decompilationContext.CurrentTypeDefinition.HasAttribute(KnownAttribute.Flags) - || (initValue > 9 && (unchecked(initValue & (initValue - 1)) == 0 || unchecked(initValue & (initValue + 1)) == 0)))) - { - primitive.SetValue(initValue, $"0x{initValue:X}"); + if (field.ConstantValue != null) { + long initValue = (long)CSharpPrimitiveCast.Cast(TypeCode.Int64, field.ConstantValue, false); + enumDec.Initializer = typeSystemAstBuilder.ConvertConstantValue(decompilationContext.CurrentTypeDefinition.EnumUnderlyingType, field.ConstantValue); + if (enumDec.Initializer is PrimitiveExpression primitive + && initValue >= 0 && (decompilationContext.CurrentTypeDefinition.HasAttribute(KnownAttribute.Flags) + || (initValue > 9 && (unchecked(initValue & (initValue - 1)) == 0 || unchecked(initValue & (initValue + 1)) == 0)))) { + primitive.SetValue(initValue, $"0x{initValue:X}"); + } } enumDec.Attributes.AddRange(field.GetAttributes().Select(a => new AttributeSection(typeSystemAstBuilder.ConvertAttribute(a)))); enumDec.AddAnnotation(new MemberResolveResult(null, field)); diff --git a/ICSharpCode.Decompiler/CSharp/CallBuilder.cs b/ICSharpCode.Decompiler/CSharp/CallBuilder.cs index a245f3472..87b9e4651 100644 --- a/ICSharpCode.Decompiler/CSharp/CallBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/CallBuilder.cs @@ -235,22 +235,41 @@ namespace ICSharpCode.Decompiler.CSharp argumentList.GetArgumentResolveResults().ToList(), isExpandedForm: argumentList.IsExpandedForm)); } - if (settings.StringInterpolation && IsInterpolatedStringCreation(method) && + if (settings.StringInterpolation && IsInterpolatedStringCreation(method, argumentList) && TryGetStringInterpolationTokens(argumentList, out string format, out var tokens)) { var arguments = argumentList.Arguments; var content = new List(); + + bool unpackSingleElementArray = !argumentList.IsExpandedForm && argumentList.Length == 2 + && argumentList.Arguments[1].Expression is ArrayCreateExpression ace + && ace.Initializer?.Elements.Count == 1; + + void UnpackSingleElementArray(ref TranslatedExpression argument) + { + if (!unpackSingleElementArray) return; + var arrayCreation = (ArrayCreateExpression)argumentList.Arguments[1].Expression; + var arrayCreationRR = (ArrayCreateResolveResult)argumentList.Arguments[1].ResolveResult; + var element = arrayCreation.Initializer.Elements.First().Detach(); + argument = new TranslatedExpression(element, arrayCreationRR.InitializerElements.First()); + } + if (tokens.Count > 0) { foreach (var (kind, index, text) in tokens) { + TranslatedExpression argument; switch (kind) { case TokenKind.String: content.Add(new InterpolatedStringText(text)); break; case TokenKind.Argument: - content.Add(new Interpolation(arguments[index + 1])); + argument = arguments[index + 1]; + UnpackSingleElementArray(ref argument); + content.Add(new Interpolation(argument)); break; case TokenKind.ArgumentWithFormat: - content.Add(new Interpolation(arguments[index + 1], text)); + argument = arguments[index + 1]; + UnpackSingleElementArray(ref argument); + content.Add(new Interpolation(argument, text)); break; } } @@ -405,12 +424,18 @@ namespace ICSharpCode.Decompiler.CSharp return new ExpressionWithResolveResult(((AssignmentExpression)assignment).Left.Detach()); } - private bool IsInterpolatedStringCreation(IMethod method) + private static bool IsInterpolatedStringCreation(IMethod method, ArgumentList argumentList) { return method.IsStatic && ( (method.DeclaringType.IsKnownType(KnownTypeCode.String) && method.Name == "Format") || (method.Name == "Create" && method.DeclaringType.Name == "FormattableStringFactory" && method.DeclaringType.Namespace == "System.Runtime.CompilerServices") + ) + && argumentList.ArgumentNames == null // Argument names are not allowed + && ( + argumentList.IsExpandedForm // Must be expanded form + || !method.Parameters.Last().IsParams // -or- not a params overload + || (argumentList.Length == 2 && argumentList.Arguments[1].Expression is ArrayCreateExpression) // -or- an array literal ); } @@ -643,7 +668,10 @@ namespace ICSharpCode.Decompiler.CSharp expandedArguments.Add(expressionBuilder.GetDefaultValueExpression(elementType).WithoutILInstruction()); } } - if (IsUnambiguousCall(expectedTargetDetails, method, targetResolveResult, Empty.Array, expandedArguments, null, -1, out _) == OverloadResolutionErrors.None) { + if (IsUnambiguousCall(expectedTargetDetails, method, targetResolveResult, Empty.Array, + expandedArguments, argumentNames: null, firstOptionalArgumentIndex: -1, out _, + out var bestCandidateIsExpandedForm) == OverloadResolutionErrors.None && bestCandidateIsExpandedForm) + { expectedParameters = expandedParameters; arguments = expandedArguments.SelectList(a => new TranslatedExpression(a.Expression.Detach())); return true; @@ -758,7 +786,8 @@ namespace ICSharpCode.Decompiler.CSharp bool argumentsCasted = false; OverloadResolutionErrors errors; while ((errors = IsUnambiguousCall(expectedTargetDetails, method, targetResolveResult, typeArguments, - argumentList.Arguments, argumentList.ArgumentNames, argumentList.FirstOptionalArgumentIndex, out foundMethod)) != OverloadResolutionErrors.None) + argumentList.Arguments, argumentList.ArgumentNames, argumentList.FirstOptionalArgumentIndex, out foundMethod, + out var bestCandidateIsExpandedForm)) != OverloadResolutionErrors.None || bestCandidateIsExpandedForm != argumentList.IsExpandedForm) { switch (errors) { case OverloadResolutionErrors.TypeInferenceFailed: @@ -923,9 +952,10 @@ namespace ICSharpCode.Decompiler.CSharp OverloadResolutionErrors IsUnambiguousCall(ExpectedTargetDetails expectedTargetDetails, IMethod method, ResolveResult target, IType[] typeArguments, IList arguments, string[] argumentNames, int firstOptionalArgumentIndex, - out IParameterizedMember foundMember) + out IParameterizedMember foundMember, out bool bestCandidateIsExpandedForm) { foundMember = null; + bestCandidateIsExpandedForm = false; var lookup = new MemberLookup(resolver.CurrentTypeDefinition, resolver.CurrentTypeDefinition.ParentModule); var or = new OverloadResolution(resolver.Compilation, firstOptionalArgumentIndex < 0 ? arguments.SelectArray(a => a.ResolveResult) : arguments.Take(firstOptionalArgumentIndex).Select(a => a.ResolveResult).ToArray(), @@ -964,6 +994,7 @@ namespace ICSharpCode.Decompiler.CSharp return OverloadResolutionErrors.AmbiguousMatch; or.AddMethodLists(result.MethodsGroupedByDeclaringType.ToArray()); } + bestCandidateIsExpandedForm = or.BestCandidateIsExpandedForm; if (or.BestCandidateErrors != OverloadResolutionErrors.None) return or.BestCandidateErrors; if (or.IsAmbiguous) @@ -1132,7 +1163,9 @@ namespace ICSharpCode.Decompiler.CSharp )); } else { while (IsUnambiguousCall(expectedTargetDetails, method, null, Empty.Array, argumentList.Arguments, - argumentList.ArgumentNames, argumentList.FirstOptionalArgumentIndex, out _) != OverloadResolutionErrors.None) { + argumentList.ArgumentNames, argumentList.FirstOptionalArgumentIndex, out _, + out var bestCandidateIsExpandedForm) != OverloadResolutionErrors.None || bestCandidateIsExpandedForm != argumentList.IsExpandedForm) + { if (argumentList.FirstOptionalArgumentIndex >= 0) { argumentList.FirstOptionalArgumentIndex = -1; continue; diff --git a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs index 1a326c6ca..b34ddbced 100644 --- a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs @@ -192,14 +192,31 @@ namespace ICSharpCode.Decompiler.CSharp return currentFunction.Ancestors.OfType().SelectMany(f => f.Variables).Any(v => v.Name == name); } + bool RequiresQualifier(IMember member, TranslatedExpression target) + { + if (HidesVariableWithName(member.Name)) + return true; + if (member.IsStatic) + return !IsCurrentOrContainingType(member.DeclaringTypeDefinition); + return !(target.Expression is ThisReferenceExpression || target.Expression is BaseReferenceExpression); + } + ExpressionWithResolveResult ConvertField(IField field, ILInstruction targetInstruction = null) { var target = TranslateTarget(targetInstruction, nonVirtualInvocation: true, memberStatic: field.IsStatic, memberDeclaringType: field.DeclaringType); - bool requireTarget = HidesVariableWithName(field.Name) - || (field.IsStatic ? !IsCurrentOrContainingType(field.DeclaringTypeDefinition) : !(target.Expression is ThisReferenceExpression || target.Expression is BaseReferenceExpression)); + bool requireTarget; + // If this is a reference to the backing field of an automatic property and we're going to transform automatic properties + // in PatternStatementTransform, then we have to do the "requires qualifier"-check based on the property instead of the field. + // It is easier to solve this special case here than in PatternStatementTransform, because here we perform all resolver checks. + // It feels a bit hacky, though. + if (settings.AutomaticProperties && PatternStatementTransform.IsBackingFieldOfAutomaticProperty(field, out var property)) { + requireTarget = RequiresQualifier(property, target); + } else { + requireTarget = RequiresQualifier(field, target); + } bool targetCasted = false; var targetResolveResult = requireTarget ? target.ResolveResult : null; @@ -646,9 +663,9 @@ namespace ICSharpCode.Decompiler.CSharp } else { targetType = compilation.FindType(inst.InputType.ToKnownTypeCode(leftUType.GetSign())); } - if (inst.IsLifted) { - targetType = NullableType.Create(compilation, targetType); - } + } + if (inst.IsLifted) { + targetType = NullableType.Create(compilation, targetType); } if (targetType.Equals(left.Type)) { right = right.ConvertTo(targetType, this); @@ -2475,9 +2492,15 @@ namespace ICSharpCode.Decompiler.CSharp protected internal override TranslatedExpression VisitDynamicConvertInstruction(DynamicConvertInstruction inst, TranslationContext context) { - // TODO : make conversions implicit, if !inst.IsExplicit - // currently this leads to stack type mismatch assertions, if the expected type is not O - return Translate(inst.Argument).ConvertTo(inst.Type, this, inst.IsChecked, allowImplicitConversion: false); + var operand = Translate(inst.Argument).ConvertTo(SpecialType.Dynamic, this); + var result = new CastExpression(ConvertType(inst.Type), operand) + .WithILInstruction(inst) + .WithRR(new ConversionResolveResult( + inst.Type, operand.ResolveResult, + inst.IsExplicit ? Conversion.ExplicitDynamicConversion : Conversion.ImplicitDynamicConversion + )); + result.Expression.AddAnnotation(inst.IsChecked ? AddCheckedBlocks.CheckedAnnotation : AddCheckedBlocks.UncheckedAnnotation); + return result; } protected internal override TranslatedExpression VisitDynamicGetIndexInstruction(DynamicGetIndexInstruction inst, TranslationContext context) diff --git a/ICSharpCode.Decompiler/CSharp/Resolver/CSharpConversions.cs b/ICSharpCode.Decompiler/CSharp/Resolver/CSharpConversions.cs index 88fccd609..ff0ff5854 100644 --- a/ICSharpCode.Decompiler/CSharp/Resolver/CSharpConversions.cs +++ b/ICSharpCode.Decompiler/CSharp/Resolver/CSharpConversions.cs @@ -650,9 +650,9 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver || kind == TypeKind.Delegate || kind == TypeKind.Anonymous; } #endregion - + #region Boxing Conversions - public bool IsBoxingConversion(IType fromType, IType toType) + bool IsBoxingConversion(IType fromType, IType toType) { // C# 4.0 spec: §6.1.7 fromType = NullableType.GetUnderlyingType(fromType); @@ -661,7 +661,18 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver else return false; } - + + /// + /// Gets whether the conversion from fromType to toType is a boxing conversion, + /// or an implicit conversion involving a type parameter that might be + /// a boxing conversion when instantiated with a value type. + /// + public bool IsBoxingConversionOrInvolvingTypeParameter(IType fromType, IType toType) + { + return IsBoxingConversion(fromType, toType) + || ImplicitTypeParameterConversion(fromType, toType); + } + bool UnboxingConversion(IType fromType, IType toType) { // C# 4.0 spec: §6.2.5 diff --git a/ICSharpCode.Decompiler/CSharp/StatementBuilder.cs b/ICSharpCode.Decompiler/CSharp/StatementBuilder.cs index 06d17d255..42eb1dd12 100644 --- a/ICSharpCode.Decompiler/CSharp/StatementBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/StatementBuilder.cs @@ -286,7 +286,9 @@ namespace ICSharpCode.Decompiler.CSharp return new YieldBreakStatement(); else if (!inst.Value.MatchNop()) { IType targetType = currentFunction.IsAsync ? currentFunction.AsyncReturnType : currentFunction.ReturnType; - return new ReturnStatement(exprBuilder.Translate(inst.Value, typeHint: targetType).ConvertTo(targetType, exprBuilder, allowImplicitConversion: true)); + var expr = exprBuilder.Translate(inst.Value, typeHint: targetType) + .ConvertTo(targetType, exprBuilder, allowImplicitConversion: true); + return new ReturnStatement(expr); } else return new ReturnStatement(); } @@ -311,8 +313,10 @@ namespace ICSharpCode.Decompiler.CSharp protected internal override Statement VisitYieldReturn(YieldReturn inst) { var elementType = currentFunction.ReturnType.GetElementTypeFromIEnumerable(typeSystem, true, out var isGeneric); + var expr = exprBuilder.Translate(inst.Value, typeHint: elementType) + .ConvertTo(elementType, exprBuilder, allowImplicitConversion: true); return new YieldReturnStatement { - Expression = exprBuilder.Translate(inst.Value, typeHint: elementType).ConvertTo(elementType, exprBuilder) + Expression = expr }; } diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs index 1e207e9a8..8dd66433f 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs @@ -1396,7 +1396,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax m |= Modifiers.Abstract; if (member.IsOverride) m |= Modifiers.Override; - if (member.IsVirtual && !member.IsAbstract && !member.IsOverride) + if (member.IsVirtual && !member.IsAbstract && !member.IsOverride && declaringType.Kind != TypeKind.Interface) m |= Modifiers.Virtual; if (member.IsSealed) m |= Modifiers.Sealed; diff --git a/ICSharpCode.Decompiler/CSharp/Transforms/PatternStatementTransform.cs b/ICSharpCode.Decompiler/CSharp/Transforms/PatternStatementTransform.cs index 7b21e3c13..19eafb673 100644 --- a/ICSharpCode.Decompiler/CSharp/Transforms/PatternStatementTransform.cs +++ b/ICSharpCode.Decompiler/CSharp/Transforms/PatternStatementTransform.cs @@ -565,6 +565,19 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms return base.VisitIdentifier(identifier); } + internal static bool IsBackingFieldOfAutomaticProperty(IField field, out IProperty property) + { + property = null; + if (!(field.Name.StartsWith("<") && field.Name.EndsWith(">k__BackingField"))) + return false; + if (!field.IsCompilerGenerated()) + return false; + var propertyName = field.Name.Substring(1, field.Name.Length - 1 - ">k__BackingField".Length); + property = field.DeclaringTypeDefinition + .GetProperties(p => p.Name == propertyName, GetMemberOptions.IgnoreInheritedMembers).FirstOrDefault(); + return property != null; + } + Identifier ReplaceBackingFieldUsage(Identifier identifier) { if (identifier.Name.StartsWith("<") && identifier.Name.EndsWith(">k__BackingField")) { diff --git a/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs b/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs index 9945f75c8..d04015e0c 100644 --- a/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs @@ -185,11 +185,12 @@ namespace ICSharpCode.Decompiler.CSharp if (allowImplicitConversion) { switch (ResolveResult) { case ConversionResolveResult conversion: { - if (Expression is CastExpression cast - && ((type.IsKnownType(KnownTypeCode.Object) && conversion.Conversion.IsBoxingConversion - || conversion.Conversion.IsAnonymousFunctionConversion - || (conversion.Conversion.IsImplicit && (conversion.Conversion.IsUserDefined || targetType.IsKnownType(KnownTypeCode.Decimal))) - ) || (conversion.Conversion.IsInterpolatedStringConversion))) { + if (Expression is CastExpression cast && CastCanBeMadeImplicit( + Resolver.CSharpConversions.Get(expressionBuilder.compilation), + conversion.Conversion, + conversion.Input.Type, + type, targetType + )) { return this.UnwrapChild(cast.Expression); } else if (Expression is ObjectCreateExpression oce && conversion.Conversion.IsMethodGroupConversion && oce.Arguments.Count == 1 && expressionBuilder.settings.UseImplicitMethodGroupConversion) { @@ -228,7 +229,7 @@ namespace ICSharpCode.Decompiler.CSharp var compilation = expressionBuilder.compilation; var conversions = Resolver.CSharpConversions.Get(compilation); if (ResolveResult is ConversionResolveResult conv && Expression is CastExpression cast2 && - IsBoxingOrInterpolatedStringConversion(conversions, conv.Conversion, conv.Input.Type, targetType)) + CastCanBeMadeImplicit(conversions, conv.Conversion, conv.Input.Type, type, targetType)) { var unwrapped = this.UnwrapChild(cast2.Expression); if (allowImplicitConversion) @@ -387,21 +388,32 @@ namespace ICSharpCode.Decompiler.CSharp return this; } var castExpr = new CastExpression(expressionBuilder.ConvertType(targetType), Expression); - bool avoidCheckAnnotation = utype.IsKnownType(KnownTypeCode.Single) && targetUType.IsKnownType(KnownTypeCode.Double); - if (!avoidCheckAnnotation) { + bool needsCheckAnnotation = targetUType.GetStackType().IsIntegerType(); + if (needsCheckAnnotation) { castExpr.AddAnnotation(checkForOverflow ? AddCheckedBlocks.CheckedAnnotation : AddCheckedBlocks.UncheckedAnnotation); } return castExpr.WithoutILInstruction().WithRR(rr); } - - bool IsBoxingOrInterpolatedStringConversion(Resolver.CSharpConversions conversions, Conversion conversion, IType inputType, IType targetType) + + /// + /// Gets whether an implicit conversion from 'inputType' to 'newTargetType' + /// would have the same semantics as the existing cast from 'inputType' to 'oldTargetType'. + /// The existing cast is classified in 'conversion'. + /// + bool CastCanBeMadeImplicit(Resolver.CSharpConversions conversions, Conversion conversion, IType inputType, IType oldTargetType, IType newTargetType) { - if (conversion.IsBoxingConversion && conversions.IsBoxingConversion(inputType, targetType)) - return true; - if (conversion.IsInterpolatedStringConversion && (targetType.IsKnownType(KnownTypeCode.FormattableString) - || targetType.IsKnownType(KnownTypeCode.IFormattable))) - return true; - return false; + if (!conversion.IsImplicit) { + // If the cast was required for the old conversion, avoid making it implicit. + return false; + } + if (conversion.IsBoxingConversion) { + return conversions.IsBoxingConversionOrInvolvingTypeParameter(inputType, newTargetType); + } + if (conversion.IsInterpolatedStringConversion) { + return newTargetType.IsKnownType(KnownTypeCode.FormattableString) + || newTargetType.IsKnownType(KnownTypeCode.IFormattable); + } + return oldTargetType.Equals(newTargetType); } TranslatedExpression LdcI4(ICompilation compilation, int val) diff --git a/ICSharpCode.Decompiler/Disassembler/ReflectionDisassembler.cs b/ICSharpCode.Decompiler/Disassembler/ReflectionDisassembler.cs index ca32f0eb6..2b45ff9ac 100644 --- a/ICSharpCode.Decompiler/Disassembler/ReflectionDisassembler.cs +++ b/ICSharpCode.Decompiler/Disassembler/ReflectionDisassembler.cs @@ -666,7 +666,7 @@ namespace ICSharpCode.Decompiler.Disassembler } break; default: - output.Write(value.ToString()); + DisassemblerHelpers.WriteOperand(output, value); break; } } diff --git a/ICSharpCode.Decompiler/Documentation/IdStringProvider.cs b/ICSharpCode.Decompiler/Documentation/IdStringProvider.cs index fc231b460..43488e36c 100644 --- a/ICSharpCode.Decompiler/Documentation/IdStringProvider.cs +++ b/ICSharpCode.Decompiler/Documentation/IdStringProvider.cs @@ -352,7 +352,6 @@ namespace ICSharpCode.Decompiler.Documentation typeParameterCount = ReflectionHelper.ReadTypeParameterCount(typeName, ref pos); } else if (pos < typeName.Length && typeName[pos] == '{') { // bound generic type - typeArguments = new List(); do { pos++; typeArguments.Add(ParseTypeName(typeName, ref pos)); diff --git a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj index 6b9927ad7..39b503afb 100644 --- a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj +++ b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj @@ -51,8 +51,8 @@ - - + + @@ -265,6 +265,7 @@ + diff --git a/ICSharpCode.Decompiler/IL/BlockBuilder.cs b/ICSharpCode.Decompiler/IL/BlockBuilder.cs index 412bd551e..1a2e69235 100644 --- a/ICSharpCode.Decompiler/IL/BlockBuilder.cs +++ b/ICSharpCode.Decompiler/IL/BlockBuilder.cs @@ -75,6 +75,7 @@ namespace ICSharpCode.Decompiler.IL var tryBlock = new BlockContainer(); tryBlock.ILRange = tryRange; tryCatch = new TryCatch(tryBlock); + tryCatch.ILRange = tryRange; tryCatchList.Add(tryCatch); tryInstructionList.Add(tryCatch); } @@ -90,7 +91,11 @@ namespace ICSharpCode.Decompiler.IL filter = new LdcI4(1); } - tryCatch.Handlers.Add(new TryCatchHandler(filter, handlerBlock, variableByExceptionHandler[eh])); + var handler = new TryCatchHandler(filter, handlerBlock, variableByExceptionHandler[eh]); + handler.AddILRange(filter.ILRange); + handler.AddILRange(handlerBlock.ILRange); + tryCatch.Handlers.Add(handler); + tryCatch.AddILRange(handler.ILRange); } if (tryInstructionList.Count > 0) { tryInstructionList = tryInstructionList.OrderBy(tc => tc.TryBlock.ILRange.Start).ThenByDescending(tc => tc.TryBlock.ILRange.End).ToList(); @@ -128,6 +133,7 @@ namespace ICSharpCode.Decompiler.IL // Leave nested containers if necessary while (start >= currentContainer.ILRange.End) { currentContainer = containerStack.Pop(); + currentBlock = currentContainer.Blocks.Last(); } // Enter a handler if necessary BlockContainer handlerContainer; @@ -136,6 +142,7 @@ namespace ICSharpCode.Decompiler.IL currentContainer = handlerContainer; currentBlock = handlerContainer.EntryPoint; } else { + FinalizeCurrentBlock(start, fallthrough: false); // Create the new block currentBlock = new Block(); currentContainer.Blocks.Add(currentBlock); @@ -172,6 +179,7 @@ namespace ICSharpCode.Decompiler.IL { if (currentBlock == null) return; + Debug.Assert(currentBlock.ILRange.IsEmpty); currentBlock.ILRange = new Interval(currentBlock.ILRange.Start, currentILOffset); if (fallthrough) { if (currentBlock.Instructions.LastOrDefault() is SwitchInstruction switchInst && switchInst.Sections.Last().Body.MatchNop()) { diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/AwaitInCatchTransform.cs b/ICSharpCode.Decompiler/IL/ControlFlow/AwaitInCatchTransform.cs index b9efda882..9800c264f 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/AwaitInCatchTransform.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/AwaitInCatchTransform.cs @@ -265,6 +265,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow var outer = BlockContainer.FindClosestContainer(container.Parent); if (outer != null) changedContainers.Add(outer); finallyContainer.Blocks.Add(entryPointOfFinally); + finallyContainer.ILRange = entryPointOfFinally.ILRange; exitOfFinally.Instructions.RemoveRange(tempStore.ChildIndex, 3); exitOfFinally.Instructions.Add(new Leave(finallyContainer)); foreach (var branchToFinally in container.Descendants.OfType()) { @@ -274,8 +275,9 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow foreach (var newBlock in additionalBlocksInFinally) { newBlock.Remove(); finallyContainer.Blocks.Add(newBlock); + finallyContainer.AddILRange(newBlock.ILRange); } - tryCatch.ReplaceWith(new TryFinally(tryCatch.TryBlock, finallyContainer)); + tryCatch.ReplaceWith(new TryFinally(tryCatch.TryBlock, finallyContainer) {ILRange = tryCatch.TryBlock.ILRange}); } // clean up all modified containers diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/ConditionDetection.cs b/ICSharpCode.Decompiler/IL/ControlFlow/ConditionDetection.cs index ee44eea01..430bc5598 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/ConditionDetection.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/ConditionDetection.cs @@ -425,7 +425,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow /// private void OrderIfBlocks(IfInstruction ifInst) { - if (IsEmpty(ifInst.FalseInst) || ifInst.TrueInst.ILRange.Start <= ifInst.FalseInst.ILRange.Start) + if (IsEmpty(ifInst.FalseInst) || GetILRange(ifInst.TrueInst).Start <= GetILRange(ifInst.FalseInst).Start) return; context.Step("Swap then-branch with else-branch to match IL order", ifInst); @@ -437,6 +437,16 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow ifInst.Condition = Comp.LogicNot(ifInst.Condition); } + public static Interval GetILRange(ILInstruction inst) + { + // some compilers merge the leave instructions for different arguments using stack variables + // these get split and inlined, but the ILRange of the value remains a better indicator of the actual location + if (inst is Leave leave && !leave.Value.MatchNop()) + return leave.Value.ILRange; + + return inst.ILRange; + } + /// /// Compares the current block exit, and the exit of ifInst.ThenInst /// and inverts if necessary to pick the better exit diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/ControlFlowSimplification.cs b/ICSharpCode.Decompiler/IL/ControlFlow/ControlFlowSimplification.cs index 1cc34d494..64bee1b75 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/ControlFlowSimplification.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/ControlFlowSimplification.cs @@ -132,7 +132,10 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow } else if (targetBlock.Instructions.Count == 1 && targetBlock.Instructions[0] is Leave leave && leave.Value.MatchNop()) { context.Step("Replace branch to leave with leave", branch); // Replace branches to 'leave' instruction with the leave instruction - branch.ReplaceWith(leave.Clone()); + var leave2 = leave.Clone(); + if (!branch.ILRange.IsEmpty) // use the ILRange of the branch if possible + leave2.ILRange = branch.ILRange; + branch.ReplaceWith(leave2); } if (targetBlock.IncomingEdgeCount == 0) targetBlock.Instructions.Clear(); // mark the block for deletion @@ -187,6 +190,10 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow // The C# compiler generates a dead store for the condition of while (true) loops. block.Instructions.RemoveRange(block.Instructions.Count - 3, 2); } + + if (block.ILRange.IsEmpty) + block.ILRange = targetBlock.ILRange; + block.Instructions.Remove(br); block.Instructions.AddRange(targetBlock.Instructions); targetBlock.Instructions.Clear(); // mark targetBlock for deletion diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/DetectPinnedRegions.cs b/ICSharpCode.Decompiler/IL/ControlFlow/DetectPinnedRegions.cs index 45be3e101..f07e4e59b 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/DetectPinnedRegions.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/DetectPinnedRegions.cs @@ -147,7 +147,9 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow if (p.StackType != StackType.Ref) { arrayToPointer = new Conv(arrayToPointer, p.StackType.ToPrimitiveType(), false, Sign.None); } - block.Instructions[block.Instructions.Count - 2] = new StLoc(p, arrayToPointer); + block.Instructions[block.Instructions.Count - 2] = new StLoc(p, arrayToPointer) { + ILRange = block.Instructions[block.Instructions.Count - 2].ILRange + }; ((Branch)block.Instructions.Last()).TargetBlock = targetBlock; modified = true; } @@ -343,7 +345,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow } } - stLoc.ReplaceWith(new PinnedRegion(stLoc.Variable, stLoc.Value, body)); + stLoc.ReplaceWith(new PinnedRegion(stLoc.Variable, stLoc.Value, body) { ILRange = stLoc.ILRange }); block.Instructions.RemoveAt(block.Instructions.Count - 1); // remove branch into body ProcessPinnedRegion((PinnedRegion)block.Instructions.Last()); return true; @@ -400,6 +402,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow foreach (var block in body.Blocks) CreatePinnedRegion(block); body.Blocks.RemoveAll(b => b.Instructions.Count == 0); // remove dummy blocks + body.ILRange = body.EntryPoint.ILRange; } private void MoveArrayToPointerToPinnedRegionInit(PinnedRegion pinnedRegion) diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/LoopDetection.cs b/ICSharpCode.Decompiler/IL/ControlFlow/LoopDetection.cs index 9e0f4e0bc..43dd6f9b0 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/LoopDetection.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/LoopDetection.cs @@ -646,6 +646,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow if (exitTargetBlock != null) oldEntryPoint.Instructions.Add(new Branch(exitTargetBlock)); + loopContainer.ILRange = newEntryPoint.ILRange; MoveBlocksIntoContainer(loop, loopContainer); // Rewrite branches within the loop from oldEntryPoint to newEntryPoint: @@ -731,7 +732,8 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow if (exitTargetBlock != null) { block.Instructions.Add(new Branch(exitTargetBlock)); } - + + switchContainer.ILRange = newEntryPoint.ILRange; MoveBlocksIntoContainer(nodesInSwitch, switchContainer); // Rewrite branches within the loop from oldEntryPoint to newEntryPoint: diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/SwitchAnalysis.cs b/ICSharpCode.Decompiler/IL/ControlFlow/SwitchAnalysis.cs index ab264e3da..cb50ec78f 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/SwitchAnalysis.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/SwitchAnalysis.cs @@ -116,6 +116,8 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow if (!(tailOnly || block.Instructions.Count == 2)) return false; trueValues = trueValues.IntersectWith(inputValues); + if (trueValues.SetEquals(inputValues) || trueValues.IsEmpty) + return false; Block trueBlock; if (trueInst.MatchBranch(out trueBlock) && AnalyzeBlock(trueBlock, trueValues)) { // OK, true block was further analyzed. diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/SwitchDetection.cs b/ICSharpCode.Decompiler/IL/ControlFlow/SwitchDetection.cs index d95fedb5b..4d2bb945c 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/SwitchDetection.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/SwitchDetection.cs @@ -180,6 +180,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow // Remove branch/leave after if; it's getting moved into a section. block.Instructions.RemoveAt(block.Instructions.Count - 1); } + sw.ILRange = block.Instructions[block.Instructions.Count - 1].ILRange; block.Instructions[block.Instructions.Count - 1] = sw; // mark all inner blocks that were converted to the switch statement for deletion diff --git a/ICSharpCode.Decompiler/IL/ControlFlow/YieldReturnDecompiler.cs b/ICSharpCode.Decompiler/IL/ControlFlow/YieldReturnDecompiler.cs index a2b386105..241126458 100644 --- a/ICSharpCode.Decompiler/IL/ControlFlow/YieldReturnDecompiler.cs +++ b/ICSharpCode.Decompiler/IL/ControlFlow/YieldReturnDecompiler.cs @@ -70,6 +70,10 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow /// Set in AnalyzeCurrentProperty() IField currentField; + /// The disposing field of the compiler-generated enumerator class./summary> + /// Set in ConstructExceptionTable() for assembly compiled with Mono + IField disposingField; + /// Maps the fields of the compiler-generated class to the original parameters. /// Set in MatchEnumeratorCreationPattern() and ResolveIEnumerableIEnumeratorFieldMapping() readonly Dictionary fieldToParameterMap = new Dictionary(); @@ -112,6 +116,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow this.enumeratorCtor = default; this.stateField = null; this.currentField = null; + this.disposingField = null; this.fieldToParameterMap.Clear(); this.finallyMethodToStateRange = null; this.decompiledFinallyMethods.Clear(); @@ -147,22 +152,26 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow } context.Step("Delete unreachable blocks", function); - // Note: because this only deletes blocks outright, the 'stateChanges' entries remain valid - // (though some may point to now-deleted blocks) - newBody.SortBlocks(deleteUnreachableBlocks: true); if (isCompiledWithMono) { // mono has try-finally inline (like async on MS); we also need to sort nested blocks: foreach (var nestedContainer in newBody.Blocks.SelectMany(c => c.Descendants).OfType()) { nestedContainer.SortBlocks(deleteUnreachableBlocks: true); } - } else { + // We need to clean up nested blocks before the main block, so that edges from unreachable code + // in nested containers into the main container are removed before we clean up the main container. + } + // Note: because this only deletes blocks outright, the 'stateChanges' entries remain valid + // (though some may point to now-deleted blocks) + newBody.SortBlocks(deleteUnreachableBlocks: true); + + if (!isCompiledWithMono) { DecompileFinallyBlocks(); ReconstructTryFinallyBlocks(function); } context.Step("Translate fields to local accesses", function); - TranslateFieldsToLocalAccess(function, function, fieldToParameterMap); + TranslateFieldsToLocalAccess(function, function, fieldToParameterMap, isCompiledWithMono); CleanSkipFinallyBodies(function); @@ -459,18 +468,31 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow void ConstructExceptionTable() { if (isCompiledWithMono) { + disposeMethod = metadata.GetTypeDefinition(enumeratorType).GetMethods().FirstOrDefault(m => metadata.GetString(metadata.GetMethodDefinition(m).Name) == "Dispose"); + var function = CreateILAst(disposeMethod, context); + BlockContainer body = (BlockContainer)function.Body; + + for (var i = 0; (i < body.EntryPoint.Instructions.Count) && !(body.EntryPoint.Instructions[i] is Branch); i++) { + if (body.EntryPoint.Instructions[i] is StObj stobj + && stobj.MatchStFld(out var target, out var field, out var value) + && target.MatchLdThis() + && field.Type.IsKnownType(KnownTypeCode.Boolean) + && value.MatchLdcI4(1)) { + disposingField = (IField)field.MemberDefinition; + break; + } + } + // On mono, we don't need to analyse Dispose() to reconstruct the try-finally structure. - disposeMethod = default; finallyMethodToStateRange = default; - return; + } else { + // Non-Mono: analyze try-finally structure in Dispose() + disposeMethod = metadata.GetTypeDefinition(enumeratorType).GetMethods().FirstOrDefault(m => metadata.GetString(metadata.GetMethodDefinition(m).Name) == "System.IDisposable.Dispose"); + var function = CreateILAst(disposeMethod, context); + var rangeAnalysis = new StateRangeAnalysis(StateRangeAnalysisMode.IteratorDispose, stateField); + rangeAnalysis.AssignStateRanges(function.Body, LongSet.Universe); + finallyMethodToStateRange = rangeAnalysis.finallyMethodToStateRange; } - - disposeMethod = metadata.GetTypeDefinition(enumeratorType).GetMethods().FirstOrDefault(m => metadata.GetString(metadata.GetMethodDefinition(m).Name) == "System.IDisposable.Dispose"); - var function = CreateILAst(disposeMethod, context); - - var rangeAnalysis = new StateRangeAnalysis(StateRangeAnalysisMode.IteratorDispose, stateField); - rangeAnalysis.AssignStateRanges(function.Body, LongSet.Universe); - finallyMethodToStateRange = rangeAnalysis.finallyMethodToStateRange; } [Conditional("DEBUG")] @@ -633,7 +655,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow newBody.Blocks.Add(new Block { ILRange = oldBody.Blocks[blockIndex].ILRange }); } // convert contents of blocks - + for (int i = 0; i < oldBody.Blocks.Count; i++) { var oldBlock = oldBody.Blocks[i]; var newBlock = newBody.Blocks[i]; @@ -656,7 +678,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow } else if (field.MemberDefinition.Equals(currentField)) { // create yield return newBlock.Instructions.Add(new YieldReturn(value) { ILRange = oldInst.ILRange }); - ConvertBranchAfterYieldReturn(newBlock, oldBlock, oldInst.ChildIndex); + ConvertBranchAfterYieldReturn(newBlock, oldBlock, oldInst.ChildIndex + 1); break; // we're done with this basic block } } else if (oldInst is Call call && call.Arguments.Count == 1 && call.Arguments[0].MatchLdThis() @@ -674,6 +696,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow } // copy over the instruction to the new block newBlock.Instructions.Add(oldInst); + newBlock.AddILRange(oldInst.ILRange); UpdateBranchTargets(oldInst); } } @@ -687,16 +710,51 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow }); return newBody; - void ConvertBranchAfterYieldReturn(Block newBlock, Block oldBlock, int i) + void ConvertBranchAfterYieldReturn(Block newBlock, Block oldBlock, int pos) { - if (!(oldBlock.Instructions[i + 1].MatchStFld(out var target, out var field, out var value) + Block targetBlock; + if (isCompiledWithMono && disposingField != null) { + // Mono skips over the state assignment if 'this.disposing' is set: + // ... + // stfld $current(ldloc this, yield-expr) + // if (ldfld $disposing(ldloc this)) br IL_007c + // br targetBlock + // } + // + // Block targetBlock (incoming: 1) { + // stfld $PC(ldloc this, ldc.i4 1) + // br setSkipFinallyBodies + // } + // + // Block setSkipFinallyBodies (incoming: 2) { + // stloc skipFinallyBodies(ldc.i4 1) + // br returnBlock + // } + if (oldBlock.Instructions[pos].MatchIfInstruction(out var condition, out _) + && condition.MatchLdFld(out var condTarget, out var condField) + && condTarget.MatchLdThis() && condField.MemberDefinition.Equals(disposingField) + && oldBlock.Instructions[pos + 1].MatchBranch(out targetBlock) + && targetBlock.Parent == oldBlock.Parent) { + // Keep looking at the target block: + oldBlock = targetBlock; + pos = 0; + } + } + + if (oldBlock.Instructions[pos].MatchStFld(out var target, out var field, out var value) && target.MatchLdThis() && field.MemberDefinition == stateField - && value.MatchLdcI4(out int newState))) { + && value.MatchLdcI4(out int newState)) { + pos++; + } else { newBlock.Instructions.Add(new InvalidBranch("Unable to find new state assignment for yield return")); return; } - int pos = i + 2; + // Mono may have 'br setSkipFinallyBodies' here, so follow the branch + if (oldBlock.Instructions[pos].MatchBranch(out targetBlock) && targetBlock.Parent == oldBlock.Parent) { + oldBlock = targetBlock; + pos = 0; + } if (oldBlock.Instructions[pos].MatchStLoc(skipFinallyBodies, out value)) { if (!value.MatchLdcI4(1)) { newBlock.Instructions.Add(new InvalidExpression { @@ -706,9 +764,10 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow } pos++; } + if (oldBlock.Instructions[pos].MatchReturn(out var retVal) && retVal.MatchLdcI4(1)) { // OK, found return directly after state assignment - } else if (oldBlock.Instructions[pos].MatchBranch(out var targetBlock) + } else if (oldBlock.Instructions[pos].MatchBranch(out targetBlock) && targetBlock.Instructions[0].MatchReturn(out retVal) && retVal.MatchLdcI4(1)) { // OK, jump to common return block (e.g. on Mono) } else { @@ -753,8 +812,10 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow break; case Leave leave: if (leave.MatchReturn(out var value)) { - if (value.MatchLdLoc(out var v) && v.IsSingleDefinition - && v.StoreInstructions.SingleOrDefault() is StLoc stloc) { + if (value.MatchLdLoc(out var v) + && (v.Kind == VariableKind.Local || v.Kind == VariableKind.StackSlot) + && v.StoreInstructions.Count == 1 + && v.StoreInstructions[0] is StLoc stloc) { returnStores.Add(stloc); value = stloc.Value; } @@ -782,7 +843,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow /// /// Translates all field accesses in `function` to local variable accesses. /// - internal static void TranslateFieldsToLocalAccess(ILFunction function, ILInstruction inst, Dictionary fieldToVariableMap) + internal static void TranslateFieldsToLocalAccess(ILFunction function, ILInstruction inst, Dictionary fieldToVariableMap, bool isCompiledWithMono = false) { if (inst is LdFlda ldflda && ldflda.Target.MatchLdThis()) { var fieldDef = (IField)ldflda.Field.MemberDefinition; @@ -804,11 +865,11 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow } else { inst.ReplaceWith(new LdLoca(v) { ILRange = inst.ILRange }); } - } else if (inst.MatchLdThis()) { + } else if (!isCompiledWithMono && inst.MatchLdThis()) { inst.ReplaceWith(new InvalidExpression("stateMachine") { ExpectedResultType = inst.ResultType, ILRange = inst.ILRange }); } else { foreach (var child in inst.Children) { - TranslateFieldsToLocalAccess(function, child, fieldToVariableMap); + TranslateFieldsToLocalAccess(function, child, fieldToVariableMap, isCompiledWithMono); } if (inst is LdObj ldobj && ldobj.Target is LdLoca ldloca && ldloca.Variable.StateMachineField != null) { LdLoc ldloc = new LdLoc(ldloca.Variable); @@ -931,6 +992,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow tryBlock.Instructions.AddRange(block.Instructions); var tryBlockContainer = new BlockContainer(); tryBlockContainer.Blocks.Add(tryBlock); + tryBlockContainer.ILRange = tryBlock.ILRange; stateToContainer.Add(state, tryBlockContainer); ILInstruction finallyBlock; @@ -944,7 +1006,7 @@ namespace ICSharpCode.Decompiler.IL.ControlFlow } block.Instructions.Clear(); - block.Instructions.Add(new TryFinally(tryBlockContainer, finallyBlock)); + block.Instructions.Add(new TryFinally(tryBlockContainer, finallyBlock) { ILRange = tryBlockContainer.ILRange}); } IMethod FindFinallyMethod(int state) diff --git a/ICSharpCode.Decompiler/IL/ILTypeExtensions.cs b/ICSharpCode.Decompiler/IL/ILTypeExtensions.cs index 14b67f9ba..592458441 100644 --- a/ICSharpCode.Decompiler/IL/ILTypeExtensions.cs +++ b/ICSharpCode.Decompiler/IL/ILTypeExtensions.cs @@ -131,7 +131,7 @@ namespace ICSharpCode.Decompiler.IL /// /// Returns SpecialType.UnknownType for unsupported instructions. /// - public static IType InferType(this ILInstruction inst) + public static IType InferType(this ILInstruction inst, ICompilation compilation) { switch (inst) { case NewObj newObj: @@ -159,12 +159,40 @@ namespace ICSharpCode.Decompiler.IL case LdsFlda ldsflda: return new ByReferenceType(ldsflda.Field.Type); case LdElema ldelema: - if (ldelema.Array.InferType() is ArrayType arrayType) { + if (ldelema.Array.InferType(compilation) is ArrayType arrayType) { if (TypeUtils.IsCompatibleTypeForMemoryAccess(arrayType.ElementType, ldelema.Type)) { return new ByReferenceType(arrayType.ElementType); } } return new ByReferenceType(ldelema.Type); + case Comp comp: + if (compilation == null) + return SpecialType.UnknownType; + switch (comp.LiftingKind) { + case ComparisonLiftingKind.None: + case ComparisonLiftingKind.CSharp: + return compilation.FindType(KnownTypeCode.Boolean); + case ComparisonLiftingKind.ThreeValuedLogic: + return NullableType.Create(compilation, compilation.FindType(KnownTypeCode.Boolean)); + default: + return SpecialType.UnknownType; + } + case BinaryNumericInstruction bni: + if (bni.IsLifted) + return SpecialType.UnknownType; + switch (bni.Operator) { + case BinaryNumericOperator.BitAnd: + case BinaryNumericOperator.BitOr: + case BinaryNumericOperator.BitXor: + var left = bni.Left.InferType(compilation); + var right = bni.Right.InferType(compilation); + if (left.Equals(right) && (left.IsCSharpPrimitiveIntegerType() || left.IsKnownType(KnownTypeCode.Boolean))) + return left; + else + return SpecialType.UnknownType; + default: + return SpecialType.UnknownType; + } default: return SpecialType.UnknownType; } diff --git a/ICSharpCode.Decompiler/IL/Instructions/BlockContainer.cs b/ICSharpCode.Decompiler/IL/Instructions/BlockContainer.cs index a716a6776..2f775bbb2 100644 --- a/ICSharpCode.Decompiler/IL/Instructions/BlockContainer.cs +++ b/ICSharpCode.Decompiler/IL/Instructions/BlockContainer.cs @@ -181,6 +181,7 @@ namespace ICSharpCode.Decompiler.IL base.CheckInvariant(phase); Debug.Assert(Blocks.Count > 0 && EntryPoint == Blocks[0]); Debug.Assert(!IsConnected || EntryPoint?.IncomingEdgeCount >= 1); + Debug.Assert(EntryPoint == null || Parent is ILFunction || !ILRange.IsEmpty); Debug.Assert(Blocks.All(b => b.HasFlag(InstructionFlags.EndPointUnreachable))); Debug.Assert(Blocks.All(b => b.Kind == BlockKind.ControlFlow)); // this also implies that the blocks don't use FinalInstruction Block bodyStartBlock; diff --git a/ICSharpCode.Decompiler/IL/Instructions/Comp.cs b/ICSharpCode.Decompiler/IL/Instructions/Comp.cs index 9a7a74252..4d474bb71 100644 --- a/ICSharpCode.Decompiler/IL/Instructions/Comp.cs +++ b/ICSharpCode.Decompiler/IL/Instructions/Comp.cs @@ -183,6 +183,8 @@ namespace ICSharpCode.Decompiler.IL return; } output.Write(OpCode); + output.Write('.'); + output.Write(InputType.ToString().ToLower()); switch (Sign) { case Sign.Signed: output.Write(".signed"); diff --git a/ICSharpCode.Decompiler/IL/Instructions/CompoundAssignmentInstruction.cs b/ICSharpCode.Decompiler/IL/Instructions/CompoundAssignmentInstruction.cs index 4afafe1af..0c599ee35 100644 --- a/ICSharpCode.Decompiler/IL/Instructions/CompoundAssignmentInstruction.cs +++ b/ICSharpCode.Decompiler/IL/Instructions/CompoundAssignmentInstruction.cs @@ -148,7 +148,7 @@ namespace ICSharpCode.Decompiler.IL } } // Can't transform if the RHS value would be need to be truncated for the LHS type. - if (Transforms.TransformAssignment.IsImplicitTruncation(binary.Right, type, binary.IsLifted)) + if (Transforms.TransformAssignment.IsImplicitTruncation(binary.Right, type, null, binary.IsLifted)) return false; return true; } diff --git a/ICSharpCode.Decompiler/IL/SemanticHelper.cs b/ICSharpCode.Decompiler/IL/SemanticHelper.cs index 38328d1f7..7102628b9 100644 --- a/ICSharpCode.Decompiler/IL/SemanticHelper.cs +++ b/ICSharpCode.Decompiler/IL/SemanticHelper.cs @@ -44,27 +44,6 @@ namespace ICSharpCode.Decompiler.IL return (inst & ~pureFlags) == 0; } - /// - /// Gets whether the instruction sequence 'inst1; inst2;' may be ordered to 'inst2; inst1;' - /// - internal static bool MayReorder(InstructionFlags inst1, InstructionFlags inst2) - { - // If both instructions perform an impure action, we cannot reorder them - if (!IsPure(inst1) && !IsPure(inst2)) - return false; - // We cannot reorder if inst2 might write what inst1 looks at - if (ConflictingPair(inst1, inst2, InstructionFlags.MayReadLocals, InstructionFlags.MayWriteLocals | InstructionFlags.SideEffect)) - return false; - return true; - } - - private static bool ConflictingPair(InstructionFlags inst1, InstructionFlags inst2, InstructionFlags readFlag, InstructionFlags writeFlag) - { - // if one instruction has the read flag and the other the write flag, that's a conflict - return (inst1 & readFlag) != 0 && (inst2 & writeFlag) != 0 - || (inst2 & readFlag) != 0 && (inst1 & writeFlag) != 0; - } - /// /// Gets whether the instruction sequence 'inst1; inst2;' may be ordered to 'inst2; inst1;' /// diff --git a/ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs b/ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs index 31fb157af..6334da9aa 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs @@ -448,7 +448,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms if (!variableType.IsKnownType(KnownTypeCode.Object)) return variableType; - IType inferredType = inst.InferType(); + IType inferredType = inst.InferType(context.TypeSystem); if (inferredType.Kind != TypeKind.Unknown) return inferredType; else @@ -477,6 +477,9 @@ namespace ICSharpCode.Decompiler.IL.Transforms { if (function == null) throw new ArgumentNullException(nameof(function)); + if (existingVariable != null && !existingVariable.HasGeneratedName) { + return existingVariable.Name; + } var reservedVariableNames = CollectReservedVariableNames(function, existingVariable); string baseName = GetNameFromInstruction(valueContext); diff --git a/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs b/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs index 6c6cc0366..f4015a48a 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/DelegateConstruction.cs @@ -47,7 +47,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms ILFunction f = TransformDelegateConstruction(call, out ILInstruction target); if (f != null) { call.ReplaceWith(f); - if (target is IInstructionWithVariableOperand && !target.MatchLdThis()) + if (target is IInstructionWithVariableOperand) targetsToReplace.Add((IInstructionWithVariableOperand)target); } } @@ -269,6 +269,8 @@ namespace ICSharpCode.Decompiler.IL.Transforms protected internal override void VisitStLoc(StLoc inst) { base.VisitStLoc(inst); + if (targetLoad is ILInstruction instruction && instruction.MatchLdThis()) + return; if (inst.Variable == targetLoad.Variable) orphanedVariableInits.Add(inst); if (MatchesTargetOrCopyLoad(inst.Value)) { @@ -285,7 +287,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms protected internal override void VisitStObj(StObj inst) { base.VisitStObj(inst); - if (!inst.Target.MatchLdFlda(out ILInstruction target, out IField field) || !MatchesTargetOrCopyLoad(target)) + if (!inst.Target.MatchLdFlda(out ILInstruction target, out IField field) || !MatchesTargetOrCopyLoad(target) || target.MatchLdThis()) return; field = (IField)field.MemberDefinition; ILInstruction value; @@ -321,6 +323,11 @@ namespace ICSharpCode.Decompiler.IL.Transforms protected internal override void VisitLdFlda(LdFlda inst) { base.VisitLdFlda(inst); + if (inst.Target.MatchLdThis() && inst.Field.Name == "$this" + && inst.Field.MemberDefinition.ReflectionName.Contains("c__Iterator")) { + var variable = currentFunction.Variables.First((f) => f.Index == -1); + inst.ReplaceWith(new LdLoca(variable) { ILRange = inst.ILRange }); + } if (inst.Parent is LdObj || inst.Parent is StObj) return; if (!MatchesTargetOrCopyLoad(inst.Target)) diff --git a/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs b/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs index a90988b0f..2baede38e 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs @@ -498,21 +498,22 @@ namespace ICSharpCode.Decompiler.IL.Transforms } break; case BinaryNumericOperator.BitAnd: - if (IsBoolean(inst.Left) && IsBoolean(inst.Right) && SemanticHelper.IsPure(inst.Right.Flags)) + if (inst.Left.InferType(context.TypeSystem).IsKnownType(KnownTypeCode.Boolean) + && inst.Right.InferType(context.TypeSystem).IsKnownType(KnownTypeCode.Boolean)) { - context.Step("Replace bit.and with logic.and", inst); - var expr = IfInstruction.LogicAnd(inst.Left, inst.Right); - inst.ReplaceWith(expr); - expr.AcceptVisitor(this); + if (new NullableLiftingTransform(context).Run(inst)) { + // e.g. "(a.GetValueOrDefault() == b.GetValueOrDefault()) & (a.HasValue & b.HasValue)" + } else if (SemanticHelper.IsPure(inst.Right.Flags)) { + context.Step("Replace bit.and with logic.and", inst); + var expr = IfInstruction.LogicAnd(inst.Left, inst.Right); + inst.ReplaceWith(expr); + expr.AcceptVisitor(this); + } } break; } } - - private static bool IsBoolean(ILInstruction inst) => - inst is Comp c && c.ResultType == StackType.I4 || - inst.InferType().IsKnownType(KnownTypeCode.Boolean); - + protected internal override void VisitTryCatchHandler(TryCatchHandler inst) { base.VisitTryCatchHandler(inst); diff --git a/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs b/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs index 06f3fced0..704fcb808 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs @@ -363,6 +363,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms // decide based on the target into which we are inlining switch (next.OpCode) { case OpCode.Leave: + case OpCode.YieldReturn: return parent == next; case OpCode.IfInstruction: while (parent.MatchLogicNot(out _)) { diff --git a/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs index e2b707086..7f0b6f428 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs @@ -39,7 +39,8 @@ namespace ICSharpCode.Decompiler.IL.Transforms // We exclude logic.and to avoid turning // "logic.and(comp(interfaces != ldnull), call get_Count(interfaces))" // into "if ((interfaces?.Count ?? 0) != 0)". - return (ifInst.MatchLogicAnd(out _, out _) || ifInst.MatchLogicOr(out _, out _)) + return ifInst != null + && (ifInst.MatchLogicAnd(out _, out _) || ifInst.MatchLogicOr(out _, out _)) && IfInstruction.IsInConditionSlot(ifInst); } @@ -111,7 +112,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms if (!IsValidAccessChain(testedVar, mode, nonNullInst, out var varLoad)) return null; // note: InferType will be accurate in this case because the access chain consists of calls and field accesses - IType returnType = nonNullInst.InferType(); + IType returnType = nonNullInst.InferType(context.TypeSystem); if (nullInst.MatchLdNull()) { context.Step($"Null propagation (mode={mode}, output=reference type)", nonNullInst); // testedVar != null ? testedVar.AccessChain : null diff --git a/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs index deb8f7da4..6879392fd 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs @@ -56,7 +56,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// public bool Run(IfInstruction ifInst) { - var lifted = Lift(ifInst, ifInst.TrueInst, ifInst.FalseInst); + var lifted = Lift(ifInst, ifInst.Condition, ifInst.TrueInst, ifInst.FalseInst); if (lifted != null) { ifInst.ReplaceWith(lifted); return true; @@ -64,6 +64,25 @@ namespace ICSharpCode.Decompiler.IL.Transforms return false; } + /// + /// VS2017.8 / Roslyn 2.9 started optimizing some cases of + /// "a.GetValueOrDefault() == b.GetValueOrDefault() && (a.HasValue & b.HasValue)" + /// to + /// "(a.GetValueOrDefault() == b.GetValueOrDefault()) & (a.HasValue & b.HasValue)" + /// so this secondary entry point analyses logic.and as-if it was a short-circuting &&. + /// + public bool Run(BinaryNumericInstruction bni) + { + Debug.Assert(!bni.IsLifted && bni.Operator == BinaryNumericOperator.BitAnd); + // caller ensures that bni.Left/bni.Right are booleans + var lifted = Lift(bni, bni.Left, bni.Right, new LdcI4(0)); + if (lifted != null) { + bni.ReplaceWith(lifted); + return true; + } + return false; + } + public bool RunStatements(Block block, int pos) { /// e.g.: @@ -85,7 +104,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms if (elseLeave.TargetContainer != thenLeave.TargetContainer) return false; - var lifted = Lift(ifInst, thenLeave.Value, elseLeave.Value); + var lifted = Lift(ifInst, ifInst.Condition, thenLeave.Value, elseLeave.Value); if (lifted != null) { thenLeave.Value = lifted; ifInst.ReplaceWith(thenLeave); @@ -118,14 +137,15 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// Main entry point for lifting; called by both the expression-transform /// and the block transform. /// - ILInstruction Lift(IfInstruction ifInst, ILInstruction trueInst, ILInstruction falseInst) + ILInstruction Lift(ILInstruction ifInst, ILInstruction condition, ILInstruction trueInst, ILInstruction falseInst) { - ILInstruction condition = ifInst.Condition; + // ifInst is usually the IfInstruction to which condition belongs; + // but can also be a BinaryNumericInstruction. while (condition.MatchLogicNot(out var arg)) { condition = arg; ExtensionMethods.Swap(ref trueInst, ref falseInst); } - if (context.Settings.NullPropagation && !NullPropagationTransform.IsProtectedIfInst(ifInst)) { + if (context.Settings.NullPropagation && !NullPropagationTransform.IsProtectedIfInst(ifInst as IfInstruction)) { var nullPropagated = new NullPropagationTransform(context) .Run(condition, trueInst, falseInst, ifInst.ILRange); if (nullPropagated != null) diff --git a/ICSharpCode.Decompiler/IL/Transforms/ReduceNestingTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/ReduceNestingTransform.cs new file mode 100644 index 000000000..e791a5c41 --- /dev/null +++ b/ICSharpCode.Decompiler/IL/Transforms/ReduceNestingTransform.cs @@ -0,0 +1,418 @@ +// Copyright (c) 2018 Siegfried Pammer +// +// 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.Diagnostics; +using System.Linq; +using ICSharpCode.Decompiler.IL.ControlFlow; +using ICSharpCode.Decompiler.IL.Transforms; +using ICSharpCode.Decompiler.Util; + +namespace ICSharpCode.Decompiler.IL +{ + /// + /// Improves code quality by duplicating keyword exits to reduce nesting and restoring IL order. + /// + /// + /// ConditionDetection and DetectSwitchBody both have agressive inlining policies for else blocks and default cases respectively. + /// This can lead to excessive indentation when the entire rest of the method/loop is included in the else block/default case. + /// When an If/SwitchInstruction is followed immediately by a keyword exit, the exit can be moved into the child blocks + /// allowing the else block or default case to be moved after the if/switch as all prior cases exit. + /// Most importantly, this transformatino does not change the IL order of any code. + /// + /// ConditionDetection also has a block exit priority system to assist exit point reduction which in some cases ignores IL order. + /// After HighLevelLoopTransform has run, all structures have been detected and preference can be returned to maintaining IL ordering. + /// + public class ReduceNestingTransform : IILTransform + { + private ILTransformContext context; + + public void Run(ILFunction function, ILTransformContext context) + { + this.context = context; + Visit((BlockContainer)function.Body, null); + } + + private void Visit(BlockContainer container, Block continueTarget) + { + switch (container.Kind) { + case ContainerKind.Loop: + case ContainerKind.While: + continueTarget = container.EntryPoint; + break; + case ContainerKind.DoWhile: + case ContainerKind.For: + continueTarget = container.Blocks.Last(); + break; + } + + foreach (var block in container.Blocks) + Visit(block, continueTarget); + } + + /// + /// Visits a block in context + /// + /// + /// Marks the target block of continue statements. + /// The instruction following the end point of the block. Can only be null if the end point is unreachable. + private void Visit(Block block, Block continueTarget, ILInstruction nextInstruction = null) + { + Debug.Assert(block.HasFlag(InstructionFlags.EndPointUnreachable) || nextInstruction != null); + + // process each instruction in the block. + for (int i = 0; i < block.Instructions.Count; i++) { + // Transformations may be applied to the current and following instructions but already processed instructions will not be changed + var inst = block.Instructions[i]; + + // the next instruction to be executed. Transformations will change the next instruction, so this is a method instead of a variable + ILInstruction NextInsn() => i + 1 < block.Instructions.Count ? block.Instructions[i + 1] : nextInstruction; + + switch (inst) { + case BlockContainer container: + // visit the contents of the container + Visit(container, continueTarget); + + // reduce nesting in switch blocks + if (container.Kind == ContainerKind.Switch && + CanDuplicateExit(NextInsn(), continueTarget) && + ReduceNesting(block, container, NextInsn())) + RemoveRedundantExit(block, nextInstruction); + + break; + case IfInstruction ifInst: + ImproveILOrdering(block, ifInst); + + // reduce nesting in if/else blocks + if (CanDuplicateExit(NextInsn(), continueTarget) && ReduceNesting(block, ifInst, NextInsn())) + RemoveRedundantExit(block, nextInstruction); + + // visit content blocks + if (ifInst.TrueInst is Block trueBlock) + Visit(trueBlock, continueTarget, NextInsn()); + + if (ifInst.FalseInst is Block falseBlock) { + if (ifInst.TrueInst.HasFlag(InstructionFlags.EndPointUnreachable)) { + ExtractElseBlock(ifInst); + break; + } + + Visit(falseBlock, continueTarget, NextInsn()); + } + break; + } + } + } + + /// + /// For an if statement with an unreachable end point and no else block, + /// inverts to match IL order of the first statement of each branch + /// + private void ImproveILOrdering(Block block, IfInstruction ifInst) + { + if (!block.HasFlag(InstructionFlags.EndPointUnreachable) + || !ifInst.TrueInst.HasFlag(InstructionFlags.EndPointUnreachable) + || !ifInst.FalseInst.MatchNop()) + return; + + Debug.Assert(ifInst != block.Instructions.Last()); + + var trueRange = ConditionDetection.GetILRange(ifInst.TrueInst); + var falseRange = ConditionDetection.GetILRange(block.Instructions[block.Instructions.IndexOf(ifInst)+1]); + if (!trueRange.IsEmpty && !falseRange.IsEmpty && falseRange.Start < trueRange.Start) + ConditionDetection.InvertIf(block, ifInst, context); + } + + /// + /// Reduce Nesting in if/else statements by duplicating an exit instruction. + /// Does not affect IL order + /// + private bool ReduceNesting(Block block, IfInstruction ifInst, ILInstruction exitInst) + { + // start tallying stats for heuristics from then and else-if blocks + int maxStatements = 0, maxDepth = 0; + UpdateStats(ifInst.TrueInst, ref maxStatements, ref maxDepth); + + // if (cond) { ... } exit; + if (ifInst.FalseInst.MatchNop()) { + // a separate heuristic tp ShouldReduceNesting as there is visual balancing to be performed based on number of statments + if (maxDepth < 2) + return false; + + // -> + // if (!cond) exit; + // ...; exit; + EnsureEndPointUnreachable(ifInst.TrueInst, exitInst); + EnsureEndPointUnreachable(block, exitInst); + ConditionDetection.InvertIf(block, ifInst, context); + return true; + } + + // else-if trees are considered as a single group from the root IfInstruction + if (GetElseIfParent(ifInst) != null) + return false; + + // find the else block and tally stats for each else-if block + while (Block.Unwrap(ifInst.FalseInst) is IfInstruction elseIfInst) { + UpdateStats(elseIfInst.TrueInst, ref maxStatements, ref maxDepth); + ifInst = elseIfInst; + } + + if (!ShouldReduceNesting(ifInst.FalseInst, maxStatements, maxDepth)) + return false; + + // extract the else block and insert exit points all the way up the else-if tree + do { + var elseIfInst = GetElseIfParent(ifInst); + + // if (cond) { ... } else { ... } exit; + // -> + // if (cond) { ...; exit; } + // ...; exit; + EnsureEndPointUnreachable(ifInst.TrueInst, exitInst); + ExtractElseBlock(ifInst); + ifInst = elseIfInst; + } while (ifInst != null); + + return true; + } + + /// + /// Reduce Nesting in switch statements by replacing break; in cases with the block exit, and extracting the default case + /// Does not affect IL order + /// + private bool ReduceNesting(Block parentBlock, BlockContainer switchContainer, ILInstruction exitInst) + { + // break; from outer container cannot be brought inside the switch as the meaning would change + if (exitInst is Leave leave && !leave.IsLeavingFunction) + return false; + + // find the default section, and ensure it has only one incoming edge + var switchInst = (SwitchInstruction)switchContainer.EntryPoint.Instructions.Single(); + var defaultSection = switchInst.Sections.MaxBy(s => s.Labels.Count()); + if (!defaultSection.Body.MatchBranch(out var defaultBlock) || defaultBlock.IncomingEdgeCount != 1) + return false; + + // tally stats for heuristic from each case block + int maxStatements = 0, maxDepth = 0; + foreach (var section in switchInst.Sections) + if (section != defaultSection && section.Body.MatchBranch(out var caseBlock) && caseBlock.Parent == switchContainer) + UpdateStats(caseBlock, ref maxStatements, ref maxDepth); + + if (!ShouldReduceNesting(defaultBlock, maxStatements, maxDepth)) + return false; + + Debug.Assert(defaultBlock.HasFlag(InstructionFlags.EndPointUnreachable)); + + // ensure the default case dominator tree has no exits (branches to other cases) + var cfg = new ControlFlowGraph(switchContainer, context.CancellationToken); + var defaultNode = cfg.GetNode(defaultBlock); + var defaultTree = TreeTraversal.PreOrder(defaultNode, n => n.DominatorTreeChildren).ToList(); + if (defaultTree.SelectMany(n => n.Successors).Any(n => !defaultNode.Dominates(n))) + return false; + + EnsureEndPointUnreachable(parentBlock, exitInst); + context.Step("Extract default case of switch", switchContainer); + + // replace all break; statements with the exitInst + var leaveInstructions = switchContainer.Descendants.Where(inst => inst.MatchLeave(switchContainer)); + foreach (var leaveInst in leaveInstructions.ToArray()) + leaveInst.ReplaceWith(exitInst.Clone()); + + // replace the default section branch with a break; + defaultSection.Body.ReplaceWith(new Leave(switchContainer)); + + // remove all default blocks from the switch container + var defaultBlocks = defaultTree.Select(c => (Block)c.UserData).ToList(); + foreach (var block in defaultBlocks) + switchContainer.Blocks.Remove(block); + + // replace the parent block exit with the default case instructions + parentBlock.Instructions.RemoveLast(); + parentBlock.Instructions.AddRange(defaultBlock.Instructions); + + // add any additional blocks from the default case to the parent container + var parentContainer = (BlockContainer)parentBlock.Ancestors.First(p => p is BlockContainer); + int insertAt = parentContainer.Blocks.IndexOf(parentBlock) + 1; + foreach (var block in defaultBlocks.Skip(1)) + parentContainer.Blocks.Insert(insertAt++, block); + + return true; + } + + /// + /// Checks if an exit is a duplicable keyword exit (return; break; continue;) + /// + private bool CanDuplicateExit(ILInstruction exit, Block continueTarget) => + exit != null && (exit is Leave leave && leave.Value.MatchNop() || exit.MatchBranch(continueTarget)); + + /// + /// Ensures the end point of a block is unreachable by duplicating and appending the [exit] instruction following the end point + /// + /// The instruction/block of interest + /// The next instruction to be executed (provided inst does not exit) + private void EnsureEndPointUnreachable(ILInstruction inst, ILInstruction fallthroughExit) + { + if (!(inst is Block block)) { + Debug.Assert(inst.HasFlag(InstructionFlags.EndPointUnreachable)); + return; + } + + if (!block.HasFlag(InstructionFlags.EndPointUnreachable)) { + context.Step("Duplicate block exit", fallthroughExit); + block.Instructions.Add(fallthroughExit.Clone()); + } + } + + /// + /// Removes a redundant block exit instruction. + /// + private void RemoveRedundantExit(Block block, ILInstruction implicitExit) + { + if (block.Instructions.Last().Match(implicitExit).Success) { + context.Step("Remove redundant exit", block.Instructions.Last()); + block.Instructions.RemoveLast(); + } + } + + /// + /// Determines if an IfInstruction is an else-if and returns the preceeding (parent) IfInstruction + /// + /// [else-]if (parent-cond) else { ifInst } + /// + private IfInstruction GetElseIfParent(IfInstruction ifInst) + { + Debug.Assert(ifInst.Parent is Block); + if (Block.Unwrap(ifInst.Parent) == ifInst && // only instruction in block + ifInst.Parent.Parent is IfInstruction elseIfInst && // parent of block is an IfInstruction + elseIfInst.FalseInst == ifInst.Parent) // part of the false branch not the true branch + return elseIfInst; + + return null; + } + + /// + /// Adds a code path to the current heuristic tally + /// + private void UpdateStats(ILInstruction inst, ref int maxStatements, ref int maxDepth) + { + int numStatements = 0; + ComputeStats(inst, ref numStatements, ref maxDepth, 0); + maxStatements = Math.Max(numStatements, maxStatements); + } + + /// + /// Recursively computes the number of statements and maximum nested depth of an instruction + /// + private void ComputeStats(ILInstruction inst, ref int numStatements, ref int maxDepth, int currentDepth) + { + switch (inst) { + case Block block: + foreach (var i in block.Instructions) + ComputeStats(i, ref numStatements, ref maxDepth, currentDepth); + break; + case BlockContainer container: + numStatements++; // one statement for the container head (switch/loop) + + var containerBody = container.EntryPoint; + if (container.Kind == ContainerKind.For || container.Kind == ContainerKind.While) { + if (!container.MatchConditionBlock(container.EntryPoint, out _, out containerBody)) + throw new NotSupportedException("Invalid condition block in loop."); + } + + // add the nested body + ComputeStats(containerBody, ref numStatements, ref maxDepth, currentDepth + 1); + break; + case IfInstruction ifInst: + numStatements++; // one statement for the if/condition itself + + // nested then instruction + ComputeStats(ifInst.TrueInst, ref numStatements, ref maxDepth, currentDepth + 1); + + // include all nested else-if instructions at the same depth + var elseInst = ifInst.FalseInst; + while (Block.Unwrap(elseInst) is IfInstruction elseIfInst) { + numStatements++; + ComputeStats(elseIfInst.TrueInst, ref numStatements, ref maxDepth, currentDepth + 1); + elseInst = elseIfInst.FalseInst; + } + + // include all nested else instruction + ComputeStats(elseInst, ref numStatements, ref maxDepth, currentDepth + 1); + break; + case SwitchInstruction switchInst: + // one statement per case label + numStatements += switchInst.Sections.Count + 1; + // add all the case blocks at the current depth + // most formatters indent switch blocks twice, but we don't want this heuristic to be based on formatting + // so we remain conservative and only include the increase in depth from the container and not the labels + foreach (var section in switchInst.Sections) + if (section.Body.MatchBranch(out var caseBlock) && caseBlock.Parent == switchInst.Parent.Parent) + ComputeStats(caseBlock, ref numStatements, ref maxDepth, currentDepth); + break; + default: + // just a regular statement + numStatements++; + if (currentDepth > maxDepth) + maxDepth = currentDepth; + break; + } + } + + /// + /// Heuristic to determine whether it is worth duplicating exits into the preceeding sibling blocks (then/else-if/case) + /// in order to reduce the nesting of inst by 1 + /// + /// The instruction heading the nested candidate block + /// The number of statements in the largest sibling block + /// The relative depth of the most nested statement in the sibling blocks + /// + private bool ShouldReduceNesting(ILInstruction inst, int maxStatements, int maxDepth) + { + int maxStatements2 = 0, maxDepth2 = 0; + UpdateStats(inst, ref maxStatements2, ref maxDepth2); + // if the max depth is 2, always reduce nesting (total depth 3 or more) + // if the max depth is 1, reduce nesting if this block is the largest + // otherwise reduce nesting only if this block is twice as large as any other + return maxDepth2 >= 2 || maxDepth2 >= 1 && maxStatements2 > maxStatements || maxStatements2 >= 2*maxStatements; + } + + /// + /// if (cond) { ...; exit; } else { ... } + /// ...; + /// -> + /// if (cond) { ...; exit; } + /// ...; + /// ...; + /// + /// + private void ExtractElseBlock(IfInstruction ifInst) + { + Debug.Assert(ifInst.TrueInst.HasFlag(InstructionFlags.EndPointUnreachable)); + var block = (Block)ifInst.Parent; + var falseBlock = (Block)ifInst.FalseInst; + + context.Step("Extract else block", ifInst); + int insertAt = block.Instructions.IndexOf(ifInst) + 1; + for (int i = 0; i < falseBlock.Instructions.Count; i++) + block.Instructions.Insert(insertAt++, falseBlock.Instructions[i]); + + ifInst.FalseInst = new Nop(); + } + } +} diff --git a/ICSharpCode.Decompiler/IL/Transforms/RemoveDeadVariableInit.cs b/ICSharpCode.Decompiler/IL/Transforms/RemoveDeadVariableInit.cs index 52ecb6e81..ff8f08ac4 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/RemoveDeadVariableInit.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/RemoveDeadVariableInit.cs @@ -76,7 +76,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms IType newType = null; // Multiple store are possible in case of (c ? ref a : ref b) += 1, for example. foreach (var stloc in v.StoreInstructions.OfType()) { - var inferredType = stloc.Value.InferType(); + var inferredType = stloc.Value.InferType(context.TypeSystem); // cancel, if types of values do not match exactly if (newType != null && !newType.Equals(inferredType)) { newType = SpecialType.UnknownType; diff --git a/ICSharpCode.Decompiler/IL/Transforms/SwitchOnNullableTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/SwitchOnNullableTransform.cs index af7cc6ae7..066dc02b3 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/SwitchOnNullableTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/SwitchOnNullableTransform.cs @@ -42,6 +42,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms for (int i = block.Instructions.Count - 1; i >= 0; i--) { SwitchInstruction newSwitch; if (MatchSwitchOnNullable(block.Instructions, i, out newSwitch)) { + newSwitch.ILRange = block.Instructions[i - 2].ILRange; block.Instructions[i + 1].ReplaceWith(newSwitch); block.Instructions.RemoveRange(i - 2, 3); i -= 2; @@ -49,6 +50,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms continue; } if (MatchRoslynSwitchOnNullable(block.Instructions, i, out newSwitch)) { + newSwitch.ILRange = block.Instructions[i - 1].ILRange; block.Instructions[i - 1].ReplaceWith(newSwitch); block.Instructions.RemoveRange(i, 2); i--; diff --git a/ICSharpCode.Decompiler/IL/Transforms/SwitchOnStringTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/SwitchOnStringTransform.cs index fcd311b63..d35d2533c 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/SwitchOnStringTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/SwitchOnStringTransform.cs @@ -219,14 +219,17 @@ namespace ICSharpCode.Decompiler.IL.Transforms var inst = new SwitchInstruction(stringToInt); inst.Sections.AddRange(sections); if (extraLoad) { + inst.ILRange = instructions[i - 2].ILRange; instructions[i - 2].ReplaceWith(inst); instructions.RemoveRange(i - 1, 3); i -= 2; } else { if (keepAssignmentBefore) { + inst.ILRange = instructions[i].ILRange; instructions[i].ReplaceWith(inst); instructions.RemoveAt(i + 1); } else { + inst.ILRange = instructions[i - 1].ILRange; instructions[i - 1].ReplaceWith(inst); instructions.RemoveRange(i, 2); i--; @@ -304,7 +307,8 @@ namespace ICSharpCode.Decompiler.IL.Transforms var stringToInt = new StringToInt(switchValue, values.SelectArray(item => item.Item1)); var inst = new SwitchInstruction(stringToInt); inst.Sections.AddRange(sections); - + + inst.ILRange = instructions[i - 1].ILRange; instructions[i].ReplaceWith(inst); instructions.RemoveAt(i + 1); instructions.RemoveAt(i - 1); @@ -493,10 +497,12 @@ namespace ICSharpCode.Decompiler.IL.Transforms instructions[i + 1].ReplaceWith(inst); if (keepAssignmentBefore) { // delete if (comp(ldloc switchValueVar == ldnull)) + inst.ILRange = instructions[i].ILRange; instructions.RemoveAt(i); i--; } else { // delete both the if and the assignment before + inst.ILRange = instructions[i - 1].ILRange; instructions.RemoveRange(i - 1, 2); i -= 2; } @@ -711,6 +717,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms var stringToInt = new StringToInt(switchValue, stringValues); var inst = new SwitchInstruction(stringToInt); inst.Sections.AddRange(sections); + inst.ILRange = block.Instructions[i].ILRange; block.Instructions[i].ReplaceWith(inst); block.Instructions.RemoveRange(i + 1, 3); info.Transformed = true; @@ -808,9 +815,11 @@ namespace ICSharpCode.Decompiler.IL.Transforms newSwitch.Sections.Add(new SwitchSection { Labels = defaultLabel, Body = defaultSection.Body }); instructions[i].ReplaceWith(newSwitch); if (keepAssignmentBefore) { + newSwitch.ILRange = instructions[i - 1].ILRange; instructions.RemoveAt(i - 1); i--; } else { + newSwitch.ILRange = instructions[i - 2].ILRange; instructions.RemoveRange(i - 2, 2); i -= 2; } diff --git a/ICSharpCode.Decompiler/IL/Transforms/TransformAssignment.cs b/ICSharpCode.Decompiler/IL/Transforms/TransformAssignment.cs index 9a941a244..2ad21b491 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/TransformAssignment.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/TransformAssignment.cs @@ -88,7 +88,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms // in some cases it can be a compiler-generated local if (inst == null || (inst.Variable.Kind != VariableKind.StackSlot && inst.Variable.Kind != VariableKind.Local)) return false; - if (IsImplicitTruncation(inst.Value, inst.Variable.Type)) { + if (IsImplicitTruncation(inst.Value, inst.Variable.Type, context.TypeSystem)) { // 'stloc s' is implicitly truncating the value return false; } @@ -112,7 +112,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms return false; if (!SemanticHelper.IsPure(stobj.Target.Flags) || inst.Variable.IsUsedWithin(stobj.Target)) return false; - var pointerType = stobj.Target.InferType(); + var pointerType = stobj.Target.InferType(context.TypeSystem); IType newType = stobj.Type; if (TypeUtils.IsCompatiblePointerTypeForMemoryAccess(pointerType, stobj.Type)) { if (pointerType is ByReferenceType byref) @@ -120,7 +120,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms else if (pointerType is PointerType pointer) newType = pointer.ElementType; } - if (IsImplicitTruncation(inst.Value, newType)) { + if (IsImplicitTruncation(inst.Value, newType, context.TypeSystem)) { // 'stobj' is implicitly truncating the value return false; } @@ -146,7 +146,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms if (!SemanticHelper.IsPure(arg.Flags) || inst.Variable.IsUsedWithin(arg)) return false; } - if (IsImplicitTruncation(inst.Value, call.Method.Parameters.Last().Type)) { + if (IsImplicitTruncation(inst.Value, call.Method.Parameters.Last().Type, context.TypeSystem)) { // setter call is implicitly truncating the value return false; } @@ -242,7 +242,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms // changes the return value of the expression, so this is only valid on block-level. return false; } - if (!IsCompoundStore(compoundStore, out var targetType, out var setterValue)) + if (!IsCompoundStore(compoundStore, out var targetType, out var setterValue, context.TypeSystem)) return false; // targetType = The type of the property/field/etc. being stored to. // setterValue = The value being stored. @@ -342,11 +342,11 @@ namespace ICSharpCode.Decompiler.IL.Transforms return false; if (!nextInst.Value.MatchLdLoc(inst.Variable)) return false; - if (IsImplicitTruncation(inst.Value, inst.Variable.Type)) { + if (IsImplicitTruncation(inst.Value, inst.Variable.Type, context.TypeSystem)) { // 'stloc s' is implicitly truncating the stack value return false; } - if (IsImplicitTruncation(inst.Value, nextInst.Variable.Type)) { + if (IsImplicitTruncation(inst.Value, nextInst.Variable.Type, context.TypeSystem)) { // 'stloc l' is implicitly truncating the stack value return false; } @@ -371,7 +371,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// Gets whether 'stobj type(..., value)' would evaluate to a different value than 'value' /// due to implicit truncation. /// - static internal bool IsImplicitTruncation(ILInstruction value, IType type, bool allowNullableValue = false) + static internal bool IsImplicitTruncation(ILInstruction value, IType type, ICompilation compilation, bool allowNullableValue = false) { if (!type.IsSmallIntegerType()) { // Implicit truncation in ILAst only happens for small integer types; @@ -401,10 +401,10 @@ namespace ICSharpCode.Decompiler.IL.Transforms } else if (value is Comp) { return false; // comp returns 0 or 1, which always fits } else if (value is IfInstruction ifInst) { - return IsImplicitTruncation(ifInst.TrueInst, type, allowNullableValue) - || IsImplicitTruncation(ifInst.FalseInst, type, allowNullableValue); + return IsImplicitTruncation(ifInst.TrueInst, type, compilation, allowNullableValue) + || IsImplicitTruncation(ifInst.FalseInst, type, compilation, allowNullableValue); } else { - IType inferredType = value.InferType(); + IType inferredType = value.InferType(compilation); if (allowNullableValue) { inferredType = NullableType.GetUnderlyingType(inferredType); } @@ -456,14 +456,14 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// /// Gets whether 'inst' is a possible store for use as a compound store. /// - static bool IsCompoundStore(ILInstruction inst, out IType storeType, out ILInstruction value) + static bool IsCompoundStore(ILInstruction inst, out IType storeType, out ILInstruction value, ICompilation compilation) { value = null; storeType = null; if (inst is StObj stobj) { // stobj.Type may just be 'int' (due to stind.i4) when we're actually operating on a 'ref MyEnum'. // Try to determine the real type of the object we're modifying: - storeType = stobj.Target.InferType(); + storeType = stobj.Target.InferType(compilation); if (storeType is ByReferenceType refType) { storeType = refType.ElementType; } else if (storeType is PointerType pointerType) { @@ -530,7 +530,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms bool TransformPostIncDecOperatorWithInlineStore(Block block, int pos) { var store = block.Instructions[pos]; - if (!IsCompoundStore(store, out var targetType, out var value)) + if (!IsCompoundStore(store, out var targetType, out var value, context.TypeSystem)) return false; StLoc stloc; var binary = UnwrapSmallIntegerConv(value, out var conv) as BinaryNumericInstruction; @@ -555,7 +555,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms return false; if (!IsMatchingCompoundLoad(stloc.Value, store, stloc.Variable)) return false; - if (IsImplicitTruncation(stloc.Value, stloc.Variable.Type)) + if (IsImplicitTruncation(stloc.Value, stloc.Variable.Type, context.TypeSystem)) return false; context.Step("TransformPostIncDecOperatorWithInlineStore", store); if (binary != null) { @@ -585,9 +585,9 @@ namespace ICSharpCode.Decompiler.IL.Transforms var store = block.Instructions.ElementAtOrDefault(i + 1); if (inst == null || store == null) return false; - if (!IsCompoundStore(store, out var targetType, out var value)) + if (!IsCompoundStore(store, out var targetType, out var value, context.TypeSystem)) return false; - if (IsImplicitTruncation(inst.Value, targetType)) { + if (IsImplicitTruncation(inst.Value, targetType, context.TypeSystem)) { // 'stloc l' is implicitly truncating the value return false; } diff --git a/ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs b/ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs index 23535e578..814331853 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs @@ -152,11 +152,13 @@ namespace ICSharpCode.Decompiler.IL.Transforms if (!ReadParameters(instruction.Arguments[1], parameterList, parameterVariablesList, new SimpleTypeResolveContext(context.Function.Method))) return (null, SpecialType.UnknownType); var container = new BlockContainer(); + container.ILRange = instruction.ILRange; var functionType = instruction.Method.ReturnType.TypeArguments[0]; var returnType = functionType.GetDelegateInvokeMethod()?.ReturnType; var function = new ILFunction(returnType, parameterList, context.Function.GenericContext, container); function.DelegateType = functionType; function.Variables.AddRange(parameterVariablesList); + function.ILRange = instruction.ILRange; lambdaStack.Push(function); var (bodyInstruction, type) = ConvertInstruction(instruction.Arguments[0]); lambdaStack.Pop(); @@ -611,7 +613,9 @@ namespace ICSharpCode.Decompiler.IL.Transforms return (new Call(operatorMethod) { Arguments = { left, right } }, operatorMethod.ReturnType); } var resultType = context.TypeSystem.FindType(KnownTypeCode.Boolean); - return (new Comp(kind, NullableType.IsNullable(leftType) ? ComparisonLiftingKind.CSharp : ComparisonLiftingKind.None, leftType.GetStackType(), leftType.GetSign(), left, right), resultType); + var lifting = NullableType.IsNullable(leftType) ? ComparisonLiftingKind.CSharp : ComparisonLiftingKind.None; + var utype = NullableType.GetUnderlyingType(leftType); + return (new Comp(kind, lifting, utype.GetStackType(), utype.GetSign(), left, right), resultType); } (ILInstruction, IType) ConvertCondition(CallInstruction invocation) @@ -1065,7 +1069,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms value = call.Arguments[0]; if (call.Arguments.Count == 2) return MatchGetTypeFromHandle(call.Arguments[1], out type); - type = value.InferType(); + type = value.InferType(context.TypeSystem); return true; } return false; diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/KnownAttributes.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/KnownAttributes.cs index 9532d0365..0a02dd876 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/KnownAttributes.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/KnownAttributes.cs @@ -18,6 +18,7 @@ using System; using System.Diagnostics; +using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -156,5 +157,16 @@ namespace ICSharpCode.Decompiler.TypeSystem { return compilation.FindType(attrType.GetTypeName()); } + + public static KnownAttribute IsKnownAttributeType(this ITypeDefinition attributeType) + { + if (!attributeType.GetNonInterfaceBaseTypes().Any(t => t.IsKnownType(KnownTypeCode.Attribute))) + return KnownAttribute.None; + for (int i = 1; i < typeNames.Length; i++) { + if (typeNames[i] == attributeType.FullTypeName) + return (KnownAttribute)i; + } + return KnownAttribute.None; + } } } diff --git a/ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataMethod.cs b/ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataMethod.cs index 3b5571a10..2af5acbcb 100644 --- a/ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataMethod.cs +++ b/ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataMethod.cs @@ -332,7 +332,7 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation if ((implAttributes & MethodImplAttributes.PreserveSig) == MethodImplAttributes.PreserveSig) { implAttributes &= ~MethodImplAttributes.PreserveSig; } else { - dllImport.AddNamedArg("PreserveSig", KnownTypeCode.Boolean, true); + dllImport.AddNamedArg("PreserveSig", KnownTypeCode.Boolean, false); } if ((info.Attributes & MethodImportAttributes.SetLastError) == MethodImportAttributes.SetLastError) diff --git a/ICSharpCode.Decompiler/TypeSystem/TypeSystemExtensions.cs b/ICSharpCode.Decompiler/TypeSystem/TypeSystemExtensions.cs index ba6e4fe47..070081d8f 100644 --- a/ICSharpCode.Decompiler/TypeSystem/TypeSystemExtensions.cs +++ b/ICSharpCode.Decompiler/TypeSystem/TypeSystemExtensions.cs @@ -525,5 +525,10 @@ namespace ICSharpCode.Decompiler.TypeSystem { return method.Name == name && method.DeclaringType?.FullName == type; } + + public static KnownAttribute IsBuiltinAttribute(this ITypeDefinition type) + { + return KnownAttributes.IsKnownAttributeType(type); + } } } diff --git a/ILSpy.AddIn/Commands/OpenILSpyCommand.cs b/ILSpy.AddIn/Commands/OpenILSpyCommand.cs index 8e8e48193..6f1261d3c 100644 --- a/ILSpy.AddIn/Commands/OpenILSpyCommand.cs +++ b/ILSpy.AddIn/Commands/OpenILSpyCommand.cs @@ -12,18 +12,6 @@ using Mono.Cecil; namespace ICSharpCode.ILSpy.AddIn.Commands { - public class ILSpyParameters - { - public ILSpyParameters(IEnumerable assemblyFileNames, params string[] arguments) - { - this.AssemblyFileNames = assemblyFileNames; - this.Arguments = arguments; - } - - public IEnumerable AssemblyFileNames { get; private set; } - public string[] Arguments { get; private set; } - } - public class DetectedReference { public DetectedReference(string name, string assemblyFile, bool isProjectReference) @@ -75,12 +63,8 @@ namespace ICSharpCode.ILSpy.AddIn.Commands } } - string commandLineArguments = Utils.ArgumentArrayToCommandLine(parameters.AssemblyFileNames.ToArray()); - if (parameters.Arguments != null) { - commandLineArguments = string.Concat(commandLineArguments, " ", Utils.ArgumentArrayToCommandLine(parameters.Arguments)); - } - - System.Diagnostics.Process.Start(GetILSpyPath(), commandLineArguments); + var ilspyExe = new ILSpyInstance(parameters); + ilspyExe.Start(); } protected Dictionary GetReferences(Microsoft.CodeAnalysis.Project parentProject) @@ -140,7 +124,7 @@ namespace ICSharpCode.ILSpy.AddIn.Commands protected override void OnExecute(object sender, EventArgs e) { - System.Diagnostics.Process.Start(GetILSpyPath()); + new ILSpyInstance().Start(); } internal static void Register(ILSpyAddInPackage owner) diff --git a/ILSpy.AddIn/ILSpy.AddIn.csproj b/ILSpy.AddIn/ILSpy.AddIn.csproj index ee784cab3..f3b2dd135 100644 --- a/ILSpy.AddIn/ILSpy.AddIn.csproj +++ b/ILSpy.AddIn/ILSpy.AddIn.csproj @@ -54,7 +54,7 @@ - + @@ -74,6 +74,7 @@ + True True diff --git a/ILSpy.AddIn/ILSpyInstance.cs b/ILSpy.AddIn/ILSpyInstance.cs new file mode 100644 index 000000000..3c56e448e --- /dev/null +++ b/ILSpy.AddIn/ILSpyInstance.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ICSharpCode.ILSpy.AddIn +{ + class ILSpyParameters + { + public ILSpyParameters(IEnumerable assemblyFileNames, params string[] arguments) + { + this.AssemblyFileNames = assemblyFileNames; + this.Arguments = arguments; + } + + public IEnumerable AssemblyFileNames { get; private set; } + public string[] Arguments { get; private set; } + } + + class ILSpyInstance + { + ILSpyParameters parameters; + + public ILSpyInstance() + { + } + + public ILSpyInstance(ILSpyParameters parameters) + { + this.parameters = parameters; + } + + static string GetILSpyPath() + { + var basePath = Path.GetDirectoryName(typeof(ILSpyAddInPackage).Assembly.Location); + return Path.Combine(basePath, "ILSpy.exe"); + } + + public void Start() + { + var commandLineArguments = parameters.AssemblyFileNames?.Concat(parameters.Arguments); + + var process = new Process() { + StartInfo = new ProcessStartInfo() { + FileName = GetILSpyPath(), + UseShellExecute = false + } + }; + process.Start(); + + if ((commandLineArguments != null) && commandLineArguments.Any()) { + // Only need a message to started process if there are any parameters to pass + SendMessage(process, "ILSpy:\r\n" + string.Join(Environment.NewLine, commandLineArguments), true); + } + } + + void SendMessage(Process ilspyProcess, string message, bool activate) + { + // We wait asynchronously until target window can be found and try to find it multiple times + Task.Run(async () => { + bool success = false; + int remainingAttempts = 20; + do { + NativeMethods.EnumWindows( + (hWnd, lParam) => { + string windowTitle = NativeMethods.GetWindowText(hWnd, 100); + if (windowTitle.StartsWith("ILSpy", StringComparison.Ordinal)) { + Debug.WriteLine("Found {0:x4}: {1}", hWnd, windowTitle); + IntPtr result = Send(hWnd, message); + Debug.WriteLine("WM_COPYDATA result: {0:x8}", result); + if (result == (IntPtr)1) { + if (activate) + NativeMethods.SetForegroundWindow(hWnd); + success = true; + return false; // stop enumeration + } + } + return true; // continue enumeration + }, IntPtr.Zero); + + // Wait some time before next attempt + await Task.Delay(500); + remainingAttempts--; + } while (!success && (remainingAttempts > 0)); + }); + } + + unsafe static IntPtr Send(IntPtr hWnd, string message) + { + const uint SMTO_NORMAL = 0; + + CopyDataStruct lParam; + lParam.Padding = IntPtr.Zero; + lParam.Size = message.Length * 2; + fixed (char* buffer = message) { + lParam.Buffer = (IntPtr)buffer; + IntPtr result; + // SendMessage with 3s timeout (e.g. when the target process is stopped in the debugger) + if (NativeMethods.SendMessageTimeout( + hWnd, NativeMethods.WM_COPYDATA, IntPtr.Zero, ref lParam, + SMTO_NORMAL, 3000, out result) != IntPtr.Zero) { + return result; + } else { + return IntPtr.Zero; + } + } + } + } +} diff --git a/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj b/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj index 5ee4e0acc..18c13fc75 100644 --- a/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj +++ b/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj @@ -33,7 +33,7 @@ - + diff --git a/ILSpy.Tests/ILSpy.Tests.csproj b/ILSpy.Tests/ILSpy.Tests.csproj index e2383bb4e..98304e7f6 100644 --- a/ILSpy.Tests/ILSpy.Tests.csproj +++ b/ILSpy.Tests/ILSpy.Tests.csproj @@ -42,11 +42,11 @@ - - - - - + + + + + diff --git a/ILSpy/Analyzers/Builtin/AttributeAppliedToAnalyzer.cs b/ILSpy/Analyzers/Builtin/AttributeAppliedToAnalyzer.cs index 462c741bb..08f75db76 100644 --- a/ILSpy/Analyzers/Builtin/AttributeAppliedToAnalyzer.cs +++ b/ILSpy/Analyzers/Builtin/AttributeAppliedToAnalyzer.cs @@ -18,10 +18,11 @@ using System; using System.Collections.Generic; -using System.ComponentModel.Composition; -using System.Diagnostics; using System.Linq; +using System.Reflection; using System.Reflection.Metadata; +using System.Runtime.InteropServices; +using ICSharpCode.Decompiler; using ICSharpCode.Decompiler.TypeSystem; namespace ICSharpCode.ILSpy.Analyzers.Builtin @@ -31,10 +32,116 @@ namespace ICSharpCode.ILSpy.Analyzers.Builtin { public IEnumerable Analyze(ISymbol analyzedSymbol, AnalyzerContext context) { - if (!(analyzedSymbol is IEntity attributeEntity)) - yield break; + if (!(analyzedSymbol is ITypeDefinition attributeType)) + return Array.Empty(); - var scope = context.GetScopeOf(attributeEntity); + var scope = context.GetScopeOf(attributeType); + // TODO: DeclSecurity attributes are not supported. + if (!IsBuiltinAttribute(attributeType, out var knownAttribute)) { + return HandleCustomAttribute(attributeType, scope); + } else { + return HandleBuiltinAttribute(knownAttribute, scope).SelectMany(s => s); + } + } + + bool IsBuiltinAttribute(ITypeDefinition attributeType, out KnownAttribute knownAttribute) + { + knownAttribute = attributeType.IsBuiltinAttribute(); + switch (knownAttribute) { + case KnownAttribute.Serializable: + case KnownAttribute.ComImport: + case KnownAttribute.StructLayout: + case KnownAttribute.DllImport: + case KnownAttribute.PreserveSig: + case KnownAttribute.MethodImpl: + case KnownAttribute.FieldOffset: + case KnownAttribute.NonSerialized: + case KnownAttribute.MarshalAs: + case KnownAttribute.PermissionSet: + case KnownAttribute.Optional: + case KnownAttribute.In: + case KnownAttribute.Out: + case KnownAttribute.IndexerName: + return true; + default: + return false; + } + } + + IEnumerable> HandleBuiltinAttribute(KnownAttribute attribute, AnalyzerScope scope) + { + IEnumerable ScanTypes(DecompilerTypeSystem ts) + { + return ts.MainModule.TypeDefinitions + .Where(t => t.HasAttribute(attribute)); + } + + IEnumerable ScanMethods(DecompilerTypeSystem ts) + { + return ts.MainModule.TypeDefinitions + .SelectMany(t => t.Members.OfType()) + .Where(m => m.HasAttribute(attribute)) + .Select(m => m.AccessorOwner ?? m); + } + + IEnumerable ScanFields(DecompilerTypeSystem ts) + { + return ts.MainModule.TypeDefinitions + .SelectMany(t => t.Fields) + .Where(f => f.HasAttribute(attribute)); + } + + IEnumerable ScanProperties(DecompilerTypeSystem ts) + { + return ts.MainModule.TypeDefinitions + .SelectMany(t => t.Properties) + .Where(p => p.HasAttribute(attribute)); + } + + IEnumerable ScanParameters(DecompilerTypeSystem ts) + { + return ts.MainModule.TypeDefinitions + .SelectMany(t => t.Members.OfType()) + .Where(m => m.Parameters.Any(p => p.HasAttribute(attribute))) + .Select(m => m.AccessorOwner ?? m); + } + + foreach (Decompiler.Metadata.PEFile module in scope.GetAllModules()) { + var ts = new DecompilerTypeSystem(module, module.GetAssemblyResolver()); + + switch (attribute) { + case KnownAttribute.Serializable: + case KnownAttribute.ComImport: + case KnownAttribute.StructLayout: + yield return ScanTypes(ts); + break; + case KnownAttribute.DllImport: + case KnownAttribute.PreserveSig: + case KnownAttribute.MethodImpl: + yield return ScanMethods(ts); + break; + case KnownAttribute.FieldOffset: + case KnownAttribute.NonSerialized: + yield return ScanFields(ts); + break; + case KnownAttribute.MarshalAs: + yield return ScanFields(ts); + yield return ScanParameters(ts); + goto case KnownAttribute.Out; + case KnownAttribute.Optional: + case KnownAttribute.In: + case KnownAttribute.Out: + yield return ScanParameters(ts); + break; + case KnownAttribute.IndexerName: + yield return ScanProperties(ts); + break; + } + } + } + + IEnumerable HandleCustomAttribute(ITypeDefinition attributeType, AnalyzerScope scope) + { var genericContext = new GenericContext(); // type arguments do not matter for this analyzer. foreach (var module in scope.GetAllModules()) { @@ -44,8 +151,8 @@ namespace ICSharpCode.ILSpy.Analyzers.Builtin var customAttribute = module.Metadata.GetCustomAttribute(h); var attributeCtor = ts.MainModule.ResolveMethod(customAttribute.Constructor, genericContext); if (attributeCtor.DeclaringTypeDefinition != null - && attributeCtor.ParentModule.PEFile == attributeEntity.ParentModule.PEFile - && attributeCtor.DeclaringTypeDefinition.MetadataToken == attributeEntity.MetadataToken) { + && attributeCtor.ParentModule.PEFile == attributeType.ParentModule.PEFile + && attributeCtor.DeclaringTypeDefinition.MetadataToken == attributeType.MetadataToken) { if (customAttribute.Parent.Kind == HandleKind.Parameter) { referencedParameters.Add((ParameterHandle)customAttribute.Parent); } else { diff --git a/ILSpy/Controls/GridViewColumnAutoSize.cs b/ILSpy/Controls/GridViewColumnAutoSize.cs index 92c10ce1f..8b010ebce 100644 --- a/ILSpy/Controls/GridViewColumnAutoSize.cs +++ b/ILSpy/Controls/GridViewColumnAutoSize.cs @@ -70,7 +70,8 @@ namespace ICSharpCode.ILSpy.Controls { string[] sizes = (sizeValue ?? "").Split(';'); - Debug.Assert(sizes.Length == view.Columns.Count); + if (sizes.Length != view.Columns.Count) + return; Dictionary> percentages = new Dictionary>(); double remainingWidth = fullWidth - 30; // 30 is a good offset for the scrollbar diff --git a/ILSpy/Controls/ResourceObjectTable.xaml b/ILSpy/Controls/ResourceObjectTable.xaml index 7e8d5977a..f994c2aaa 100644 --- a/ILSpy/Controls/ResourceObjectTable.xaml +++ b/ILSpy/Controls/ResourceObjectTable.xaml @@ -2,6 +2,7 @@ + ItemContainerStyle="{StaticResource alternatingWithBinding}" + local:SortableGridViewColumn.SortMode="Automatic"> - + - - + + - - + + - + diff --git a/ILSpy/Controls/ResourceStringTable.xaml b/ILSpy/Controls/ResourceStringTable.xaml index 49553b588..a3da6d4d0 100644 --- a/ILSpy/Controls/ResourceStringTable.xaml +++ b/ILSpy/Controls/ResourceStringTable.xaml @@ -2,6 +2,7 @@ + Grid.Row="1" + AlternationCount="2" + ItemContainerStyle="{StaticResource alternatingWithBinding}" + local:SortableGridViewColumn.SortMode="Automatic"> - + - - + + - + diff --git a/ILSpy/ILSpy.csproj b/ILSpy/ILSpy.csproj index 2655fc450..8be3629ea 100644 --- a/ILSpy/ILSpy.csproj +++ b/ILSpy/ILSpy.csproj @@ -51,7 +51,7 @@ - + diff --git a/ILSpy/Languages/CSharpLanguage.cs b/ILSpy/Languages/CSharpLanguage.cs index 26b4532ad..a17f28350 100644 --- a/ILSpy/Languages/CSharpLanguage.cs +++ b/ILSpy/Languages/CSharpLanguage.cs @@ -110,6 +110,7 @@ namespace ICSharpCode.ILSpy { CSharpDecompiler decompiler = new CSharpDecompiler(module, module.GetAssemblyResolver(), options.DecompilerSettings); decompiler.CancellationToken = options.CancellationToken; + decompiler.DebugInfoProvider = module.GetDebugInfoOrNull(); while (decompiler.AstTransforms.Count > transformCount) decompiler.AstTransforms.RemoveAt(decompiler.AstTransforms.Count - 1); return decompiler; diff --git a/ILSpy/MainWindow.xaml.cs b/ILSpy/MainWindow.xaml.cs index 7cb98f856..0b0add19a 100644 --- a/ILSpy/MainWindow.xaml.cs +++ b/ILSpy/MainWindow.xaml.cs @@ -48,6 +48,7 @@ namespace ICSharpCode.ILSpy /// partial class MainWindow : Window { + bool refreshInProgress; readonly NavigationHistory history = new NavigationHistory(); ILSpySettings spySettings; internal SessionSettings sessionSettings; @@ -748,9 +749,14 @@ namespace ICSharpCode.ILSpy void RefreshCommandExecuted(object sender, ExecutedRoutedEventArgs e) { - var path = GetPathForNode(treeView.SelectedItem as SharpTreeNode); - ShowAssemblyList(assemblyListManager.LoadList(ILSpySettings.Load(), assemblyList.ListName)); - SelectNode(FindNodeByPath(path, true)); + try { + refreshInProgress = true; + var path = GetPathForNode(treeView.SelectedItem as SharpTreeNode); + ShowAssemblyList(assemblyListManager.LoadList(ILSpySettings.Load(), assemblyList.ListName)); + SelectNode(FindNodeByPath(path, true)); + } finally { + refreshInProgress = false; + } } void SearchCommandExecuted(object sender, ExecutedRoutedEventArgs e) @@ -775,6 +781,9 @@ namespace ICSharpCode.ILSpy { if (ignoreDecompilationRequests) return; + + if (treeView.SelectedItems.Count == 0 && refreshInProgress) + return; if (recordHistory) { var dtState = decompilerTextView.GetState(); @@ -804,7 +813,12 @@ namespace ICSharpCode.ILSpy public void RefreshDecompiledView() { - DecompileSelectedNodes(); + try { + refreshInProgress = true; + DecompileSelectedNodes(); + } finally { + refreshInProgress = false; + } } public DecompilerTextView TextView { diff --git a/ILSpy/Search/MetadataTokenSearchStrategy.cs b/ILSpy/Search/MetadataTokenSearchStrategy.cs index 87e482c45..d1951907f 100644 --- a/ILSpy/Search/MetadataTokenSearchStrategy.cs +++ b/ILSpy/Search/MetadataTokenSearchStrategy.cs @@ -25,12 +25,40 @@ namespace ICSharpCode.ILSpy.Search if (searchTermToken.IsNil) return; var typeSystem = module.GetTypeSystemOrNull(); if (typeSystem == null) return; + var metadataModule = (MetadataModule)typeSystem.MainModule; + int row = module.Metadata.GetRowNumber(searchTermToken); switch (searchTermToken.Kind) { case HandleKind.TypeDefinition: - var type = ((MetadataModule)typeSystem.MainModule).GetDefinition((TypeDefinitionHandle)searchTermToken); + if (row < 1 || row > module.Metadata.TypeDefinitions.Count) + break; + var type = metadataModule.GetDefinition((TypeDefinitionHandle)searchTermToken); addResult(ResultFromEntity(type)); break; + case HandleKind.MethodDefinition: + if (row < 1 || row > module.Metadata.MethodDefinitions.Count) + break; + var method = metadataModule.GetDefinition((MethodDefinitionHandle)searchTermToken); + addResult(ResultFromEntity(method)); + break; + case HandleKind.FieldDefinition: + if (row < 1 || row > module.Metadata.FieldDefinitions.Count) + break; + var field = metadataModule.GetDefinition((FieldDefinitionHandle)searchTermToken); + addResult(ResultFromEntity(field)); + break; + case HandleKind.PropertyDefinition: + if (row < 1 || row > module.Metadata.PropertyDefinitions.Count) + break; + var property = metadataModule.GetDefinition((PropertyDefinitionHandle)searchTermToken); + addResult(ResultFromEntity(property)); + break; + case HandleKind.EventDefinition: + if (row < 1 || row > module.Metadata.EventDefinitions.Count) + break; + var @event = metadataModule.GetDefinition((EventDefinitionHandle)searchTermToken); + addResult(ResultFromEntity(@event)); + break; } } } diff --git a/ILSpy/TreeNodes/AssemblyListTreeNode.cs b/ILSpy/TreeNodes/AssemblyListTreeNode.cs index 569eef00a..e53a3a883 100644 --- a/ILSpy/TreeNodes/AssemblyListTreeNode.cs +++ b/ILSpy/TreeNodes/AssemblyListTreeNode.cs @@ -112,7 +112,7 @@ namespace ICSharpCode.ILSpy.TreeNodes index--; assemblyList.assemblies.RemoveAt(nodeIndex); } - assemblies.Reverse(); + Array.Reverse(assemblies); foreach (LoadedAssembly asm in assemblies) { assemblyList.assemblies.Insert(index, asm); } diff --git a/ILSpy/TreeNodes/NaturalStringComparer.cs b/ILSpy/TreeNodes/NaturalStringComparer.cs index 5c9d5e0b7..177141260 100644 --- a/ILSpy/TreeNodes/NaturalStringComparer.cs +++ b/ILSpy/TreeNodes/NaturalStringComparer.cs @@ -16,7 +16,6 @@ // 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; diff --git a/ILSpy/TreeNodes/ResourceListTreeNode.cs b/ILSpy/TreeNodes/ResourceListTreeNode.cs index 2a8cacc30..9f14a03c3 100644 --- a/ILSpy/TreeNodes/ResourceListTreeNode.cs +++ b/ILSpy/TreeNodes/ResourceListTreeNode.cs @@ -51,7 +51,7 @@ namespace ICSharpCode.ILSpy.TreeNodes protected override void LoadChildren() { - foreach (Resource r in module.Resources.OrderBy(m => m.Name)) + foreach (Resource r in module.Resources.OrderBy(m => m.Name, NaturalStringComparer.Instance)) this.Children.Add(ResourceTreeNode.Create(r)); } diff --git a/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs b/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs index 264299f45..41cea89fc 100644 --- a/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs +++ b/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs @@ -21,6 +21,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel.Composition; using System.IO; +using System.Linq; using ICSharpCode.Decompiler; using ICSharpCode.Decompiler.Util; using ICSharpCode.Decompiler.Metadata; @@ -68,7 +69,7 @@ namespace ICSharpCode.ILSpy.TreeNodes if (s == null) return; s.Position = 0; try { - foreach (var entry in new ResourcesFile(s)) { + foreach (var entry in new ResourcesFile(s).OrderBy(e => e.Key, NaturalStringComparer.Instance)) { ProcessResourceEntry(entry); } } catch (BadImageFormatException) { @@ -78,7 +79,7 @@ namespace ICSharpCode.ILSpy.TreeNodes private void ProcessResourceEntry(KeyValuePair entry) { - if (entry.Value is String) { + if (entry.Value is string) { stringTableEntries.Add(new KeyValuePair(entry.Key, (string)entry.Value)); return; }