Browse Source

Add tests for string interpolation

pull/1012/head
Siegfried Pammer 8 years ago
parent
commit
66e8d5385e
  1. 1
      ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
  2. 6
      ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs
  3. 43
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.cs
  4. 322
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.opt.roslyn.il
  5. 353
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.roslyn.il

1
ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj

@ -62,6 +62,7 @@ @@ -62,6 +62,7 @@
<Compile Include="TestCases\Correctness\MiniJSON.cs" />
<Compile Include="TestCases\Correctness\FloatingPointArithmetic.cs" />
<Compile Include="TestCases\ILPretty\Issue982.cs" />
<Compile Include="TestCases\Pretty\CS6_StringInterpolation.cs" />
<Compile Include="TestCases\Pretty\ExpressionTrees.cs" />
<Compile Include="TestCases\Pretty\VariableNaming.cs" />
<Compile Include="TestCases\Pretty\VariableNamingWithoutSymbols.cs" />

6
ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs

@ -224,6 +224,12 @@ namespace ICSharpCode.Decompiler.Tests @@ -224,6 +224,12 @@ namespace ICSharpCode.Decompiler.Tests
Run(cscOptions: cscOptions, decompilerSettings: new DecompilerSettings { UseDebugSymbols = false });
}
[Test]
public void CS6_StringInterpolation([ValueSource("roslynOnlyOptions")] CompilerOptions cscOptions)
{
Run(cscOptions: cscOptions);
}
void Run([CallerMemberName] string testName = null, AssemblerOptions asmOptions = AssemblerOptions.None, CompilerOptions cscOptions = CompilerOptions.None, DecompilerSettings decompilerSettings = null)
{
var ilFile = Path.Combine(TestCasePath, testName) + Tester.GetSuffix(cscOptions) + ".il";

43
ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.cs

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
using System;
namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
internal class CS6_StringInterpolation
{
public static void General(string[] args)
{
Console.WriteLine($"{args.Length}");
Console.WriteLine($"a{{0{args.Length}");
Console.WriteLine($"{args.Length:x}");
Console.WriteLine($"\ta{args.Length}b");
Console.WriteLine($"\ta{args.Length}ba{args[0]}a{args[args.Length]}a{args.Length}");
}
public static void Invalid(string[] args)
{
Console.WriteLine(string.Format("", args.Length));
Console.WriteLine(string.Format("a", args.Length));
Console.WriteLine(string.Format("}", args.Length));
Console.WriteLine(string.Format("{", args.Length));
Console.WriteLine(string.Format(":", args.Length));
Console.WriteLine(string.Format("\t", args.Length));
Console.WriteLine(string.Format("\\", args.Length));
Console.WriteLine(string.Format("\"", args.Length));
Console.WriteLine(string.Format("aa", args.Length));
Console.WriteLine(string.Format("a}", args.Length));
Console.WriteLine(string.Format("a{", args.Length));
Console.WriteLine(string.Format("a:", args.Length));
Console.WriteLine(string.Format("a\t", args.Length));
Console.WriteLine(string.Format("a\\", args.Length));
Console.WriteLine(string.Format("a\"", args.Length));
Console.WriteLine(string.Format("a{:", args.Length));
Console.WriteLine(string.Format("a{0", args.Length));
Console.WriteLine(string.Format("a{{0", args.Length));
Console.WriteLine(string.Format("}a{{0", args.Length));
Console.WriteLine(string.Format("}{", args.Length));
Console.WriteLine(string.Format("{}", args.Length));
Console.WriteLine(string.Format("{0:}", args.Length));
Console.WriteLine(string.Format("{0{a}0}", args.Length));
}
}
}

322
ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.opt.roslyn.il

