diff --git a/DecompilerNuGetDemos.workbook b/DecompilerNuGetDemos.workbook
index 6b2154b09..88215c397 100644
--- a/DecompilerNuGetDemos.workbook
+++ b/DecompilerNuGetDemos.workbook
@@ -6,7 +6,7 @@ platforms:
- DotNetCore
packages:
- id: ICSharpCode.Decompiler
- version: 4.0.0.4509-rc1
+ version: 4.0.0.4521
---
Setup: load the references required to work with the decompiler
diff --git a/ICSharpCode.Decompiler.Console/ICSharpCode.Decompiler.Console.csproj b/ICSharpCode.Decompiler.Console/ICSharpCode.Decompiler.Console.csproj
index dba035584..81f528251 100644
--- a/ICSharpCode.Decompiler.Console/ICSharpCode.Decompiler.Console.csproj
+++ b/ICSharpCode.Decompiler.Console/ICSharpCode.Decompiler.Console.csproj
@@ -7,7 +7,7 @@
true
ilspycmd
ilspycmd
- 3.8.0
+ 4.0
Command-line decompiler using the ILSpy decompilation engine
Copyright 2011-2019 AlphaSierraPapa
https://github.com/icsharpcode/ILSpy/
@@ -15,8 +15,8 @@
https://ilspy.net/images/icon32.png
https://github.com/icsharpcode/ILSpy/
- 3.8.0.0
- 3.8.0.0
+ 4.0.0.0
+ 4.0.0.0
true
@@ -27,7 +27,7 @@
-
+
diff --git a/ICSharpCode.Decompiler.PowerShell/ICSharpCode.Decompiler.PowerShell.csproj b/ICSharpCode.Decompiler.PowerShell/ICSharpCode.Decompiler.PowerShell.csproj
index 3a8e90d7a..514c347a6 100644
--- a/ICSharpCode.Decompiler.PowerShell/ICSharpCode.Decompiler.PowerShell.csproj
+++ b/ICSharpCode.Decompiler.PowerShell/ICSharpCode.Decompiler.PowerShell.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
index bec77f0d6..ddb15c1d5 100644
--- a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
+++ b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
@@ -73,6 +73,7 @@
+
diff --git a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs
index 3636325ec..ed2abf072 100644
--- a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs
+++ b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs
@@ -220,6 +220,12 @@ namespace ICSharpCode.Decompiler.Tests
RunForLibrary(cscOptions: cscOptions);
}
+ [Test]
+ public void ConstructorInitializers([ValueSource(nameof(defaultOptionsWithMcs))] CSharpCompilerOptions cscOptions)
+ {
+ RunForLibrary(cscOptions: cscOptions);
+ }
+
[Test]
public void PInvoke([ValueSource(nameof(defaultOptions))] CSharpCompilerOptions cscOptions)
{
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.cs
new file mode 100644
index 000000000..9b2a7d175
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.cs
@@ -0,0 +1,35 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this
+// software and associated documentation files (the "Software"), to deal in the Software
+// without restriction, including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+// to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or
+// substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
+{
+ public class ConstructorInitializers
+ {
+ public struct SimpleStruct
+ {
+ public int Field1;
+ public int Field2;
+ }
+
+ public class UnsafeFields
+ {
+ public unsafe static int StaticSizeOf = sizeof(SimpleStruct);
+ public unsafe int SizeOf = sizeof(SimpleStruct);
+ }
+ }
+}
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.il
new file mode 100644
index 000000000..a8d0edf46
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.il
@@ -0,0 +1,88 @@
+
+
+
+
+// Metadata version: v4.0.30319
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 4:0:0:0
+}
+.assembly ConstructorInitializers
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
+ 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
+ .permissionset reqmin
+ = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}}
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.module ConstructorInitializers.dll
+.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
+.imagebase 0x10000000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+
+
+// =============== CLASS MEMBERS DECLARATION ===================
+
+.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+ extends [mscorlib]System.Object
+{
+ .class sequential ansi sealed nested public beforefieldinit SimpleStruct
+ extends [mscorlib]System.ValueType
+ {
+ .field public int32 Field1
+ .field public int32 Field2
+ } // end of class SimpleStruct
+
+ .class auto ansi nested public beforefieldinit UnsafeFields
+ extends [mscorlib]System.Object
+ {
+ .field public static int32 StaticSizeOf
+ .field public int32 SizeOf
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 20 (0x14)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0007: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::SizeOf
+ IL_000c: ldarg.0
+ IL_000d: call instance void [mscorlib]System.Object::.ctor()
+ IL_0012: nop
+ IL_0013: ret
+ } // end of method UnsafeFields::.ctor
+
+ .method private hidebysig specialname rtspecialname static
+ void .cctor() cil managed
+ {
+ // Code size 12 (0xc)
+ .maxstack 8
+ IL_0000: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0006: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::StaticSizeOf
+ IL_000b: ret
+ } // end of method UnsafeFields::.cctor
+
+ } // end of class UnsafeFields
+
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 7 (0x7)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void [mscorlib]System.Object::.ctor()
+ IL_0006: ret
+ } // end of method ConstructorInitializers::.ctor
+
+} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+
+
+// =============================================================
+
+// *********** DISASSEMBLY COMPLETE ***********************
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.mcs.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.mcs.il
new file mode 100644
index 000000000..5fed2ec8d
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.mcs.il
@@ -0,0 +1,120 @@
+
+
+
+
+// Metadata version: v2.0.50727
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 2:0:0:0
+}
+.assembly ConstructorInitializers.mcs
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
+ 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
+ .permissionset reqmin
+ bytearray (3C 00 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 // <.P.e.r.m.i.s.s.
+ 69 00 6F 00 6E 00 53 00 65 00 74 00 20 00 63 00 // i.o.n.S.e.t. .c.
+ 6C 00 61 00 73 00 73 00 3D 00 22 00 53 00 79 00 // l.a.s.s.=.".S.y.
+ 73 00 74 00 65 00 6D 00 2E 00 53 00 65 00 63 00 // s.t.e.m...S.e.c.
+ 75 00 72 00 69 00 74 00 79 00 2E 00 50 00 65 00 // u.r.i.t.y...P.e.
+ 72 00 6D 00 69 00 73 00 73 00 69 00 6F 00 6E 00 // r.m.i.s.s.i.o.n.
+ 53 00 65 00 74 00 22 00 0D 00 0A 00 76 00 65 00 // S.e.t.".....v.e.
+ 72 00 73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 // r.s.i.o.n.=.".1.
+ 22 00 3E 00 0D 00 0A 00 3C 00 49 00 50 00 65 00 // ".>.....<.I.P.e.
+ 72 00 6D 00 69 00 73 00 73 00 69 00 6F 00 6E 00 // r.m.i.s.s.i.o.n.
+ 20 00 63 00 6C 00 61 00 73 00 73 00 3D 00 22 00 // .c.l.a.s.s.=.".
+ 53 00 79 00 73 00 74 00 65 00 6D 00 2E 00 53 00 // S.y.s.t.e.m...S.
+ 65 00 63 00 75 00 72 00 69 00 74 00 79 00 2E 00 // e.c.u.r.i.t.y...
+ 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 69 00 // P.e.r.m.i.s.s.i.
+ 6F 00 6E 00 73 00 2E 00 53 00 65 00 63 00 75 00 // o.n.s...S.e.c.u.
+ 72 00 69 00 74 00 79 00 50 00 65 00 72 00 6D 00 // r.i.t.y.P.e.r.m.
+ 69 00 73 00 73 00 69 00 6F 00 6E 00 2C 00 20 00 // i.s.s.i.o.n.,. .
+ 6D 00 73 00 63 00 6F 00 72 00 6C 00 69 00 62 00 // m.s.c.o.r.l.i.b.
+ 2C 00 20 00 56 00 65 00 72 00 73 00 69 00 6F 00 // ,. .V.e.r.s.i.o.
+ 6E 00 3D 00 32 00 2E 00 30 00 2E 00 30 00 2E 00 // n.=.2...0...0...
+ 30 00 2C 00 20 00 43 00 75 00 6C 00 74 00 75 00 // 0.,. .C.u.l.t.u.
+ 72 00 65 00 3D 00 6E 00 65 00 75 00 74 00 72 00 // r.e.=.n.e.u.t.r.
+ 61 00 6C 00 2C 00 20 00 50 00 75 00 62 00 6C 00 // a.l.,. .P.u.b.l.
+ 69 00 63 00 4B 00 65 00 79 00 54 00 6F 00 6B 00 // i.c.K.e.y.T.o.k.
+ 65 00 6E 00 3D 00 62 00 37 00 37 00 61 00 35 00 // e.n.=.b.7.7.a.5.
+ 63 00 35 00 36 00 31 00 39 00 33 00 34 00 65 00 // c.5.6.1.9.3.4.e.
+ 30 00 38 00 39 00 22 00 0D 00 0A 00 76 00 65 00 // 0.8.9.".....v.e.
+ 72 00 73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 // r.s.i.o.n.=.".1.
+ 22 00 0D 00 0A 00 46 00 6C 00 61 00 67 00 73 00 // ".....F.l.a.g.s.
+ 3D 00 22 00 53 00 6B 00 69 00 70 00 56 00 65 00 // =.".S.k.i.p.V.e.
+ 72 00 69 00 66 00 69 00 63 00 61 00 74 00 69 00 // r.i.f.i.c.a.t.i.
+ 6F 00 6E 00 22 00 2F 00 3E 00 0D 00 0A 00 3C 00 // o.n."./.>.....<.
+ 2F 00 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 // /.P.e.r.m.i.s.s.
+ 69 00 6F 00 6E 00 53 00 65 00 74 00 3E 00 0D 00 // i.o.n.S.e.t.>...
+ 0A 00 )
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.module ConstructorInitializers.mcs.dll
+.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
+.imagebase 0x00400000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+
+
+// =============== CLASS MEMBERS DECLARATION ===================
+
+.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+ extends [mscorlib]System.Object
+{
+ .class sequential ansi sealed nested public beforefieldinit SimpleStruct
+ extends [mscorlib]System.ValueType
+ {
+ .field public int32 Field1
+ .field public int32 Field2
+ } // end of class SimpleStruct
+
+ .class auto ansi nested public beforefieldinit UnsafeFields
+ extends [mscorlib]System.Object
+ {
+ .field public static int32 StaticSizeOf
+ .field public int32 SizeOf
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 19 (0x13)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0007: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::SizeOf
+ IL_000c: ldarg.0
+ IL_000d: call instance void [mscorlib]System.Object::.ctor()
+ IL_0012: ret
+ } // end of method UnsafeFields::.ctor
+
+ .method private specialname rtspecialname static
+ void .cctor() cil managed
+ {
+ // Code size 12 (0xc)
+ .maxstack 8
+ IL_0000: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0006: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::StaticSizeOf
+ IL_000b: ret
+ } // end of method UnsafeFields::.cctor
+
+ } // end of class UnsafeFields
+
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 7 (0x7)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void [mscorlib]System.Object::.ctor()
+ IL_0006: ret
+ } // end of method ConstructorInitializers::.ctor
+
+} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+
+
+// =============================================================
+
+// *********** DISASSEMBLY COMPLETE ***********************
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.opt.il
new file mode 100644
index 000000000..f96a7d44e
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.opt.il
@@ -0,0 +1,87 @@
+
+
+
+
+// Metadata version: v4.0.30319
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 4:0:0:0
+}
+.assembly ConstructorInitializers.opt
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
+ 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
+ .permissionset reqmin
+ = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}}
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.module ConstructorInitializers.opt.dll
+.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
+.imagebase 0x10000000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+
+
+// =============== CLASS MEMBERS DECLARATION ===================
+
+.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+ extends [mscorlib]System.Object
+{
+ .class sequential ansi sealed nested public beforefieldinit SimpleStruct
+ extends [mscorlib]System.ValueType
+ {
+ .field public int32 Field1
+ .field public int32 Field2
+ } // end of class SimpleStruct
+
+ .class auto ansi nested public beforefieldinit UnsafeFields
+ extends [mscorlib]System.Object
+ {
+ .field public static int32 StaticSizeOf
+ .field public int32 SizeOf
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 19 (0x13)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0007: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::SizeOf
+ IL_000c: ldarg.0
+ IL_000d: call instance void [mscorlib]System.Object::.ctor()
+ IL_0012: ret
+ } // end of method UnsafeFields::.ctor
+
+ .method private hidebysig specialname rtspecialname static
+ void .cctor() cil managed
+ {
+ // Code size 12 (0xc)
+ .maxstack 8
+ IL_0000: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0006: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::StaticSizeOf
+ IL_000b: ret
+ } // end of method UnsafeFields::.cctor
+
+ } // end of class UnsafeFields
+
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 7 (0x7)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void [mscorlib]System.Object::.ctor()
+ IL_0006: ret
+ } // end of method ConstructorInitializers::.ctor
+
+} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+
+
+// =============================================================
+
+// *********** DISASSEMBLY COMPLETE ***********************
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.opt.mcs.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.opt.mcs.il
new file mode 100644
index 000000000..186747841
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.opt.mcs.il
@@ -0,0 +1,120 @@
+
+
+
+
+// Metadata version: v2.0.50727
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 2:0:0:0
+}
+.assembly ConstructorInitializers.opt.mcs
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
+ 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
+ .permissionset reqmin
+ bytearray (3C 00 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 // <.P.e.r.m.i.s.s.
+ 69 00 6F 00 6E 00 53 00 65 00 74 00 20 00 63 00 // i.o.n.S.e.t. .c.
+ 6C 00 61 00 73 00 73 00 3D 00 22 00 53 00 79 00 // l.a.s.s.=.".S.y.
+ 73 00 74 00 65 00 6D 00 2E 00 53 00 65 00 63 00 // s.t.e.m...S.e.c.
+ 75 00 72 00 69 00 74 00 79 00 2E 00 50 00 65 00 // u.r.i.t.y...P.e.
+ 72 00 6D 00 69 00 73 00 73 00 69 00 6F 00 6E 00 // r.m.i.s.s.i.o.n.
+ 53 00 65 00 74 00 22 00 0D 00 0A 00 76 00 65 00 // S.e.t.".....v.e.
+ 72 00 73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 // r.s.i.o.n.=.".1.
+ 22 00 3E 00 0D 00 0A 00 3C 00 49 00 50 00 65 00 // ".>.....<.I.P.e.
+ 72 00 6D 00 69 00 73 00 73 00 69 00 6F 00 6E 00 // r.m.i.s.s.i.o.n.
+ 20 00 63 00 6C 00 61 00 73 00 73 00 3D 00 22 00 // .c.l.a.s.s.=.".
+ 53 00 79 00 73 00 74 00 65 00 6D 00 2E 00 53 00 // S.y.s.t.e.m...S.
+ 65 00 63 00 75 00 72 00 69 00 74 00 79 00 2E 00 // e.c.u.r.i.t.y...
+ 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 69 00 // P.e.r.m.i.s.s.i.
+ 6F 00 6E 00 73 00 2E 00 53 00 65 00 63 00 75 00 // o.n.s...S.e.c.u.
+ 72 00 69 00 74 00 79 00 50 00 65 00 72 00 6D 00 // r.i.t.y.P.e.r.m.
+ 69 00 73 00 73 00 69 00 6F 00 6E 00 2C 00 20 00 // i.s.s.i.o.n.,. .
+ 6D 00 73 00 63 00 6F 00 72 00 6C 00 69 00 62 00 // m.s.c.o.r.l.i.b.
+ 2C 00 20 00 56 00 65 00 72 00 73 00 69 00 6F 00 // ,. .V.e.r.s.i.o.
+ 6E 00 3D 00 32 00 2E 00 30 00 2E 00 30 00 2E 00 // n.=.2...0...0...
+ 30 00 2C 00 20 00 43 00 75 00 6C 00 74 00 75 00 // 0.,. .C.u.l.t.u.
+ 72 00 65 00 3D 00 6E 00 65 00 75 00 74 00 72 00 // r.e.=.n.e.u.t.r.
+ 61 00 6C 00 2C 00 20 00 50 00 75 00 62 00 6C 00 // a.l.,. .P.u.b.l.
+ 69 00 63 00 4B 00 65 00 79 00 54 00 6F 00 6B 00 // i.c.K.e.y.T.o.k.
+ 65 00 6E 00 3D 00 62 00 37 00 37 00 61 00 35 00 // e.n.=.b.7.7.a.5.
+ 63 00 35 00 36 00 31 00 39 00 33 00 34 00 65 00 // c.5.6.1.9.3.4.e.
+ 30 00 38 00 39 00 22 00 0D 00 0A 00 76 00 65 00 // 0.8.9.".....v.e.
+ 72 00 73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 // r.s.i.o.n.=.".1.
+ 22 00 0D 00 0A 00 46 00 6C 00 61 00 67 00 73 00 // ".....F.l.a.g.s.
+ 3D 00 22 00 53 00 6B 00 69 00 70 00 56 00 65 00 // =.".S.k.i.p.V.e.
+ 72 00 69 00 66 00 69 00 63 00 61 00 74 00 69 00 // r.i.f.i.c.a.t.i.
+ 6F 00 6E 00 22 00 2F 00 3E 00 0D 00 0A 00 3C 00 // o.n."./.>.....<.
+ 2F 00 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 // /.P.e.r.m.i.s.s.
+ 69 00 6F 00 6E 00 53 00 65 00 74 00 3E 00 0D 00 // i.o.n.S.e.t.>...
+ 0A 00 )
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.module ConstructorInitializers.opt.mcs.dll
+.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
+.imagebase 0x00400000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+
+
+// =============== CLASS MEMBERS DECLARATION ===================
+
+.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+ extends [mscorlib]System.Object
+{
+ .class sequential ansi sealed nested public beforefieldinit SimpleStruct
+ extends [mscorlib]System.ValueType
+ {
+ .field public int32 Field1
+ .field public int32 Field2
+ } // end of class SimpleStruct
+
+ .class auto ansi nested public beforefieldinit UnsafeFields
+ extends [mscorlib]System.Object
+ {
+ .field public static int32 StaticSizeOf
+ .field public int32 SizeOf
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 19 (0x13)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0007: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::SizeOf
+ IL_000c: ldarg.0
+ IL_000d: call instance void [mscorlib]System.Object::.ctor()
+ IL_0012: ret
+ } // end of method UnsafeFields::.ctor
+
+ .method private specialname rtspecialname static
+ void .cctor() cil managed
+ {
+ // Code size 12 (0xc)
+ .maxstack 8
+ IL_0000: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0006: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::StaticSizeOf
+ IL_000b: ret
+ } // end of method UnsafeFields::.cctor
+
+ } // end of class UnsafeFields
+
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 7 (0x7)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void [mscorlib]System.Object::.ctor()
+ IL_0006: ret
+ } // end of method ConstructorInitializers::.ctor
+
+} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+
+
+// =============================================================
+
+// *********** DISASSEMBLY COMPLETE ***********************
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.opt.roslyn.il
new file mode 100644
index 000000000..fd488e45d
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.opt.roslyn.il
@@ -0,0 +1,91 @@
+
+
+
+
+// Metadata version: v4.0.30319
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 4:0:0:0
+}
+.assembly ConstructorInitializers
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
+ 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
+
+ // --- The following custom attribute is added automatically, do not uncomment -------
+ // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 )
+
+ .permissionset reqmin
+ = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}}
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.module ConstructorInitializers.dll
+.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
+.imagebase 0x10000000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+
+
+// =============== CLASS MEMBERS DECLARATION ===================
+
+.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+ extends [mscorlib]System.Object
+{
+ .class sequential ansi sealed nested public beforefieldinit SimpleStruct
+ extends [mscorlib]System.ValueType
+ {
+ .field public int32 Field1
+ .field public int32 Field2
+ } // end of class SimpleStruct
+
+ .class auto ansi nested public beforefieldinit UnsafeFields
+ extends [mscorlib]System.Object
+ {
+ .field public static int32 StaticSizeOf
+ .field public int32 SizeOf
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 19 (0x13)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0007: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::SizeOf
+ IL_000c: ldarg.0
+ IL_000d: call instance void [mscorlib]System.Object::.ctor()
+ IL_0012: ret
+ } // end of method UnsafeFields::.ctor
+
+ .method private hidebysig specialname rtspecialname static
+ void .cctor() cil managed
+ {
+ // Code size 12 (0xc)
+ .maxstack 8
+ IL_0000: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0006: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::StaticSizeOf
+ IL_000b: ret
+ } // end of method UnsafeFields::.cctor
+
+ } // end of class UnsafeFields
+
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 7 (0x7)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void [mscorlib]System.Object::.ctor()
+ IL_0006: ret
+ } // end of method ConstructorInitializers::.ctor
+
+} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+
+
+// =============================================================
+
+// *********** DISASSEMBLY COMPLETE ***********************
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.roslyn.il
new file mode 100644
index 000000000..e18de96fc
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstructorInitializers.roslyn.il
@@ -0,0 +1,93 @@
+
+
+
+
+// Metadata version: v4.0.30319
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 4:0:0:0
+}
+.assembly ConstructorInitializers
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
+ 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
+
+ // --- The following custom attribute is added automatically, do not uncomment -------
+ // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 07 01 00 00 00 00 )
+
+ .permissionset reqmin
+ = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}}
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.module ConstructorInitializers.dll
+.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
+.imagebase 0x10000000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+
+
+// =============== CLASS MEMBERS DECLARATION ===================
+
+.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+ extends [mscorlib]System.Object
+{
+ .class sequential ansi sealed nested public beforefieldinit SimpleStruct
+ extends [mscorlib]System.ValueType
+ {
+ .field public int32 Field1
+ .field public int32 Field2
+ } // end of class SimpleStruct
+
+ .class auto ansi nested public beforefieldinit UnsafeFields
+ extends [mscorlib]System.Object
+ {
+ .field public static int32 StaticSizeOf
+ .field public int32 SizeOf
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 20 (0x14)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0007: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::SizeOf
+ IL_000c: ldarg.0
+ IL_000d: call instance void [mscorlib]System.Object::.ctor()
+ IL_0012: nop
+ IL_0013: ret
+ } // end of method UnsafeFields::.ctor
+
+ .method private hidebysig specialname rtspecialname static
+ void .cctor() cil managed
+ {
+ // Code size 12 (0xc)
+ .maxstack 8
+ IL_0000: sizeof ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/SimpleStruct
+ IL_0006: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers/UnsafeFields::StaticSizeOf
+ IL_000b: ret
+ } // end of method UnsafeFields::.cctor
+
+ } // end of class UnsafeFields
+
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 8 (0x8)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void [mscorlib]System.Object::.ctor()
+ IL_0006: nop
+ IL_0007: ret
+ } // end of method ConstructorInitializers::.ctor
+
+} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ConstructorInitializers
+
+
+// =============================================================
+
+// *********** DISASSEMBLY COMPLETE ***********************
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs
index 9714fe225..c8e12415f 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs
@@ -27,7 +27,11 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests
{
public static class Extensions
{
- public static void Add(this TestCases.CustomList inst, int a, int b)
+ public static void Add(this TestCases.CustomList inst, string a, string b)
+ {
+ }
+
+ public static void Add(this IList> collection, string key, T value, Func convert = null)
{
}
}
@@ -1152,6 +1156,74 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests
}
});
}
+
+ private int[] Issue1383(int i, int[] array)
+ {
+ array = new int[4];
+ array[i++] = 1;
+ array[i++] = 2;
+ return array;
+ }
+
+ private string[,] Issue1382a()
+ {
+ return new string[4, 4] {
+ {
+ null,
+ "test",
+ "hello",
+ "world"
+ },
+ {
+ "test",
+ null,
+ "hello",
+ "world"
+ },
+ {
+ "test",
+ "hello",
+ null,
+ "world"
+ },
+ {
+ "test",
+ "hello",
+ "world",
+ null
+ }
+ };
+ }
+
+ private string[,] Issue1382b()
+ {
+ return new string[4, 4] {
+ {
+ "test",
+ "hello",
+ "world",
+ null
+ },
+ {
+ "test",
+ "hello",
+ null,
+ "world"
+ },
+ {
+ "test",
+ null,
+ "hello",
+ "world"
+ },
+ {
+ null,
+ "test",
+ "hello",
+ "world"
+ }
+ };
+ }
#endregion
#region Object initializers
@@ -1476,13 +1548,13 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests
#if CS60
X(Y(), new CustomList {
{
- 1,
- 2
+ "1",
+ "2"
}
});
#else
CustomList customList = new CustomList();
- customList.Add(1, 2);
+ customList.Add("1", "2");
X(Y(), customList);
#endif
}
@@ -1635,7 +1707,33 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests
[(object)value] = new S(value)
});
}
+
+ public static void Issue1390(IEnumerable tokens, bool alwaysAllowAdministrators, char wireDelimiter)
+ {
+#if OPT
+ List> obj = new List> {
+#else
+ List> list = new List> {
+#endif
+ {
+ "tokens",
+ string.Join(wireDelimiter.ToString(), tokens),
+ (Func)null
+ },
+ {
+ "alwaysAllowAdministrators",
+ alwaysAllowAdministrators.ToString(),
+ (Func)null
+ },
+ {
+ "delimiter",
+ wireDelimiter.ToString(),
+ (Func)null
+ }
+ };
+ }
+
#endif
#endregion
- }
+ }
}
\ No newline at end of file
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.il
index 1adbd8fd9..ce011b502 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.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 )
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
.permissionset reqmin
= {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}}
.hash algorithm 0x00008004
@@ -40,10 +40,23 @@
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 )
.method public hidebysig static void Add(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1 inst,
- int32 a,
- int32 b) cil managed
+ string a,
+ string b) cil managed
+ {
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 )
+ // Code size 2 (0x2)
+ .maxstack 8
+ IL_0000: nop
+ IL_0001: ret
+ } // end of method Extensions::Add
+
+ .method public hidebysig static void Add(class [mscorlib]System.Collections.Generic.IList`1> collection,
+ string key,
+ !!T 'value',
+ [opt] class [mscorlib]System.Func`2 convert) cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 )
+ .param [4] = nullref
// Code size 2 (0x2)
.maxstack 8
IL_0000: nop
@@ -1413,7 +1426,7 @@
IL_0006: ldc.i4.s 10
IL_0008: newarr [mscorlib]System.Int32
IL_000d: dup
- IL_000e: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x600000a-1'
+ IL_000e: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x600000b-1'
IL_0013: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0018: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1471,7 +1484,7 @@
IL_000f: ldc.i4.s 10
IL_0011: newarr [mscorlib]System.Int32
IL_0016: dup
- IL_0017: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x600000c-1'
+ IL_0017: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x600000d-1'
IL_001c: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0021: stelem.ref
@@ -1499,7 +1512,7 @@
IL_003b: ldc.i4.6
IL_003c: newarr [mscorlib]System.Int32
IL_0041: dup
- IL_0042: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=24' ''::'$$method0x600000c-2'
+ IL_0042: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=24' ''::'$$method0x600000d-2'
IL_0047: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_004c: stelem.ref
@@ -1762,7 +1775,7 @@
IL_0006: ldc.i4.8
IL_0007: newarr [mscorlib]System.Boolean
IL_000c: dup
- IL_000d: ldtoken field int64 ''::'$$method0x600000f-1'
+ IL_000d: ldtoken field int64 ''::'$$method0x6000010-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1780,7 +1793,7 @@
IL_0006: ldc.i4.s 10
IL_0008: newarr [mscorlib]System.Byte
IL_000d: dup
- IL_000e: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=10' ''::'$$method0x6000010-1'
+ IL_000e: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=10' ''::'$$method0x6000011-1'
IL_0013: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0018: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1798,7 +1811,7 @@
IL_0006: ldc.i4.8
IL_0007: newarr [mscorlib]System.SByte
IL_000c: dup
- IL_000d: ldtoken field int64 ''::'$$method0x6000011-1'
+ IL_000d: ldtoken field int64 ''::'$$method0x6000012-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1816,7 +1829,7 @@
IL_0006: ldc.i4.5
IL_0007: newarr [mscorlib]System.Int16
IL_000c: dup
- IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=10' ''::'$$method0x6000012-1'
+ IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=10' ''::'$$method0x6000013-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1834,7 +1847,7 @@
IL_0006: ldc.i4.6
IL_0007: newarr [mscorlib]System.UInt16
IL_000c: dup
- IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x6000013-1'
+ IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x6000014-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1852,7 +1865,7 @@
IL_0006: ldc.i4.s 10
IL_0008: newarr [mscorlib]System.Int32
IL_000d: dup
- IL_000e: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000014-1'
+ IL_000e: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000015-1'
IL_0013: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0018: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1870,7 +1883,7 @@
IL_0006: ldc.i4.s 10
IL_0008: newarr [mscorlib]System.UInt32
IL_000d: dup
- IL_000e: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000015-1'
+ IL_000e: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000016-1'
IL_0013: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0018: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1888,7 +1901,7 @@
IL_0006: ldc.i4.5
IL_0007: newarr [mscorlib]System.Int64
IL_000c: dup
- IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000016-1'
+ IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000017-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1906,7 +1919,7 @@
IL_0006: ldc.i4.s 10
IL_0008: newarr [mscorlib]System.UInt64
IL_000d: dup
- IL_000e: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=80' ''::'$$method0x6000017-1'
+ IL_000e: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=80' ''::'$$method0x6000018-1'
IL_0013: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0018: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1924,7 +1937,7 @@
IL_0006: ldc.i4.6
IL_0007: newarr [mscorlib]System.Single
IL_000c: dup
- IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=24' ''::'$$method0x6000018-1'
+ IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=24' ''::'$$method0x6000019-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1942,7 +1955,7 @@
IL_0006: ldc.i4.6
IL_0007: newarr [mscorlib]System.Double
IL_000c: dup
- IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=48' ''::'$$method0x6000019-1'
+ IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=48' ''::'$$method0x600001a-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -2088,7 +2101,7 @@
IL_0004: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_0009: dup
- IL_000a: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=256' ''::'$$method0x600001d-1'
+ IL_000a: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=256' ''::'$$method0x600001e-1'
IL_000f: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0014: stloc.0
@@ -2116,7 +2129,7 @@
IL_000c: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_0011: dup
- IL_0012: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-1'
+ IL_0012: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001f-1'
IL_0017: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_001c: stelem.ref
@@ -2127,7 +2140,7 @@
IL_0021: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_0026: dup
- IL_0027: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-2'
+ IL_0027: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001f-2'
IL_002c: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0031: stelem.ref
@@ -2138,7 +2151,7 @@
IL_0036: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_003b: dup
- IL_003c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-3'
+ IL_003c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001f-3'
IL_0041: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0046: stelem.ref
@@ -2149,7 +2162,7 @@
IL_004b: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_0050: dup
- IL_0051: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-4'
+ IL_0051: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001f-4'
IL_0056: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_005b: stelem.ref
@@ -2181,7 +2194,7 @@
int32,
int32)
IL_0012: dup
- IL_0013: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x600001f-1'
+ IL_0013: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x6000020-1'
IL_0018: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_001d: stelem.ref
@@ -2194,7 +2207,7 @@
int32,
int32)
IL_0028: dup
- IL_0029: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x600001f-2'
+ IL_0029: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x6000020-2'
IL_002e: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0033: stelem.ref
@@ -2395,6 +2408,251 @@
IL_0020: ret
} // end of method TestCases::Issue907_Test3
+ .method private hidebysig instance int32[]
+ Issue1383(int32 i,
+ int32[] 'array') cil managed
+ {
+ // Code size 33 (0x21)
+ .maxstack 4
+ .locals init (int32[] V_0)
+ IL_0000: nop
+ IL_0001: ldc.i4.4
+ IL_0002: newarr [mscorlib]System.Int32
+ IL_0007: starg.s 'array'
+ IL_0009: ldarg.2
+ IL_000a: ldarg.1
+ IL_000b: dup
+ IL_000c: ldc.i4.1
+ IL_000d: add
+ IL_000e: starg.s i
+ IL_0010: ldc.i4.1
+ IL_0011: stelem.i4
+ IL_0012: ldarg.2
+ IL_0013: ldarg.1
+ IL_0014: dup
+ IL_0015: ldc.i4.1
+ IL_0016: add
+ IL_0017: starg.s i
+ IL_0019: ldc.i4.2
+ IL_001a: stelem.i4
+ IL_001b: ldarg.2
+ IL_001c: stloc.0
+ IL_001d: br.s IL_001f
+
+ IL_001f: ldloc.0
+ IL_0020: ret
+ } // end of method TestCases::Issue1383
+
+ .method private hidebysig instance string[0...,0...]
+ Issue1382a() cil managed
+ {
+ // Code size 171 (0xab)
+ .maxstack 4
+ .locals init (string[0...,0...] V_0,
+ string[0...,0...] V_1)
+ IL_0000: nop
+ IL_0001: ldc.i4.4
+ IL_0002: ldc.i4.4
+ IL_0003: newobj instance void string[0...,0...]::.ctor(int32,
+ int32)
+ IL_0008: stloc.1
+ IL_0009: ldloc.1
+ IL_000a: ldc.i4.0
+ IL_000b: ldc.i4.1
+ IL_000c: ldstr "test"
+ IL_0011: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0016: ldloc.1
+ IL_0017: ldc.i4.0
+ IL_0018: ldc.i4.2
+ IL_0019: ldstr "hello"
+ IL_001e: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0023: ldloc.1
+ IL_0024: ldc.i4.0
+ IL_0025: ldc.i4.3
+ IL_0026: ldstr "world"
+ IL_002b: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0030: ldloc.1
+ IL_0031: ldc.i4.1
+ IL_0032: ldc.i4.0
+ IL_0033: ldstr "test"
+ IL_0038: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_003d: ldloc.1
+ IL_003e: ldc.i4.1
+ IL_003f: ldc.i4.2
+ IL_0040: ldstr "hello"
+ IL_0045: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_004a: ldloc.1
+ IL_004b: ldc.i4.1
+ IL_004c: ldc.i4.3
+ IL_004d: ldstr "world"
+ IL_0052: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0057: ldloc.1
+ IL_0058: ldc.i4.2
+ IL_0059: ldc.i4.0
+ IL_005a: ldstr "test"
+ IL_005f: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0064: ldloc.1
+ IL_0065: ldc.i4.2
+ IL_0066: ldc.i4.1
+ IL_0067: ldstr "hello"
+ IL_006c: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0071: ldloc.1
+ IL_0072: ldc.i4.2
+ IL_0073: ldc.i4.3
+ IL_0074: ldstr "world"
+ IL_0079: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_007e: ldloc.1
+ IL_007f: ldc.i4.3
+ IL_0080: ldc.i4.0
+ IL_0081: ldstr "test"
+ IL_0086: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_008b: ldloc.1
+ IL_008c: ldc.i4.3
+ IL_008d: ldc.i4.1
+ IL_008e: ldstr "hello"
+ IL_0093: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0098: ldloc.1
+ IL_0099: ldc.i4.3
+ IL_009a: ldc.i4.2
+ IL_009b: ldstr "world"
+ IL_00a0: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_00a5: ldloc.1
+ IL_00a6: stloc.0
+ IL_00a7: br.s IL_00a9
+
+ IL_00a9: ldloc.0
+ IL_00aa: ret
+ } // end of method TestCases::Issue1382a
+
+ .method private hidebysig instance string[0...,0...]
+ Issue1382b() cil managed
+ {
+ // Code size 171 (0xab)
+ .maxstack 4
+ .locals init (string[0...,0...] V_0,
+ string[0...,0...] V_1)
+ IL_0000: nop
+ IL_0001: ldc.i4.4
+ IL_0002: ldc.i4.4
+ IL_0003: newobj instance void string[0...,0...]::.ctor(int32,
+ int32)
+ IL_0008: stloc.1
+ IL_0009: ldloc.1
+ IL_000a: ldc.i4.0
+ IL_000b: ldc.i4.0
+ IL_000c: ldstr "test"
+ IL_0011: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0016: ldloc.1
+ IL_0017: ldc.i4.0
+ IL_0018: ldc.i4.1
+ IL_0019: ldstr "hello"
+ IL_001e: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0023: ldloc.1
+ IL_0024: ldc.i4.0
+ IL_0025: ldc.i4.2
+ IL_0026: ldstr "world"
+ IL_002b: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0030: ldloc.1
+ IL_0031: ldc.i4.1
+ IL_0032: ldc.i4.0
+ IL_0033: ldstr "test"
+ IL_0038: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_003d: ldloc.1
+ IL_003e: ldc.i4.1
+ IL_003f: ldc.i4.1
+ IL_0040: ldstr "hello"
+ IL_0045: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_004a: ldloc.1
+ IL_004b: ldc.i4.1
+ IL_004c: ldc.i4.3
+ IL_004d: ldstr "world"
+ IL_0052: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0057: ldloc.1
+ IL_0058: ldc.i4.2
+ IL_0059: ldc.i4.0
+ IL_005a: ldstr "test"
+ IL_005f: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0064: ldloc.1
+ IL_0065: ldc.i4.2
+ IL_0066: ldc.i4.2
+ IL_0067: ldstr "hello"
+ IL_006c: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0071: ldloc.1
+ IL_0072: ldc.i4.2
+ IL_0073: ldc.i4.3
+ IL_0074: ldstr "world"
+ IL_0079: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_007e: ldloc.1
+ IL_007f: ldc.i4.3
+ IL_0080: ldc.i4.1
+ IL_0081: ldstr "test"
+ IL_0086: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_008b: ldloc.1
+ IL_008c: ldc.i4.3
+ IL_008d: ldc.i4.2
+ IL_008e: ldstr "hello"
+ IL_0093: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0098: ldloc.1
+ IL_0099: ldc.i4.3
+ IL_009a: ldc.i4.3
+ IL_009b: ldstr "world"
+ IL_00a0: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_00a5: ldloc.1
+ IL_00a6: stloc.0
+ IL_00a7: br.s IL_00a9
+
+ IL_00a9: ldloc.0
+ IL_00aa: ret
+ } // end of method TestCases::Issue1382b
+
.method public hidebysig instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/C
Test1() cil managed
{
@@ -3170,7 +3428,7 @@
IL_0001: ldc.i4.4
IL_0002: newarr [mscorlib]System.Byte
IL_0007: dup
- IL_0008: ldtoken field int32 ''::'$$method0x6000041-1'
+ IL_0008: ldtoken field int32 ''::'$$method0x6000045-1'
IL_000d: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0012: stloc.0
@@ -3295,34 +3553,25 @@
.method public hidebysig static void ExtensionMethodInCollectionInitializer() cil managed
{
- // Code size 43 (0x2b)
- .maxstack 4
- .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1 V_0,
- int32[] V_1)
+ // Code size 37 (0x25)
+ .maxstack 3
+ .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1 V_0)
IL_0000: nop
IL_0001: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1::.ctor()
IL_0006: stloc.0
IL_0007: ldloc.0
- IL_0008: ldc.i4.2
- IL_0009: newarr [mscorlib]System.Int32
- IL_000e: stloc.1
- IL_000f: ldloc.1
- IL_0010: ldc.i4.0
- IL_0011: ldc.i4.1
- IL_0012: stelem.i4
- IL_0013: ldloc.1
- IL_0014: ldc.i4.1
- IL_0015: ldc.i4.2
- IL_0016: stelem.i4
- IL_0017: ldloc.1
- IL_0018: callvirt instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1::Add(int32[])
- IL_001d: nop
- IL_001e: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Y()
- IL_0023: ldloc.0
- IL_0024: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
+ IL_0008: ldstr "1"
+ IL_000d: ldstr "2"
+ IL_0012: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.Extensions::Add(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1,
+ string,
+ string)
+ IL_0017: nop
+ IL_0018: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Y()
+ IL_001d: ldloc.0
+ IL_001e: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
object)
- IL_0029: nop
- IL_002a: ret
+ IL_0023: nop
+ IL_0024: ret
} // end of method TestCases::ExtensionMethodInCollectionInitializer
.method public hidebysig static void NoCollectionInitializerBecauseOfTypeArguments() cil managed
@@ -4435,7 +4684,7 @@
IL_0787: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_078c: dup
- IL_078d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=36' ''::'$$method0x6000090-1'
+ IL_078d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=36' ''::'$$method0x6000094-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
@@ -4518,29 +4767,29 @@
.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
- .field static assembly int64 '$$method0x600000f-1' at I_00002418
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=10' '$$method0x6000010-1' at I_00002440
- .field static assembly int64 '$$method0x6000011-1' at I_00002470
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=10' '$$method0x6000012-1' at I_00002498
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x6000013-1' at I_000024C8
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x6000014-1' at I_000024F8
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x6000015-1' at I_00002540
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x6000016-1' at I_00002588
- .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 int32 '$$method0x6000041-1' at I_00003318
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=36' '$$method0x6000090-1' at I_00003600
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x600000b-1' at I_000020C0
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x600000d-1' at I_00002138
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=24' '$$method0x600000d-2' at I_00002160
+ .field static assembly int64 '$$method0x6000010-1' at I_00002418
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=10' '$$method0x6000011-1' at I_00002440
+ .field static assembly int64 '$$method0x6000012-1' at I_00002470
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=10' '$$method0x6000013-1' at I_00002498
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x6000014-1' at I_000024C8
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x6000015-1' at I_000024F8
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x6000016-1' at I_00002540
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x6000017-1' at I_00002588
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=80' '$$method0x6000018-1' at I_000025D0
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=24' '$$method0x6000019-1' at I_00002640
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=48' '$$method0x600001a-1' at I_00002678
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=256' '$$method0x600001e-1' at I_000027C0
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001f-1' at I_000028E8
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001f-2' at I_00002928
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001f-3' at I_00002968
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=64' '$$method0x600001f-4' at I_000029A8
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=72' '$$method0x6000020-1' at I_00002A58
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=72' '$$method0x6000020-2' at I_00002AA0
+ .field static assembly int32 '$$method0x6000045-1' at I_000034B8
+ .field static assembly valuetype ''/'__StaticArrayInitTypeSize=36' '$$method0x6000094-1' at I_000037A0
} // end of class ''
@@ -4648,10 +4897,10 @@
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_00003318 = bytearray (
+.data cil I_000034B8 = bytearray (
00 01 02 FF)
-.data cil I_0000331C = int8[228]
-.data cil I_00003600 = bytearray (
+.data cil I_000034BC = int8[4]
+.data cil I_000037A0 = 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)
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.il
index ef48d40d0..d430a21db 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.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 )
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
.permissionset reqmin
= {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}}
.hash algorithm 0x00008004
@@ -40,10 +40,22 @@
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 )
.method public hidebysig static void Add(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1 inst,
- int32 a,
- int32 b) cil managed
+ string a,
+ string b) cil managed
+ {
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 )
+ // Code size 1 (0x1)
+ .maxstack 8
+ IL_0000: ret
+ } // end of method Extensions::Add
+
+ .method public hidebysig static void Add(class [mscorlib]System.Collections.Generic.IList`1> collection,
+ string key,
+ !!T 'value',
+ [opt] class [mscorlib]System.Func`2 convert) cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 )
+ .param [4] = nullref
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
@@ -1226,7 +1238,7 @@
IL_0005: ldc.i4.s 10
IL_0007: newarr [mscorlib]System.Int32
IL_000c: dup
- IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x600000a-1'
+ IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x600000b-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1280,7 +1292,7 @@
IL_000e: ldc.i4.s 10
IL_0010: newarr [mscorlib]System.Int32
IL_0015: dup
- IL_0016: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x600000c-1'
+ IL_0016: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x600000d-1'
IL_001b: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0020: stelem.ref
@@ -1308,7 +1320,7 @@
IL_003a: ldc.i4.6
IL_003b: newarr [mscorlib]System.Int32
IL_0040: dup
- IL_0041: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=24' ''::'$$method0x600000c-2'
+ IL_0041: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=24' ''::'$$method0x600000d-2'
IL_0046: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_004b: stelem.ref
@@ -1571,7 +1583,7 @@
IL_0005: ldc.i4.8
IL_0006: newarr [mscorlib]System.Boolean
IL_000b: dup
- IL_000c: ldtoken field int64 ''::'$$method0x600000f-1'
+ IL_000c: ldtoken field int64 ''::'$$method0x6000010-1'
IL_0011: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0016: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1587,7 +1599,7 @@
IL_0005: ldc.i4.s 10
IL_0007: newarr [mscorlib]System.Byte
IL_000c: dup
- IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=10' ''::'$$method0x6000010-1'
+ IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=10' ''::'$$method0x6000011-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1603,7 +1615,7 @@
IL_0005: ldc.i4.8
IL_0006: newarr [mscorlib]System.SByte
IL_000b: dup
- IL_000c: ldtoken field int64 ''::'$$method0x6000011-1'
+ IL_000c: ldtoken field int64 ''::'$$method0x6000012-1'
IL_0011: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0016: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1619,7 +1631,7 @@
IL_0005: ldc.i4.5
IL_0006: newarr [mscorlib]System.Int16
IL_000b: dup
- IL_000c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=10' ''::'$$method0x6000012-1'
+ IL_000c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=10' ''::'$$method0x6000013-1'
IL_0011: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0016: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1635,7 +1647,7 @@
IL_0005: ldc.i4.6
IL_0006: newarr [mscorlib]System.UInt16
IL_000b: dup
- IL_000c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x6000013-1'
+ IL_000c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=12' ''::'$$method0x6000014-1'
IL_0011: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0016: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1651,7 +1663,7 @@
IL_0005: ldc.i4.s 10
IL_0007: newarr [mscorlib]System.Int32
IL_000c: dup
- IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000014-1'
+ IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000015-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1667,7 +1679,7 @@
IL_0005: ldc.i4.s 10
IL_0007: newarr [mscorlib]System.UInt32
IL_000c: dup
- IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000015-1'
+ IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000016-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1683,7 +1695,7 @@
IL_0005: ldc.i4.5
IL_0006: newarr [mscorlib]System.Int64
IL_000b: dup
- IL_000c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000016-1'
+ IL_000c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=40' ''::'$$method0x6000017-1'
IL_0011: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0016: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1699,7 +1711,7 @@
IL_0005: ldc.i4.s 10
IL_0007: newarr [mscorlib]System.UInt64
IL_000c: dup
- IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=80' ''::'$$method0x6000017-1'
+ IL_000d: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=80' ''::'$$method0x6000018-1'
IL_0012: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0017: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1715,7 +1727,7 @@
IL_0005: ldc.i4.6
IL_0006: newarr [mscorlib]System.Single
IL_000b: dup
- IL_000c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=24' ''::'$$method0x6000018-1'
+ IL_000c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=24' ''::'$$method0x6000019-1'
IL_0011: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0016: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1731,7 +1743,7 @@
IL_0005: ldc.i4.6
IL_0006: newarr [mscorlib]System.Double
IL_000b: dup
- IL_000c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=48' ''::'$$method0x6000019-1'
+ IL_000c: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=48' ''::'$$method0x600001a-1'
IL_0011: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0016: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
@@ -1868,7 +1880,7 @@
IL_0003: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_0008: dup
- IL_0009: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=256' ''::'$$method0x600001d-1'
+ IL_0009: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=256' ''::'$$method0x600001e-1'
IL_000e: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0013: ret
@@ -1890,7 +1902,7 @@
IL_000b: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_0010: dup
- IL_0011: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-1'
+ IL_0011: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001f-1'
IL_0016: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_001b: stelem.ref
@@ -1901,7 +1913,7 @@
IL_0020: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_0025: dup
- IL_0026: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-2'
+ IL_0026: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001f-2'
IL_002b: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0030: stelem.ref
@@ -1912,7 +1924,7 @@
IL_0035: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_003a: dup
- IL_003b: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-3'
+ IL_003b: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001f-3'
IL_0040: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0045: stelem.ref
@@ -1923,7 +1935,7 @@
IL_004a: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_004f: dup
- IL_0050: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001e-4'
+ IL_0050: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=64' ''::'$$method0x600001f-4'
IL_0055: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_005a: stelem.ref
@@ -1949,7 +1961,7 @@
int32,
int32)
IL_0011: dup
- IL_0012: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x600001f-1'
+ IL_0012: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x6000020-1'
IL_0017: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_001c: stelem.ref
@@ -1962,7 +1974,7 @@
int32,
int32)
IL_0027: dup
- IL_0028: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x600001f-2'
+ IL_0028: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=72' ''::'$$method0x6000020-2'
IL_002d: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0032: stelem.ref
@@ -2141,6 +2153,233 @@
IL_001d: ret
} // end of method TestCases::Issue907_Test3
+ .method private hidebysig instance int32[]
+ Issue1383(int32 i,
+ int32[] 'array') cil managed
+ {
+ // Code size 28 (0x1c)
+ .maxstack 8
+ IL_0000: ldc.i4.4
+ IL_0001: newarr [mscorlib]System.Int32
+ IL_0006: starg.s 'array'
+ IL_0008: ldarg.2
+ IL_0009: ldarg.1
+ IL_000a: dup
+ IL_000b: ldc.i4.1
+ IL_000c: add
+ IL_000d: starg.s i
+ IL_000f: ldc.i4.1
+ IL_0010: stelem.i4
+ IL_0011: ldarg.2
+ IL_0012: ldarg.1
+ IL_0013: dup
+ IL_0014: ldc.i4.1
+ IL_0015: add
+ IL_0016: starg.s i
+ IL_0018: ldc.i4.2
+ IL_0019: stelem.i4
+ IL_001a: ldarg.2
+ IL_001b: ret
+ } // end of method TestCases::Issue1383
+
+ .method private hidebysig instance string[0...,0...]
+ Issue1382a() cil managed
+ {
+ // Code size 166 (0xa6)
+ .maxstack 4
+ .locals init (string[0...,0...] V_0)
+ IL_0000: ldc.i4.4
+ IL_0001: ldc.i4.4
+ IL_0002: newobj instance void string[0...,0...]::.ctor(int32,
+ int32)
+ IL_0007: stloc.0
+ IL_0008: ldloc.0
+ IL_0009: ldc.i4.0
+ IL_000a: ldc.i4.1
+ IL_000b: ldstr "test"
+ IL_0010: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0015: ldloc.0
+ IL_0016: ldc.i4.0
+ IL_0017: ldc.i4.2
+ IL_0018: ldstr "hello"
+ IL_001d: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0022: ldloc.0
+ IL_0023: ldc.i4.0
+ IL_0024: ldc.i4.3
+ IL_0025: ldstr "world"
+ IL_002a: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_002f: ldloc.0
+ IL_0030: ldc.i4.1
+ IL_0031: ldc.i4.0
+ IL_0032: ldstr "test"
+ IL_0037: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_003c: ldloc.0
+ IL_003d: ldc.i4.1
+ IL_003e: ldc.i4.2
+ IL_003f: ldstr "hello"
+ IL_0044: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0049: ldloc.0
+ IL_004a: ldc.i4.1
+ IL_004b: ldc.i4.3
+ IL_004c: ldstr "world"
+ IL_0051: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0056: ldloc.0
+ IL_0057: ldc.i4.2
+ IL_0058: ldc.i4.0
+ IL_0059: ldstr "test"
+ IL_005e: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0063: ldloc.0
+ IL_0064: ldc.i4.2
+ IL_0065: ldc.i4.1
+ IL_0066: ldstr "hello"
+ IL_006b: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0070: ldloc.0
+ IL_0071: ldc.i4.2
+ IL_0072: ldc.i4.3
+ IL_0073: ldstr "world"
+ IL_0078: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_007d: ldloc.0
+ IL_007e: ldc.i4.3
+ IL_007f: ldc.i4.0
+ IL_0080: ldstr "test"
+ IL_0085: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_008a: ldloc.0
+ IL_008b: ldc.i4.3
+ IL_008c: ldc.i4.1
+ IL_008d: ldstr "hello"
+ IL_0092: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0097: ldloc.0
+ IL_0098: ldc.i4.3
+ IL_0099: ldc.i4.2
+ IL_009a: ldstr "world"
+ IL_009f: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_00a4: ldloc.0
+ IL_00a5: ret
+ } // end of method TestCases::Issue1382a
+
+ .method private hidebysig instance string[0...,0...]
+ Issue1382b() cil managed
+ {
+ // Code size 166 (0xa6)
+ .maxstack 4
+ .locals init (string[0...,0...] V_0)
+ IL_0000: ldc.i4.4
+ IL_0001: ldc.i4.4
+ IL_0002: newobj instance void string[0...,0...]::.ctor(int32,
+ int32)
+ IL_0007: stloc.0
+ IL_0008: ldloc.0
+ IL_0009: ldc.i4.0
+ IL_000a: ldc.i4.0
+ IL_000b: ldstr "test"
+ IL_0010: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0015: ldloc.0
+ IL_0016: ldc.i4.0
+ IL_0017: ldc.i4.1
+ IL_0018: ldstr "hello"
+ IL_001d: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0022: ldloc.0
+ IL_0023: ldc.i4.0
+ IL_0024: ldc.i4.2
+ IL_0025: ldstr "world"
+ IL_002a: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_002f: ldloc.0
+ IL_0030: ldc.i4.1
+ IL_0031: ldc.i4.0
+ IL_0032: ldstr "test"
+ IL_0037: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_003c: ldloc.0
+ IL_003d: ldc.i4.1
+ IL_003e: ldc.i4.1
+ IL_003f: ldstr "hello"
+ IL_0044: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0049: ldloc.0
+ IL_004a: ldc.i4.1
+ IL_004b: ldc.i4.3
+ IL_004c: ldstr "world"
+ IL_0051: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0056: ldloc.0
+ IL_0057: ldc.i4.2
+ IL_0058: ldc.i4.0
+ IL_0059: ldstr "test"
+ IL_005e: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0063: ldloc.0
+ IL_0064: ldc.i4.2
+ IL_0065: ldc.i4.2
+ IL_0066: ldstr "hello"
+ IL_006b: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0070: ldloc.0
+ IL_0071: ldc.i4.2
+ IL_0072: ldc.i4.3
+ IL_0073: ldstr "world"
+ IL_0078: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_007d: ldloc.0
+ IL_007e: ldc.i4.3
+ IL_007f: ldc.i4.1
+ IL_0080: ldstr "test"
+ IL_0085: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_008a: ldloc.0
+ IL_008b: ldc.i4.3
+ IL_008c: ldc.i4.2
+ IL_008d: ldstr "hello"
+ IL_0092: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_0097: ldloc.0
+ IL_0098: ldc.i4.3
+ IL_0099: ldc.i4.3
+ IL_009a: ldstr "world"
+ IL_009f: call instance void string[0...,0...]::Set(int32,
+ int32,
+ string)
+ IL_00a4: ldloc.0
+ IL_00a5: ret
+ } // end of method TestCases::Issue1382b
+
.method public hidebysig instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/C
Test1() cil managed
{
@@ -2780,7 +3019,7 @@
IL_0000: ldc.i4.4
IL_0001: newarr [mscorlib]System.Byte
IL_0006: dup
- IL_0007: ldtoken field int32 ''::'$$method0x6000041-1'
+ IL_0007: ldtoken field int32 ''::'$$method0x6000045-1'
IL_000c: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0011: ret
@@ -2879,31 +3118,22 @@
.method public hidebysig static void ExtensionMethodInCollectionInitializer() cil managed
{
- // Code size 40 (0x28)
- .maxstack 4
- .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1 V_0,
- int32[] V_1)
+ // Code size 34 (0x22)
+ .maxstack 3
+ .locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1 V_0)
IL_0000: newobj instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1::.ctor()
IL_0005: stloc.0
IL_0006: ldloc.0
- IL_0007: ldc.i4.2
- IL_0008: newarr [mscorlib]System.Int32
- IL_000d: stloc.1
- IL_000e: ldloc.1
- IL_000f: ldc.i4.0
- IL_0010: ldc.i4.1
- IL_0011: stelem.i4
- IL_0012: ldloc.1
- IL_0013: ldc.i4.1
- IL_0014: ldc.i4.2
- IL_0015: stelem.i4
- IL_0016: ldloc.1
- IL_0017: callvirt instance void class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1::Add(int32[])
- IL_001c: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Y()
- IL_0021: ldloc.0
- IL_0022: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
+ IL_0007: ldstr "1"
+ IL_000c: ldstr "2"
+ IL_0011: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.Extensions::Add(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/CustomList`1,
+ string,
+ string)
+ IL_0016: call object ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::Y()
+ IL_001b: ldloc.0
+ IL_001c: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases::X(object,
object)
- IL_0027: ret
+ IL_0021: ret
} // end of method TestCases::ExtensionMethodInCollectionInitializer
.method public hidebysig static void NoCollectionInitializerBecauseOfTypeArguments() cil managed
@@ -3991,7 +4221,7 @@
IL_07df: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_07e4: dup
- IL_07e5: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=36' ''::'$$method0x6000090-1'
+ IL_07e5: ldtoken field valuetype ''/'__StaticArrayInitTypeSize=36' ''::'$$method0x6000094-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
@@ -4074,86 +4304,86 @@
.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
- .field static assembly int64 '$$method0x600000f-1' at I_000023D0
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=10' '$$method0x6000010-1' at I_000023F8
- .field static assembly int64 '$$method0x6000011-1' at I_00002420
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=10' '$$method0x6000012-1' at I_00002448
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=12' '$$method0x6000013-1' at I_00002470
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x6000014-1' at I_000024A0
- .field static assembly valuetype ''/'__StaticArrayInitTypeSize=40' '$$method0x6000015-1' at I_000024E8
- .field static assembly valuetype '