Browse Source

Improve TransformArrayInitializers: allow default entries at the end of a dimension > 0.

pull/1397/head
Siegfried Pammer 6 years ago
parent
commit
3d5b300602
  1. 60
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs
  2. 224
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.il
  3. 213
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.il
  4. 303
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.roslyn.il
  5. 315
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.roslyn.il
  6. 7
      ICSharpCode.Decompiler/IL/Transforms/TransformArrayInitializers.cs

60
ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs

@ -1160,6 +1160,66 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests @@ -1160,6 +1160,66 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests
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

224
ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.il

@ -2430,6 +2430,216 @@ @@ -2430,6 +2430,216 @@
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
{
@ -3205,7 +3415,7 @@ @@ -3205,7 +3415,7 @@
IL_0001: ldc.i4.4
IL_0002: newarr [mscorlib]System.Byte
IL_0007: dup
IL_0008: ldtoken field int32 '<PrivateImplementationDetails>'::'$$method0x6000042-1'
IL_0008: ldtoken field int32 '<PrivateImplementationDetails>'::'$$method0x6000044-1'
IL_000d: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0012: stloc.0
@ -4470,7 +4680,7 @@ @@ -4470,7 +4680,7 @@
IL_0787: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_078c: dup
IL_078d: ldtoken field valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' '<PrivateImplementationDetails>'::'$$method0x6000091-1'
IL_078d: ldtoken field valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' '<PrivateImplementationDetails>'::'$$method0x6000093-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
@ -4574,8 +4784,8 @@ @@ -4574,8 +4784,8 @@
.field static assembly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=64' '$$method0x600001e-4' at I_000029A8
.field static assembly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '$$method0x600001f-1' at I_00002A58
.field static assembly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '$$method0x600001f-2' at I_00002AA0
.field static assembly int32 '$$method0x6000042-1' at I_00003348
.field static assembly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' '$$method0x6000091-1' at I_00003630
.field static assembly int32 '$$method0x6000044-1' at I_000034B8
.field static assembly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' '$$method0x6000093-1' at I_000037A0
} // end of class '<PrivateImplementationDetails>'
@ -4683,10 +4893,10 @@ @@ -4683,10 +4893,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_00003348 = bytearray (
.data cil I_000034B8 = bytearray (
00 01 02 FF)
.data cil I_0000334C = int8[4]
.data cil I_00003630 = 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)

213
ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.il

