From 64686b9547d76f3c0f41ddccb905c605451b110f Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Fri, 4 Jan 2019 16:26:27 +0100 Subject: [PATCH] Fix #1336: multi-dimensional array initializers with custom objects not detected. --- .../TestCases/Correctness/InitializerTests.cs | 337 ----- .../TestCases/Pretty/InitializerTests.cs | 496 +++++++- .../TestCases/Pretty/InitializerTests.il | 1116 +++++++++++++++- .../TestCases/Pretty/InitializerTests.opt.il | 1109 +++++++++++++++- .../Pretty/InitializerTests.opt.roslyn.il | 1111 +++++++++++++++- .../Pretty/InitializerTests.roslyn.il | 1132 ++++++++++++++++- .../IL/Transforms/DynamicCallSiteTransform.cs | 8 +- .../Transforms/TransformArrayInitializers.cs | 150 ++- 8 files changed, 4998 insertions(+), 461 deletions(-) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/InitializerTests.cs b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/InitializerTests.cs index 31ba421e8..9ab986685 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/InitializerTests.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/InitializerTests.cs @@ -129,10 +129,6 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness return null; } - #region Array Initializers - - #endregion - public static void CollectionInitializerList() { InitializerTests.X(InitializerTests.Y(), new List @@ -414,340 +410,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness } - public int[,] MultidimensionalInit() - { - return new int[,] - { - - { - 0, - 0, - 0, - 0 - }, - - { - 1, - 1, - 1, - 1 - }, - - { - 0, - 0, - 0, - 0 - }, - - { - 0, - 0, - 0, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 0, - 0 - }, - - { - 1, - 1, - 1, - 1 - }, - - { - 0, - 0, - 0, - 0 - }, - - { - 0, - 0, - 0, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - } - }; - } - - public int[][,] MultidimensionalInit2() - { - return new int[][,] - { - new int[,] - { - - { - 0, - 0, - 0, - 0 - }, - - { - 1, - 1, - 1, - 1 - }, - - { - 0, - 0, - 0, - 0 - }, - { - 0, - 0, - 0, - 0 - } - - }, - new int[,] - { - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - } - - }, - new int[,] - { - - { - 0, - 0, - 0, - 0 - }, - - { - 1, - 1, - 1, - 1 - }, - - { - 0, - 0, - 0, - 0 - }, - - { - 0, - 0, - 0, - 0 - } - }, - new int[,] - { - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - }, - - { - 0, - 0, - 1, - 0 - } - - } - }; - } - - public int[][,,] ArrayOfArrayOfArrayInit() - { - return new int[][,,] - { - new int[,,] - { - { - { - 1, - 2, - 3 - }, - { - 4, - 5, - 6 - }, - { - 7, - 8, - 9 - } - }, - { - { - 11, - 12, - 13 - }, - { - 14, - 15, - 16 - }, - { - 17, - 18, - 19 - } - } - }, - - new int[,,] - { - { - { - 21, - 22, - 23 - }, - { - 24, - 25, - 26 - }, - { - 27, - 28, - 29 - } - }, - { - { - 31, - 32, - 33 - }, - { - 34, - 35, - 36 - }, - { - 37, - 38, - 39 - } - } - } - }; - } class Issue855 { diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs index a29068b13..bfa195c05 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs @@ -34,7 +34,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests public class TestCases { - #region Types and helpers + #region Types public class CustomList : IEnumerable, IEnumerable { public IEnumerator GetEnumerator() @@ -260,7 +260,175 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests #endif } - // Helper methods used to ensure initializers used within expressions work correctly + public class V3f + { + private float x; + private float y; + private float z; + + public V3f(float _x, float _y, float _z) + { + x = _x; + y = _y; + z = _z; + } + } + #endregion + + #region Field initializer tests + private static V3f[] Issue1336_rg0 = new V3f[3] { + new V3f(1f, 1f, 1f), + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f) + }; + + private static V3f[,] Issue1336_rg1 = new V3f[3, 3] { + { + new V3f(1f, 1f, 1f), + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f) + }, + { + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f) + }, + { + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f), + new V3f(5f, 5f, 5f) + } + }; + + private static V3f[][] Issue1336_rg1b = new V3f[3][] { + new V3f[3] { + new V3f(1f, 1f, 1f), + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f) + }, + new V3f[3] { + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f) + }, + new V3f[3] { + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f), + new V3f(5f, 5f, 5f) + } + }; + + private static V3f[,][] Issue1336_rg1c = new V3f[3, 3][] { + { + new V3f[3] { + new V3f(1f, 1f, 1f), + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f) + }, + new V3f[3] { + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f) + }, + new V3f[3] { + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f), + new V3f(5f, 5f, 5f) + } + }, + { + new V3f[3] { + new V3f(1f, 1f, 1f), + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f) + }, + new V3f[3] { + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f) + }, + new V3f[3] { + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f), + new V3f(5f, 5f, 5f) + } + }, + { + new V3f[3] { + new V3f(1f, 1f, 1f), + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f) + }, + new V3f[3] { + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f) + }, + new V3f[3] { + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f), + new V3f(5f, 5f, 5f) + } + } + }; + + private static V3f[][,] Issue1336_rg1d = new V3f[2][,] { + new V3f[3, 3] { + { + new V3f(1f, 1f, 1f), + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f) + }, + { + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f) + }, + { + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f), + new V3f(5f, 5f, 5f) + } + }, + new V3f[3, 3] { + { + new V3f(1f, 1f, 1f), + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f) + }, + { + new V3f(2f, 2f, 2f), + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f) + }, + { + new V3f(3f, 3f, 3f), + new V3f(4f, 4f, 4f), + new V3f(5f, 5f, 5f) + } + } + }; + + private static int[,] Issue1336_rg2 = new int[3, 3] { + { + 1, + 1, + 1 + }, + { + 1, + 1, + 1 + }, + { + 1, + 1, + 1 + } + }; + #endregion + + #region Helper methods used to ensure initializers used within expressions work correctly private static void X(object a, object b) { } @@ -393,6 +561,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests } }); } + public unsafe static void NestedPointerArray(int a, int b, int c) { X(Y(), new void*[3][] { @@ -592,6 +761,329 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests }); } + public int[,] MultidimensionalInit() + { + return new int[16, 4] { + { + 0, + 0, + 0, + 0 + }, + + { + 1, + 1, + 1, + 1 + }, + + { + 0, + 0, + 0, + 0 + }, + + { + 0, + 0, + 0, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 0, + 0 + }, + + { + 1, + 1, + 1, + 1 + }, + + { + 0, + 0, + 0, + 0 + }, + + { + 0, + 0, + 0, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + } + }; + } + + public int[][,] MultidimensionalInit2() + { + return new int[4][,] { + new int[4, 4] { + { + 0, + 0, + 0, + 0 + }, + + { + 1, + 1, + 1, + 1 + }, + + { + 0, + 0, + 0, + 0 + }, + + { + 0, + 0, + 0, + 0 + } + + }, + new int[4, 4] { + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + } + + }, + new int[4, 4] { + + { + 0, + 0, + 0, + 0 + }, + + { + 1, + 1, + 1, + 1 + }, + + { + 0, + 0, + 0, + 0 + }, + + { + 0, + 0, + 0, + 0 + } + }, + new int[4, 4] { + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + }, + + { + 0, + 0, + 1, + 0 + } + + } + }; + } + + public int[][,,] ArrayOfArrayOfArrayInit() + { + return new int[2][,,] { + new int[2, 3, 3] { + { + { + 1, + 2, + 3 + }, + { + 4, + 5, + 6 + }, + { + 7, + 8, + 9 + } + }, + { + { + 11, + 12, + 13 + }, + { + 14, + 15, + 16 + }, + { + 17, + 18, + 19 + } + } + }, + + new int[2, 3, 3] { + { + { + 21, + 22, + 23 + }, + { + 24, + 25, + 26 + }, + { + 27, + 28, + 29 + } + }, + { + { + 31, + 32, + 33 + }, + { + 34, + 35, + 36 + }, + { + 37, + 38, + 39 + } + } + } + }; + } + public static void RecursiveArrayInitializer() { int[] array = new int[3]; diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.il index 9ceef883b..6bb1ae235 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.il @@ -15,10 +15,10 @@ } .assembly InitializerTests { - .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. + .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 @@ -1264,6 +1264,44 @@ } // end of property OtherItem2::Data2 } // end of class OtherItem2 + .class auto ansi nested public beforefieldinit V3f + extends [mscorlib]System.Object + { + .field private float32 x + .field private float32 y + .field private float32 z + .method public hidebysig specialname rtspecialname + instance void .ctor(float32 _x, + float32 _y, + float32 _z) cil managed + { + // Code size 31 (0x1f) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: nop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::x + IL_000f: ldarg.0 + IL_0010: ldarg.2 + IL_0011: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::y + IL_0016: ldarg.0 + IL_0017: ldarg.3 + IL_0018: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::z + IL_001d: nop + IL_001e: ret + } // end of method V3f::.ctor + + } // end of class V3f + + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] Issue1336_rg0 + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] Issue1336_rg1 + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][] Issue1336_rg1b + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...] Issue1336_rg1c + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...][] Issue1336_rg1d + .field private static int32[0...,0...] Issue1336_rg2 .field private static class [mscorlib]System.EventHandler 'CS$<>9__CachedAnonymousMethodDelegate6' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate1a' @@ -2038,6 +2076,136 @@ IL_001c: ret } // end of method TestCases::ArrayEnum + .method public hidebysig instance int32[0...,0...] + MultidimensionalInit() cil managed + { + // Code size 25 (0x19) + .maxstack 3 + .locals init (int32[0...,0...] V_0) + IL_0000: nop + IL_0001: ldc.i4.s 16 + IL_0003: ldc.i4.4 + IL_0004: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0009: dup + IL_000a: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=256' ''::'$$method0x600001d-1' + IL_000f: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0014: stloc.0 + IL_0015: br.s IL_0017 + + IL_0017: ldloc.0 + IL_0018: ret + } // end of method TestCases::MultidimensionalInit + + .method public hidebysig instance int32[0...,0...][] + MultidimensionalInit2() cil managed + { + // Code size 98 (0x62) + .maxstack 5 + .locals init (int32[0...,0...][] V_0, + int32[0...,0...][] V_1) + IL_0000: nop + IL_0001: ldc.i4.4 + IL_0002: newarr int32[0...,0...] + IL_0007: stloc.1 + IL_0008: ldloc.1 + IL_0009: ldc.i4.0 + IL_000a: ldc.i4.4 + IL_000b: ldc.i4.4 + IL_000c: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0011: dup + IL_0012: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-1' + IL_0017: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_001c: stelem.ref + IL_001d: ldloc.1 + IL_001e: ldc.i4.1 + IL_001f: ldc.i4.4 + IL_0020: ldc.i4.4 + IL_0021: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0026: dup + IL_0027: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-2' + IL_002c: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0031: stelem.ref + IL_0032: ldloc.1 + IL_0033: ldc.i4.2 + IL_0034: ldc.i4.4 + IL_0035: ldc.i4.4 + IL_0036: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_003b: dup + IL_003c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-3' + IL_0041: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0046: stelem.ref + IL_0047: ldloc.1 + IL_0048: ldc.i4.3 + IL_0049: ldc.i4.4 + IL_004a: ldc.i4.4 + IL_004b: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0050: dup + IL_0051: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-4' + IL_0056: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_005b: stelem.ref + IL_005c: ldloc.1 + IL_005d: stloc.0 + IL_005e: br.s IL_0060 + + IL_0060: ldloc.0 + IL_0061: ret + } // end of method TestCases::MultidimensionalInit2 + + .method public hidebysig instance int32[0...,0...,0...][] + ArrayOfArrayOfArrayInit() cil managed + { + // Code size 58 (0x3a) + .maxstack 5 + .locals init (int32[0...,0...,0...][] V_0, + int32[0...,0...,0...][] V_1) + IL_0000: nop + IL_0001: ldc.i4.2 + IL_0002: newarr int32[0...,0...,0...] + IL_0007: stloc.1 + IL_0008: ldloc.1 + IL_0009: ldc.i4.0 + IL_000a: ldc.i4.2 + IL_000b: ldc.i4.3 + IL_000c: ldc.i4.3 + IL_000d: newobj instance void int32[0...,0...,0...]::.ctor(int32, + int32, + int32) + IL_0012: dup + IL_0013: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x600001f-1' + IL_0018: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_001d: stelem.ref + IL_001e: ldloc.1 + IL_001f: ldc.i4.1 + IL_0020: ldc.i4.2 + IL_0021: ldc.i4.3 + IL_0022: ldc.i4.3 + IL_0023: newobj instance void int32[0...,0...,0...]::.ctor(int32, + int32, + int32) + IL_0028: dup + IL_0029: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x600001f-2' + IL_002e: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0033: stelem.ref + IL_0034: ldloc.1 + IL_0035: stloc.0 + IL_0036: br.s IL_0038 + + IL_0038: ldloc.0 + IL_0039: ret + } // end of method TestCases::ArrayOfArrayOfArrayInit + .method public hidebysig static void RecursiveArrayInitializer() cil managed { // Code size 29 (0x1d) @@ -3354,6 +3522,861 @@ IL_0014: ret } // end of method TestCases::'b__19' + .method private hidebysig specialname rtspecialname static + void .cctor() cil managed + { + // Code size 1949 (0x79d) + .maxstack 8 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_0, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] V_1, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][] V_2, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...] V_3, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...][] V_4) + IL_0000: ldc.i4.3 + IL_0001: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.0 + IL_0009: ldc.r4 1. + IL_000e: ldc.r4 1. + IL_0013: ldc.r4 1. + IL_0018: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_001d: stelem.ref + IL_001e: ldloc.0 + IL_001f: ldc.i4.1 + IL_0020: ldc.r4 2. + IL_0025: ldc.r4 2. + IL_002a: ldc.r4 2. + IL_002f: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0034: stelem.ref + IL_0035: ldloc.0 + IL_0036: ldc.i4.2 + IL_0037: ldc.r4 3. + IL_003c: ldc.r4 3. + IL_0041: ldc.r4 3. + IL_0046: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_004b: stelem.ref + IL_004c: ldloc.0 + IL_004d: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg0 + IL_0052: ldc.i4.3 + IL_0053: ldc.i4.3 + IL_0054: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_0059: stloc.1 + IL_005a: ldloc.1 + IL_005b: ldc.i4.0 + IL_005c: ldc.i4.0 + IL_005d: ldc.r4 1. + IL_0062: ldc.r4 1. + IL_0067: ldc.r4 1. + IL_006c: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0071: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0076: ldloc.1 + IL_0077: ldc.i4.0 + IL_0078: ldc.i4.1 + IL_0079: ldc.r4 2. + IL_007e: ldc.r4 2. + IL_0083: ldc.r4 2. + IL_0088: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_008d: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0092: ldloc.1 + IL_0093: ldc.i4.0 + IL_0094: ldc.i4.2 + IL_0095: ldc.r4 3. + IL_009a: ldc.r4 3. + IL_009f: ldc.r4 3. + IL_00a4: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00a9: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00ae: ldloc.1 + IL_00af: ldc.i4.1 + IL_00b0: ldc.i4.0 + IL_00b1: ldc.r4 2. + IL_00b6: ldc.r4 2. + IL_00bb: ldc.r4 2. + IL_00c0: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00c5: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00ca: ldloc.1 + IL_00cb: ldc.i4.1 + IL_00cc: ldc.i4.1 + IL_00cd: ldc.r4 3. + IL_00d2: ldc.r4 3. + IL_00d7: ldc.r4 3. + IL_00dc: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00e1: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00e6: ldloc.1 + IL_00e7: ldc.i4.1 + IL_00e8: ldc.i4.2 + IL_00e9: ldc.r4 4. + IL_00ee: ldc.r4 4. + IL_00f3: ldc.r4 4. + IL_00f8: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00fd: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0102: ldloc.1 + IL_0103: ldc.i4.2 + IL_0104: ldc.i4.0 + IL_0105: ldc.r4 3. + IL_010a: ldc.r4 3. + IL_010f: ldc.r4 3. + IL_0114: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0119: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_011e: ldloc.1 + IL_011f: ldc.i4.2 + IL_0120: ldc.i4.1 + IL_0121: ldc.r4 4. + IL_0126: ldc.r4 4. + IL_012b: ldc.r4 4. + IL_0130: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0135: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_013a: ldloc.1 + IL_013b: ldc.i4.2 + IL_013c: ldc.i4.2 + IL_013d: ldc.r4 5. + IL_0142: ldc.r4 5. + IL_0147: ldc.r4 5. + IL_014c: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0151: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0156: ldloc.1 + IL_0157: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1 + IL_015c: ldc.i4.3 + IL_015d: newarr class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] + IL_0162: stloc.2 + IL_0163: ldloc.2 + IL_0164: ldc.i4.0 + IL_0165: ldc.i4.3 + IL_0166: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_016b: stloc.0 + IL_016c: ldloc.0 + IL_016d: ldc.i4.0 + IL_016e: ldc.r4 1. + IL_0173: ldc.r4 1. + IL_0178: ldc.r4 1. + IL_017d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0182: stelem.ref + IL_0183: ldloc.0 + IL_0184: ldc.i4.1 + IL_0185: ldc.r4 2. + IL_018a: ldc.r4 2. + IL_018f: ldc.r4 2. + IL_0194: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0199: stelem.ref + IL_019a: ldloc.0 + IL_019b: ldc.i4.2 + IL_019c: ldc.r4 3. + IL_01a1: ldc.r4 3. + IL_01a6: ldc.r4 3. + IL_01ab: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01b0: stelem.ref + IL_01b1: ldloc.0 + IL_01b2: stelem.ref + IL_01b3: ldloc.2 + IL_01b4: ldc.i4.1 + IL_01b5: ldc.i4.3 + IL_01b6: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_01bb: stloc.0 + IL_01bc: ldloc.0 + IL_01bd: ldc.i4.0 + IL_01be: ldc.r4 2. + IL_01c3: ldc.r4 2. + IL_01c8: ldc.r4 2. + IL_01cd: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01d2: stelem.ref + IL_01d3: ldloc.0 + IL_01d4: ldc.i4.1 + IL_01d5: ldc.r4 3. + IL_01da: ldc.r4 3. + IL_01df: ldc.r4 3. + IL_01e4: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01e9: stelem.ref + IL_01ea: ldloc.0 + IL_01eb: ldc.i4.2 + IL_01ec: ldc.r4 4. + IL_01f1: ldc.r4 4. + IL_01f6: ldc.r4 4. + IL_01fb: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0200: stelem.ref + IL_0201: ldloc.0 + IL_0202: stelem.ref + IL_0203: ldloc.2 + IL_0204: ldc.i4.2 + IL_0205: ldc.i4.3 + IL_0206: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_020b: stloc.0 + IL_020c: ldloc.0 + IL_020d: ldc.i4.0 + IL_020e: ldc.r4 3. + IL_0213: ldc.r4 3. + IL_0218: ldc.r4 3. + IL_021d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0222: stelem.ref + IL_0223: ldloc.0 + IL_0224: ldc.i4.1 + IL_0225: ldc.r4 4. + IL_022a: ldc.r4 4. + IL_022f: ldc.r4 4. + IL_0234: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0239: stelem.ref + IL_023a: ldloc.0 + IL_023b: ldc.i4.2 + IL_023c: ldc.r4 5. + IL_0241: ldc.r4 5. + IL_0246: ldc.r4 5. + IL_024b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0250: stelem.ref + IL_0251: ldloc.0 + IL_0252: stelem.ref + IL_0253: ldloc.2 + IL_0254: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1b + IL_0259: ldc.i4.3 + IL_025a: ldc.i4.3 + IL_025b: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::.ctor(int32, + int32) + IL_0260: stloc.3 + IL_0261: ldloc.3 + IL_0262: ldc.i4.0 + IL_0263: ldc.i4.0 + IL_0264: ldc.i4.3 + IL_0265: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_026a: stloc.0 + IL_026b: ldloc.0 + IL_026c: ldc.i4.0 + IL_026d: ldc.r4 1. + IL_0272: ldc.r4 1. + IL_0277: ldc.r4 1. + IL_027c: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0281: stelem.ref + IL_0282: ldloc.0 + IL_0283: ldc.i4.1 + IL_0284: ldc.r4 2. + IL_0289: ldc.r4 2. + IL_028e: ldc.r4 2. + IL_0293: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0298: stelem.ref + IL_0299: ldloc.0 + IL_029a: ldc.i4.2 + IL_029b: ldc.r4 3. + IL_02a0: ldc.r4 3. + IL_02a5: ldc.r4 3. + IL_02aa: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02af: stelem.ref + IL_02b0: ldloc.0 + IL_02b1: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_02b6: ldloc.3 + IL_02b7: ldc.i4.0 + IL_02b8: ldc.i4.1 + IL_02b9: ldc.i4.3 + IL_02ba: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_02bf: stloc.0 + IL_02c0: ldloc.0 + IL_02c1: ldc.i4.0 + IL_02c2: ldc.r4 2. + IL_02c7: ldc.r4 2. + IL_02cc: ldc.r4 2. + IL_02d1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02d6: stelem.ref + IL_02d7: ldloc.0 + IL_02d8: ldc.i4.1 + IL_02d9: ldc.r4 3. + IL_02de: ldc.r4 3. + IL_02e3: ldc.r4 3. + IL_02e8: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02ed: stelem.ref + IL_02ee: ldloc.0 + IL_02ef: ldc.i4.2 + IL_02f0: ldc.r4 4. + IL_02f5: ldc.r4 4. + IL_02fa: ldc.r4 4. + IL_02ff: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0304: stelem.ref + IL_0305: ldloc.0 + IL_0306: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_030b: ldloc.3 + IL_030c: ldc.i4.0 + IL_030d: ldc.i4.2 + IL_030e: ldc.i4.3 + IL_030f: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0314: stloc.0 + IL_0315: ldloc.0 + IL_0316: ldc.i4.0 + IL_0317: ldc.r4 3. + IL_031c: ldc.r4 3. + IL_0321: ldc.r4 3. + IL_0326: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_032b: stelem.ref + IL_032c: ldloc.0 + IL_032d: ldc.i4.1 + IL_032e: ldc.r4 4. + IL_0333: ldc.r4 4. + IL_0338: ldc.r4 4. + IL_033d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0342: stelem.ref + IL_0343: ldloc.0 + IL_0344: ldc.i4.2 + IL_0345: ldc.r4 5. + IL_034a: ldc.r4 5. + IL_034f: ldc.r4 5. + IL_0354: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0359: stelem.ref + IL_035a: ldloc.0 + IL_035b: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_0360: ldloc.3 + IL_0361: ldc.i4.1 + IL_0362: ldc.i4.0 + IL_0363: ldc.i4.3 + IL_0364: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0369: stloc.0 + IL_036a: ldloc.0 + IL_036b: ldc.i4.0 + IL_036c: ldc.r4 1. + IL_0371: ldc.r4 1. + IL_0376: ldc.r4 1. + IL_037b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0380: stelem.ref + IL_0381: ldloc.0 + IL_0382: ldc.i4.1 + IL_0383: ldc.r4 2. + IL_0388: ldc.r4 2. + IL_038d: ldc.r4 2. + IL_0392: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0397: stelem.ref + IL_0398: ldloc.0 + IL_0399: ldc.i4.2 + IL_039a: ldc.r4 3. + IL_039f: ldc.r4 3. + IL_03a4: ldc.r4 3. + IL_03a9: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03ae: stelem.ref + IL_03af: ldloc.0 + IL_03b0: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_03b5: ldloc.3 + IL_03b6: ldc.i4.1 + IL_03b7: ldc.i4.1 + IL_03b8: ldc.i4.3 + IL_03b9: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_03be: stloc.0 + IL_03bf: ldloc.0 + IL_03c0: ldc.i4.0 + IL_03c1: ldc.r4 2. + IL_03c6: ldc.r4 2. + IL_03cb: ldc.r4 2. + IL_03d0: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03d5: stelem.ref + IL_03d6: ldloc.0 + IL_03d7: ldc.i4.1 + IL_03d8: ldc.r4 3. + IL_03dd: ldc.r4 3. + IL_03e2: ldc.r4 3. + IL_03e7: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03ec: stelem.ref + IL_03ed: ldloc.0 + IL_03ee: ldc.i4.2 + IL_03ef: ldc.r4 4. + IL_03f4: ldc.r4 4. + IL_03f9: ldc.r4 4. + IL_03fe: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0403: stelem.ref + IL_0404: ldloc.0 + IL_0405: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_040a: ldloc.3 + IL_040b: ldc.i4.1 + IL_040c: ldc.i4.2 + IL_040d: ldc.i4.3 + IL_040e: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0413: stloc.0 + IL_0414: ldloc.0 + IL_0415: ldc.i4.0 + IL_0416: ldc.r4 3. + IL_041b: ldc.r4 3. + IL_0420: ldc.r4 3. + IL_0425: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_042a: stelem.ref + IL_042b: ldloc.0 + IL_042c: ldc.i4.1 + IL_042d: ldc.r4 4. + IL_0432: ldc.r4 4. + IL_0437: ldc.r4 4. + IL_043c: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0441: stelem.ref + IL_0442: ldloc.0 + IL_0443: ldc.i4.2 + IL_0444: ldc.r4 5. + IL_0449: ldc.r4 5. + IL_044e: ldc.r4 5. + IL_0453: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0458: stelem.ref + IL_0459: ldloc.0 + IL_045a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_045f: ldloc.3 + IL_0460: ldc.i4.2 + IL_0461: ldc.i4.0 + IL_0462: ldc.i4.3 + IL_0463: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0468: stloc.0 + IL_0469: ldloc.0 + IL_046a: ldc.i4.0 + IL_046b: ldc.r4 1. + IL_0470: ldc.r4 1. + IL_0475: ldc.r4 1. + IL_047a: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_047f: stelem.ref + IL_0480: ldloc.0 + IL_0481: ldc.i4.1 + IL_0482: ldc.r4 2. + IL_0487: ldc.r4 2. + IL_048c: ldc.r4 2. + IL_0491: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0496: stelem.ref + IL_0497: ldloc.0 + IL_0498: ldc.i4.2 + IL_0499: ldc.r4 3. + IL_049e: ldc.r4 3. + IL_04a3: ldc.r4 3. + IL_04a8: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04ad: stelem.ref + IL_04ae: ldloc.0 + IL_04af: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_04b4: ldloc.3 + IL_04b5: ldc.i4.2 + IL_04b6: ldc.i4.1 + IL_04b7: ldc.i4.3 + IL_04b8: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_04bd: stloc.0 + IL_04be: ldloc.0 + IL_04bf: ldc.i4.0 + IL_04c0: ldc.r4 2. + IL_04c5: ldc.r4 2. + IL_04ca: ldc.r4 2. + IL_04cf: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04d4: stelem.ref + IL_04d5: ldloc.0 + IL_04d6: ldc.i4.1 + IL_04d7: ldc.r4 3. + IL_04dc: ldc.r4 3. + IL_04e1: ldc.r4 3. + IL_04e6: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04eb: stelem.ref + IL_04ec: ldloc.0 + IL_04ed: ldc.i4.2 + IL_04ee: ldc.r4 4. + IL_04f3: ldc.r4 4. + IL_04f8: ldc.r4 4. + IL_04fd: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0502: stelem.ref + IL_0503: ldloc.0 + IL_0504: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_0509: ldloc.3 + IL_050a: ldc.i4.2 + IL_050b: ldc.i4.2 + IL_050c: ldc.i4.3 + IL_050d: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0512: stloc.0 + IL_0513: ldloc.0 + IL_0514: ldc.i4.0 + IL_0515: ldc.r4 3. + IL_051a: ldc.r4 3. + IL_051f: ldc.r4 3. + IL_0524: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0529: stelem.ref + IL_052a: ldloc.0 + IL_052b: ldc.i4.1 + IL_052c: ldc.r4 4. + IL_0531: ldc.r4 4. + IL_0536: ldc.r4 4. + IL_053b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0540: stelem.ref + IL_0541: ldloc.0 + IL_0542: ldc.i4.2 + IL_0543: ldc.r4 5. + IL_0548: ldc.r4 5. + IL_054d: ldc.r4 5. + IL_0552: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0557: stelem.ref + IL_0558: ldloc.0 + IL_0559: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_055e: ldloc.3 + IL_055f: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1c + IL_0564: ldc.i4.2 + IL_0565: newarr class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] + IL_056a: stloc.s V_4 + IL_056c: ldloc.s V_4 + IL_056e: ldc.i4.0 + IL_056f: ldc.i4.3 + IL_0570: ldc.i4.3 + IL_0571: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_0576: stloc.1 + IL_0577: ldloc.1 + IL_0578: ldc.i4.0 + IL_0579: ldc.i4.0 + IL_057a: ldc.r4 1. + IL_057f: ldc.r4 1. + IL_0584: ldc.r4 1. + IL_0589: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_058e: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0593: ldloc.1 + IL_0594: ldc.i4.0 + IL_0595: ldc.i4.1 + IL_0596: ldc.r4 2. + IL_059b: ldc.r4 2. + IL_05a0: ldc.r4 2. + IL_05a5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05aa: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05af: ldloc.1 + IL_05b0: ldc.i4.0 + IL_05b1: ldc.i4.2 + IL_05b2: ldc.r4 3. + IL_05b7: ldc.r4 3. + IL_05bc: ldc.r4 3. + IL_05c1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05c6: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05cb: ldloc.1 + IL_05cc: ldc.i4.1 + IL_05cd: ldc.i4.0 + IL_05ce: ldc.r4 2. + IL_05d3: ldc.r4 2. + IL_05d8: ldc.r4 2. + IL_05dd: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05e2: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05e7: ldloc.1 + IL_05e8: ldc.i4.1 + IL_05e9: ldc.i4.1 + IL_05ea: ldc.r4 3. + IL_05ef: ldc.r4 3. + IL_05f4: ldc.r4 3. + IL_05f9: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05fe: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0603: ldloc.1 + IL_0604: ldc.i4.1 + IL_0605: ldc.i4.2 + IL_0606: ldc.r4 4. + IL_060b: ldc.r4 4. + IL_0610: ldc.r4 4. + IL_0615: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_061a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_061f: ldloc.1 + IL_0620: ldc.i4.2 + IL_0621: ldc.i4.0 + IL_0622: ldc.r4 3. + IL_0627: ldc.r4 3. + IL_062c: ldc.r4 3. + IL_0631: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0636: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_063b: ldloc.1 + IL_063c: ldc.i4.2 + IL_063d: ldc.i4.1 + IL_063e: ldc.r4 4. + IL_0643: ldc.r4 4. + IL_0648: ldc.r4 4. + IL_064d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0652: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0657: ldloc.1 + IL_0658: ldc.i4.2 + IL_0659: ldc.i4.2 + IL_065a: ldc.r4 5. + IL_065f: ldc.r4 5. + IL_0664: ldc.r4 5. + IL_0669: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_066e: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0673: ldloc.1 + IL_0674: stelem.ref + IL_0675: ldloc.s V_4 + IL_0677: ldc.i4.1 + IL_0678: ldc.i4.3 + IL_0679: ldc.i4.3 + IL_067a: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_067f: stloc.1 + IL_0680: ldloc.1 + IL_0681: ldc.i4.0 + IL_0682: ldc.i4.0 + IL_0683: ldc.r4 1. + IL_0688: ldc.r4 1. + IL_068d: ldc.r4 1. + IL_0692: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0697: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_069c: ldloc.1 + IL_069d: ldc.i4.0 + IL_069e: ldc.i4.1 + IL_069f: ldc.r4 2. + IL_06a4: ldc.r4 2. + IL_06a9: ldc.r4 2. + IL_06ae: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06b3: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06b8: ldloc.1 + IL_06b9: ldc.i4.0 + IL_06ba: ldc.i4.2 + IL_06bb: ldc.r4 3. + IL_06c0: ldc.r4 3. + IL_06c5: ldc.r4 3. + IL_06ca: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06cf: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06d4: ldloc.1 + IL_06d5: ldc.i4.1 + IL_06d6: ldc.i4.0 + IL_06d7: ldc.r4 2. + IL_06dc: ldc.r4 2. + IL_06e1: ldc.r4 2. + IL_06e6: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06eb: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06f0: ldloc.1 + IL_06f1: ldc.i4.1 + IL_06f2: ldc.i4.1 + IL_06f3: ldc.r4 3. + IL_06f8: ldc.r4 3. + IL_06fd: ldc.r4 3. + IL_0702: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0707: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_070c: ldloc.1 + IL_070d: ldc.i4.1 + IL_070e: ldc.i4.2 + IL_070f: ldc.r4 4. + IL_0714: ldc.r4 4. + IL_0719: ldc.r4 4. + IL_071e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0723: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0728: ldloc.1 + IL_0729: ldc.i4.2 + IL_072a: ldc.i4.0 + IL_072b: ldc.r4 3. + IL_0730: ldc.r4 3. + IL_0735: ldc.r4 3. + IL_073a: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_073f: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0744: ldloc.1 + IL_0745: ldc.i4.2 + IL_0746: ldc.i4.1 + IL_0747: ldc.r4 4. + IL_074c: ldc.r4 4. + IL_0751: ldc.r4 4. + IL_0756: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_075b: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0760: ldloc.1 + IL_0761: ldc.i4.2 + IL_0762: ldc.i4.2 + IL_0763: ldc.r4 5. + IL_0768: ldc.r4 5. + IL_076d: ldc.r4 5. + IL_0772: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0777: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_077c: ldloc.1 + IL_077d: stelem.ref + IL_077e: ldloc.s V_4 + IL_0780: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1d + IL_0785: ldc.i4.3 + IL_0786: ldc.i4.3 + IL_0787: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_078c: dup + IL_078d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=36' ''::'$$method0x600008e-1' + IL_0792: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0797: stsfld int32[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg2 + IL_079c: ret + } // end of method TestCases::.cctor + } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases .class private auto ansi '' @@ -3402,6 +4425,34 @@ .size 48 } // end of class '__StaticArrayInitTypeSize=48' + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=256' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 256 + } // end of class '__StaticArrayInitTypeSize=256' + + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=64' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 64 + } // end of class '__StaticArrayInitTypeSize=64' + + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=72' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 72 + } // end of class '__StaticArrayInitTypeSize=72' + + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=36' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 36 + } // end of class '__StaticArrayInitTypeSize=36' + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x600000a-1' at I_000020C0 .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x600000c-1' at I_00002138 .field static assembly valuetype ''/'__StaticArrayInitTypeSize=24' '$$method0x600000c-2' at I_00002160 @@ -3416,6 +4467,14 @@ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=80' '$$method0x6000017-1' at I_000025D0 .field static assembly valuetype ''/'__StaticArrayInitTypeSize=24' '$$method0x6000018-1' at I_00002640 .field static assembly valuetype ''/'__StaticArrayInitTypeSize=48' '$$method0x6000019-1' at I_00002678 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=256' '$$method0x600001d-1' at I_000027C0 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001e-1' at I_000028E8 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001e-2' at I_00002928 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001e-3' at I_00002968 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001e-4' at I_000029A8 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=72' '$$method0x600001f-1' at I_00002A58 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=72' '$$method0x600001f-2' at I_00002AA0 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=36' '$$method0x600008e-1' at I_000035A0 } // end of class '' @@ -3473,4 +4532,59 @@ 00 00 00 00 00 00 F8 BF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F8 3F 00 00 00 00 00 00 F0 FF // .......?........ 00 00 00 00 00 00 F0 7F 00 00 00 00 00 00 F8 FF) +.data cil I_000026A8 = int8[24] +.data cil I_000027C0 = bytearray ( + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00) +.data cil I_000028E8 = bytearray ( + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00) +.data cil I_00002928 = bytearray ( + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00) +.data cil I_00002968 = bytearray ( + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00) +.data cil I_000029A8 = bytearray ( + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00) +.data cil I_00002A58 = bytearray ( + 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 + 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 + 09 00 00 00 0B 00 00 00 0C 00 00 00 0D 00 00 00 + 0E 00 00 00 0F 00 00 00 10 00 00 00 11 00 00 00 + 12 00 00 00 13 00 00 00) +.data cil I_00002AA0 = bytearray ( + 15 00 00 00 16 00 00 00 17 00 00 00 18 00 00 00 + 19 00 00 00 1A 00 00 00 1B 00 00 00 1C 00 00 00 + 1D 00 00 00 1F 00 00 00 20 00 00 00 21 00 00 00 // ........ ...!... + 22 00 00 00 23 00 00 00 24 00 00 00 25 00 00 00 // "...#...$...%... + 26 00 00 00 27 00 00 00) // &...'... +.data cil I_00002AE8 = int8[24] +.data cil I_000035A0 = bytearray ( + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 01 00 00 00) // *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.il index dd0f47ce1..9377b331c 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.il @@ -15,10 +15,10 @@ } .assembly InitializerTests.opt { - .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. + .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 @@ -1109,6 +1109,41 @@ } // end of property OtherItem2::Data2 } // end of class OtherItem2 + .class auto ansi nested public beforefieldinit V3f + extends [mscorlib]System.Object + { + .field private float32 x + .field private float32 y + .field private float32 z + .method public hidebysig specialname rtspecialname + instance void .ctor(float32 _x, + float32 _y, + float32 _z) cil managed + { + // Code size 28 (0x1c) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::x + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::y + IL_0014: ldarg.0 + IL_0015: ldarg.3 + IL_0016: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::z + IL_001b: ret + } // end of method V3f::.ctor + + } // end of class V3f + + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] Issue1336_rg0 + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] Issue1336_rg1 + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][] Issue1336_rg1b + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...] Issue1336_rg1c + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...][] Issue1336_rg1d + .field private static int32[0...,0...] Issue1336_rg2 .field private static class [mscorlib]System.EventHandler 'CS$<>9__CachedAnonymousMethodDelegate6' .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .field private static class [mscorlib]System.Func`2 'CS$<>9__CachedAnonymousMethodDelegate1a' @@ -1823,6 +1858,118 @@ IL_001a: ret } // end of method TestCases::ArrayEnum + .method public hidebysig instance int32[0...,0...] + MultidimensionalInit() cil managed + { + // Code size 20 (0x14) + .maxstack 8 + IL_0000: ldc.i4.s 16 + IL_0002: ldc.i4.4 + IL_0003: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0008: dup + IL_0009: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=256' ''::'$$method0x600001d-1' + IL_000e: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0013: ret + } // end of method TestCases::MultidimensionalInit + + .method public hidebysig instance int32[0...,0...][] + MultidimensionalInit2() cil managed + { + // Code size 93 (0x5d) + .maxstack 5 + .locals init (int32[0...,0...][] V_0) + IL_0000: ldc.i4.4 + IL_0001: newarr int32[0...,0...] + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.0 + IL_0009: ldc.i4.4 + IL_000a: ldc.i4.4 + IL_000b: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0010: dup + IL_0011: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-1' + IL_0016: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_001b: stelem.ref + IL_001c: ldloc.0 + IL_001d: ldc.i4.1 + IL_001e: ldc.i4.4 + IL_001f: ldc.i4.4 + IL_0020: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0025: dup + IL_0026: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-2' + IL_002b: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0030: stelem.ref + IL_0031: ldloc.0 + IL_0032: ldc.i4.2 + IL_0033: ldc.i4.4 + IL_0034: ldc.i4.4 + IL_0035: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_003a: dup + IL_003b: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-3' + IL_0040: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0045: stelem.ref + IL_0046: ldloc.0 + IL_0047: ldc.i4.3 + IL_0048: ldc.i4.4 + IL_0049: ldc.i4.4 + IL_004a: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_004f: dup + IL_0050: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-4' + IL_0055: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_005a: stelem.ref + IL_005b: ldloc.0 + IL_005c: ret + } // end of method TestCases::MultidimensionalInit2 + + .method public hidebysig instance int32[0...,0...,0...][] + ArrayOfArrayOfArrayInit() cil managed + { + // Code size 53 (0x35) + .maxstack 5 + .locals init (int32[0...,0...,0...][] V_0) + IL_0000: ldc.i4.2 + IL_0001: newarr int32[0...,0...,0...] + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.0 + IL_0009: ldc.i4.2 + IL_000a: ldc.i4.3 + IL_000b: ldc.i4.3 + IL_000c: newobj instance void int32[0...,0...,0...]::.ctor(int32, + int32, + int32) + IL_0011: dup + IL_0012: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x600001f-1' + IL_0017: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_001c: stelem.ref + IL_001d: ldloc.0 + IL_001e: ldc.i4.1 + IL_001f: ldc.i4.2 + IL_0020: ldc.i4.3 + IL_0021: ldc.i4.3 + IL_0022: newobj instance void int32[0...,0...,0...]::.ctor(int32, + int32, + int32) + IL_0027: dup + IL_0028: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x600001f-2' + IL_002d: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0032: stelem.ref + IL_0033: ldloc.0 + IL_0034: ret + } // end of method TestCases::ArrayOfArrayOfArrayInit + .method public hidebysig static void RecursiveArrayInitializer() cil managed { // Code size 28 (0x1c) @@ -2929,6 +3076,875 @@ IL_0010: ret } // end of method TestCases::'b__19' + .method private hidebysig specialname rtspecialname static + void .cctor() cil managed + { + // Code size 2037 (0x7f5) + .maxstack 8 + .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_0, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] V_1, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][] V_2, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_3, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_4, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_5, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...] V_6, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_7, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_8, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_9, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_10, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_11, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_12, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_13, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_14, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] V_15, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...][] V_16, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] V_17, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] V_18) + IL_0000: ldc.i4.3 + IL_0001: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.0 + IL_0009: ldc.r4 1. + IL_000e: ldc.r4 1. + IL_0013: ldc.r4 1. + IL_0018: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_001d: stelem.ref + IL_001e: ldloc.0 + IL_001f: ldc.i4.1 + IL_0020: ldc.r4 2. + IL_0025: ldc.r4 2. + IL_002a: ldc.r4 2. + IL_002f: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0034: stelem.ref + IL_0035: ldloc.0 + IL_0036: ldc.i4.2 + IL_0037: ldc.r4 3. + IL_003c: ldc.r4 3. + IL_0041: ldc.r4 3. + IL_0046: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_004b: stelem.ref + IL_004c: ldloc.0 + IL_004d: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg0 + IL_0052: ldc.i4.3 + IL_0053: ldc.i4.3 + IL_0054: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_0059: stloc.1 + IL_005a: ldloc.1 + IL_005b: ldc.i4.0 + IL_005c: ldc.i4.0 + IL_005d: ldc.r4 1. + IL_0062: ldc.r4 1. + IL_0067: ldc.r4 1. + IL_006c: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0071: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0076: ldloc.1 + IL_0077: ldc.i4.0 + IL_0078: ldc.i4.1 + IL_0079: ldc.r4 2. + IL_007e: ldc.r4 2. + IL_0083: ldc.r4 2. + IL_0088: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_008d: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0092: ldloc.1 + IL_0093: ldc.i4.0 + IL_0094: ldc.i4.2 + IL_0095: ldc.r4 3. + IL_009a: ldc.r4 3. + IL_009f: ldc.r4 3. + IL_00a4: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00a9: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00ae: ldloc.1 + IL_00af: ldc.i4.1 + IL_00b0: ldc.i4.0 + IL_00b1: ldc.r4 2. + IL_00b6: ldc.r4 2. + IL_00bb: ldc.r4 2. + IL_00c0: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00c5: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00ca: ldloc.1 + IL_00cb: ldc.i4.1 + IL_00cc: ldc.i4.1 + IL_00cd: ldc.r4 3. + IL_00d2: ldc.r4 3. + IL_00d7: ldc.r4 3. + IL_00dc: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00e1: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00e6: ldloc.1 + IL_00e7: ldc.i4.1 + IL_00e8: ldc.i4.2 + IL_00e9: ldc.r4 4. + IL_00ee: ldc.r4 4. + IL_00f3: ldc.r4 4. + IL_00f8: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00fd: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0102: ldloc.1 + IL_0103: ldc.i4.2 + IL_0104: ldc.i4.0 + IL_0105: ldc.r4 3. + IL_010a: ldc.r4 3. + IL_010f: ldc.r4 3. + IL_0114: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0119: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_011e: ldloc.1 + IL_011f: ldc.i4.2 + IL_0120: ldc.i4.1 + IL_0121: ldc.r4 4. + IL_0126: ldc.r4 4. + IL_012b: ldc.r4 4. + IL_0130: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0135: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_013a: ldloc.1 + IL_013b: ldc.i4.2 + IL_013c: ldc.i4.2 + IL_013d: ldc.r4 5. + IL_0142: ldc.r4 5. + IL_0147: ldc.r4 5. + IL_014c: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0151: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0156: ldloc.1 + IL_0157: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1 + IL_015c: ldc.i4.3 + IL_015d: newarr class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] + IL_0162: stloc.2 + IL_0163: ldloc.2 + IL_0164: ldc.i4.0 + IL_0165: ldc.i4.3 + IL_0166: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_016b: stloc.3 + IL_016c: ldloc.3 + IL_016d: ldc.i4.0 + IL_016e: ldc.r4 1. + IL_0173: ldc.r4 1. + IL_0178: ldc.r4 1. + IL_017d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0182: stelem.ref + IL_0183: ldloc.3 + IL_0184: ldc.i4.1 + IL_0185: ldc.r4 2. + IL_018a: ldc.r4 2. + IL_018f: ldc.r4 2. + IL_0194: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0199: stelem.ref + IL_019a: ldloc.3 + IL_019b: ldc.i4.2 + IL_019c: ldc.r4 3. + IL_01a1: ldc.r4 3. + IL_01a6: ldc.r4 3. + IL_01ab: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01b0: stelem.ref + IL_01b1: ldloc.3 + IL_01b2: stelem.ref + IL_01b3: ldloc.2 + IL_01b4: ldc.i4.1 + IL_01b5: ldc.i4.3 + IL_01b6: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_01bb: stloc.s V_4 + IL_01bd: ldloc.s V_4 + IL_01bf: ldc.i4.0 + IL_01c0: ldc.r4 2. + IL_01c5: ldc.r4 2. + IL_01ca: ldc.r4 2. + IL_01cf: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01d4: stelem.ref + IL_01d5: ldloc.s V_4 + IL_01d7: ldc.i4.1 + IL_01d8: ldc.r4 3. + IL_01dd: ldc.r4 3. + IL_01e2: ldc.r4 3. + IL_01e7: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01ec: stelem.ref + IL_01ed: ldloc.s V_4 + IL_01ef: ldc.i4.2 + IL_01f0: ldc.r4 4. + IL_01f5: ldc.r4 4. + IL_01fa: ldc.r4 4. + IL_01ff: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0204: stelem.ref + IL_0205: ldloc.s V_4 + IL_0207: stelem.ref + IL_0208: ldloc.2 + IL_0209: ldc.i4.2 + IL_020a: ldc.i4.3 + IL_020b: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0210: stloc.s V_5 + IL_0212: ldloc.s V_5 + IL_0214: ldc.i4.0 + IL_0215: ldc.r4 3. + IL_021a: ldc.r4 3. + IL_021f: ldc.r4 3. + IL_0224: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0229: stelem.ref + IL_022a: ldloc.s V_5 + IL_022c: ldc.i4.1 + IL_022d: ldc.r4 4. + IL_0232: ldc.r4 4. + IL_0237: ldc.r4 4. + IL_023c: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0241: stelem.ref + IL_0242: ldloc.s V_5 + IL_0244: ldc.i4.2 + IL_0245: ldc.r4 5. + IL_024a: ldc.r4 5. + IL_024f: ldc.r4 5. + IL_0254: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0259: stelem.ref + IL_025a: ldloc.s V_5 + IL_025c: stelem.ref + IL_025d: ldloc.2 + IL_025e: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1b + IL_0263: ldc.i4.3 + IL_0264: ldc.i4.3 + IL_0265: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::.ctor(int32, + int32) + IL_026a: stloc.s V_6 + IL_026c: ldloc.s V_6 + IL_026e: ldc.i4.0 + IL_026f: ldc.i4.0 + IL_0270: ldc.i4.3 + IL_0271: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0276: stloc.s V_7 + IL_0278: ldloc.s V_7 + IL_027a: ldc.i4.0 + IL_027b: ldc.r4 1. + IL_0280: ldc.r4 1. + IL_0285: ldc.r4 1. + IL_028a: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_028f: stelem.ref + IL_0290: ldloc.s V_7 + IL_0292: ldc.i4.1 + IL_0293: ldc.r4 2. + IL_0298: ldc.r4 2. + IL_029d: ldc.r4 2. + IL_02a2: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02a7: stelem.ref + IL_02a8: ldloc.s V_7 + IL_02aa: ldc.i4.2 + IL_02ab: ldc.r4 3. + IL_02b0: ldc.r4 3. + IL_02b5: ldc.r4 3. + IL_02ba: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02bf: stelem.ref + IL_02c0: ldloc.s V_7 + IL_02c2: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_02c7: ldloc.s V_6 + IL_02c9: ldc.i4.0 + IL_02ca: ldc.i4.1 + IL_02cb: ldc.i4.3 + IL_02cc: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_02d1: stloc.s V_8 + IL_02d3: ldloc.s V_8 + IL_02d5: ldc.i4.0 + IL_02d6: ldc.r4 2. + IL_02db: ldc.r4 2. + IL_02e0: ldc.r4 2. + IL_02e5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02ea: stelem.ref + IL_02eb: ldloc.s V_8 + IL_02ed: ldc.i4.1 + IL_02ee: ldc.r4 3. + IL_02f3: ldc.r4 3. + IL_02f8: ldc.r4 3. + IL_02fd: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0302: stelem.ref + IL_0303: ldloc.s V_8 + IL_0305: ldc.i4.2 + IL_0306: ldc.r4 4. + IL_030b: ldc.r4 4. + IL_0310: ldc.r4 4. + IL_0315: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_031a: stelem.ref + IL_031b: ldloc.s V_8 + IL_031d: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_0322: ldloc.s V_6 + IL_0324: ldc.i4.0 + IL_0325: ldc.i4.2 + IL_0326: ldc.i4.3 + IL_0327: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_032c: stloc.s V_9 + IL_032e: ldloc.s V_9 + IL_0330: ldc.i4.0 + IL_0331: ldc.r4 3. + IL_0336: ldc.r4 3. + IL_033b: ldc.r4 3. + IL_0340: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0345: stelem.ref + IL_0346: ldloc.s V_9 + IL_0348: ldc.i4.1 + IL_0349: ldc.r4 4. + IL_034e: ldc.r4 4. + IL_0353: ldc.r4 4. + IL_0358: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_035d: stelem.ref + IL_035e: ldloc.s V_9 + IL_0360: ldc.i4.2 + IL_0361: ldc.r4 5. + IL_0366: ldc.r4 5. + IL_036b: ldc.r4 5. + IL_0370: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0375: stelem.ref + IL_0376: ldloc.s V_9 + IL_0378: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_037d: ldloc.s V_6 + IL_037f: ldc.i4.1 + IL_0380: ldc.i4.0 + IL_0381: ldc.i4.3 + IL_0382: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0387: stloc.s V_10 + IL_0389: ldloc.s V_10 + IL_038b: ldc.i4.0 + IL_038c: ldc.r4 1. + IL_0391: ldc.r4 1. + IL_0396: ldc.r4 1. + IL_039b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03a0: stelem.ref + IL_03a1: ldloc.s V_10 + IL_03a3: ldc.i4.1 + IL_03a4: ldc.r4 2. + IL_03a9: ldc.r4 2. + IL_03ae: ldc.r4 2. + IL_03b3: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03b8: stelem.ref + IL_03b9: ldloc.s V_10 + IL_03bb: ldc.i4.2 + IL_03bc: ldc.r4 3. + IL_03c1: ldc.r4 3. + IL_03c6: ldc.r4 3. + IL_03cb: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03d0: stelem.ref + IL_03d1: ldloc.s V_10 + IL_03d3: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_03d8: ldloc.s V_6 + IL_03da: ldc.i4.1 + IL_03db: ldc.i4.1 + IL_03dc: ldc.i4.3 + IL_03dd: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_03e2: stloc.s V_11 + IL_03e4: ldloc.s V_11 + IL_03e6: ldc.i4.0 + IL_03e7: ldc.r4 2. + IL_03ec: ldc.r4 2. + IL_03f1: ldc.r4 2. + IL_03f6: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03fb: stelem.ref + IL_03fc: ldloc.s V_11 + IL_03fe: ldc.i4.1 + IL_03ff: ldc.r4 3. + IL_0404: ldc.r4 3. + IL_0409: ldc.r4 3. + IL_040e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0413: stelem.ref + IL_0414: ldloc.s V_11 + IL_0416: ldc.i4.2 + IL_0417: ldc.r4 4. + IL_041c: ldc.r4 4. + IL_0421: ldc.r4 4. + IL_0426: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_042b: stelem.ref + IL_042c: ldloc.s V_11 + IL_042e: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_0433: ldloc.s V_6 + IL_0435: ldc.i4.1 + IL_0436: ldc.i4.2 + IL_0437: ldc.i4.3 + IL_0438: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_043d: stloc.s V_12 + IL_043f: ldloc.s V_12 + IL_0441: ldc.i4.0 + IL_0442: ldc.r4 3. + IL_0447: ldc.r4 3. + IL_044c: ldc.r4 3. + IL_0451: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0456: stelem.ref + IL_0457: ldloc.s V_12 + IL_0459: ldc.i4.1 + IL_045a: ldc.r4 4. + IL_045f: ldc.r4 4. + IL_0464: ldc.r4 4. + IL_0469: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_046e: stelem.ref + IL_046f: ldloc.s V_12 + IL_0471: ldc.i4.2 + IL_0472: ldc.r4 5. + IL_0477: ldc.r4 5. + IL_047c: ldc.r4 5. + IL_0481: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0486: stelem.ref + IL_0487: ldloc.s V_12 + IL_0489: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_048e: ldloc.s V_6 + IL_0490: ldc.i4.2 + IL_0491: ldc.i4.0 + IL_0492: ldc.i4.3 + IL_0493: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0498: stloc.s V_13 + IL_049a: ldloc.s V_13 + IL_049c: ldc.i4.0 + IL_049d: ldc.r4 1. + IL_04a2: ldc.r4 1. + IL_04a7: ldc.r4 1. + IL_04ac: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04b1: stelem.ref + IL_04b2: ldloc.s V_13 + IL_04b4: ldc.i4.1 + IL_04b5: ldc.r4 2. + IL_04ba: ldc.r4 2. + IL_04bf: ldc.r4 2. + IL_04c4: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04c9: stelem.ref + IL_04ca: ldloc.s V_13 + IL_04cc: ldc.i4.2 + IL_04cd: ldc.r4 3. + IL_04d2: ldc.r4 3. + IL_04d7: ldc.r4 3. + IL_04dc: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04e1: stelem.ref + IL_04e2: ldloc.s V_13 + IL_04e4: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_04e9: ldloc.s V_6 + IL_04eb: ldc.i4.2 + IL_04ec: ldc.i4.1 + IL_04ed: ldc.i4.3 + IL_04ee: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_04f3: stloc.s V_14 + IL_04f5: ldloc.s V_14 + IL_04f7: ldc.i4.0 + IL_04f8: ldc.r4 2. + IL_04fd: ldc.r4 2. + IL_0502: ldc.r4 2. + IL_0507: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_050c: stelem.ref + IL_050d: ldloc.s V_14 + IL_050f: ldc.i4.1 + IL_0510: ldc.r4 3. + IL_0515: ldc.r4 3. + IL_051a: ldc.r4 3. + IL_051f: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0524: stelem.ref + IL_0525: ldloc.s V_14 + IL_0527: ldc.i4.2 + IL_0528: ldc.r4 4. + IL_052d: ldc.r4 4. + IL_0532: ldc.r4 4. + IL_0537: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_053c: stelem.ref + IL_053d: ldloc.s V_14 + IL_053f: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_0544: ldloc.s V_6 + IL_0546: ldc.i4.2 + IL_0547: ldc.i4.2 + IL_0548: ldc.i4.3 + IL_0549: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_054e: stloc.s V_15 + IL_0550: ldloc.s V_15 + IL_0552: ldc.i4.0 + IL_0553: ldc.r4 3. + IL_0558: ldc.r4 3. + IL_055d: ldc.r4 3. + IL_0562: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0567: stelem.ref + IL_0568: ldloc.s V_15 + IL_056a: ldc.i4.1 + IL_056b: ldc.r4 4. + IL_0570: ldc.r4 4. + IL_0575: ldc.r4 4. + IL_057a: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_057f: stelem.ref + IL_0580: ldloc.s V_15 + IL_0582: ldc.i4.2 + IL_0583: ldc.r4 5. + IL_0588: ldc.r4 5. + IL_058d: ldc.r4 5. + IL_0592: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0597: stelem.ref + IL_0598: ldloc.s V_15 + IL_059a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_059f: ldloc.s V_6 + IL_05a1: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1c + IL_05a6: ldc.i4.2 + IL_05a7: newarr class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] + IL_05ac: stloc.s V_16 + IL_05ae: ldloc.s V_16 + IL_05b0: ldc.i4.0 + IL_05b1: ldc.i4.3 + IL_05b2: ldc.i4.3 + IL_05b3: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_05b8: stloc.s V_17 + IL_05ba: ldloc.s V_17 + IL_05bc: ldc.i4.0 + IL_05bd: ldc.i4.0 + IL_05be: ldc.r4 1. + IL_05c3: ldc.r4 1. + IL_05c8: ldc.r4 1. + IL_05cd: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05d2: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05d7: ldloc.s V_17 + IL_05d9: ldc.i4.0 + IL_05da: ldc.i4.1 + IL_05db: ldc.r4 2. + IL_05e0: ldc.r4 2. + IL_05e5: ldc.r4 2. + IL_05ea: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05ef: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05f4: ldloc.s V_17 + IL_05f6: ldc.i4.0 + IL_05f7: ldc.i4.2 + IL_05f8: ldc.r4 3. + IL_05fd: ldc.r4 3. + IL_0602: ldc.r4 3. + IL_0607: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_060c: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0611: ldloc.s V_17 + IL_0613: ldc.i4.1 + IL_0614: ldc.i4.0 + IL_0615: ldc.r4 2. + IL_061a: ldc.r4 2. + IL_061f: ldc.r4 2. + IL_0624: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0629: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_062e: ldloc.s V_17 + IL_0630: ldc.i4.1 + IL_0631: ldc.i4.1 + IL_0632: ldc.r4 3. + IL_0637: ldc.r4 3. + IL_063c: ldc.r4 3. + IL_0641: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0646: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_064b: ldloc.s V_17 + IL_064d: ldc.i4.1 + IL_064e: ldc.i4.2 + IL_064f: ldc.r4 4. + IL_0654: ldc.r4 4. + IL_0659: ldc.r4 4. + IL_065e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0663: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0668: ldloc.s V_17 + IL_066a: ldc.i4.2 + IL_066b: ldc.i4.0 + IL_066c: ldc.r4 3. + IL_0671: ldc.r4 3. + IL_0676: ldc.r4 3. + IL_067b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0680: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0685: ldloc.s V_17 + IL_0687: ldc.i4.2 + IL_0688: ldc.i4.1 + IL_0689: ldc.r4 4. + IL_068e: ldc.r4 4. + IL_0693: ldc.r4 4. + IL_0698: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_069d: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06a2: ldloc.s V_17 + IL_06a4: ldc.i4.2 + IL_06a5: ldc.i4.2 + IL_06a6: ldc.r4 5. + IL_06ab: ldc.r4 5. + IL_06b0: ldc.r4 5. + IL_06b5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06ba: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06bf: ldloc.s V_17 + IL_06c1: stelem.ref + IL_06c2: ldloc.s V_16 + IL_06c4: ldc.i4.1 + IL_06c5: ldc.i4.3 + IL_06c6: ldc.i4.3 + IL_06c7: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_06cc: stloc.s V_18 + IL_06ce: ldloc.s V_18 + IL_06d0: ldc.i4.0 + IL_06d1: ldc.i4.0 + IL_06d2: ldc.r4 1. + IL_06d7: ldc.r4 1. + IL_06dc: ldc.r4 1. + IL_06e1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06e6: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06eb: ldloc.s V_18 + IL_06ed: ldc.i4.0 + IL_06ee: ldc.i4.1 + IL_06ef: ldc.r4 2. + IL_06f4: ldc.r4 2. + IL_06f9: ldc.r4 2. + IL_06fe: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0703: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0708: ldloc.s V_18 + IL_070a: ldc.i4.0 + IL_070b: ldc.i4.2 + IL_070c: ldc.r4 3. + IL_0711: ldc.r4 3. + IL_0716: ldc.r4 3. + IL_071b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0720: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0725: ldloc.s V_18 + IL_0727: ldc.i4.1 + IL_0728: ldc.i4.0 + IL_0729: ldc.r4 2. + IL_072e: ldc.r4 2. + IL_0733: ldc.r4 2. + IL_0738: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_073d: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0742: ldloc.s V_18 + IL_0744: ldc.i4.1 + IL_0745: ldc.i4.1 + IL_0746: ldc.r4 3. + IL_074b: ldc.r4 3. + IL_0750: ldc.r4 3. + IL_0755: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_075a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_075f: ldloc.s V_18 + IL_0761: ldc.i4.1 + IL_0762: ldc.i4.2 + IL_0763: ldc.r4 4. + IL_0768: ldc.r4 4. + IL_076d: ldc.r4 4. + IL_0772: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0777: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_077c: ldloc.s V_18 + IL_077e: ldc.i4.2 + IL_077f: ldc.i4.0 + IL_0780: ldc.r4 3. + IL_0785: ldc.r4 3. + IL_078a: ldc.r4 3. + IL_078f: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0794: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0799: ldloc.s V_18 + IL_079b: ldc.i4.2 + IL_079c: ldc.i4.1 + IL_079d: ldc.r4 4. + IL_07a2: ldc.r4 4. + IL_07a7: ldc.r4 4. + IL_07ac: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_07b1: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_07b6: ldloc.s V_18 + IL_07b8: ldc.i4.2 + IL_07b9: ldc.i4.2 + IL_07ba: ldc.r4 5. + IL_07bf: ldc.r4 5. + IL_07c4: ldc.r4 5. + IL_07c9: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_07ce: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_07d3: ldloc.s V_18 + IL_07d5: stelem.ref + IL_07d6: ldloc.s V_16 + IL_07d8: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1d + IL_07dd: ldc.i4.3 + IL_07de: ldc.i4.3 + IL_07df: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_07e4: dup + IL_07e5: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=36' ''::'$$method0x600008e-1' + IL_07ea: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_07ef: stsfld int32[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg2 + IL_07f4: ret + } // end of method TestCases::.cctor + } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases .class private auto ansi '' @@ -2977,6 +3993,34 @@ .size 48 } // end of class '__StaticArrayInitTypeSize=48' + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=256' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 256 + } // end of class '__StaticArrayInitTypeSize=256' + + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=64' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 64 + } // end of class '__StaticArrayInitTypeSize=64' + + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=72' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 72 + } // end of class '__StaticArrayInitTypeSize=72' + + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=36' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 36 + } // end of class '__StaticArrayInitTypeSize=36' + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x600000a-1' at I_00002070 .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x600000c-1' at I_000020E8 .field static assembly valuetype ''/'__StaticArrayInitTypeSize=24' '$$method0x600000c-2' at I_00002110 @@ -2991,6 +4035,14 @@ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=80' '$$method0x6000017-1' at I_00002578 .field static assembly valuetype ''/'__StaticArrayInitTypeSize=24' '$$method0x6000018-1' at I_000025E8 .field static assembly valuetype ''/'__StaticArrayInitTypeSize=48' '$$method0x6000019-1' at I_00002620 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=256' '$$method0x600001d-1' at I_00002760 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001e-1' at I_00002878 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001e-2' at I_000028B8 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001e-3' at I_000028F8 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001e-4' at I_00002938 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=72' '$$method0x600001f-1' at I_000029E8 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=72' '$$method0x600001f-2' at I_00002A30 + .field static assembly valuetype ''/'__StaticArrayInitTypeSize=36' '$$method0x600008e-1' at I_00003450 } // end of class '' @@ -3046,4 +4098,59 @@ 00 00 00 00 00 00 F8 BF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F8 3F 00 00 00 00 00 00 F0 FF // .......?........ 00 00 00 00 00 00 F0 7F 00 00 00 00 00 00 F8 FF) +.data cil I_00002650 = int8[16] +.data cil I_00002760 = bytearray ( + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00) +.data cil I_00002878 = bytearray ( + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00) +.data cil I_000028B8 = bytearray ( + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00) +.data cil I_000028F8 = bytearray ( + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00) +.data cil I_00002938 = bytearray ( + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00) +.data cil I_000029E8 = bytearray ( + 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 + 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 + 09 00 00 00 0B 00 00 00 0C 00 00 00 0D 00 00 00 + 0E 00 00 00 0F 00 00 00 10 00 00 00 11 00 00 00 + 12 00 00 00 13 00 00 00) +.data cil I_00002A30 = bytearray ( + 15 00 00 00 16 00 00 00 17 00 00 00 18 00 00 00 + 19 00 00 00 1A 00 00 00 1B 00 00 00 1C 00 00 00 + 1D 00 00 00 1F 00 00 00 20 00 00 00 21 00 00 00 // ........ ...!... + 22 00 00 00 23 00 00 00 24 00 00 00 25 00 00 00 // "...#...$...%... + 26 00 00 00 27 00 00 00) // &...'... +.data cil I_00002A78 = int8[8] +.data cil I_00003450 = bytearray ( + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 01 00 00 00) // *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.roslyn.il index 10df11eba..2d3eb9af4 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.roslyn.il @@ -1154,13 +1154,42 @@ } // end of property OtherItem2::Data3 } // end of class OtherItem2 + .class auto ansi nested public beforefieldinit V3f + extends [mscorlib]System.Object + { + .field private float32 x + .field private float32 y + .field private float32 z + .method public hidebysig specialname rtspecialname + instance void .ctor(float32 _x, + float32 _y, + float32 _z) cil managed + { + // Code size 28 (0x1c) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: ldarg.1 + IL_0008: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::x + IL_000d: ldarg.0 + IL_000e: ldarg.2 + IL_000f: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::y + IL_0014: ldarg.0 + IL_0015: ldarg.3 + IL_0016: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::z + IL_001b: ret + } // end of method V3f::.ctor + + } // end of class V3f + .class auto ansi serializable sealed nested private beforefieldinit '<>c' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .field public static initonly class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c' '<>9' - .field public static class [mscorlib]System.EventHandler '<>9__51_0' - .field public static class [mscorlib]System.Func`2 '<>9__65_0' + .field public static class [mscorlib]System.EventHandler '<>9__61_0' + .field public static class [mscorlib]System.Func`2 '<>9__75_0' .method private hidebysig specialname rtspecialname static void .cctor() cil managed { @@ -1182,17 +1211,17 @@ } // end of method '<>c'::.ctor .method assembly hidebysig instance void - 'b__51_0'(object '', + 'b__61_0'(object '', class [mscorlib]System.EventArgs '') cil managed { // Code size 6 (0x6) .maxstack 8 IL_0000: call void [mscorlib]System.Console::WriteLine() IL_0005: ret - } // end of method '<>c'::'b__51_0' + } // end of method '<>c'::'b__61_0' .method assembly hidebysig instance bool - 'b__65_0'(class [mscorlib]System.Globalization.NumberFormatInfo format) cil managed + 'b__75_0'(class [mscorlib]System.Globalization.NumberFormatInfo format) cil managed { // Code size 17 (0x11) .maxstack 8 @@ -1202,10 +1231,16 @@ IL_000b: call bool [mscorlib]System.String::op_Equality(string, string) IL_0010: ret - } // end of method '<>c'::'b__65_0' + } // end of method '<>c'::'b__75_0' } // end of class '<>c' + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] Issue1336_rg0 + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] Issue1336_rg1 + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][] Issue1336_rg1b + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...] Issue1336_rg1c + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...][] Issue1336_rg1d + .field private static int32[0...,0...] Issue1336_rg2 .method private hidebysig static void X(object a, object b) cil managed { @@ -1826,6 +1861,112 @@ IL_0018: ret } // end of method TestCases::ArrayEnum + .method public hidebysig instance int32[0...,0...] + MultidimensionalInit() cil managed + { + // Code size 20 (0x14) + .maxstack 8 + IL_0000: ldc.i4.s 16 + IL_0002: ldc.i4.4 + IL_0003: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0008: dup + IL_0009: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=256' ''::A1EA7DC3FE43B3A54F5B729A92B92AF54181A3EB + IL_000e: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0013: ret + } // end of method TestCases::MultidimensionalInit + + .method public hidebysig instance int32[0...,0...][] + MultidimensionalInit2() cil managed + { + // Code size 91 (0x5b) + .maxstack 6 + IL_0000: ldc.i4.4 + IL_0001: newarr int32[0...,0...] + IL_0006: dup + IL_0007: ldc.i4.0 + IL_0008: ldc.i4.4 + IL_0009: ldc.i4.4 + IL_000a: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_000f: dup + IL_0010: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::DCF557B883E6FE0AEC05B7F0290F0EF47D0AC2E3 + IL_0015: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_001a: stelem.ref + IL_001b: dup + IL_001c: ldc.i4.1 + IL_001d: ldc.i4.4 + IL_001e: ldc.i4.4 + IL_001f: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0024: dup + IL_0025: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'7C39B7B06DD624A17F875AB8E9651554BE6E74D2' + IL_002a: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_002f: stelem.ref + IL_0030: dup + IL_0031: ldc.i4.2 + IL_0032: ldc.i4.4 + IL_0033: ldc.i4.4 + IL_0034: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0039: dup + IL_003a: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::DCF557B883E6FE0AEC05B7F0290F0EF47D0AC2E3 + IL_003f: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0044: stelem.ref + IL_0045: dup + IL_0046: ldc.i4.3 + IL_0047: ldc.i4.4 + IL_0048: ldc.i4.4 + IL_0049: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_004e: dup + IL_004f: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'7C39B7B06DD624A17F875AB8E9651554BE6E74D2' + IL_0054: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0059: stelem.ref + IL_005a: ret + } // end of method TestCases::MultidimensionalInit2 + + .method public hidebysig instance int32[0...,0...,0...][] + ArrayOfArrayOfArrayInit() cil managed + { + // Code size 51 (0x33) + .maxstack 8 + IL_0000: ldc.i4.2 + IL_0001: newarr int32[0...,0...,0...] + IL_0006: dup + IL_0007: ldc.i4.0 + IL_0008: ldc.i4.2 + IL_0009: ldc.i4.3 + IL_000a: ldc.i4.3 + IL_000b: newobj instance void int32[0...,0...,0...]::.ctor(int32, + int32, + int32) + IL_0010: dup + IL_0011: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'1535117EC92E41D4A6B7CA00F965357B05B5DC35' + IL_0016: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_001b: stelem.ref + IL_001c: dup + IL_001d: ldc.i4.1 + IL_001e: ldc.i4.2 + IL_001f: ldc.i4.3 + IL_0020: ldc.i4.3 + IL_0021: newobj instance void int32[0...,0...,0...]::.ctor(int32, + int32, + int32) + IL_0026: dup + IL_0027: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'39E94835525CF7B71CD4595742EF462642FBF1B2' + IL_002c: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0031: stelem.ref + IL_0032: ret + } // end of method TestCases::ArrayOfArrayOfArrayInit + .method public hidebysig static void RecursiveArrayInitializer() cil managed { // Code size 28 (0x1c) @@ -2097,18 +2238,18 @@ IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/Data::.ctor() IL_0005: stloc.0 IL_0006: ldloc.0 - IL_0007: ldsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__51_0' + IL_0007: ldsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__61_0' IL_000c: dup IL_000d: brtrue.s IL_0026 IL_000f: pop IL_0010: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9' - IL_0015: ldftn instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'b__51_0'(object, + IL_0015: ldftn instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'b__61_0'(object, class [mscorlib]System.EventArgs) IL_001b: newobj instance void [mscorlib]System.EventHandler::.ctor(object, native int) IL_0020: dup - IL_0021: stsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__51_0' + IL_0021: stsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__61_0' IL_0026: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/Data::add_TestEvent(class [mscorlib]System.EventHandler) IL_002b: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Y() IL_0030: ldloc.0 @@ -2445,17 +2586,17 @@ IL_0033: callvirt instance void [mscorlib]System.Globalization.CultureInfo::set_DateTimeFormat(class [mscorlib]System.Globalization.DateTimeFormatInfo) IL_0038: dup IL_0039: ldloc.0 - IL_003a: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__65_0' + IL_003a: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__75_0' IL_003f: dup IL_0040: brtrue.s IL_0059 IL_0042: pop IL_0043: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9' - IL_0048: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'b__65_0'(class [mscorlib]System.Globalization.NumberFormatInfo) + IL_0048: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'b__75_0'(class [mscorlib]System.Globalization.NumberFormatInfo) IL_004e: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0053: dup - IL_0054: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__65_0' + IL_0054: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__75_0' IL_0059: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_005e: call !!0 [System.Core]System.Linq.Enumerable::First(class [mscorlib]System.Collections.Generic.IEnumerable`1) @@ -2967,6 +3108,818 @@ IL_0006: ret } // end of method TestCases::.ctor + .method private hidebysig specialname rtspecialname static + void .cctor() cil managed + { + // Code size 1907 (0x773) + .maxstack 10 + IL_0000: ldc.i4.3 + IL_0001: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0006: dup + IL_0007: ldc.i4.0 + IL_0008: ldc.r4 1. + IL_000d: ldc.r4 1. + IL_0012: ldc.r4 1. + IL_0017: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_001c: stelem.ref + IL_001d: dup + IL_001e: ldc.i4.1 + IL_001f: ldc.r4 2. + IL_0024: ldc.r4 2. + IL_0029: ldc.r4 2. + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0033: stelem.ref + IL_0034: dup + IL_0035: ldc.i4.2 + IL_0036: ldc.r4 3. + IL_003b: ldc.r4 3. + IL_0040: ldc.r4 3. + IL_0045: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_004a: stelem.ref + IL_004b: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg0 + IL_0050: ldc.i4.3 + IL_0051: ldc.i4.3 + IL_0052: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_0057: dup + IL_0058: ldc.i4.0 + IL_0059: ldc.i4.0 + IL_005a: ldc.r4 1. + IL_005f: ldc.r4 1. + IL_0064: ldc.r4 1. + IL_0069: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_006e: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0073: dup + IL_0074: ldc.i4.0 + IL_0075: ldc.i4.1 + IL_0076: ldc.r4 2. + IL_007b: ldc.r4 2. + IL_0080: ldc.r4 2. + IL_0085: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_008a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_008f: dup + IL_0090: ldc.i4.0 + IL_0091: ldc.i4.2 + IL_0092: ldc.r4 3. + IL_0097: ldc.r4 3. + IL_009c: ldc.r4 3. + IL_00a1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00a6: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00ab: dup + IL_00ac: ldc.i4.1 + IL_00ad: ldc.i4.0 + IL_00ae: ldc.r4 2. + IL_00b3: ldc.r4 2. + IL_00b8: ldc.r4 2. + IL_00bd: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00c2: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00c7: dup + IL_00c8: ldc.i4.1 + IL_00c9: ldc.i4.1 + IL_00ca: ldc.r4 3. + IL_00cf: ldc.r4 3. + IL_00d4: ldc.r4 3. + IL_00d9: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00de: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00e3: dup + IL_00e4: ldc.i4.1 + IL_00e5: ldc.i4.2 + IL_00e6: ldc.r4 4. + IL_00eb: ldc.r4 4. + IL_00f0: ldc.r4 4. + IL_00f5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00fa: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00ff: dup + IL_0100: ldc.i4.2 + IL_0101: ldc.i4.0 + IL_0102: ldc.r4 3. + IL_0107: ldc.r4 3. + IL_010c: ldc.r4 3. + IL_0111: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0116: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_011b: dup + IL_011c: ldc.i4.2 + IL_011d: ldc.i4.1 + IL_011e: ldc.r4 4. + IL_0123: ldc.r4 4. + IL_0128: ldc.r4 4. + IL_012d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0132: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0137: dup + IL_0138: ldc.i4.2 + IL_0139: ldc.i4.2 + IL_013a: ldc.r4 5. + IL_013f: ldc.r4 5. + IL_0144: ldc.r4 5. + IL_0149: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_014e: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0153: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1 + IL_0158: ldc.i4.3 + IL_0159: newarr class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] + IL_015e: dup + IL_015f: ldc.i4.0 + IL_0160: ldc.i4.3 + IL_0161: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0166: dup + IL_0167: ldc.i4.0 + IL_0168: ldc.r4 1. + IL_016d: ldc.r4 1. + IL_0172: ldc.r4 1. + IL_0177: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_017c: stelem.ref + IL_017d: dup + IL_017e: ldc.i4.1 + IL_017f: ldc.r4 2. + IL_0184: ldc.r4 2. + IL_0189: ldc.r4 2. + IL_018e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0193: stelem.ref + IL_0194: dup + IL_0195: ldc.i4.2 + IL_0196: ldc.r4 3. + IL_019b: ldc.r4 3. + IL_01a0: ldc.r4 3. + IL_01a5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01aa: stelem.ref + IL_01ab: stelem.ref + IL_01ac: dup + IL_01ad: ldc.i4.1 + IL_01ae: ldc.i4.3 + IL_01af: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_01b4: dup + IL_01b5: ldc.i4.0 + IL_01b6: ldc.r4 2. + IL_01bb: ldc.r4 2. + IL_01c0: ldc.r4 2. + IL_01c5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01ca: stelem.ref + IL_01cb: dup + IL_01cc: ldc.i4.1 + IL_01cd: ldc.r4 3. + IL_01d2: ldc.r4 3. + IL_01d7: ldc.r4 3. + IL_01dc: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01e1: stelem.ref + IL_01e2: dup + IL_01e3: ldc.i4.2 + IL_01e4: ldc.r4 4. + IL_01e9: ldc.r4 4. + IL_01ee: ldc.r4 4. + IL_01f3: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01f8: stelem.ref + IL_01f9: stelem.ref + IL_01fa: dup + IL_01fb: ldc.i4.2 + IL_01fc: ldc.i4.3 + IL_01fd: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0202: dup + IL_0203: ldc.i4.0 + IL_0204: ldc.r4 3. + IL_0209: ldc.r4 3. + IL_020e: ldc.r4 3. + IL_0213: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0218: stelem.ref + IL_0219: dup + IL_021a: ldc.i4.1 + IL_021b: ldc.r4 4. + IL_0220: ldc.r4 4. + IL_0225: ldc.r4 4. + IL_022a: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_022f: stelem.ref + IL_0230: dup + IL_0231: ldc.i4.2 + IL_0232: ldc.r4 5. + IL_0237: ldc.r4 5. + IL_023c: ldc.r4 5. + IL_0241: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0246: stelem.ref + IL_0247: stelem.ref + IL_0248: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1b + IL_024d: ldc.i4.3 + IL_024e: ldc.i4.3 + IL_024f: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::.ctor(int32, + int32) + IL_0254: dup + IL_0255: ldc.i4.0 + IL_0256: ldc.i4.0 + IL_0257: ldc.i4.3 + IL_0258: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_025d: dup + IL_025e: ldc.i4.0 + IL_025f: ldc.r4 1. + IL_0264: ldc.r4 1. + IL_0269: ldc.r4 1. + IL_026e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0273: stelem.ref + IL_0274: dup + IL_0275: ldc.i4.1 + IL_0276: ldc.r4 2. + IL_027b: ldc.r4 2. + IL_0280: ldc.r4 2. + IL_0285: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_028a: stelem.ref + IL_028b: dup + IL_028c: ldc.i4.2 + IL_028d: ldc.r4 3. + IL_0292: ldc.r4 3. + IL_0297: ldc.r4 3. + IL_029c: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02a1: stelem.ref + IL_02a2: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_02a7: dup + IL_02a8: ldc.i4.0 + IL_02a9: ldc.i4.1 + IL_02aa: ldc.i4.3 + IL_02ab: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_02b0: dup + IL_02b1: ldc.i4.0 + IL_02b2: ldc.r4 2. + IL_02b7: ldc.r4 2. + IL_02bc: ldc.r4 2. + IL_02c1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02c6: stelem.ref + IL_02c7: dup + IL_02c8: ldc.i4.1 + IL_02c9: ldc.r4 3. + IL_02ce: ldc.r4 3. + IL_02d3: ldc.r4 3. + IL_02d8: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02dd: stelem.ref + IL_02de: dup + IL_02df: ldc.i4.2 + IL_02e0: ldc.r4 4. + IL_02e5: ldc.r4 4. + IL_02ea: ldc.r4 4. + IL_02ef: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02f4: stelem.ref + IL_02f5: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_02fa: dup + IL_02fb: ldc.i4.0 + IL_02fc: ldc.i4.2 + IL_02fd: ldc.i4.3 + IL_02fe: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0303: dup + IL_0304: ldc.i4.0 + IL_0305: ldc.r4 3. + IL_030a: ldc.r4 3. + IL_030f: ldc.r4 3. + IL_0314: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0319: stelem.ref + IL_031a: dup + IL_031b: ldc.i4.1 + IL_031c: ldc.r4 4. + IL_0321: ldc.r4 4. + IL_0326: ldc.r4 4. + IL_032b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0330: stelem.ref + IL_0331: dup + IL_0332: ldc.i4.2 + IL_0333: ldc.r4 5. + IL_0338: ldc.r4 5. + IL_033d: ldc.r4 5. + IL_0342: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0347: stelem.ref + IL_0348: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_034d: dup + IL_034e: ldc.i4.1 + IL_034f: ldc.i4.0 + IL_0350: ldc.i4.3 + IL_0351: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0356: dup + IL_0357: ldc.i4.0 + IL_0358: ldc.r4 1. + IL_035d: ldc.r4 1. + IL_0362: ldc.r4 1. + IL_0367: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_036c: stelem.ref + IL_036d: dup + IL_036e: ldc.i4.1 + IL_036f: ldc.r4 2. + IL_0374: ldc.r4 2. + IL_0379: ldc.r4 2. + IL_037e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0383: stelem.ref + IL_0384: dup + IL_0385: ldc.i4.2 + IL_0386: ldc.r4 3. + IL_038b: ldc.r4 3. + IL_0390: ldc.r4 3. + IL_0395: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_039a: stelem.ref + IL_039b: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_03a0: dup + IL_03a1: ldc.i4.1 + IL_03a2: ldc.i4.1 + IL_03a3: ldc.i4.3 + IL_03a4: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_03a9: dup + IL_03aa: ldc.i4.0 + IL_03ab: ldc.r4 2. + IL_03b0: ldc.r4 2. + IL_03b5: ldc.r4 2. + IL_03ba: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03bf: stelem.ref + IL_03c0: dup + IL_03c1: ldc.i4.1 + IL_03c2: ldc.r4 3. + IL_03c7: ldc.r4 3. + IL_03cc: ldc.r4 3. + IL_03d1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03d6: stelem.ref + IL_03d7: dup + IL_03d8: ldc.i4.2 + IL_03d9: ldc.r4 4. + IL_03de: ldc.r4 4. + IL_03e3: ldc.r4 4. + IL_03e8: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03ed: stelem.ref + IL_03ee: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_03f3: dup + IL_03f4: ldc.i4.1 + IL_03f5: ldc.i4.2 + IL_03f6: ldc.i4.3 + IL_03f7: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_03fc: dup + IL_03fd: ldc.i4.0 + IL_03fe: ldc.r4 3. + IL_0403: ldc.r4 3. + IL_0408: ldc.r4 3. + IL_040d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0412: stelem.ref + IL_0413: dup + IL_0414: ldc.i4.1 + IL_0415: ldc.r4 4. + IL_041a: ldc.r4 4. + IL_041f: ldc.r4 4. + IL_0424: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0429: stelem.ref + IL_042a: dup + IL_042b: ldc.i4.2 + IL_042c: ldc.r4 5. + IL_0431: ldc.r4 5. + IL_0436: ldc.r4 5. + IL_043b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0440: stelem.ref + IL_0441: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_0446: dup + IL_0447: ldc.i4.2 + IL_0448: ldc.i4.0 + IL_0449: ldc.i4.3 + IL_044a: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_044f: dup + IL_0450: ldc.i4.0 + IL_0451: ldc.r4 1. + IL_0456: ldc.r4 1. + IL_045b: ldc.r4 1. + IL_0460: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0465: stelem.ref + IL_0466: dup + IL_0467: ldc.i4.1 + IL_0468: ldc.r4 2. + IL_046d: ldc.r4 2. + IL_0472: ldc.r4 2. + IL_0477: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_047c: stelem.ref + IL_047d: dup + IL_047e: ldc.i4.2 + IL_047f: ldc.r4 3. + IL_0484: ldc.r4 3. + IL_0489: ldc.r4 3. + IL_048e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0493: stelem.ref + IL_0494: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_0499: dup + IL_049a: ldc.i4.2 + IL_049b: ldc.i4.1 + IL_049c: ldc.i4.3 + IL_049d: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_04a2: dup + IL_04a3: ldc.i4.0 + IL_04a4: ldc.r4 2. + IL_04a9: ldc.r4 2. + IL_04ae: ldc.r4 2. + IL_04b3: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04b8: stelem.ref + IL_04b9: dup + IL_04ba: ldc.i4.1 + IL_04bb: ldc.r4 3. + IL_04c0: ldc.r4 3. + IL_04c5: ldc.r4 3. + IL_04ca: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04cf: stelem.ref + IL_04d0: dup + IL_04d1: ldc.i4.2 + IL_04d2: ldc.r4 4. + IL_04d7: ldc.r4 4. + IL_04dc: ldc.r4 4. + IL_04e1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04e6: stelem.ref + IL_04e7: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_04ec: dup + IL_04ed: ldc.i4.2 + IL_04ee: ldc.i4.2 + IL_04ef: ldc.i4.3 + IL_04f0: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_04f5: dup + IL_04f6: ldc.i4.0 + IL_04f7: ldc.r4 3. + IL_04fc: ldc.r4 3. + IL_0501: ldc.r4 3. + IL_0506: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_050b: stelem.ref + IL_050c: dup + IL_050d: ldc.i4.1 + IL_050e: ldc.r4 4. + IL_0513: ldc.r4 4. + IL_0518: ldc.r4 4. + IL_051d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0522: stelem.ref + IL_0523: dup + IL_0524: ldc.i4.2 + IL_0525: ldc.r4 5. + IL_052a: ldc.r4 5. + IL_052f: ldc.r4 5. + IL_0534: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0539: stelem.ref + IL_053a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_053f: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1c + IL_0544: ldc.i4.2 + IL_0545: newarr class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] + IL_054a: dup + IL_054b: ldc.i4.0 + IL_054c: ldc.i4.3 + IL_054d: ldc.i4.3 + IL_054e: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_0553: dup + IL_0554: ldc.i4.0 + IL_0555: ldc.i4.0 + IL_0556: ldc.r4 1. + IL_055b: ldc.r4 1. + IL_0560: ldc.r4 1. + IL_0565: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_056a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_056f: dup + IL_0570: ldc.i4.0 + IL_0571: ldc.i4.1 + IL_0572: ldc.r4 2. + IL_0577: ldc.r4 2. + IL_057c: ldc.r4 2. + IL_0581: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0586: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_058b: dup + IL_058c: ldc.i4.0 + IL_058d: ldc.i4.2 + IL_058e: ldc.r4 3. + IL_0593: ldc.r4 3. + IL_0598: ldc.r4 3. + IL_059d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05a2: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05a7: dup + IL_05a8: ldc.i4.1 + IL_05a9: ldc.i4.0 + IL_05aa: ldc.r4 2. + IL_05af: ldc.r4 2. + IL_05b4: ldc.r4 2. + IL_05b9: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05be: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05c3: dup + IL_05c4: ldc.i4.1 + IL_05c5: ldc.i4.1 + IL_05c6: ldc.r4 3. + IL_05cb: ldc.r4 3. + IL_05d0: ldc.r4 3. + IL_05d5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05da: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05df: dup + IL_05e0: ldc.i4.1 + IL_05e1: ldc.i4.2 + IL_05e2: ldc.r4 4. + IL_05e7: ldc.r4 4. + IL_05ec: ldc.r4 4. + IL_05f1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05f6: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05fb: dup + IL_05fc: ldc.i4.2 + IL_05fd: ldc.i4.0 + IL_05fe: ldc.r4 3. + IL_0603: ldc.r4 3. + IL_0608: ldc.r4 3. + IL_060d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0612: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0617: dup + IL_0618: ldc.i4.2 + IL_0619: ldc.i4.1 + IL_061a: ldc.r4 4. + IL_061f: ldc.r4 4. + IL_0624: ldc.r4 4. + IL_0629: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_062e: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0633: dup + IL_0634: ldc.i4.2 + IL_0635: ldc.i4.2 + IL_0636: ldc.r4 5. + IL_063b: ldc.r4 5. + IL_0640: ldc.r4 5. + IL_0645: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_064a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_064f: stelem.ref + IL_0650: dup + IL_0651: ldc.i4.1 + IL_0652: ldc.i4.3 + IL_0653: ldc.i4.3 + IL_0654: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_0659: dup + IL_065a: ldc.i4.0 + IL_065b: ldc.i4.0 + IL_065c: ldc.r4 1. + IL_0661: ldc.r4 1. + IL_0666: ldc.r4 1. + IL_066b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0670: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0675: dup + IL_0676: ldc.i4.0 + IL_0677: ldc.i4.1 + IL_0678: ldc.r4 2. + IL_067d: ldc.r4 2. + IL_0682: ldc.r4 2. + IL_0687: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_068c: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0691: dup + IL_0692: ldc.i4.0 + IL_0693: ldc.i4.2 + IL_0694: ldc.r4 3. + IL_0699: ldc.r4 3. + IL_069e: ldc.r4 3. + IL_06a3: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06a8: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06ad: dup + IL_06ae: ldc.i4.1 + IL_06af: ldc.i4.0 + IL_06b0: ldc.r4 2. + IL_06b5: ldc.r4 2. + IL_06ba: ldc.r4 2. + IL_06bf: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06c4: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06c9: dup + IL_06ca: ldc.i4.1 + IL_06cb: ldc.i4.1 + IL_06cc: ldc.r4 3. + IL_06d1: ldc.r4 3. + IL_06d6: ldc.r4 3. + IL_06db: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06e0: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06e5: dup + IL_06e6: ldc.i4.1 + IL_06e7: ldc.i4.2 + IL_06e8: ldc.r4 4. + IL_06ed: ldc.r4 4. + IL_06f2: ldc.r4 4. + IL_06f7: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06fc: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0701: dup + IL_0702: ldc.i4.2 + IL_0703: ldc.i4.0 + IL_0704: ldc.r4 3. + IL_0709: ldc.r4 3. + IL_070e: ldc.r4 3. + IL_0713: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0718: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_071d: dup + IL_071e: ldc.i4.2 + IL_071f: ldc.i4.1 + IL_0720: ldc.r4 4. + IL_0725: ldc.r4 4. + IL_072a: ldc.r4 4. + IL_072f: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0734: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0739: dup + IL_073a: ldc.i4.2 + IL_073b: ldc.i4.2 + IL_073c: ldc.r4 5. + IL_0741: ldc.r4 5. + IL_0746: ldc.r4 5. + IL_074b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0750: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0755: stelem.ref + IL_0756: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1d + IL_075b: ldc.i4.3 + IL_075c: ldc.i4.3 + IL_075d: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0762: dup + IL_0763: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=36' ''::B62E59D20E3D69F06A6D9BD5E3C518FF7093EDAB + IL_0768: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_076d: stsfld int32[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg2 + IL_0772: ret + } // end of method TestCases::.cctor + } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases .class private auto ansi sealed '' @@ -2994,6 +3947,13 @@ .size 24 } // end of class '__StaticArrayInitTypeSize=24' + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=36' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 36 + } // end of class '__StaticArrayInitTypeSize=36' + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=40' extends [mscorlib]System.ValueType { @@ -3008,6 +3968,20 @@ .size 48 } // end of class '__StaticArrayInitTypeSize=48' + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=64' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 64 + } // end of class '__StaticArrayInitTypeSize=64' + + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=72' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 72 + } // end of class '__StaticArrayInitTypeSize=72' + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=80' extends [mscorlib]System.ValueType { @@ -3015,67 +3989,122 @@ .size 80 } // end of class '__StaticArrayInitTypeSize=80' - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=10' '20E3FF489634E18F3F7EB292AD504DBAE9519293' at I_00005EF8 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=10' '56D9EEC8EF899644C40B9BE9D886DF2367A5D078' at I_00005F08 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=12' '735E5A21849E86F68D220F06163E8C5C6376B9C9' at I_00005F18 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' '8D903ECAD8D9D75B3183B23AF79F6D2E607369E3' at I_00005F28 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=80' '9B1F6E56D755443CC39C1969CE38FD41FD4EF4B7' at I_00005F50 - .field static assembly initonly int64 A6296CAC471BE2954899600137940479D8073C7C at I_00005FA0 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' B9583930B842DBCEF0D7B8E57D4D3F1E8055C39E at I_00005FA8 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=24' C4E70AB31EF6C8908F896CAD1C6BC75F7FA65E27 at I_00005FD0 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=48' DC7043B0114737ACE19A23DD755893795FD48A23 at I_00005FE8 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' E0D2592373A0C161E56E266306CD8405CD719D19 at I_00006018 - .field static assembly initonly int64 EB0715DBB235F3F696F2C404F5839C6650640898 at I_00006040 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' F514FF55B79BCAA2CEC9B56C062D976E45F89AB7 at I_00006048 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=24' FBCB49C1A244C1B5781AA1DB02C5A11F68908526 at I_00006070 + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=256' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 256 + } // end of class '__StaticArrayInitTypeSize=256' + + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=72' '1535117EC92E41D4A6B7CA00F965357B05B5DC35' at I_00006B94 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=10' '20E3FF489634E18F3F7EB292AD504DBAE9519293' at I_00006BDC + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=72' '39E94835525CF7B71CD4595742EF462642FBF1B2' at I_00006BEC + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=10' '56D9EEC8EF899644C40B9BE9D886DF2367A5D078' at I_00006C34 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=12' '735E5A21849E86F68D220F06163E8C5C6376B9C9' at I_00006C44 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=64' '7C39B7B06DD624A17F875AB8E9651554BE6E74D2' at I_00006C54 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' '8D903ECAD8D9D75B3183B23AF79F6D2E607369E3' at I_00006C94 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=80' '9B1F6E56D755443CC39C1969CE38FD41FD4EF4B7' at I_00006CBC + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=256' A1EA7DC3FE43B3A54F5B729A92B92AF54181A3EB at I_00006D0C + .field static assembly initonly int64 A6296CAC471BE2954899600137940479D8073C7C at I_00006E0C + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=36' B62E59D20E3D69F06A6D9BD5E3C518FF7093EDAB at I_00006E14 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' B9583930B842DBCEF0D7B8E57D4D3F1E8055C39E at I_00006E3C + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=24' C4E70AB31EF6C8908F896CAD1C6BC75F7FA65E27 at I_00006E64 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=48' DC7043B0114737ACE19A23DD755893795FD48A23 at I_00006E7C + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=64' DCF557B883E6FE0AEC05B7F0290F0EF47D0AC2E3 at I_00006EAC + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' E0D2592373A0C161E56E266306CD8405CD719D19 at I_00006EEC + .field static assembly initonly int64 EB0715DBB235F3F696F2C404F5839C6650640898 at I_00006F14 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' F514FF55B79BCAA2CEC9B56C062D976E45F89AB7 at I_00006F1C + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=24' FBCB49C1A244C1B5781AA1DB02C5A11F68908526 at I_00006F44 } // end of class '' // ============================================================= -.data cil I_00005EF8 = bytearray ( +.data cil I_00006B94 = bytearray ( + 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 + 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 + 09 00 00 00 0B 00 00 00 0C 00 00 00 0D 00 00 00 + 0E 00 00 00 0F 00 00 00 10 00 00 00 11 00 00 00 + 12 00 00 00 13 00 00 00) +.data cil I_00006BDC = bytearray ( 01 02 03 04 05 06 07 08 FE FF) -.data cil I_00005F02 = int8[6] -.data cil I_00005F08 = bytearray ( +.data cil I_00006BE6 = int8[2] +.data cil I_00006BEC = bytearray ( + 15 00 00 00 16 00 00 00 17 00 00 00 18 00 00 00 + 19 00 00 00 1A 00 00 00 1B 00 00 00 1C 00 00 00 + 1D 00 00 00 1F 00 00 00 20 00 00 00 21 00 00 00 // ........ ...!... + 22 00 00 00 23 00 00 00 24 00 00 00 25 00 00 00 // "...#...$...%... + 26 00 00 00 27 00 00 00) // &...'... +.data cil I_00006C34 = bytearray ( 00 80 FF FF 00 00 01 00 FF 7F) -.data cil I_00005F12 = int8[6] -.data cil I_00005F18 = bytearray ( +.data cil I_00006C3E = int8[2] +.data cil I_00006C44 = bytearray ( 00 00 01 00 FF 7F 00 80 FE FF FF FF) -.data cil I_00005F24 = int8[4] -.data cil I_00005F28 = bytearray ( +.data cil I_00006C54 = bytearray ( + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00) +.data cil I_00006C94 = bytearray ( 01 00 0C BB 7D 6E 9C BA FF FF FF FF FF FF FF FF // ....}n.......... 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 FF FF F3 44 82 91 63 45) // ...D..cE -.data cil I_00005F50 = bytearray ( +.data cil I_00006CBC = bytearray ( 01 00 00 00 00 00 00 00 00 94 35 77 00 00 00 00 // ..........5w.... 00 5E D0 B2 00 00 00 00 04 00 00 00 00 00 00 00 // .^.............. 05 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 FF FF F3 44 82 91 63 45 FF FF E7 89 04 23 C7 8A) // ...D..cE.....#.. -.data cil I_00005FA0 = bytearray ( +.data cil I_00006D0C = bytearray ( + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00) +.data cil I_00006E0C = bytearray ( 80 81 00 01 02 03 04 7F) -.data cil I_00005FA8 = bytearray ( +.data cil I_00006E14 = bytearray ( + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 01 00 00 00) +.data cil I_00006E3C = bytearray ( 01 00 00 00 00 94 35 77 00 5E D0 B2 04 00 00 00 // ......5w.^...... 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0A 00 00 00) -.data cil I_00005FD0 = bytearray ( +.data cil I_00006E64 = bytearray ( 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00) -.data cil I_00005FE8 = bytearray ( +.data cil I_00006E7C = bytearray ( 00 00 00 00 00 00 F8 BF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F8 3F 00 00 00 00 00 00 F0 FF // .......?........ 00 00 00 00 00 00 F0 7F 00 00 00 00 00 00 F8 FF) -.data cil I_00006018 = bytearray ( +.data cil I_00006EAC = bytearray ( + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00) +.data cil I_00006EEC = bytearray ( 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0A 00 00 00) -.data cil I_00006040 = bytearray ( +.data cil I_00006F14 = bytearray ( 01 00 01 00 00 00 01 01) -.data cil I_00006048 = bytearray ( +.data cil I_00006F1C = bytearray ( 01 00 00 00 FE FF FF FF 00 94 35 77 04 00 00 00 // ..........5w.... 05 00 00 00 FA FF FF FF 07 00 00 00 08 00 00 00 09 00 00 00 0A 00 00 00) -.data cil I_00006070 = bytearray ( +.data cil I_00006F44 = bytearray ( 00 00 C0 BF 00 00 00 00 00 00 C0 3F 00 00 80 FF // ...........?.... 00 00 80 7F 00 00 C0 FF) // *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.roslyn.il index 0af7b7eee..0ee576f14 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.roslyn.il @@ -1221,13 +1221,44 @@ } // end of property OtherItem2::Data3 } // end of class OtherItem2 + .class auto ansi nested public beforefieldinit V3f + extends [mscorlib]System.Object + { + .field private float32 x + .field private float32 y + .field private float32 z + .method public hidebysig specialname rtspecialname + instance void .ctor(float32 _x, + float32 _y, + float32 _z) cil managed + { + // Code size 30 (0x1e) + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void [mscorlib]System.Object::.ctor() + IL_0006: nop + IL_0007: nop + IL_0008: ldarg.0 + IL_0009: ldarg.1 + IL_000a: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::x + IL_000f: ldarg.0 + IL_0010: ldarg.2 + IL_0011: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::y + IL_0016: ldarg.0 + IL_0017: ldarg.3 + IL_0018: stfld float32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::z + IL_001d: ret + } // end of method V3f::.ctor + + } // end of class V3f + .class auto ansi serializable sealed nested private beforefieldinit '<>c' extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .field public static initonly class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c' '<>9' - .field public static class [mscorlib]System.EventHandler '<>9__51_0' - .field public static class [mscorlib]System.Func`2 '<>9__65_0' + .field public static class [mscorlib]System.EventHandler '<>9__61_0' + .field public static class [mscorlib]System.Func`2 '<>9__75_0' .method private hidebysig specialname rtspecialname static void .cctor() cil managed { @@ -1250,7 +1281,7 @@ } // end of method '<>c'::.ctor .method assembly hidebysig instance void - 'b__51_0'(object '', + 'b__61_0'(object '', class [mscorlib]System.EventArgs '') cil managed { // Code size 8 (0x8) @@ -1259,10 +1290,10 @@ IL_0001: call void [mscorlib]System.Console::WriteLine() IL_0006: nop IL_0007: ret - } // end of method '<>c'::'b__51_0' + } // end of method '<>c'::'b__61_0' .method assembly hidebysig instance bool - 'b__65_0'(class [mscorlib]System.Globalization.NumberFormatInfo format) cil managed + 'b__75_0'(class [mscorlib]System.Globalization.NumberFormatInfo format) cil managed { // Code size 17 (0x11) .maxstack 8 @@ -1272,10 +1303,16 @@ IL_000b: call bool [mscorlib]System.String::op_Equality(string, string) IL_0010: ret - } // end of method '<>c'::'b__65_0' + } // end of method '<>c'::'b__75_0' } // end of class '<>c' + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] Issue1336_rg0 + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] Issue1336_rg1 + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][] Issue1336_rg1b + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...] Issue1336_rg1c + .field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...][] Issue1336_rg1d + .field private static int32[0...,0...] Issue1336_rg2 .method private hidebysig static void X(object a, object b) cil managed { @@ -1962,6 +1999,130 @@ IL_001a: ret } // end of method TestCases::ArrayEnum + .method public hidebysig instance int32[0...,0...] + MultidimensionalInit() cil managed + { + // Code size 25 (0x19) + .maxstack 3 + .locals init (int32[0...,0...] V_0) + IL_0000: nop + IL_0001: ldc.i4.s 16 + IL_0003: ldc.i4.4 + IL_0004: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0009: dup + IL_000a: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=256' ''::A1EA7DC3FE43B3A54F5B729A92B92AF54181A3EB + IL_000f: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0014: stloc.0 + IL_0015: br.s IL_0017 + + IL_0017: ldloc.0 + IL_0018: ret + } // end of method TestCases::MultidimensionalInit + + .method public hidebysig instance int32[0...,0...][] + MultidimensionalInit2() cil managed + { + // Code size 96 (0x60) + .maxstack 6 + .locals init (int32[0...,0...][] V_0) + IL_0000: nop + IL_0001: ldc.i4.4 + IL_0002: newarr int32[0...,0...] + IL_0007: dup + IL_0008: ldc.i4.0 + IL_0009: ldc.i4.4 + IL_000a: ldc.i4.4 + IL_000b: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0010: dup + IL_0011: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::DCF557B883E6FE0AEC05B7F0290F0EF47D0AC2E3 + IL_0016: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_001b: stelem.ref + IL_001c: dup + IL_001d: ldc.i4.1 + IL_001e: ldc.i4.4 + IL_001f: ldc.i4.4 + IL_0020: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0025: dup + IL_0026: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'7C39B7B06DD624A17F875AB8E9651554BE6E74D2' + IL_002b: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0030: stelem.ref + IL_0031: dup + IL_0032: ldc.i4.2 + IL_0033: ldc.i4.4 + IL_0034: ldc.i4.4 + IL_0035: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_003a: dup + IL_003b: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::DCF557B883E6FE0AEC05B7F0290F0EF47D0AC2E3 + IL_0040: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0045: stelem.ref + IL_0046: dup + IL_0047: ldc.i4.3 + IL_0048: ldc.i4.4 + IL_0049: ldc.i4.4 + IL_004a: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_004f: dup + IL_0050: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'7C39B7B06DD624A17F875AB8E9651554BE6E74D2' + IL_0055: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_005a: stelem.ref + IL_005b: stloc.0 + IL_005c: br.s IL_005e + + IL_005e: ldloc.0 + IL_005f: ret + } // end of method TestCases::MultidimensionalInit2 + + .method public hidebysig instance int32[0...,0...,0...][] + ArrayOfArrayOfArrayInit() cil managed + { + // Code size 56 (0x38) + .maxstack 6 + .locals init (int32[0...,0...,0...][] V_0) + IL_0000: nop + IL_0001: ldc.i4.2 + IL_0002: newarr int32[0...,0...,0...] + IL_0007: dup + IL_0008: ldc.i4.0 + IL_0009: ldc.i4.2 + IL_000a: ldc.i4.3 + IL_000b: ldc.i4.3 + IL_000c: newobj instance void int32[0...,0...,0...]::.ctor(int32, + int32, + int32) + IL_0011: dup + IL_0012: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'1535117EC92E41D4A6B7CA00F965357B05B5DC35' + IL_0017: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_001c: stelem.ref + IL_001d: dup + IL_001e: ldc.i4.1 + IL_001f: ldc.i4.2 + IL_0020: ldc.i4.3 + IL_0021: ldc.i4.3 + IL_0022: newobj instance void int32[0...,0...,0...]::.ctor(int32, + int32, + int32) + IL_0027: dup + IL_0028: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'39E94835525CF7B71CD4595742EF462642FBF1B2' + IL_002d: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_0032: stelem.ref + IL_0033: stloc.0 + IL_0034: br.s IL_0036 + + IL_0036: ldloc.0 + IL_0037: ret + } // end of method TestCases::ArrayOfArrayOfArrayInit + .method public hidebysig static void RecursiveArrayInitializer() cil managed { // Code size 29 (0x1d) @@ -2302,18 +2463,18 @@ IL_0001: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/Data::.ctor() IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: ldsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__51_0' + IL_0008: ldsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__61_0' IL_000d: dup IL_000e: brtrue.s IL_0027 IL_0010: pop IL_0011: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9' - IL_0016: ldftn instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'b__51_0'(object, + IL_0016: ldftn instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'b__61_0'(object, class [mscorlib]System.EventArgs) IL_001c: newobj instance void [mscorlib]System.EventHandler::.ctor(object, native int) IL_0021: dup - IL_0022: stsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__51_0' + IL_0022: stsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__61_0' IL_0027: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/Data::add_TestEvent(class [mscorlib]System.EventHandler) IL_002c: nop IL_002d: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Y() @@ -2713,17 +2874,17 @@ IL_003b: nop IL_003c: dup IL_003d: ldloc.0 - IL_003e: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__65_0' + IL_003e: ldsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__75_0' IL_0043: dup IL_0044: brtrue.s IL_005d IL_0046: pop IL_0047: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c' ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9' - IL_004c: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'b__65_0'(class [mscorlib]System.Globalization.NumberFormatInfo) + IL_004c: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'b__75_0'(class [mscorlib]System.Globalization.NumberFormatInfo) IL_0052: newobj instance void class [mscorlib]System.Func`2::.ctor(object, native int) IL_0057: dup - IL_0058: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__65_0' + IL_0058: stsfld class [mscorlib]System.Func`2 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__75_0' IL_005d: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [System.Core]System.Linq.Enumerable::Where(class [mscorlib]System.Collections.Generic.IEnumerable`1, class [mscorlib]System.Func`2) IL_0062: call !!0 [System.Core]System.Linq.Enumerable::First(class [mscorlib]System.Collections.Generic.IEnumerable`1) @@ -3372,6 +3533,818 @@ IL_0007: ret } // end of method TestCases::.ctor + .method private hidebysig specialname rtspecialname static + void .cctor() cil managed + { + // Code size 1907 (0x773) + .maxstack 10 + IL_0000: ldc.i4.3 + IL_0001: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0006: dup + IL_0007: ldc.i4.0 + IL_0008: ldc.r4 1. + IL_000d: ldc.r4 1. + IL_0012: ldc.r4 1. + IL_0017: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_001c: stelem.ref + IL_001d: dup + IL_001e: ldc.i4.1 + IL_001f: ldc.r4 2. + IL_0024: ldc.r4 2. + IL_0029: ldc.r4 2. + IL_002e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0033: stelem.ref + IL_0034: dup + IL_0035: ldc.i4.2 + IL_0036: ldc.r4 3. + IL_003b: ldc.r4 3. + IL_0040: ldc.r4 3. + IL_0045: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_004a: stelem.ref + IL_004b: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg0 + IL_0050: ldc.i4.3 + IL_0051: ldc.i4.3 + IL_0052: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_0057: dup + IL_0058: ldc.i4.0 + IL_0059: ldc.i4.0 + IL_005a: ldc.r4 1. + IL_005f: ldc.r4 1. + IL_0064: ldc.r4 1. + IL_0069: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_006e: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0073: dup + IL_0074: ldc.i4.0 + IL_0075: ldc.i4.1 + IL_0076: ldc.r4 2. + IL_007b: ldc.r4 2. + IL_0080: ldc.r4 2. + IL_0085: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_008a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_008f: dup + IL_0090: ldc.i4.0 + IL_0091: ldc.i4.2 + IL_0092: ldc.r4 3. + IL_0097: ldc.r4 3. + IL_009c: ldc.r4 3. + IL_00a1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00a6: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00ab: dup + IL_00ac: ldc.i4.1 + IL_00ad: ldc.i4.0 + IL_00ae: ldc.r4 2. + IL_00b3: ldc.r4 2. + IL_00b8: ldc.r4 2. + IL_00bd: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00c2: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00c7: dup + IL_00c8: ldc.i4.1 + IL_00c9: ldc.i4.1 + IL_00ca: ldc.r4 3. + IL_00cf: ldc.r4 3. + IL_00d4: ldc.r4 3. + IL_00d9: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00de: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00e3: dup + IL_00e4: ldc.i4.1 + IL_00e5: ldc.i4.2 + IL_00e6: ldc.r4 4. + IL_00eb: ldc.r4 4. + IL_00f0: ldc.r4 4. + IL_00f5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_00fa: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_00ff: dup + IL_0100: ldc.i4.2 + IL_0101: ldc.i4.0 + IL_0102: ldc.r4 3. + IL_0107: ldc.r4 3. + IL_010c: ldc.r4 3. + IL_0111: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0116: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_011b: dup + IL_011c: ldc.i4.2 + IL_011d: ldc.i4.1 + IL_011e: ldc.r4 4. + IL_0123: ldc.r4 4. + IL_0128: ldc.r4 4. + IL_012d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0132: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0137: dup + IL_0138: ldc.i4.2 + IL_0139: ldc.i4.2 + IL_013a: ldc.r4 5. + IL_013f: ldc.r4 5. + IL_0144: ldc.r4 5. + IL_0149: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_014e: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0153: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1 + IL_0158: ldc.i4.3 + IL_0159: newarr class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[] + IL_015e: dup + IL_015f: ldc.i4.0 + IL_0160: ldc.i4.3 + IL_0161: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0166: dup + IL_0167: ldc.i4.0 + IL_0168: ldc.r4 1. + IL_016d: ldc.r4 1. + IL_0172: ldc.r4 1. + IL_0177: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_017c: stelem.ref + IL_017d: dup + IL_017e: ldc.i4.1 + IL_017f: ldc.r4 2. + IL_0184: ldc.r4 2. + IL_0189: ldc.r4 2. + IL_018e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0193: stelem.ref + IL_0194: dup + IL_0195: ldc.i4.2 + IL_0196: ldc.r4 3. + IL_019b: ldc.r4 3. + IL_01a0: ldc.r4 3. + IL_01a5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01aa: stelem.ref + IL_01ab: stelem.ref + IL_01ac: dup + IL_01ad: ldc.i4.1 + IL_01ae: ldc.i4.3 + IL_01af: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_01b4: dup + IL_01b5: ldc.i4.0 + IL_01b6: ldc.r4 2. + IL_01bb: ldc.r4 2. + IL_01c0: ldc.r4 2. + IL_01c5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01ca: stelem.ref + IL_01cb: dup + IL_01cc: ldc.i4.1 + IL_01cd: ldc.r4 3. + IL_01d2: ldc.r4 3. + IL_01d7: ldc.r4 3. + IL_01dc: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01e1: stelem.ref + IL_01e2: dup + IL_01e3: ldc.i4.2 + IL_01e4: ldc.r4 4. + IL_01e9: ldc.r4 4. + IL_01ee: ldc.r4 4. + IL_01f3: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_01f8: stelem.ref + IL_01f9: stelem.ref + IL_01fa: dup + IL_01fb: ldc.i4.2 + IL_01fc: ldc.i4.3 + IL_01fd: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0202: dup + IL_0203: ldc.i4.0 + IL_0204: ldc.r4 3. + IL_0209: ldc.r4 3. + IL_020e: ldc.r4 3. + IL_0213: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0218: stelem.ref + IL_0219: dup + IL_021a: ldc.i4.1 + IL_021b: ldc.r4 4. + IL_0220: ldc.r4 4. + IL_0225: ldc.r4 4. + IL_022a: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_022f: stelem.ref + IL_0230: dup + IL_0231: ldc.i4.2 + IL_0232: ldc.r4 5. + IL_0237: ldc.r4 5. + IL_023c: ldc.r4 5. + IL_0241: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0246: stelem.ref + IL_0247: stelem.ref + IL_0248: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1b + IL_024d: ldc.i4.3 + IL_024e: ldc.i4.3 + IL_024f: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::.ctor(int32, + int32) + IL_0254: dup + IL_0255: ldc.i4.0 + IL_0256: ldc.i4.0 + IL_0257: ldc.i4.3 + IL_0258: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_025d: dup + IL_025e: ldc.i4.0 + IL_025f: ldc.r4 1. + IL_0264: ldc.r4 1. + IL_0269: ldc.r4 1. + IL_026e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0273: stelem.ref + IL_0274: dup + IL_0275: ldc.i4.1 + IL_0276: ldc.r4 2. + IL_027b: ldc.r4 2. + IL_0280: ldc.r4 2. + IL_0285: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_028a: stelem.ref + IL_028b: dup + IL_028c: ldc.i4.2 + IL_028d: ldc.r4 3. + IL_0292: ldc.r4 3. + IL_0297: ldc.r4 3. + IL_029c: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02a1: stelem.ref + IL_02a2: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_02a7: dup + IL_02a8: ldc.i4.0 + IL_02a9: ldc.i4.1 + IL_02aa: ldc.i4.3 + IL_02ab: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_02b0: dup + IL_02b1: ldc.i4.0 + IL_02b2: ldc.r4 2. + IL_02b7: ldc.r4 2. + IL_02bc: ldc.r4 2. + IL_02c1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02c6: stelem.ref + IL_02c7: dup + IL_02c8: ldc.i4.1 + IL_02c9: ldc.r4 3. + IL_02ce: ldc.r4 3. + IL_02d3: ldc.r4 3. + IL_02d8: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02dd: stelem.ref + IL_02de: dup + IL_02df: ldc.i4.2 + IL_02e0: ldc.r4 4. + IL_02e5: ldc.r4 4. + IL_02ea: ldc.r4 4. + IL_02ef: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_02f4: stelem.ref + IL_02f5: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_02fa: dup + IL_02fb: ldc.i4.0 + IL_02fc: ldc.i4.2 + IL_02fd: ldc.i4.3 + IL_02fe: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0303: dup + IL_0304: ldc.i4.0 + IL_0305: ldc.r4 3. + IL_030a: ldc.r4 3. + IL_030f: ldc.r4 3. + IL_0314: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0319: stelem.ref + IL_031a: dup + IL_031b: ldc.i4.1 + IL_031c: ldc.r4 4. + IL_0321: ldc.r4 4. + IL_0326: ldc.r4 4. + IL_032b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0330: stelem.ref + IL_0331: dup + IL_0332: ldc.i4.2 + IL_0333: ldc.r4 5. + IL_0338: ldc.r4 5. + IL_033d: ldc.r4 5. + IL_0342: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0347: stelem.ref + IL_0348: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_034d: dup + IL_034e: ldc.i4.1 + IL_034f: ldc.i4.0 + IL_0350: ldc.i4.3 + IL_0351: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_0356: dup + IL_0357: ldc.i4.0 + IL_0358: ldc.r4 1. + IL_035d: ldc.r4 1. + IL_0362: ldc.r4 1. + IL_0367: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_036c: stelem.ref + IL_036d: dup + IL_036e: ldc.i4.1 + IL_036f: ldc.r4 2. + IL_0374: ldc.r4 2. + IL_0379: ldc.r4 2. + IL_037e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0383: stelem.ref + IL_0384: dup + IL_0385: ldc.i4.2 + IL_0386: ldc.r4 3. + IL_038b: ldc.r4 3. + IL_0390: ldc.r4 3. + IL_0395: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_039a: stelem.ref + IL_039b: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_03a0: dup + IL_03a1: ldc.i4.1 + IL_03a2: ldc.i4.1 + IL_03a3: ldc.i4.3 + IL_03a4: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_03a9: dup + IL_03aa: ldc.i4.0 + IL_03ab: ldc.r4 2. + IL_03b0: ldc.r4 2. + IL_03b5: ldc.r4 2. + IL_03ba: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03bf: stelem.ref + IL_03c0: dup + IL_03c1: ldc.i4.1 + IL_03c2: ldc.r4 3. + IL_03c7: ldc.r4 3. + IL_03cc: ldc.r4 3. + IL_03d1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03d6: stelem.ref + IL_03d7: dup + IL_03d8: ldc.i4.2 + IL_03d9: ldc.r4 4. + IL_03de: ldc.r4 4. + IL_03e3: ldc.r4 4. + IL_03e8: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_03ed: stelem.ref + IL_03ee: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_03f3: dup + IL_03f4: ldc.i4.1 + IL_03f5: ldc.i4.2 + IL_03f6: ldc.i4.3 + IL_03f7: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_03fc: dup + IL_03fd: ldc.i4.0 + IL_03fe: ldc.r4 3. + IL_0403: ldc.r4 3. + IL_0408: ldc.r4 3. + IL_040d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0412: stelem.ref + IL_0413: dup + IL_0414: ldc.i4.1 + IL_0415: ldc.r4 4. + IL_041a: ldc.r4 4. + IL_041f: ldc.r4 4. + IL_0424: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0429: stelem.ref + IL_042a: dup + IL_042b: ldc.i4.2 + IL_042c: ldc.r4 5. + IL_0431: ldc.r4 5. + IL_0436: ldc.r4 5. + IL_043b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0440: stelem.ref + IL_0441: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_0446: dup + IL_0447: ldc.i4.2 + IL_0448: ldc.i4.0 + IL_0449: ldc.i4.3 + IL_044a: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_044f: dup + IL_0450: ldc.i4.0 + IL_0451: ldc.r4 1. + IL_0456: ldc.r4 1. + IL_045b: ldc.r4 1. + IL_0460: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0465: stelem.ref + IL_0466: dup + IL_0467: ldc.i4.1 + IL_0468: ldc.r4 2. + IL_046d: ldc.r4 2. + IL_0472: ldc.r4 2. + IL_0477: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_047c: stelem.ref + IL_047d: dup + IL_047e: ldc.i4.2 + IL_047f: ldc.r4 3. + IL_0484: ldc.r4 3. + IL_0489: ldc.r4 3. + IL_048e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0493: stelem.ref + IL_0494: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_0499: dup + IL_049a: ldc.i4.2 + IL_049b: ldc.i4.1 + IL_049c: ldc.i4.3 + IL_049d: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_04a2: dup + IL_04a3: ldc.i4.0 + IL_04a4: ldc.r4 2. + IL_04a9: ldc.r4 2. + IL_04ae: ldc.r4 2. + IL_04b3: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04b8: stelem.ref + IL_04b9: dup + IL_04ba: ldc.i4.1 + IL_04bb: ldc.r4 3. + IL_04c0: ldc.r4 3. + IL_04c5: ldc.r4 3. + IL_04ca: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04cf: stelem.ref + IL_04d0: dup + IL_04d1: ldc.i4.2 + IL_04d2: ldc.r4 4. + IL_04d7: ldc.r4 4. + IL_04dc: ldc.r4 4. + IL_04e1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_04e6: stelem.ref + IL_04e7: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_04ec: dup + IL_04ed: ldc.i4.2 + IL_04ee: ldc.i4.2 + IL_04ef: ldc.i4.3 + IL_04f0: newarr ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f + IL_04f5: dup + IL_04f6: ldc.i4.0 + IL_04f7: ldc.r4 3. + IL_04fc: ldc.r4 3. + IL_0501: ldc.r4 3. + IL_0506: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_050b: stelem.ref + IL_050c: dup + IL_050d: ldc.i4.1 + IL_050e: ldc.r4 4. + IL_0513: ldc.r4 4. + IL_0518: ldc.r4 4. + IL_051d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0522: stelem.ref + IL_0523: dup + IL_0524: ldc.i4.2 + IL_0525: ldc.r4 5. + IL_052a: ldc.r4 5. + IL_052f: ldc.r4 5. + IL_0534: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0539: stelem.ref + IL_053a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[]) + IL_053f: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[][0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1c + IL_0544: ldc.i4.2 + IL_0545: newarr class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...] + IL_054a: dup + IL_054b: ldc.i4.0 + IL_054c: ldc.i4.3 + IL_054d: ldc.i4.3 + IL_054e: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_0553: dup + IL_0554: ldc.i4.0 + IL_0555: ldc.i4.0 + IL_0556: ldc.r4 1. + IL_055b: ldc.r4 1. + IL_0560: ldc.r4 1. + IL_0565: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_056a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_056f: dup + IL_0570: ldc.i4.0 + IL_0571: ldc.i4.1 + IL_0572: ldc.r4 2. + IL_0577: ldc.r4 2. + IL_057c: ldc.r4 2. + IL_0581: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0586: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_058b: dup + IL_058c: ldc.i4.0 + IL_058d: ldc.i4.2 + IL_058e: ldc.r4 3. + IL_0593: ldc.r4 3. + IL_0598: ldc.r4 3. + IL_059d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05a2: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05a7: dup + IL_05a8: ldc.i4.1 + IL_05a9: ldc.i4.0 + IL_05aa: ldc.r4 2. + IL_05af: ldc.r4 2. + IL_05b4: ldc.r4 2. + IL_05b9: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05be: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05c3: dup + IL_05c4: ldc.i4.1 + IL_05c5: ldc.i4.1 + IL_05c6: ldc.r4 3. + IL_05cb: ldc.r4 3. + IL_05d0: ldc.r4 3. + IL_05d5: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05da: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05df: dup + IL_05e0: ldc.i4.1 + IL_05e1: ldc.i4.2 + IL_05e2: ldc.r4 4. + IL_05e7: ldc.r4 4. + IL_05ec: ldc.r4 4. + IL_05f1: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_05f6: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_05fb: dup + IL_05fc: ldc.i4.2 + IL_05fd: ldc.i4.0 + IL_05fe: ldc.r4 3. + IL_0603: ldc.r4 3. + IL_0608: ldc.r4 3. + IL_060d: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0612: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0617: dup + IL_0618: ldc.i4.2 + IL_0619: ldc.i4.1 + IL_061a: ldc.r4 4. + IL_061f: ldc.r4 4. + IL_0624: ldc.r4 4. + IL_0629: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_062e: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0633: dup + IL_0634: ldc.i4.2 + IL_0635: ldc.i4.2 + IL_0636: ldc.r4 5. + IL_063b: ldc.r4 5. + IL_0640: ldc.r4 5. + IL_0645: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_064a: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_064f: stelem.ref + IL_0650: dup + IL_0651: ldc.i4.1 + IL_0652: ldc.i4.3 + IL_0653: ldc.i4.3 + IL_0654: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::.ctor(int32, + int32) + IL_0659: dup + IL_065a: ldc.i4.0 + IL_065b: ldc.i4.0 + IL_065c: ldc.r4 1. + IL_0661: ldc.r4 1. + IL_0666: ldc.r4 1. + IL_066b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0670: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0675: dup + IL_0676: ldc.i4.0 + IL_0677: ldc.i4.1 + IL_0678: ldc.r4 2. + IL_067d: ldc.r4 2. + IL_0682: ldc.r4 2. + IL_0687: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_068c: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0691: dup + IL_0692: ldc.i4.0 + IL_0693: ldc.i4.2 + IL_0694: ldc.r4 3. + IL_0699: ldc.r4 3. + IL_069e: ldc.r4 3. + IL_06a3: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06a8: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06ad: dup + IL_06ae: ldc.i4.1 + IL_06af: ldc.i4.0 + IL_06b0: ldc.r4 2. + IL_06b5: ldc.r4 2. + IL_06ba: ldc.r4 2. + IL_06bf: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06c4: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06c9: dup + IL_06ca: ldc.i4.1 + IL_06cb: ldc.i4.1 + IL_06cc: ldc.r4 3. + IL_06d1: ldc.r4 3. + IL_06d6: ldc.r4 3. + IL_06db: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06e0: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_06e5: dup + IL_06e6: ldc.i4.1 + IL_06e7: ldc.i4.2 + IL_06e8: ldc.r4 4. + IL_06ed: ldc.r4 4. + IL_06f2: ldc.r4 4. + IL_06f7: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_06fc: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0701: dup + IL_0702: ldc.i4.2 + IL_0703: ldc.i4.0 + IL_0704: ldc.r4 3. + IL_0709: ldc.r4 3. + IL_070e: ldc.r4 3. + IL_0713: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0718: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_071d: dup + IL_071e: ldc.i4.2 + IL_071f: ldc.i4.1 + IL_0720: ldc.r4 4. + IL_0725: ldc.r4 4. + IL_072a: ldc.r4 4. + IL_072f: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0734: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0739: dup + IL_073a: ldc.i4.2 + IL_073b: ldc.i4.2 + IL_073c: ldc.r4 5. + IL_0741: ldc.r4 5. + IL_0746: ldc.r4 5. + IL_074b: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f::.ctor(float32, + float32, + float32) + IL_0750: call instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...]::Set(int32, + int32, + class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f) + IL_0755: stelem.ref + IL_0756: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/V3f[0...,0...][] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg1d + IL_075b: ldc.i4.3 + IL_075c: ldc.i4.3 + IL_075d: newobj instance void int32[0...,0...]::.ctor(int32, + int32) + IL_0762: dup + IL_0763: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=36' ''::B62E59D20E3D69F06A6D9BD5E3C518FF7093EDAB + IL_0768: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, + valuetype [mscorlib]System.RuntimeFieldHandle) + IL_076d: stsfld int32[0...,0...] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Issue1336_rg2 + IL_0772: ret + } // end of method TestCases::.cctor + } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases .class private auto ansi sealed '' @@ -3399,6 +4372,13 @@ .size 24 } // end of class '__StaticArrayInitTypeSize=24' + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=36' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 36 + } // end of class '__StaticArrayInitTypeSize=36' + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=40' extends [mscorlib]System.ValueType { @@ -3413,6 +4393,20 @@ .size 48 } // end of class '__StaticArrayInitTypeSize=48' + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=64' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 64 + } // end of class '__StaticArrayInitTypeSize=64' + + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=72' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 72 + } // end of class '__StaticArrayInitTypeSize=72' + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=80' extends [mscorlib]System.ValueType { @@ -3420,66 +4414,124 @@ .size 80 } // end of class '__StaticArrayInitTypeSize=80' - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=10' '20E3FF489634E18F3F7EB292AD504DBAE9519293' at I_0000627C - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=10' '56D9EEC8EF899644C40B9BE9D886DF2367A5D078' at I_0000628C - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=12' '735E5A21849E86F68D220F06163E8C5C6376B9C9' at I_0000629C - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' '8D903ECAD8D9D75B3183B23AF79F6D2E607369E3' at I_000062AC - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=80' '9B1F6E56D755443CC39C1969CE38FD41FD4EF4B7' at I_000062D4 - .field static assembly initonly int64 A6296CAC471BE2954899600137940479D8073C7C at I_00006324 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' B9583930B842DBCEF0D7B8E57D4D3F1E8055C39E at I_0000632C - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=24' C4E70AB31EF6C8908F896CAD1C6BC75F7FA65E27 at I_00006354 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=48' DC7043B0114737ACE19A23DD755893795FD48A23 at I_0000636C - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' E0D2592373A0C161E56E266306CD8405CD719D19 at I_0000639C - .field static assembly initonly int64 EB0715DBB235F3F696F2C404F5839C6650640898 at I_000063C4 - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' F514FF55B79BCAA2CEC9B56C062D976E45F89AB7 at I_000063CC - .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=24' FBCB49C1A244C1B5781AA1DB02C5A11F68908526 at I_000063F4 + .class explicit ansi sealed nested private '__StaticArrayInitTypeSize=256' + extends [mscorlib]System.ValueType + { + .pack 1 + .size 256 + } // end of class '__StaticArrayInitTypeSize=256' + + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=72' '1535117EC92E41D4A6B7CA00F965357B05B5DC35' at I_00006F58 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=10' '20E3FF489634E18F3F7EB292AD504DBAE9519293' at I_00006FA0 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=72' '39E94835525CF7B71CD4595742EF462642FBF1B2' at I_00006FB0 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=10' '56D9EEC8EF899644C40B9BE9D886DF2367A5D078' at I_00006FF8 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=12' '735E5A21849E86F68D220F06163E8C5C6376B9C9' at I_00007008 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=64' '7C39B7B06DD624A17F875AB8E9651554BE6E74D2' at I_00007018 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' '8D903ECAD8D9D75B3183B23AF79F6D2E607369E3' at I_00007058 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=80' '9B1F6E56D755443CC39C1969CE38FD41FD4EF4B7' at I_00007080 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=256' A1EA7DC3FE43B3A54F5B729A92B92AF54181A3EB at I_000070D0 + .field static assembly initonly int64 A6296CAC471BE2954899600137940479D8073C7C at I_000071D0 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=36' B62E59D20E3D69F06A6D9BD5E3C518FF7093EDAB at I_000071D8 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' B9583930B842DBCEF0D7B8E57D4D3F1E8055C39E at I_00007200 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=24' C4E70AB31EF6C8908F896CAD1C6BC75F7FA65E27 at I_00007228 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=48' DC7043B0114737ACE19A23DD755893795FD48A23 at I_00007240 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=64' DCF557B883E6FE0AEC05B7F0290F0EF47D0AC2E3 at I_00007270 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' E0D2592373A0C161E56E266306CD8405CD719D19 at I_000072B0 + .field static assembly initonly int64 EB0715DBB235F3F696F2C404F5839C6650640898 at I_000072D8 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=40' F514FF55B79BCAA2CEC9B56C062D976E45F89AB7 at I_000072E0 + .field static assembly initonly valuetype ''/'__StaticArrayInitTypeSize=24' FBCB49C1A244C1B5781AA1DB02C5A11F68908526 at I_00007308 } // end of class '' // ============================================================= -.data cil I_0000627C = bytearray ( +.data cil I_00006F58 = bytearray ( + 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 + 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 + 09 00 00 00 0B 00 00 00 0C 00 00 00 0D 00 00 00 + 0E 00 00 00 0F 00 00 00 10 00 00 00 11 00 00 00 + 12 00 00 00 13 00 00 00) +.data cil I_00006FA0 = bytearray ( 01 02 03 04 05 06 07 08 FE FF) -.data cil I_00006286 = int8[2] -.data cil I_0000628C = bytearray ( +.data cil I_00006FAA = int8[6] +.data cil I_00006FB0 = bytearray ( + 15 00 00 00 16 00 00 00 17 00 00 00 18 00 00 00 + 19 00 00 00 1A 00 00 00 1B 00 00 00 1C 00 00 00 + 1D 00 00 00 1F 00 00 00 20 00 00 00 21 00 00 00 // ........ ...!... + 22 00 00 00 23 00 00 00 24 00 00 00 25 00 00 00 // "...#...$...%... + 26 00 00 00 27 00 00 00) // &...'... +.data cil I_00006FF8 = bytearray ( 00 80 FF FF 00 00 01 00 FF 7F) -.data cil I_00006296 = int8[2] -.data cil I_0000629C = bytearray ( +.data cil I_00007002 = int8[6] +.data cil I_00007008 = bytearray ( 00 00 01 00 FF 7F 00 80 FE FF FF FF) -.data cil I_000062AC = bytearray ( +.data cil I_00007014 = int8[4] +.data cil I_00007018 = bytearray ( + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00) +.data cil I_00007058 = bytearray ( 01 00 0C BB 7D 6E 9C BA FF FF FF FF FF FF FF FF // ....}n.......... 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 FF FF F3 44 82 91 63 45) // ...D..cE -.data cil I_000062D4 = bytearray ( +.data cil I_00007080 = bytearray ( 01 00 00 00 00 00 00 00 00 94 35 77 00 00 00 00 // ..........5w.... 00 5E D0 B2 00 00 00 00 04 00 00 00 00 00 00 00 // .^.............. 05 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 FF FF F3 44 82 91 63 45 FF FF E7 89 04 23 C7 8A) // ...D..cE.....#.. -.data cil I_00006324 = bytearray ( +.data cil I_000070D0 = bytearray ( + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00) +.data cil I_000071D0 = bytearray ( 80 81 00 01 02 03 04 7F) -.data cil I_0000632C = bytearray ( +.data cil I_000071D8 = bytearray ( + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 01 00 00 00) +.data cil I_000071FC = int8[4] +.data cil I_00007200 = bytearray ( 01 00 00 00 00 94 35 77 00 5E D0 B2 04 00 00 00 // ......5w.^...... 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0A 00 00 00) -.data cil I_00006354 = bytearray ( +.data cil I_00007228 = bytearray ( 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00) -.data cil I_0000636C = bytearray ( +.data cil I_00007240 = bytearray ( 00 00 00 00 00 00 F8 BF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F8 3F 00 00 00 00 00 00 F0 FF // .......?........ 00 00 00 00 00 00 F0 7F 00 00 00 00 00 00 F8 FF) -.data cil I_0000639C = bytearray ( +.data cil I_00007270 = bytearray ( + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00) +.data cil I_000072B0 = bytearray ( 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0A 00 00 00) -.data cil I_000063C4 = bytearray ( +.data cil I_000072D8 = bytearray ( 01 00 01 00 00 00 01 01) -.data cil I_000063CC = bytearray ( +.data cil I_000072E0 = bytearray ( 01 00 00 00 FE FF FF FF 00 94 35 77 04 00 00 00 // ..........5w.... 05 00 00 00 FA FF FF FF 07 00 00 00 08 00 00 00 09 00 00 00 0A 00 00 00) -.data cil I_000063F4 = bytearray ( +.data cil I_00007308 = bytearray ( 00 00 C0 BF 00 00 00 00 00 00 C0 3F 00 00 80 FF // ...........?.... 00 00 80 7F 00 00 C0 FF) // *********** DISASSEMBLY COMPLETE *********************** diff --git a/ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs index 54685e67e..8d4a8bf0f 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs @@ -322,11 +322,11 @@ namespace ICSharpCode.Decompiler.IL.Transforms int numberOfTypeArguments = 0; if (!value.MatchLdNull()) { if (value is NewArr typeArgsNewArr && typeArgsNewArr.Type.IsKnownType(KnownTypeCode.Type) && typeArgsNewArr.Indices.Count == 1 && typeArgsNewArr.Indices[0].MatchLdcI4(out numberOfTypeArguments)) { - if (!TransformArrayInitializers.HandleSimpleArrayInitializer(context.Function, callSiteInitBlock, 3, variableOrTemporary, typeArgsNewArr.Type, numberOfTypeArguments, out var typeArguments, out _)) + if (!TransformArrayInitializers.HandleSimpleArrayInitializer(context.Function, callSiteInitBlock, 3, variableOrTemporary, typeArgsNewArr.Type, new[] { numberOfTypeArguments }, out var typeArguments, out _)) return false; int i = 0; callSiteInfo.TypeArguments = new IType[numberOfTypeArguments]; - foreach (var typeArg in typeArguments) { + foreach (var (_, typeArg) in typeArguments) { if (!TransformExpressionTrees.MatchGetTypeFromHandle(typeArg, out var type)) return false; callSiteInfo.TypeArguments[i] = type; @@ -496,12 +496,12 @@ namespace ICSharpCode.Decompiler.IL.Transforms { if (!(value is NewArr newArr2 && newArr2.Type.FullName == "Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" && newArr2.Indices.Count == 1 && newArr2.Indices[0].MatchLdcI4(out var numberOfArguments))) return false; - if (!TransformArrayInitializers.HandleSimpleArrayInitializer(context.Function, callSiteInfo.InitBlock, instructionOffset, variable, newArr2.Type, numberOfArguments, out var arguments, out _)) + if (!TransformArrayInitializers.HandleSimpleArrayInitializer(context.Function, callSiteInfo.InitBlock, instructionOffset, variable, newArr2.Type, new[] { numberOfArguments }, out var arguments, out _)) return false; int i = 0; callSiteInfo.ArgumentInfos = new CSharpArgumentInfo[numberOfArguments]; var compileTimeTypes = callSiteInfo.DelegateType.GetDelegateInvokeMethod().Parameters.SelectReadOnlyArray(p => p.Type); - foreach (var arg in arguments) { + foreach (var (_, arg) in arguments) { if (!(arg is Call createCall)) return false; if (!(createCall.Method.Name == "Create" && createCall.Method.DeclaringType.FullName == "Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo" && createCall.Arguments.Count == 2)) diff --git a/ICSharpCode.Decompiler/IL/Transforms/TransformArrayInitializers.cs b/ICSharpCode.Decompiler/IL/Transforms/TransformArrayInitializers.cs index 4fba07fd3..dfc154275 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/TransformArrayInitializers.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/TransformArrayInitializers.cs @@ -41,7 +41,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms try { if (DoTransform(context.Function, block, pos)) return; - if (DoTransformMultiDim(block, pos)) + if (DoTransformMultiDim(context.Function, block, pos)) return; if (context.Settings.StackAllocInitializers && DoTransformStackAllocInitializer(block, pos)) return; @@ -57,7 +57,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms ILInstruction inst = body.Instructions[pos]; if (inst.MatchStLoc(out var v, out var newarrExpr) && MatchNewArr(newarrExpr, out var elementType, out var arrayLength)) { if (ForwardScanInitializeArrayRuntimeHelper(body, pos + 1, v, elementType, arrayLength, out var values, out var initArrayPos)) { - context.Step("ForwardScanInitializeArrayRuntimeHelper", inst); + context.Step("ForwardScanInitializeArrayRuntimeHelper: single-dim", inst); var tempStore = context.Function.RegisterVariable(VariableKind.InitializerTarget, v.Type); var block = BlockFromInitializer(tempStore, elementType, arrayLength, values); body.Instructions[pos] = new StLoc(v, block); @@ -66,16 +66,17 @@ namespace ICSharpCode.Decompiler.IL.Transforms return true; } if (arrayLength.Length == 1) { - if (HandleSimpleArrayInitializer(function, body, pos + 1, v, elementType, arrayLength[0], out values, out var instructionsToRemove)) { - context.Step("HandleSimpleArrayInitializer", inst); + if (HandleSimpleArrayInitializer(function, body, pos + 1, v, elementType, arrayLength, out var arrayValues, out var instructionsToRemove)) { + context.Step("HandleSimpleArrayInitializer: single-dim", inst); var block = new Block(BlockKind.ArrayInitializer); var tempStore = context.Function.RegisterVariable(VariableKind.InitializerTarget, v.Type); block.Instructions.Add(new StLoc(tempStore, new NewArr(elementType, arrayLength.Select(l => new LdcI4(l)).ToArray()))); - block.Instructions.AddRange(values.SelectWithIndex( - (i, value) => { + block.Instructions.AddRange(arrayValues.Select( + t => { + var (indices, value) = t; if (value == null) value = GetNullExpression(elementType); - return StElem(new LdLoc(tempStore), new[] { new LdcI4(i) }, value, elementType); + return StElem(new LdLoc(tempStore), indices, value, elementType); } )); block.FinalInstruction = new LdLoc(tempStore); @@ -85,7 +86,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms return true; } if (HandleJaggedArrayInitializer(body, pos + 1, v, elementType, arrayLength[0], out ILVariable finalStore, out values, out instructionsToRemove)) { - context.Step("HandleJaggedArrayInitializer", inst); + context.Step("HandleJaggedArrayInitializer: single-dim", inst); var block = new Block(BlockKind.ArrayInitializer); var tempStore = context.Function.RegisterVariable(VariableKind.InitializerTarget, v.Type); block.Instructions.Add(new StLoc(tempStore, new NewArr(elementType, arrayLength.Select(l => new LdcI4(l)).ToArray()))); @@ -101,19 +102,39 @@ namespace ICSharpCode.Decompiler.IL.Transforms return false; } - bool DoTransformMultiDim(Block body, int pos) + bool DoTransformMultiDim(ILFunction function, Block body, int pos) { if (pos >= body.Instructions.Count - 2) return false; - ILInstruction instr = body.Instructions[pos]; - if (instr.MatchStLoc(out var v, out var newarrExpr) && MatchNewArr(newarrExpr, out var arrayType, out var length)) { - if (ForwardScanInitializeArrayRuntimeHelper(body, pos + 1, v, arrayType, length, out var values, out var initArrayPos)) { - var block = BlockFromInitializer(v, arrayType, length, values); + ILInstruction inst = body.Instructions[pos]; + if (inst.MatchStLoc(out var v, out var newarrExpr) && MatchNewArr(newarrExpr, out var elementType, out var length)) { + if (ForwardScanInitializeArrayRuntimeHelper(body, pos + 1, v, elementType, length, out var values, out var initArrayPos)) { + context.Step("ForwardScanInitializeArrayRuntimeHelper: multi-dim", inst); + var block = BlockFromInitializer(v, elementType, length, values); body.Instructions[pos].ReplaceWith(new StLoc(v, block)); body.Instructions.RemoveAt(initArrayPos); ILInlining.InlineIfPossible(body, pos, context); return true; } + if (HandleSimpleArrayInitializer(function, body, pos + 1, v, elementType, length, out var arrayValues, out var instructionsToRemove)) { + context.Step("HandleSimpleArrayInitializer: multi-dim", inst); + var block = new Block(BlockKind.ArrayInitializer); + var tempStore = context.Function.RegisterVariable(VariableKind.InitializerTarget, v.Type); + block.Instructions.Add(new StLoc(tempStore, new NewArr(elementType, length.Select(l => new LdcI4(l)).ToArray()))); + block.Instructions.AddRange(arrayValues.Select( + t => { + var (indices, value) = t; + if (value == null) + value = GetNullExpression(elementType); + return StElem(new LdLoc(tempStore), indices, value, elementType); + } + )); + block.FinalInstruction = new LdLoc(tempStore); + body.Instructions[pos] = new StLoc(v, block); + body.Instructions.RemoveRange(pos + 1, instructionsToRemove); + ILInlining.InlineIfPossible(body, pos, context); + return true; + } } return false; } @@ -277,35 +298,92 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// /// Handle simple case where RuntimeHelpers.InitializeArray is not used. /// - internal static bool HandleSimpleArrayInitializer(ILFunction function, Block block, int pos, ILVariable store, IType elementType, int length, out ILInstruction[] values, out int elementCount) + internal static bool HandleSimpleArrayInitializer(ILFunction function, Block block, int pos, ILVariable store, IType elementType, int[] arrayLength, out (ILInstruction[] Indices, ILInstruction Value)[] values, out int elementCount) { elementCount = 0; - values = new ILInstruction[length]; - int nextMinimumIndex = 0; - for (int i = pos; i < block.Instructions.Count; i++) { - if (nextMinimumIndex >= length) + var length = arrayLength.Aggregate(1, (t, l) => t * l); + values = new (ILInstruction[] Indices, ILInstruction Value)[length]; + + int[] nextMinimumIndex = new int[arrayLength.Length]; + + ILInstruction[] CalculateNextIndices(InstructionCollection indices, out bool exactMatch) + { + var nextIndices = new ILInstruction[arrayLength.Length]; + exactMatch = true; + if (indices == null) { + for (int k = 0; k < nextIndices.Length; k++) { + nextIndices[k] = new LdcI4(nextMinimumIndex[k]); + } + } else { + for (int k = 0; k < indices.Count; k++) { + if (!indices[k].MatchLdcI4(out int index)) + return nextIndices; + // index must be in range [0..length[ and must be greater than or equal to nextMinimumIndex + // to avoid running out of bounds or accidentally reordering instructions or overwriting previous instructions. + // However, leaving array slots empty is allowed, as those are filled with default values when the + // initializer block is generated. + if (index < 0 || index >= arrayLength[k] || index < nextMinimumIndex[k]) + return null; + if (index != nextMinimumIndex[k]) { + exactMatch = false; + nextIndices[k] = new LdcI4(nextMinimumIndex[k]); + } else { + nextIndices[k] = indices[k]; + } + } + } + + for (int k = nextMinimumIndex.Length - 1; k >= 0; k--) { + nextMinimumIndex[k]++; + if (nextMinimumIndex[k] < arrayLength[k]) + break; + nextMinimumIndex[k] = 0; + } + + return nextIndices; + } + + int j = 0; + int i = pos; + for (; i < block.Instructions.Count; i++) { + if (!block.Instructions[i].MatchStObj(out ILInstruction target, out ILInstruction value, out IType type)) break; - if (!block.Instructions[i].MatchStObj(out ILInstruction target, out ILInstruction value, out IType type) - || value.Descendants.OfType().Any(inst => inst.Variable == store)) - { + if (value.Descendants.OfType().Any(inst => inst.Variable == store)) break; - } + if (!(target is LdElema ldelem && ldelem.Array.MatchLdLoc(store))) + break; + var indices = ldelem.Indices; - if (!(target is LdElema ldelem) || !ldelem.Array.MatchLdLoc(store) || ldelem.Indices.Count != 1 - || !ldelem.Indices[0].MatchLdcI4(out int index)) - { + if (indices.Count != arrayLength.Length) break; + bool exact; + do { + var nextIndices = CalculateNextIndices(indices, out exact); + if (nextIndices == null) + return false; + if (exact) { + values[j] = (nextIndices, value); + elementCount++; + } else { + values[j] = (nextIndices, null); + } + j++; + } while (!exact); + } + if (i < block.Instructions.Count) { + if (block.Instructions[i].MatchStObj(out ILInstruction target, out ILInstruction value, out IType type)) { + // An element of the array is modified directly after the initializer: + // Abort transform, so that partial initializers are not constructed. + if (target is LdElema ldelem && ldelem.Array.MatchLdLoc(store)) + return false; } - // index must be in range [0..length[ and must be greater than or equal to nextMinimumIndex - // to avoid running out of bounds or accidentally reordering instructions or overwriting previous instructions. - // However, leaving array slots empty is allowed, as those are filled with default values when the - // initializer block is generated. - if (index < 0 || index >= length || index < nextMinimumIndex) + } + while (j < values.Length) { + var nextIndices = CalculateNextIndices(null, out _); + if (nextIndices == null) return false; - nextMinimumIndex = index; - values[nextMinimumIndex] = value; - nextMinimumIndex++; - elementCount++; + values[j] = (nextIndices, null); + j++; } if (pos + elementCount >= block.Instructions.Count) return false; @@ -314,7 +392,9 @@ namespace ICSharpCode.Decompiler.IL.Transforms static bool ShouldTransformToInitializer(ILFunction function, Block block, int startPos, int elementCount, int length) { - if (elementCount >= Math.Min(length / 3 + 5, length)) + if (elementCount == 0) + return false; + if (elementCount >= length / 3 - 5) return true; int? unused = null; if (ILInlining.IsCatchWhenBlock(block) || ILInlining.IsInConstructorInitializer(function, block.Instructions[startPos], ref unused))