@ -0,0 +1,322 @@ @@ -0,0 +1,322 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0
// Copyright (c) Microsoft Corporation. All rights reserved.
// 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 CS6_StringInterpolation
{
.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 CS6_StringInterpolation.dll
// MVID: {12BAF781-868E-4161-A197-F81DC457D96B}
.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
.imagebase 0x10000000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
// Image base: 0x03620000
// =============== CLASS MEMBERS DECLARATION ===================
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.CS6_StringInterpolation
extends [mscorlib]System.Object
{
.method public hidebysig static void General(string[] args) cil managed
{
// Code size 150 (0x96)
.maxstack 6
IL_0000: ldstr "{0}"
IL_0005: ldarg.0
IL_0006: ldlen
IL_0007: conv.i4
IL_0008: box [mscorlib]System.Int32
IL_000d: call string [mscorlib]System.String::Format(string,
object)
IL_0012: call void [mscorlib]System.Console::WriteLine(string)
IL_0017: ldstr "a{{0{0}"
IL_001c: ldarg.0
IL_001d: ldlen
IL_001e: conv.i4
IL_001f: box [mscorlib]System.Int32
IL_0024: call string [mscorlib]System.String::Format(string,
object)
IL_0029: call void [mscorlib]System.Console::WriteLine(string)
IL_002e: ldstr "{0:x}"
IL_0033: ldarg.0
IL_0034: ldlen
IL_0035: conv.i4
IL_0036: box [mscorlib]System.Int32
IL_003b: call string [mscorlib]System.String::Format(string,
object)
IL_0040: call void [mscorlib]System.Console::WriteLine(string)
IL_0045: ldstr "\ta{0}b"
IL_004a: ldarg.0
IL_004b: ldlen
IL_004c: conv.i4
IL_004d: box [mscorlib]System.Int32
IL_0052: call string [mscorlib]System.String::Format(string,
object)
IL_0057: call void [mscorlib]System.Console::WriteLine(string)
IL_005c: ldstr "\ta{0}ba{1}a{2}a{3}"
IL_0061: ldc.i4.4
IL_0062: newarr [mscorlib]System.Object
IL_0067: dup
IL_0068: ldc.i4.0
IL_0069: ldarg.0
IL_006a: ldlen
IL_006b: conv.i4
IL_006c: box [mscorlib]System.Int32
IL_0071: stelem.ref
IL_0072: dup
IL_0073: ldc.i4.1
IL_0074: ldarg.0
IL_0075: ldc.i4.0
IL_0076: ldelem.ref
IL_0077: stelem.ref
IL_0078: dup
IL_0079: ldc.i4.2
IL_007a: ldarg.0
IL_007b: ldarg.0
IL_007c: ldlen
IL_007d: conv.i4
IL_007e: ldelem.ref
IL_007f: stelem.ref
IL_0080: dup
IL_0081: ldc.i4.3
IL_0082: ldarg.0
IL_0083: ldlen
IL_0084: conv.i4
IL_0085: box [mscorlib]System.Int32
IL_008a: stelem.ref
IL_008b: call string [mscorlib]System.String::Format(string,
object[])
IL_0090: call void [mscorlib]System.Console::WriteLine(string)
IL_0095: ret
} // end of method CS6_StringInterpolation::General
.method public hidebysig static void Invalid(string[] args) cil managed
{
// Code size 530 (0x212)
.maxstack 2
IL_0000: ldstr ""
IL_0005: ldarg.0
IL_0006: ldlen
IL_0007: conv.i4
IL_0008: box [mscorlib]System.Int32
IL_000d: call string [mscorlib]System.String::Format(string,
object)
IL_0012: call void [mscorlib]System.Console::WriteLine(string)
IL_0017: ldstr "a"
IL_001c: ldarg.0
IL_001d: ldlen
IL_001e: conv.i4
IL_001f: box [mscorlib]System.Int32
IL_0024: call string [mscorlib]System.String::Format(string,
object)
IL_0029: call void [mscorlib]System.Console::WriteLine(string)
IL_002e: ldstr "}"
IL_0033: ldarg.0
IL_0034: ldlen
IL_0035: conv.i4
IL_0036: box [mscorlib]System.Int32
IL_003b: call string [mscorlib]System.String::Format(string,
object)
IL_0040: call void [mscorlib]System.Console::WriteLine(string)
IL_0045: ldstr "{"
IL_004a: ldarg.0
IL_004b: ldlen
IL_004c: conv.i4
IL_004d: box [mscorlib]System.Int32
IL_0052: call string [mscorlib]System.String::Format(string,
object)
IL_0057: call void [mscorlib]System.Console::WriteLine(string)
IL_005c: ldstr ":"
IL_0061: ldarg.0
IL_0062: ldlen
IL_0063: conv.i4
IL_0064: box [mscorlib]System.Int32
IL_0069: call string [mscorlib]System.String::Format(string,
object)
IL_006e: call void [mscorlib]System.Console::WriteLine(string)
IL_0073: ldstr "\t"
IL_0078: ldarg.0
IL_0079: ldlen
IL_007a: conv.i4
IL_007b: box [mscorlib]System.Int32
IL_0080: call string [mscorlib]System.String::Format(string,
object)
IL_0085: call void [mscorlib]System.Console::WriteLine(string)
IL_008a: ldstr "\\"
IL_008f: ldarg.0
IL_0090: ldlen
IL_0091: conv.i4
IL_0092: box [mscorlib]System.Int32
IL_0097: call string [mscorlib]System.String::Format(string,
object)
IL_009c: call void [mscorlib]System.Console::WriteLine(string)
IL_00a1: ldstr "\""
IL_00a6: ldarg.0
IL_00a7: ldlen
IL_00a8: conv.i4
IL_00a9: box [mscorlib]System.Int32
IL_00ae: call string [mscorlib]System.String::Format(string,
object)
IL_00b3: call void [mscorlib]System.Console::WriteLine(string)
IL_00b8: ldstr "aa"
IL_00bd: ldarg.0
IL_00be: ldlen
IL_00bf: conv.i4
IL_00c0: box [mscorlib]System.Int32
IL_00c5: call string [mscorlib]System.String::Format(string,
object)
IL_00ca: call void [mscorlib]System.Console::WriteLine(string)
IL_00cf: ldstr "a}"
IL_00d4: ldarg.0
IL_00d5: ldlen
IL_00d6: conv.i4
IL_00d7: box [mscorlib]System.Int32
IL_00dc: call string [mscorlib]System.String::Format(string,
object)
IL_00e1: call void [mscorlib]System.Console::WriteLine(string)
IL_00e6: ldstr "a{"
IL_00eb: ldarg.0
IL_00ec: ldlen
IL_00ed: conv.i4
IL_00ee: box [mscorlib]System.Int32
IL_00f3: call string [mscorlib]System.String::Format(string,
object)
IL_00f8: call void [mscorlib]System.Console::WriteLine(string)
IL_00fd: ldstr "a:"
IL_0102: ldarg.0
IL_0103: ldlen
IL_0104: conv.i4
IL_0105: box [mscorlib]System.Int32
IL_010a: call string [mscorlib]System.String::Format(string,
object)
IL_010f: call void [mscorlib]System.Console::WriteLine(string)
IL_0114: ldstr "a\t"
IL_0119: ldarg.0
IL_011a: ldlen
IL_011b: conv.i4
IL_011c: box [mscorlib]System.Int32
IL_0121: call string [mscorlib]System.String::Format(string,
object)
IL_0126: call void [mscorlib]System.Console::WriteLine(string)
IL_012b: ldstr "a\\"
IL_0130: ldarg.0
IL_0131: ldlen
IL_0132: conv.i4
IL_0133: box [mscorlib]System.Int32
IL_0138: call string [mscorlib]System.String::Format(string,
object)
IL_013d: call void [mscorlib]System.Console::WriteLine(string)
IL_0142: ldstr "a\""
IL_0147: ldarg.0
IL_0148: ldlen
IL_0149: conv.i4
IL_014a: box [mscorlib]System.Int32
IL_014f: call string [mscorlib]System.String::Format(string,
object)
IL_0154: call void [mscorlib]System.Console::WriteLine(string)
IL_0159: ldstr "a{:"
IL_015e: ldarg.0
IL_015f: ldlen
IL_0160: conv.i4
IL_0161: box [mscorlib]System.Int32
IL_0166: call string [mscorlib]System.String::Format(string,
object)
IL_016b: call void [mscorlib]System.Console::WriteLine(string)
IL_0170: ldstr "a{0"
IL_0175: ldarg.0
IL_0176: ldlen
IL_0177: conv.i4
IL_0178: box [mscorlib]System.Int32
IL_017d: call string [mscorlib]System.String::Format(string,
object)
IL_0182: call void [mscorlib]System.Console::WriteLine(string)
IL_0187: ldstr "a{{0"
IL_018c: ldarg.0
IL_018d: ldlen
IL_018e: conv.i4
IL_018f: box [mscorlib]System.Int32
IL_0194: call string [mscorlib]System.String::Format(string,
object)
IL_0199: call void [mscorlib]System.Console::WriteLine(string)
IL_019e: ldstr "}a{{0"
IL_01a3: ldarg.0
IL_01a4: ldlen
IL_01a5: conv.i4
IL_01a6: box [mscorlib]System.Int32
IL_01ab: call string [mscorlib]System.String::Format(string,
object)
IL_01b0: call void [mscorlib]System.Console::WriteLine(string)
IL_01b5: ldstr "}{"
IL_01ba: ldarg.0
IL_01bb: ldlen
IL_01bc: conv.i4
IL_01bd: box [mscorlib]System.Int32
IL_01c2: call string [mscorlib]System.String::Format(string,
object)
IL_01c7: call void [mscorlib]System.Console::WriteLine(string)
IL_01cc: ldstr "{}"
IL_01d1: ldarg.0
IL_01d2: ldlen
IL_01d3: conv.i4
IL_01d4: box [mscorlib]System.Int32
IL_01d9: call string [mscorlib]System.String::Format(string,
object)
IL_01de: call void [mscorlib]System.Console::WriteLine(string)
IL_01e3: ldstr "{0:}"
IL_01e8: ldarg.0
IL_01e9: ldlen
IL_01ea: conv.i4
IL_01eb: box [mscorlib]System.Int32
IL_01f0: call string [mscorlib]System.String::Format(string,
object)
IL_01f5: call void [mscorlib]System.Console::WriteLine(string)
IL_01fa: ldstr "{0{a}0}"
IL_01ff: ldarg.0
IL_0200: ldlen
IL_0201: conv.i4
IL_0202: box [mscorlib]System.Int32
IL_0207: call string [mscorlib]System.String::Format(string,
object)
IL_020c: call void [mscorlib]System.Console::WriteLine(string)
IL_0211: ret
} // end of method CS6_StringInterpolation::Invalid
.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 CS6_StringInterpolation::.ctor
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CS6_StringInterpolation
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************

353
ICSharpCode.Decompiler.Tests/TestCases/Pretty/CS6_StringInterpolation.roslyn.il

@ -0,0 +1,353 @@ @@ -0,0 +1,353 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0
// Copyright (c) Microsoft Corporation. All rights reserved.
// 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 CS6_StringInterpolation
{
.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 CS6_StringInterpolation.dll
// MVID: {97DDF3A3-A5BD-433E-B982-F6DD427CE8FF}
.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
.imagebase 0x10000000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
// Image base: 0x03970000
// =============== CLASS MEMBERS DECLARATION ===================
.class private auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.CS6_StringInterpolation
extends [mscorlib]System.Object
{
.method public hidebysig static void General(string[] args) cil managed
{
// Code size 156 (0x9c)
.maxstack 6
IL_0000: nop
IL_0001: ldstr "{0}"
IL_0006: ldarg.0
IL_0007: ldlen
IL_0008: conv.i4
IL_0009: box [mscorlib]System.Int32
IL_000e: call string [mscorlib]System.String::Format(string,
object)
IL_0013: call void [mscorlib]System.Console::WriteLine(string)
IL_0018: nop
IL_0019: ldstr "a{{0{0}"
IL_001e: ldarg.0
IL_001f: ldlen
IL_0020: conv.i4
IL_0021: box [mscorlib]System.Int32
IL_0026: call string [mscorlib]System.String::Format(string,
object)
IL_002b: call void [mscorlib]System.Console::WriteLine(string)
IL_0030: nop
IL_0031: ldstr "{0:x}"
IL_0036: ldarg.0
IL_0037: ldlen
IL_0038: conv.i4
IL_0039: box [mscorlib]System.Int32
IL_003e: call string [mscorlib]System.String::Format(string,
object)
IL_0043: call void [mscorlib]System.Console::WriteLine(string)
IL_0048: nop
IL_0049: ldstr "\ta{0}b"
IL_004e: ldarg.0
IL_004f: ldlen
IL_0050: conv.i4
IL_0051: box [mscorlib]System.Int32
IL_0056: call string [mscorlib]System.String::Format(string,
object)
IL_005b: call void [mscorlib]System.Console::WriteLine(string)
IL_0060: nop
IL_0061: ldstr "\ta{0}ba{1}a{2}a{3}"
IL_0066: ldc.i4.4
IL_0067: newarr [mscorlib]System.Object
IL_006c: dup
IL_006d: ldc.i4.0
IL_006e: ldarg.0
IL_006f: ldlen
IL_0070: conv.i4
IL_0071: box [mscorlib]System.Int32
IL_0076: stelem.ref
IL_0077: dup
IL_0078: ldc.i4.1
IL_0079: ldarg.0
IL_007a: ldc.i4.0
IL_007b: ldelem.ref
IL_007c: stelem.ref
IL_007d: dup
IL_007e: ldc.i4.2
IL_007f: ldarg.0
IL_0080: ldarg.0
IL_0081: ldlen
IL_0082: conv.i4
IL_0083: ldelem.ref
IL_0084: stelem.ref
IL_0085: dup
IL_0086: ldc.i4.3
IL_0087: ldarg.0
IL_0088: ldlen
IL_0089: conv.i4
IL_008a: box [mscorlib]System.Int32
IL_008f: stelem.ref
IL_0090: call string [mscorlib]System.String::Format(string,
object[])
IL_0095: call void [mscorlib]System.Console::WriteLine(string)
IL_009a: nop
IL_009b: ret
} // end of method CS6_StringInterpolation::General
.method public hidebysig static void Invalid(string[] args) cil managed
{
// Code size 554 (0x22a)
.maxstack 2
IL_0000: nop
IL_0001: ldstr ""
IL_0006: ldarg.0
IL_0007: ldlen
IL_0008: conv.i4
IL_0009: box [mscorlib]System.Int32
IL_000e: call string [mscorlib]System.String::Format(string,
object)
IL_0013: call void [mscorlib]System.Console::WriteLine(string)
IL_0018: nop
IL_0019: ldstr "a"
IL_001e: ldarg.0
IL_001f: ldlen
IL_0020: conv.i4
IL_0021: box [mscorlib]System.Int32
IL_0026: call string [mscorlib]System.String::Format(string,
object)
IL_002b: call void [mscorlib]System.Console::WriteLine(string)
IL_0030: nop
IL_0031: ldstr "}"
IL_0036: ldarg.0
IL_0037: ldlen
IL_0038: conv.i4
IL_0039: box [mscorlib]System.Int32
IL_003e: call string [mscorlib]System.String::Format(string,
object)
IL_0043: call void [mscorlib]System.Console::WriteLine(string)
IL_0048: nop
IL_0049: ldstr "{"
IL_004e: ldarg.0
IL_004f: ldlen
IL_0050: conv.i4
IL_0051: box [mscorlib]System.Int32
IL_0056: call string [mscorlib]System.String::Format(string,
object)
IL_005b: call void [mscorlib]System.Console::WriteLine(string)
IL_0060: nop
IL_0061: ldstr ":"
IL_0066: ldarg.0
IL_0067: ldlen
IL_0068: conv.i4
IL_0069: box [mscorlib]System.Int32
IL_006e: call string [mscorlib]System.String::Format(string,
object)
IL_0073: call void [mscorlib]System.Console::WriteLine(string)
IL_0078: nop
IL_0079: ldstr "\t"
IL_007e: ldarg.0
IL_007f: ldlen
IL_0080: conv.i4
IL_0081: box [mscorlib]System.Int32
IL_0086: call string [mscorlib]System.String::Format(string,
object)
IL_008b: call void [mscorlib]System.Console::WriteLine(string)
IL_0090: nop
IL_0091: ldstr "\\"
IL_0096: ldarg.0
IL_0097: ldlen
IL_0098: conv.i4
IL_0099: box [mscorlib]System.Int32
IL_009e: call string [mscorlib]System.String::Format(string,
object)
IL_00a3: call void [mscorlib]System.Console::WriteLine(string)
IL_00a8: nop
IL_00a9: ldstr "\""
IL_00ae: ldarg.0
IL_00af: ldlen
IL_00b0: conv.i4
IL_00b1: box [mscorlib]System.Int32
IL_00b6: call string [mscorlib]System.String::Format(string,
object)
IL_00bb: call void [mscorlib]System.Console::WriteLine(string)
IL_00c0: nop
IL_00c1: ldstr "aa"
IL_00c6: ldarg.0
IL_00c7: ldlen
IL_00c8: conv.i4
IL_00c9: box [mscorlib]System.Int32
IL_00ce: call string [mscorlib]System.String::Format(string,
object)
IL_00d3: call void [mscorlib]System.Console::WriteLine(string)
IL_00d8: nop
IL_00d9: ldstr "a}"
IL_00de: ldarg.0
IL_00df: ldlen
IL_00e0: conv.i4
IL_00e1: box [mscorlib]System.Int32
IL_00e6: call string [mscorlib]System.String::Format(string,
object)
IL_00eb: call void [mscorlib]System.Console::WriteLine(string)
IL_00f0: nop
IL_00f1: ldstr "a{"
IL_00f6: ldarg.0
IL_00f7: ldlen
IL_00f8: conv.i4
IL_00f9: box [mscorlib]System.Int32
IL_00fe: call string [mscorlib]System.String::Format(string,
object)
IL_0103: call void [mscorlib]System.Console::WriteLine(string)
IL_0108: nop
IL_0109: ldstr "a:"
IL_010e: ldarg.0
IL_010f: ldlen
IL_0110: conv.i4
IL_0111: box [mscorlib]System.Int32
IL_0116: call string [mscorlib]System.String::Format(string,
object)
IL_011b: call void [mscorlib]System.Console::WriteLine(string)
IL_0120: nop
IL_0121: ldstr "a\t"
IL_0126: ldarg.0
IL_0127: ldlen
IL_0128: conv.i4
IL_0129: box [mscorlib]System.Int32
IL_012e: call string [mscorlib]System.String::Format(string,
object)
IL_0133: call void [mscorlib]System.Console::WriteLine(string)
IL_0138: nop
IL_0139: ldstr "a\\"
IL_013e: ldarg.0
IL_013f: ldlen
IL_0140: conv.i4
IL_0141: box [mscorlib]System.Int32
IL_0146: call string [mscorlib]System.String::Format(string,
object)
IL_014b: call void [mscorlib]System.Console::WriteLine(string)
IL_0150: nop
IL_0151: ldstr "a\""
IL_0156: ldarg.0
IL_0157: ldlen
IL_0158: conv.i4
IL_0159: box [mscorlib]System.Int32
IL_015e: call string [mscorlib]System.String::Format(string,
object)
IL_0163: call void [mscorlib]System.Console::WriteLine(string)
IL_0168: nop
IL_0169: ldstr "a{:"
IL_016e: ldarg.0
IL_016f: ldlen
IL_0170: conv.i4
IL_0171: box [mscorlib]System.Int32
IL_0176: call string [mscorlib]System.String::Format(string,
object)
IL_017b: call void [mscorlib]System.Console::WriteLine(string)
IL_0180: nop
IL_0181: ldstr "a{0"
IL_0186: ldarg.0
IL_0187: ldlen
IL_0188: conv.i4
IL_0189: box [mscorlib]System.Int32
IL_018e: call string [mscorlib]System.String::Format(string,
object)
IL_0193: call void [mscorlib]System.Console::WriteLine(string)
IL_0198: nop
IL_0199: ldstr "a{{0"
IL_019e: ldarg.0
IL_019f: ldlen
IL_01a0: conv.i4
IL_01a1: box [mscorlib]System.Int32
IL_01a6: call string [mscorlib]System.String::Format(string,
object)
IL_01ab: call void [mscorlib]System.Console::WriteLine(string)
IL_01b0: nop
IL_01b1: ldstr "}a{{0"
IL_01b6: ldarg.0
IL_01b7: ldlen
IL_01b8: conv.i4
IL_01b9: box [mscorlib]System.Int32
IL_01be: call string [mscorlib]System.String::Format(string,
object)
IL_01c3: call void [mscorlib]System.Console::WriteLine(string)
IL_01c8: nop
IL_01c9: ldstr "}{"
IL_01ce: ldarg.0
IL_01cf: ldlen
IL_01d0: conv.i4
IL_01d1: box [mscorlib]System.Int32
IL_01d6: call string [mscorlib]System.String::Format(string,
object)
IL_01db: call void [mscorlib]System.Console::WriteLine(string)
IL_01e0: nop
IL_01e1: ldstr "{}"
IL_01e6: ldarg.0
IL_01e7: ldlen
IL_01e8: conv.i4
IL_01e9: box [mscorlib]System.Int32
IL_01ee: call string [mscorlib]System.String::Format(string,
object)
IL_01f3: call void [mscorlib]System.Console::WriteLine(string)
IL_01f8: nop
IL_01f9: ldstr "{0:}"
IL_01fe: ldarg.0
IL_01ff: ldlen
IL_0200: conv.i4
IL_0201: box [mscorlib]System.Int32
IL_0206: call string [mscorlib]System.String::Format(string,
object)
IL_020b: call void [mscorlib]System.Console::WriteLine(string)
IL_0210: nop
IL_0211: ldstr "{0{a}0}"
IL_0216: ldarg.0
IL_0217: ldlen
IL_0218: conv.i4
IL_0219: box [mscorlib]System.Int32
IL_021e: call string [mscorlib]System.String::Format(string,
object)
IL_0223: call void [mscorlib]System.Console::WriteLine(string)
IL_0228: nop
IL_0229: ret
} // end of method CS6_StringInterpolation::Invalid
.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 CS6_StringInterpolation::.ctor
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CS6_StringInterpolation
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************
Loading…
Cancel
Save