@ -2170,6 +2170,204 @@ @@ -2170,6 +2170,204 @@
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
{
@ -2809,7 +3007,7 @@ @@ -2809,7 +3007,7 @@
IL_0000: ldc.i4.4
IL_0001: newarr [mscorlib]System.Byte
IL_0006: dup
IL_0007: ldtoken field int32 '<PrivateImplementationDetails>'::'$$method0x6000042-1'
IL_0007: ldtoken field int32 '<PrivateImplementationDetails>'::'$$method0x6000044-1'
IL_000c: call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array,
valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0011: ret
@ -4020,7 +4218,7 @@ @@ -4020,7 +4218,7 @@
IL_07df: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_07e4: dup
IL_07e5: ldtoken field valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' '<PrivateImplementationDetails>'::'$$method0x6000091-1'
IL_07e5: ldtoken field valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' '<PrivateImplementationDetails>'::'$$method0x6000093-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
@ -4124,8 +4322,8 @@ @@ -4124,8 +4322,8 @@
.field static assembly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=64' '$$method0x600001e-4' at I_00002938
.field static assembly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '$$method0x600001f-1' at I_000029E8
.field static assembly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '$$method0x600001f-2' at I_00002A30
.field static assembly int32 '$$method0x6000042-1' at I_00003220
.field static assembly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' '$$method0x6000091-1' at I_000034C0
.field static assembly int32 '$$method0x6000044-1' at I_00003388
.field static assembly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' '$$method0x6000093-1' at I_00003628
} // end of class '<PrivateImplementationDetails>'
@ -4231,11 +4429,10 @@ @@ -4231,11 +4429,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_00002A78 = int8[8]
.data cil I_00003220 = bytearray (
.data cil I_00003388 = bytearray (
00 01 02 FF)
.data cil I_00003224 = int8[28]
.data cil I_000034C0 = bytearray (
.data cil I_0000338C = int8[4]
.data cil I_00003628 = 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)

303
ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.opt.roslyn.il

@ -1188,8 +1188,8 @@ @@ -1188,8 +1188,8 @@
{
.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__63_0'
.field public static class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> '<>9__77_0'
.field public static class [mscorlib]System.EventHandler '<>9__65_0'
.field public static class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> '<>9__79_0'
.method private hidebysig specialname rtspecialname static
void .cctor() cil managed
{
@ -1211,17 +1211,17 @@ @@ -1211,17 +1211,17 @@
} // end of method '<>c'::.ctor
.method assembly hidebysig instance void
'<NotAnObjectInitializerWithEvent>b__63_0'(object '<p0>',
'<NotAnObjectInitializerWithEvent>b__65_0'(object '<p0>',
class [mscorlib]System.EventArgs '<p1>') cil managed
{
// Code size 6 (0x6)
.maxstack 8
IL_0000: call void [mscorlib]System.Console::WriteLine()
IL_0005: ret
} // end of method '<>c'::'<NotAnObjectInitializerWithEvent>b__63_0'
} // end of method '<>c'::'<NotAnObjectInitializerWithEvent>b__65_0'
.method assembly hidebysig instance bool
'<Issue270_NestedInitialisers>b__77_0'(class [mscorlib]System.Globalization.NumberFormatInfo format) cil managed
'<Issue270_NestedInitialisers>b__79_0'(class [mscorlib]System.Globalization.NumberFormatInfo format) cil managed
{
// Code size 17 (0x11)
.maxstack 8
@ -1231,7 +1231,7 @@ @@ -1231,7 +1231,7 @@
IL_000b: call bool [mscorlib]System.String::op_Equality(string,
string)
IL_0010: ret
} // end of method '<>c'::'<Issue270_NestedInitialisers>b__77_0'
} // end of method '<>c'::'<Issue270_NestedInitialisers>b__79_0'
} // end of class '<>c'
@ -2157,6 +2157,198 @@ @@ -2157,6 +2157,198 @@
IL_001b: ret
} // end of method TestCases::Issue1383
.method private hidebysig instance string[0...,0...]
Issue1382a() cil managed
{
// Code size 164 (0xa4)
.maxstack 5
IL_0000: ldc.i4.4
IL_0001: ldc.i4.4
IL_0002: newobj instance void string[0...,0...]::.ctor(int32,
int32)
IL_0007: dup
IL_0008: ldc.i4.0
IL_0009: ldc.i4.1
IL_000a: ldstr "test"
IL_000f: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0014: dup
IL_0015: ldc.i4.0
IL_0016: ldc.i4.2
IL_0017: ldstr "hello"
IL_001c: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0021: dup
IL_0022: ldc.i4.0
IL_0023: ldc.i4.3
IL_0024: ldstr "world"
IL_0029: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_002e: dup
IL_002f: ldc.i4.1
IL_0030: ldc.i4.0
IL_0031: ldstr "test"
IL_0036: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_003b: dup
IL_003c: ldc.i4.1
IL_003d: ldc.i4.2
IL_003e: ldstr "hello"
IL_0043: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0048: dup
IL_0049: ldc.i4.1
IL_004a: ldc.i4.3
IL_004b: ldstr "world"
IL_0050: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0055: dup
IL_0056: ldc.i4.2
IL_0057: ldc.i4.0
IL_0058: ldstr "test"
IL_005d: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0062: dup
IL_0063: ldc.i4.2
IL_0064: ldc.i4.1
IL_0065: ldstr "hello"
IL_006a: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_006f: dup
IL_0070: ldc.i4.2
IL_0071: ldc.i4.3
IL_0072: ldstr "world"
IL_0077: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_007c: dup
IL_007d: ldc.i4.3
IL_007e: ldc.i4.0
IL_007f: ldstr "test"
IL_0084: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0089: dup
IL_008a: ldc.i4.3
IL_008b: ldc.i4.1
IL_008c: ldstr "hello"
IL_0091: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0096: dup
IL_0097: ldc.i4.3
IL_0098: ldc.i4.2
IL_0099: ldstr "world"
IL_009e: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_00a3: ret
} // end of method TestCases::Issue1382a
.method private hidebysig instance string[0...,0...]
Issue1382b() cil managed
{
// Code size 164 (0xa4)
.maxstack 5
IL_0000: ldc.i4.4
IL_0001: ldc.i4.4
IL_0002: newobj instance void string[0...,0...]::.ctor(int32,
int32)
IL_0007: dup
IL_0008: ldc.i4.0
IL_0009: ldc.i4.0
IL_000a: ldstr "test"
IL_000f: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0014: dup
IL_0015: ldc.i4.0
IL_0016: ldc.i4.1
IL_0017: ldstr "hello"
IL_001c: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0021: dup
IL_0022: ldc.i4.0
IL_0023: ldc.i4.2
IL_0024: ldstr "world"
IL_0029: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_002e: dup
IL_002f: ldc.i4.1
IL_0030: ldc.i4.0
IL_0031: ldstr "test"
IL_0036: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_003b: dup
IL_003c: ldc.i4.1
IL_003d: ldc.i4.1
IL_003e: ldstr "hello"
IL_0043: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0048: dup
IL_0049: ldc.i4.1
IL_004a: ldc.i4.3
IL_004b: ldstr "world"
IL_0050: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0055: dup
IL_0056: ldc.i4.2
IL_0057: ldc.i4.0
IL_0058: ldstr "test"
IL_005d: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0062: dup
IL_0063: ldc.i4.2
IL_0064: ldc.i4.2
IL_0065: ldstr "hello"
IL_006a: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_006f: dup
IL_0070: ldc.i4.2
IL_0071: ldc.i4.3
IL_0072: ldstr "world"
IL_0077: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_007c: dup
IL_007d: ldc.i4.3
IL_007e: ldc.i4.1
IL_007f: ldstr "test"
IL_0084: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0089: dup
IL_008a: ldc.i4.3
IL_008b: ldc.i4.2
IL_008c: ldstr "hello"
IL_0091: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_0096: dup
IL_0097: ldc.i4.3
IL_0098: ldc.i4.3
IL_0099: ldstr "world"
IL_009e: call instance void string[0...,0...]::Set(int32,
int32,
string)
IL_00a3: ret
} // end of method TestCases::Issue1382b
.method public hidebysig instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/C
Test1() cil managed
{
@ -2303,18 +2495,18 @@ @@ -2303,18 +2495,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__63_0'
IL_0007: ldsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__65_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'::'<NotAnObjectInitializerWithEvent>b__63_0'(object,
IL_0015: ldftn instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<NotAnObjectInitializerWithEvent>b__65_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__63_0'
IL_0021: stsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__65_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
@ -2651,17 +2843,17 @@ @@ -2651,17 +2843,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<class [mscorlib]System.Globalization.NumberFormatInfo,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__77_0'
IL_003a: ldsfld class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__79_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'::'<Issue270_NestedInitialisers>b__77_0'(class [mscorlib]System.Globalization.NumberFormatInfo)
IL_0048: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<Issue270_NestedInitialisers>b__79_0'(class [mscorlib]System.Globalization.NumberFormatInfo)
IL_004e: newobj instance void class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool>::.ctor(object,
native int)
IL_0053: dup
IL_0054: stsfld class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__77_0'
IL_0054: stsfld class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__79_0'
IL_0059: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> [System.Core]System.Linq.Enumerable::Where<class [mscorlib]System.Globalization.NumberFormatInfo>(class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>,
class [mscorlib]System.Func`2<!!0,bool>)
IL_005e: call !!0 [System.Core]System.Linq.Enumerable::First<class [mscorlib]System.Globalization.NumberFormatInfo>(class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
@ -4075,67 +4267,68 @@ @@ -4075,67 +4267,68 @@
.size 256
} // end of class '__StaticArrayInitTypeSize=256'
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '1535117EC92E41D4A6B7CA00F965357B05B5DC35' at I_00006C8C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=10' '20E3FF489634E18F3F7EB292AD504DBAE9519293' at I_00006CD4
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '39E94835525CF7B71CD4595742EF462642FBF1B2' at I_00006CE4
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=10' '56D9EEC8EF899644C40B9BE9D886DF2367A5D078' at I_00006D2C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=12' '735E5A21849E86F68D220F06163E8C5C6376B9C9' at I_00006D3C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=64' '7C39B7B06DD624A17F875AB8E9651554BE6E74D2' at I_00006D4C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' '8D903ECAD8D9D75B3183B23AF79F6D2E607369E3' at I_00006D8C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=80' '9B1F6E56D755443CC39C1969CE38FD41FD4EF4B7' at I_00006DB4
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=256' A1EA7DC3FE43B3A54F5B729A92B92AF54181A3EB at I_00006E04
.field static assembly initonly int64 A6296CAC471BE2954899600137940479D8073C7C at I_00006F04
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' B62E59D20E3D69F06A6D9BD5E3C518FF7093EDAB at I_00006F0C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' B9583930B842DBCEF0D7B8E57D4D3F1E8055C39E at I_00006F34
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=24' C4E70AB31EF6C8908F896CAD1C6BC75F7FA65E27 at I_00006F5C
.field static assembly initonly int32 C62C27924F4C967F5EDDB1850C091D54C7A2AB58 at I_00006F74
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=48' DC7043B0114737ACE19A23DD755893795FD48A23 at I_00006F7C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=64' DCF557B883E6FE0AEC05B7F0290F0EF47D0AC2E3 at I_00006FAC
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' E0D2592373A0C161E56E266306CD8405CD719D19 at I_00006FEC
.field static assembly initonly int64 EB0715DBB235F3F696F2C404F5839C6650640898 at I_00007014
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' F514FF55B79BCAA2CEC9B56C062D976E45F89AB7 at I_0000701C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=24' FBCB49C1A244C1B5781AA1DB02C5A11F68908526 at I_00007044
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '1535117EC92E41D4A6B7CA00F965357B05B5DC35' at I_00006E70
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=10' '20E3FF489634E18F3F7EB292AD504DBAE9519293' at I_00006EB8
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '39E94835525CF7B71CD4595742EF462642FBF1B2' at I_00006EC8
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=10' '56D9EEC8EF899644C40B9BE9D886DF2367A5D078' at I_00006F10
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=12' '735E5A21849E86F68D220F06163E8C5C6376B9C9' at I_00006F20
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=64' '7C39B7B06DD624A17F875AB8E9651554BE6E74D2' at I_00006F30
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' '8D903ECAD8D9D75B3183B23AF79F6D2E607369E3' at I_00006F70
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=80' '9B1F6E56D755443CC39C1969CE38FD41FD4EF4B7' at I_00006F98
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=256' A1EA7DC3FE43B3A54F5B729A92B92AF54181A3EB at I_00006FE8
.field static assembly initonly int64 A6296CAC471BE2954899600137940479D8073C7C at I_000070E8
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' B62E59D20E3D69F06A6D9BD5E3C518FF7093EDAB at I_000070F0
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' B9583930B842DBCEF0D7B8E57D4D3F1E8055C39E at I_00007118
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=24' C4E70AB31EF6C8908F896CAD1C6BC75F7FA65E27 at I_00007140
.field static assembly initonly int32 C62C27924F4C967F5EDDB1850C091D54C7A2AB58 at I_00007158
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=48' DC7043B0114737ACE19A23DD755893795FD48A23 at I_00007160
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=64' DCF557B883E6FE0AEC05B7F0290F0EF47D0AC2E3 at I_00007190
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' E0D2592373A0C161E56E266306CD8405CD719D19 at I_000071D0
.field static assembly initonly int64 EB0715DBB235F3F696F2C404F5839C6650640898 at I_000071F8
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' F514FF55B79BCAA2CEC9B56C062D976E45F89AB7 at I_00007200
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=24' FBCB49C1A244C1B5781AA1DB02C5A11F68908526 at I_00007228
} // end of class '<PrivateImplementationDetails>'
// =============================================================
.data cil I_00006C8C = bytearray (
.data cil I_00006E70 = 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_00006CD4 = bytearray (
.data cil I_00006EB8 = bytearray (
01 02 03 04 05 06 07 08 FE FF)
.data cil I_00006CDE = int8[2]
.data cil I_00006CE4 = bytearray (
.data cil I_00006EC2 = int8[6]
.data cil I_00006EC8 = 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_00006D2C = bytearray (
.data cil I_00006F10 = bytearray (
00 80 FF FF 00 00 01 00 FF 7F)
.data cil I_00006D36 = int8[2]
.data cil I_00006D3C = bytearray (
.data cil I_00006F1A = int8[6]
.data cil I_00006F20 = bytearray (
00 00 01 00 FF 7F 00 80 FE FF FF FF)
.data cil I_00006D4C = bytearray (
.data cil I_00006F2C = int8[4]
.data cil I_00006F30 = 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_00006D8C = bytearray (
.data cil I_00006F70 = 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_00006DB4 = bytearray (
.data cil I_00006F98 = 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_00006E04 = bytearray (
.data cil I_00006FE8 = 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
@ -4152,41 +4345,43 @@ @@ -4152,41 +4345,43 @@
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_00006F04 = bytearray (
.data cil I_000070E8 = bytearray (
80 81 00 01 02 03 04 7F)
.data cil I_00006F0C = bytearray (
.data cil I_000070F0 = 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_00006F34 = bytearray (
.data cil I_00007114 = int8[4]
.data cil I_00007118 = 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_00006F5C = bytearray (
.data cil I_00007140 = 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_00006F74 = bytearray (
.data cil I_00007158 = bytearray (
00 01 02 FF)
.data cil I_00006F7C = bytearray (
.data cil I_0000715C = int8[4]
.data cil I_00007160 = 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_00006FAC = bytearray (
.data cil I_00007190 = 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_00006FEC = bytearray (
.data cil I_000071D0 = 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_00007014 = bytearray (
.data cil I_000071F8 = bytearray (
01 00 01 00 00 00 01 01)
.data cil I_0000701C = bytearray (
.data cil I_00007200 = 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_00007044 = bytearray (
.data cil I_00007228 = 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 ***********************

315
ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.roslyn.il

@ -1257,8 +1257,8 @@ @@ -1257,8 +1257,8 @@
{
.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__63_0'
.field public static class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> '<>9__77_0'
.field public static class [mscorlib]System.EventHandler '<>9__65_0'
.field public static class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> '<>9__79_0'
.method private hidebysig specialname rtspecialname static
void .cctor() cil managed
{
@ -1281,7 +1281,7 @@ @@ -1281,7 +1281,7 @@
} // end of method '<>c'::.ctor
.method assembly hidebysig instance void
'<NotAnObjectInitializerWithEvent>b__63_0'(object '<p0>',
'<NotAnObjectInitializerWithEvent>b__65_0'(object '<p0>',
class [mscorlib]System.EventArgs '<p1>') cil managed
{
// Code size 8 (0x8)
@ -1290,10 +1290,10 @@ @@ -1290,10 +1290,10 @@
IL_0001: call void [mscorlib]System.Console::WriteLine()
IL_0006: nop
IL_0007: ret
} // end of method '<>c'::'<NotAnObjectInitializerWithEvent>b__63_0'
} // end of method '<>c'::'<NotAnObjectInitializerWithEvent>b__65_0'
.method assembly hidebysig instance bool
'<Issue270_NestedInitialisers>b__77_0'(class [mscorlib]System.Globalization.NumberFormatInfo format) cil managed
'<Issue270_NestedInitialisers>b__79_0'(class [mscorlib]System.Globalization.NumberFormatInfo format) cil managed
{
// Code size 17 (0x11)
.maxstack 8
@ -1303,7 +1303,7 @@ @@ -1303,7 +1303,7 @@
IL_000b: call bool [mscorlib]System.String::op_Equality(string,
string)
IL_0010: ret
} // end of method '<>c'::'<Issue270_NestedInitialisers>b__77_0'
} // end of method '<>c'::'<Issue270_NestedInitialisers>b__79_0'
} // end of class '<>c'
@ -2340,6 +2340,210 @@ @@ -2340,6 +2340,210 @@
IL_0020: ret
} // end of method TestCases::Issue1383
.method private hidebysig instance string[0...,0...]
Issue1382a() cil managed
{
// Code size 169 (0xa9)
.maxstack 5
.locals init (string[0...,0...] V_0)
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: stloc.0
IL_00a5: br.s IL_00a7
IL_00a7: ldloc.0
IL_00a8: ret
} // end of method TestCases::Issue1382a
.method private hidebysig instance string[0...,0...]
Issue1382b() cil managed
{
// Code size 169 (0xa9)
.maxstack 5
.locals init (string[0...,0...] V_0)
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: dup
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: stloc.0
IL_00a5: br.s IL_00a7
IL_00a7: ldloc.0
IL_00a8: ret
} // end of method TestCases::Issue1382b
.method public hidebysig instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/C
Test1() cil managed
{
@ -2543,18 +2747,18 @@ @@ -2543,18 +2747,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__63_0'
IL_0008: ldsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__65_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'::'<NotAnObjectInitializerWithEvent>b__63_0'(object,
IL_0016: ldftn instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<NotAnObjectInitializerWithEvent>b__65_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__63_0'
IL_0022: stsfld class [mscorlib]System.EventHandler ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__65_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()
@ -2954,17 +3158,17 @@ @@ -2954,17 +3158,17 @@
IL_003b: nop
IL_003c: dup
IL_003d: ldloc.0
IL_003e: ldsfld class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__77_0'
IL_003e: ldsfld class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__79_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'::'<Issue270_NestedInitialisers>b__77_0'(class [mscorlib]System.Globalization.NumberFormatInfo)
IL_004c: ldftn instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<Issue270_NestedInitialisers>b__79_0'(class [mscorlib]System.Globalization.NumberFormatInfo)
IL_0052: newobj instance void class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool>::.ctor(object,
native int)
IL_0057: dup
IL_0058: stsfld class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__77_0'
IL_0058: stsfld class [mscorlib]System.Func`2<class [mscorlib]System.Globalization.NumberFormatInfo,bool> ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests.TestCases/'<>c'::'<>9__79_0'
IL_005d: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> [System.Core]System.Linq.Enumerable::Where<class [mscorlib]System.Globalization.NumberFormatInfo>(class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>,
class [mscorlib]System.Func`2<!!0,bool>)
IL_0062: call !!0 [System.Core]System.Linq.Enumerable::First<class [mscorlib]System.Globalization.NumberFormatInfo>(class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
@ -4521,68 +4725,67 @@ @@ -4521,68 +4725,67 @@
.size 256
} // end of class '__StaticArrayInitTypeSize=256'
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '1535117EC92E41D4A6B7CA00F965357B05B5DC35' at I_000070A0
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=10' '20E3FF489634E18F3F7EB292AD504DBAE9519293' at I_000070E8
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '39E94835525CF7B71CD4595742EF462642FBF1B2' at I_000070F8
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=10' '56D9EEC8EF899644C40B9BE9D886DF2367A5D078' at I_00007140
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=12' '735E5A21849E86F68D220F06163E8C5C6376B9C9' at I_00007150
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=64' '7C39B7B06DD624A17F875AB8E9651554BE6E74D2' at I_00007160
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' '8D903ECAD8D9D75B3183B23AF79F6D2E607369E3' at I_000071A0
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=80' '9B1F6E56D755443CC39C1969CE38FD41FD4EF4B7' at I_000071C8
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=256' A1EA7DC3FE43B3A54F5B729A92B92AF54181A3EB at I_00007218
.field static assembly initonly int64 A6296CAC471BE2954899600137940479D8073C7C at I_00007318
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' B62E59D20E3D69F06A6D9BD5E3C518FF7093EDAB at I_00007320
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' B9583930B842DBCEF0D7B8E57D4D3F1E8055C39E at I_00007348
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=24' C4E70AB31EF6C8908F896CAD1C6BC75F7FA65E27 at I_00007370
.field static assembly initonly int32 C62C27924F4C967F5EDDB1850C091D54C7A2AB58 at I_00007388
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=48' DC7043B0114737ACE19A23DD755893795FD48A23 at I_00007390
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=64' DCF557B883E6FE0AEC05B7F0290F0EF47D0AC2E3 at I_000073C0
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' E0D2592373A0C161E56E266306CD8405CD719D19 at I_00007400
.field static assembly initonly int64 EB0715DBB235F3F696F2C404F5839C6650640898 at I_00007428
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' F514FF55B79BCAA2CEC9B56C062D976E45F89AB7 at I_00007430
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=24' FBCB49C1A244C1B5781AA1DB02C5A11F68908526 at I_00007458
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '1535117EC92E41D4A6B7CA00F965357B05B5DC35' at I_0000729C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=10' '20E3FF489634E18F3F7EB292AD504DBAE9519293' at I_000072E4
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=72' '39E94835525CF7B71CD4595742EF462642FBF1B2' at I_000072F4
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=10' '56D9EEC8EF899644C40B9BE9D886DF2367A5D078' at I_0000733C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=12' '735E5A21849E86F68D220F06163E8C5C6376B9C9' at I_0000734C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=64' '7C39B7B06DD624A17F875AB8E9651554BE6E74D2' at I_0000735C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' '8D903ECAD8D9D75B3183B23AF79F6D2E607369E3' at I_0000739C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=80' '9B1F6E56D755443CC39C1969CE38FD41FD4EF4B7' at I_000073C4
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=256' A1EA7DC3FE43B3A54F5B729A92B92AF54181A3EB at I_00007414
.field static assembly initonly int64 A6296CAC471BE2954899600137940479D8073C7C at I_00007514
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=36' B62E59D20E3D69F06A6D9BD5E3C518FF7093EDAB at I_0000751C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' B9583930B842DBCEF0D7B8E57D4D3F1E8055C39E at I_00007544
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=24' C4E70AB31EF6C8908F896CAD1C6BC75F7FA65E27 at I_0000756C
.field static assembly initonly int32 C62C27924F4C967F5EDDB1850C091D54C7A2AB58 at I_00007584
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=48' DC7043B0114737ACE19A23DD755893795FD48A23 at I_0000758C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=64' DCF557B883E6FE0AEC05B7F0290F0EF47D0AC2E3 at I_000075BC
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' E0D2592373A0C161E56E266306CD8405CD719D19 at I_000075FC
.field static assembly initonly int64 EB0715DBB235F3F696F2C404F5839C6650640898 at I_00007624
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=40' F514FF55B79BCAA2CEC9B56C062D976E45F89AB7 at I_0000762C
.field static assembly initonly valuetype '<PrivateImplementationDetails>'/'__StaticArrayInitTypeSize=24' FBCB49C1A244C1B5781AA1DB02C5A11F68908526 at I_00007654
} // end of class '<PrivateImplementationDetails>'
// =============================================================
.data cil I_000070A0 = bytearray (
.data cil I_0000729C = 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_000070E8 = bytearray (
.data cil I_000072E4 = bytearray (
01 02 03 04 05 06 07 08 FE FF)
.data cil I_000070F2 = int8[6]
.data cil I_000070F8 = bytearray (
.data cil I_000072EE = int8[2]
.data cil I_000072F4 = 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_00007140 = bytearray (
.data cil I_0000733C = bytearray (
00 80 FF FF 00 00 01 00 FF 7F)
.data cil I_0000714A = int8[6]
.data cil I_00007150 = bytearray (
.data cil I_00007346 = int8[2]
.data cil I_0000734C = bytearray (
00 00 01 00 FF 7F 00 80 FE FF FF FF)
.data cil I_0000715C = int8[4]
.data cil I_00007160 = bytearray (
.data cil I_0000735C = 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_000071A0 = bytearray (
.data cil I_0000739C = 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_000071C8 = bytearray (
.data cil I_000073C4 = 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_00007218 = bytearray (
.data cil I_00007414 = 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
@ -4599,43 +4802,41 @@ @@ -4599,43 +4802,41 @@
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_00007318 = bytearray (
.data cil I_00007514 = bytearray (
80 81 00 01 02 03 04 7F)
.data cil I_00007320 = bytearray (
.data cil I_0000751C = 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_00007344 = int8[4]
.data cil I_00007348 = bytearray (
.data cil I_00007544 = 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_00007370 = bytearray (
.data cil I_0000756C = 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_00007388 = bytearray (
.data cil I_00007584 = bytearray (
00 01 02 FF)
.data cil I_0000738C = int8[4]
.data cil I_00007390 = bytearray (
.data cil I_0000758C = 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_000073C0 = bytearray (
.data cil I_000075BC = 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_00007400 = bytearray (
.data cil I_000075FC = 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_00007428 = bytearray (
.data cil I_00007624 = bytearray (
01 00 01 00 00 00 01 01)
.data cil I_00007430 = bytearray (
.data cil I_0000762C = 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_00007458 = bytearray (
.data cil I_00007654 = 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 ***********************

7
ICSharpCode.Decompiler/IL/Transforms/TransformArrayInitializers.cs

@ -315,6 +315,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -315,6 +315,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
nextIndices[k] = new LdcI4(nextMinimumIndex[k]);
}
} else {
bool previousComponentWasGreater = false;
for (int k = 0; k < indices.Count; k++) {
if (!indices[k].MatchLdcI4(out int index))
return null;
@ -322,11 +323,15 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -322,11 +323,15 @@ namespace ICSharpCode.Decompiler.IL.Transforms
// 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])
if (index < 0 || index >= arrayLength[k] || (!previousComponentWasGreater && index < nextMinimumIndex[k]))
return null;
nextIndices[k] = new LdcI4(nextMinimumIndex[k]);
if (index != nextMinimumIndex[k]) {
exactMatch = false;
// this flag allows us to check whether the whole set of indices is smaller:
// [3, 3] should be smaller than [4, 0] even though 3 > 0.
if (index > nextMinimumIndex[k])
previousComponentWasGreater = true;
}
}
}

Loading…
Cancel
Save