Browse Source

Run correctness tests with roslyn, and add some roslyn-based pretty-tests as well.

pull/728/merge
Daniel Grunwald 9 years ago
parent
commit
bedff74b61
  1. 4
      ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj
  2. 90
      ICSharpCode.Decompiler/Tests/CorrectnessTestRunner.cs
  3. 67
      ICSharpCode.Decompiler/Tests/Helpers/Tester.cs
  4. 24
      ICSharpCode.Decompiler/Tests/ICSharpCode.Decompiler.Tests.csproj
  5. 34
      ICSharpCode.Decompiler/Tests/PrettyTestRunner.cs
  6. 1
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/.gitignore
  7. 5
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/CompoundAssignmentTest.cs
  8. 21
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/CompoundAssignmentTest.il
  9. 726
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/CompoundAssignmentTest.opt.il
  10. 728
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/CompoundAssignmentTest.opt.roslyn.il
  11. 863
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/CompoundAssignmentTest.roslyn.il
  12. 13
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/HelloWorld.il
  13. 5
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/InlineAssignmentTest.cs
  14. 21
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/InlineAssignmentTest.il
  15. 250
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/InlineAssignmentTest.opt.il
  16. 8
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/ShortCircuit.il
  17. 18
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/ShortCircuit.opt.il
  18. 303
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/ShortCircuit.opt.roslyn.il
  19. 383
      ICSharpCode.Decompiler/Tests/TestCases/Pretty/ShortCircuit.roslyn.il
  20. 11
      ICSharpCode.Decompiler/Tests/app.config
  21. 6
      ICSharpCode.Decompiler/Tests/packages.config
  22. 2
      ICSharpCode.Decompiler/packages.config
  23. 1
      ILSpy.BamlDecompiler/Tests/ILSpy.BamlDecompiler.Tests.csproj
  24. 11
      ILSpy.BamlDecompiler/Tests/app.config
  25. 4
      ILSpy/ILSpy.csproj
  26. 2
      ILSpy/packages.config
  27. 8
      Rebracer.xml

4
ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj

@ -50,8 +50,8 @@ @@ -50,8 +50,8 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Collections.Immutable, Version=1.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.1.2.0-rc2-24027\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
<Reference Include="System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.1.3.0\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Core">

90
ICSharpCode.Decompiler/Tests/CorrectnessTestRunner.cs

@ -20,6 +20,7 @@ using System; @@ -20,6 +20,7 @@ using System;
using System.CodeDom.Compiler;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using ICSharpCode.Decompiler.Tests.Helpers;
using NUnit.Framework;
@ -45,107 +46,108 @@ namespace ICSharpCode.Decompiler.Tests @@ -45,107 +46,108 @@ namespace ICSharpCode.Decompiler.Tests
}
}
[Test]
public void Comparisons()
static readonly CompilerOptions[] defaultOptions =
{
TestCompileDecompileCompileOutputAll("Comparisons.cs");
}
CompilerOptions.None,
CompilerOptions.Optimize,
CompilerOptions.UseRoslyn,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn
};
[Test]
public void Conversions()
public void Comparisons([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("Conversions.cs");
RunCS(options: options);
}
[Test]
public void HelloWorld()
public void Conversions([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("HelloWorld.cs");
RunCS(options: options);
}
[Test]
public void ControlFlow()
public void HelloWorld([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("ControlFlow.cs");
RunCS(options: options);
}
[Test]
public void CompoundAssignment()
public void ControlFlow([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("CompoundAssignment.cs");
RunCS(options: options);
}
[Test]
public void PropertiesAndEvents()
public void CompoundAssignment([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("PropertiesAndEvents.cs");
RunCS(options: options);
}
[Test]
public void Switch()
public void PropertiesAndEvents([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("Switch.cs");
RunCS(options: options);
}
[Test]
public void Generics()
public void Switch([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("Generics.cs");
RunCS(options: options);
}
[Test]
public void ValueTypeCall()
public void Generics([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("ValueTypeCall.cs");
RunCS(options: options);
}
[Test]
public void InitializerTests()
public void ValueTypeCall([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("InitializerTests.cs");
RunCS(options: options);
}
[Test]
public void DecimalFields()
public void InitializerTests([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("DecimalFields.cs");
RunCS(options: options);
}
[Test]
public void UndocumentedExpressions()
public void DecimalFields([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("UndocumentedExpressions.cs");
RunCS(options: options);
}
[Test]
public void MemberLookup()
public void UndocumentedExpressions([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutputAll("MemberLookup.cs");
RunCS(options: options);
}
[Test]
public void BitNot()
public void MemberLookup([ValueSource("defaultOptions")] CompilerOptions options)
{
TestAssembleDecompileCompileOutput("BitNot.il");
TestAssembleDecompileCompileOutput("BitNot.il", CompilerOptions.UseDebug | CompilerOptions.Force32Bit, AssemblerOptions.Force32Bit);
RunCS(options: options);
}
[Test]
public void UnsafeCode()
public void BitNot()
{
TestCompileDecompileCompileOutputAll("UnsafeCode.cs");
RunIL("BitNot.il");
RunIL("BitNot.il", CompilerOptions.UseDebug | CompilerOptions.Force32Bit, AssemblerOptions.Force32Bit);
}
void TestCompileDecompileCompileOutputAll(string testFileName)
[Test]
public void UnsafeCode([ValueSource("defaultOptions")] CompilerOptions options)
{
TestCompileDecompileCompileOutput(testFileName, CompilerOptions.None);
TestCompileDecompileCompileOutput(testFileName, CompilerOptions.UseDebug);
TestCompileDecompileCompileOutput(testFileName, CompilerOptions.Optimize);
TestCompileDecompileCompileOutput(testFileName, CompilerOptions.UseDebug | CompilerOptions.Optimize);
RunCS(options: options);
}
void TestCompileDecompileCompileOutput(string testFileName, CompilerOptions options = CompilerOptions.UseDebug)
void RunCS([CallerMemberName] string testName = null, CompilerOptions options = CompilerOptions.UseDebug)
{
string testFileName = testName + ".cs";
CompilerResults outputFile = null, decompiledOutputFile = null;
try {
@ -166,7 +168,7 @@ namespace ICSharpCode.Decompiler.Tests @@ -166,7 +168,7 @@ namespace ICSharpCode.Decompiler.Tests
}
}
void TestAssembleDecompileCompileOutput(string testFileName, CompilerOptions options = CompilerOptions.UseDebug, AssemblerOptions asmOptions = AssemblerOptions.None)
void RunIL(string testFileName, CompilerOptions options = CompilerOptions.UseDebug, AssemblerOptions asmOptions = AssemblerOptions.None)
{
string outputFile = null;
CompilerResults decompiledOutputFile = null;

67
ICSharpCode.Decompiler/Tests/Helpers/Tester.cs

@ -28,6 +28,9 @@ using System.Threading.Tasks; @@ -28,6 +28,9 @@ using System.Threading.Tasks;
using ICSharpCode.Decompiler.CSharp;
using ICSharpCode.Decompiler.CSharp.Transforms;
using ICSharpCode.NRefactory.CSharp;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.Text;
using Microsoft.CSharp;
using Mono.Cecil;
using NUnit.Framework;
@ -41,7 +44,8 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -41,7 +44,8 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
Optimize = 0x1,
UseDebug = 0x2,
Force32Bit = 0x4,
Library = 0x8
Library = 0x8,
UseRoslyn = 0x10,
}
[Flags]
@ -121,27 +125,62 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -121,27 +125,62 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
return outputFile;
}
static readonly Lazy<IEnumerable<MetadataReference>> defaultReferences = new Lazy<IEnumerable<MetadataReference>>(delegate {
string refAsmPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86),
@"Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5");
return new[]
{
MetadataReference.CreateFromFile(Path.Combine(refAsmPath, "mscorlib.dll")),
MetadataReference.CreateFromFile(Path.Combine(refAsmPath, "System.dll")),
MetadataReference.CreateFromFile(Path.Combine(refAsmPath, "System.Core.dll"))
};
});
public static CompilerResults CompileCSharp(string sourceFileName, CompilerOptions flags = CompilerOptions.UseDebug)
{
List<string> sourceFileNames = new List<string> { sourceFileName };
foreach (Match match in Regex.Matches(File.ReadAllText(sourceFileName), @"#include ""([\w\d./]+)""")) {
sourceFileNames.Add(Path.GetFullPath(Path.Combine(Path.GetDirectoryName(sourceFileName), match.Groups[1].Value)));
}
CSharpCodeProvider provider = new CSharpCodeProvider(new Dictionary<string, string> { { "CompilerVersion", "v4.0" } });
CompilerParameters options = new CompilerParameters();
options.GenerateExecutable = !flags.HasFlag(CompilerOptions.Library);
options.CompilerOptions = "/unsafe /o" + (flags.HasFlag(CompilerOptions.Optimize) ? "+" : "-") + (flags.HasFlag(CompilerOptions.UseDebug) ? " /debug" : "") + (flags.HasFlag(CompilerOptions.Force32Bit) ? " /platform:anycpu32bitpreferred" : "");
options.ReferencedAssemblies.Add("System.Core.dll");
CompilerResults results = provider.CompileAssemblyFromFile(options, sourceFileNames.ToArray());
if (results.Errors.Cast<CompilerError>().Any(e => !e.IsWarning)) {
StringBuilder b = new StringBuilder("Compiler error:");
foreach (var error in results.Errors) {
b.AppendLine(error.ToString());
if (flags.HasFlag(CompilerOptions.UseRoslyn)) {
var syntaxTrees = sourceFileNames.Select(f => SyntaxFactory.ParseSyntaxTree(File.ReadAllText(f), path: f));
var compilation = CSharpCompilation.Create(Path.GetFileNameWithoutExtension(sourceFileName),
syntaxTrees, defaultReferences.Value,
new CSharpCompilationOptions(
flags.HasFlag(CompilerOptions.Library) ? OutputKind.DynamicallyLinkedLibrary : OutputKind.ConsoleApplication,
platform: flags.HasFlag(CompilerOptions.Force32Bit) ? Platform.X86 : Platform.AnyCpu,
optimizationLevel: flags.HasFlag(CompilerOptions.Optimize) ? OptimizationLevel.Release : OptimizationLevel.Debug,
allowUnsafe: true,
deterministic: true
));
CompilerResults results = new CompilerResults(new TempFileCollection());
results.PathToAssembly = Path.GetTempFileName();
var emitResult = compilation.Emit(results.PathToAssembly);
if (!emitResult.Success) {
StringBuilder b = new StringBuilder("Compiler error:");
foreach (var diag in emitResult.Diagnostics) {
b.AppendLine(diag.ToString());
}
throw new Exception(b.ToString());
}
return results;
} else {
var provider = new CSharpCodeProvider(new Dictionary<string, string> { { "CompilerVersion", "v4.0" } });
CompilerParameters options = new CompilerParameters();
options.GenerateExecutable = !flags.HasFlag(CompilerOptions.Library);
options.CompilerOptions = "/unsafe /o" + (flags.HasFlag(CompilerOptions.Optimize) ? "+" : "-") + (flags.HasFlag(CompilerOptions.UseDebug) ? " /debug" : "") + (flags.HasFlag(CompilerOptions.Force32Bit) ? " /platform:anycpu32bitpreferred" : "");
options.ReferencedAssemblies.Add("System.Core.dll");
CompilerResults results = provider.CompileAssemblyFromFile(options, sourceFileNames.ToArray());
if (results.Errors.Cast<CompilerError>().Any(e => !e.IsWarning)) {
StringBuilder b = new StringBuilder("Compiler error:");
foreach (var error in results.Errors) {
b.AppendLine(error.ToString());
}
throw new Exception(b.ToString());
}
throw new Exception(b.ToString());
return results;
}
return results;
}
public static int Run(string assemblyFileName, out string output, out string error)

24
ICSharpCode.Decompiler/Tests/ICSharpCode.Decompiler.Tests.csproj

@ -21,6 +21,8 @@ @@ -21,6 +21,8 @@
<AssemblyOriginatorKeyFile>..\..\NRefactory\ICSharpCode.NRefactory.snk</AssemblyOriginatorKeyFile>
<DelaySign>False</DelaySign>
<AssemblyOriginatorKeyMode>File</AssemblyOriginatorKeyMode>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<PlatformTarget>x86</PlatformTarget>
@ -54,6 +56,15 @@ @@ -54,6 +56,15 @@
<Reference Include="DiffLib">
<HintPath>..\..\packages\DiffLib.1.0.0.55\lib\net35-Client\DiffLib.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis, Version=1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.CodeAnalysis.Common.1.3.2\lib\net45\Microsoft.CodeAnalysis.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.CodeAnalysis.CSharp.1.3.2\lib\net45\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="nunit.core, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<HintPath>..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll</HintPath>
<Private>False</Private>
@ -75,19 +86,24 @@ @@ -75,19 +86,24 @@
<Private>False</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Collections.Immutable, Version=1.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Collections.Immutable.1.2.0-rc2-24027\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
<Reference Include="System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Collections.Immutable.1.3.0\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Reflection.Metadata, Version=1.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Reflection.Metadata.1.2.0\lib\portable-net45+win8\System.Reflection.Metadata.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
<None Include="TestCases\Correctness\BitNot.il" />
<None Include="TestCases\Correctness\Readme.txt" />
@ -163,5 +179,9 @@ @@ -163,5 +179,9 @@
</None>
<None Include="TestCases\Pretty\Readme.txt" />
</ItemGroup>
<ItemGroup>
<Analyzer Include="..\..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
<Analyzer Include="..\..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

34
ICSharpCode.Decompiler/Tests/PrettyTestRunner.cs

@ -47,7 +47,21 @@ namespace ICSharpCode.Decompiler.Tests @@ -47,7 +47,21 @@ namespace ICSharpCode.Decompiler.Tests
Assert.Contains(testName, testNames);
}
}
static readonly CompilerOptions[] noRoslynOptions =
{
CompilerOptions.None,
CompilerOptions.Optimize
};
static readonly CompilerOptions[] defaultOptions =
{
CompilerOptions.None,
CompilerOptions.Optimize,
CompilerOptions.UseRoslyn,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn
};
[Test]
public void HelloWorld()
{
@ -56,21 +70,19 @@ namespace ICSharpCode.Decompiler.Tests @@ -56,21 +70,19 @@ namespace ICSharpCode.Decompiler.Tests
}
[Test]
public void InlineAssignmentTest()
public void InlineAssignmentTest([ValueSource("noRoslynOptions")] CompilerOptions cscOptions)
{
Run();
Run(asmOptions: AssemblerOptions.UseDebug);
Run(cscOptions: cscOptions);
}
[Test]
public void CompoundAssignmentTest()
public void CompoundAssignmentTest([ValueSource("defaultOptions")] CompilerOptions cscOptions)
{
Run();
Run(asmOptions: AssemblerOptions.UseDebug);
Run(cscOptions: cscOptions);
}
[Test]
public void ShortCircuit([Values(CompilerOptions.None, CompilerOptions.Optimize)] CompilerOptions cscOptions)
public void ShortCircuit([ValueSource("defaultOptions")] CompilerOptions cscOptions)
{
Run(cscOptions: cscOptions);
}
@ -84,6 +96,8 @@ namespace ICSharpCode.Decompiler.Tests @@ -84,6 +96,8 @@ namespace ICSharpCode.Decompiler.Tests
ilFile += ".32";
if ((cscOptions & CompilerOptions.UseDebug) != 0)
ilFile += ".dbg";
if ((cscOptions & CompilerOptions.UseRoslyn) != 0)
ilFile += ".roslyn";
ilFile += ".il";
var csFile = Path.Combine(TestCasePath, testName + ".cs");

1
ICSharpCode.Decompiler/Tests/TestCases/Pretty/.gitignore vendored

@ -0,0 +1 @@ @@ -0,0 +1 @@
/*.res

5
ICSharpCode.Decompiler/Tests/TestCases/Pretty/CompoundAssignmentTest.cs

@ -97,11 +97,6 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty @@ -97,11 +97,6 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
return value;
}
public static void Main()
{
}
public void Int32_Local_Add(int i)
{
i++;

21
ICSharpCode.Decompiler/Tests/TestCases/Pretty/CompoundAssignmentTest.il

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.17929
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.18020
// Copyright (c) Microsoft Corporation. All rights reserved.
@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly o4ovvbve
.assembly '51dcmowd'
{
.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
@ -20,15 +20,15 @@ @@ -20,15 +20,15 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module o4ovvbve.exe
// MVID: {8C8569FB-7FDE-4B4A-809D-7FA7F5088538}
.module '51dcmowd.dll'
// MVID: {BE23642D-B16F-447F-BA6D-BFD10D24A6FB}
.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
.imagebase 0x00400000
.imagebase 0x10000000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
// Image base: 0x01310000
// Image base: 0x019B0000
// =============== CLASS MEMBERS DECLARATION ===================
@ -260,15 +260,6 @@ @@ -260,15 +260,6 @@
IL_0006: ret
} // end of method CompoundAssignmentTest::GetValue
.method public hidebysig static void Main() cil managed
{
.entrypoint
// Code size 2 (0x2)
.maxstack 8
IL_0000: nop
IL_0001: ret
} // end of method CompoundAssignmentTest::Main
.method public hidebysig instance void
Int32_Local_Add(int32 i) cil managed
{

726
ICSharpCode.Decompiler/Tests/TestCases/Pretty/CompoundAssignmentTest.opt.il

@ -0,0 +1,726 @@ @@ -0,0 +1,726 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.18020
// 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 tz4h53ih
{
.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 tz4h53ih.dll
// MVID: {DE0CEC69-313F-43C2-8F49-A59BB6099266}
.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: 0x005E0000
// =============== CLASS MEMBERS DECLARATION ===================
.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest
extends [mscorlib]System.Object
{
.class auto ansi sealed nested private MyEnum
extends [mscorlib]System.Enum
{
.custom instance void [mscorlib]System.FlagsAttribute::.ctor() = ( 01 00 00 00 )
.field public specialname rtspecialname int32 value__
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum None = int32(0x00000000)
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum One = int32(0x00000001)
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum Two = int32(0x00000002)
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum Four = int32(0x00000004)
} // end of class MyEnum
.class sequential ansi sealed nested private beforefieldinit StructContainer
extends [mscorlib]System.ValueType
{
.field public bool HasIndex
.field public int32 Field
} // end of class StructContainer
.class auto ansi nested public beforefieldinit MutableClass
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 04 49 74 65 6D 00 00 ) // ...Item..
.field public int32 Field
.field private int32 '<Property>k__BackingField'
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.method public hidebysig specialname
instance int32 get_Property() cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::'<Property>k__BackingField'
IL_0006: ret
} // end of method MutableClass::get_Property
.method public hidebysig specialname
instance void set_Property(int32 'value') cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::'<Property>k__BackingField'
IL_0007: ret
} // end of method MutableClass::set_Property
.method public hidebysig specialname
instance uint32 get_Item(string name) cil managed
{
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: ret
} // end of method MutableClass::get_Item
.method public hidebysig specialname
instance void set_Item(string name,
uint32 'value') cil managed
{
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method MutableClass::set_Item
.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 MutableClass::.ctor
.property instance int32 Property()
{
.get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::get_Property()
.set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::set_Property(int32)
} // end of property MutableClass::Property
.property instance uint32 Item(string)
{
.get instance uint32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::get_Item(string)
.set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::set_Item(string,
uint32)
} // end of property MutableClass::Item
} // end of class MutableClass
.field private int32 test1
.field private int32[] array1
.field private valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer field1
.field private valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum enumField
.field public static int32 StaticField
.field private static int32 '<StaticProperty>k__BackingField'
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.method public hidebysig specialname static
int32 get_StaticProperty() cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 6 (0x6)
.maxstack 8
IL_0000: ldsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::'<StaticProperty>k__BackingField'
IL_0005: ret
} // end of method CompoundAssignmentTest::get_StaticProperty
.method public hidebysig specialname static
void set_StaticProperty(int32 'value') cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::'<StaticProperty>k__BackingField'
IL_0006: ret
} // end of method CompoundAssignmentTest::set_StaticProperty
.method private hidebysig instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass
M() cil managed
{
// Code size 6 (0x6)
.maxstack 8
IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::.ctor()
IL_0005: ret
} // end of method CompoundAssignmentTest::M
.method private hidebysig instance int32[0...,0...]
Array() cil managed
{
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldnull
IL_0001: ret
} // end of method CompoundAssignmentTest::Array
.method private hidebysig instance int32*
GetPointer() cil managed
{
// Code size 3 (0x3)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: conv.u
IL_0002: ret
} // end of method CompoundAssignmentTest::GetPointer
.method public hidebysig instance int32
GetIndex() cil managed
{
// Code size 14 (0xe)
.maxstack 8
IL_0000: newobj instance void [mscorlib]System.Random::.ctor()
IL_0005: ldc.i4.0
IL_0006: ldc.i4.s 100
IL_0008: callvirt instance int32 [mscorlib]System.Random::Next(int32,
int32)
IL_000d: ret
} // end of method CompoundAssignmentTest::GetIndex
.method public hidebysig instance int32[]
GetArray() cil managed
{
// Code size 6 (0x6)
.maxstack 8
IL_0000: newobj instance void [mscorlib]System.NotImplementedException::.ctor()
IL_0005: throw
} // end of method CompoundAssignmentTest::GetArray
.method public hidebysig instance int32
GetValue(int32 'value') cil managed
{
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ret
} // end of method CompoundAssignmentTest::GetValue
.method public hidebysig instance void
Int32_Local_Add(int32 i) cil managed
{
// Code size 44 (0x2c)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.1
IL_0002: add
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: dup
IL_0007: ldc.i4.1
IL_0008: add
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ldarg.1
IL_0011: ldc.i4.1
IL_0012: add
IL_0013: dup
IL_0014: starg.s i
IL_0016: call void [mscorlib]System.Console::WriteLine(int32)
IL_001b: ldarg.1
IL_001c: ldc.i4.5
IL_001d: add
IL_001e: starg.s i
IL_0020: ldarg.1
IL_0021: ldc.i4.5
IL_0022: add
IL_0023: dup
IL_0024: starg.s i
IL_0026: call void [mscorlib]System.Console::WriteLine(int32)
IL_002b: ret
} // end of method CompoundAssignmentTest::Int32_Local_Add
.method public hidebysig instance void
Int32_Local_Sub(int32 i) cil managed
{
// Code size 44 (0x2c)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.1
IL_0002: sub
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: dup
IL_0007: ldc.i4.1
IL_0008: sub
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ldarg.1
IL_0011: ldc.i4.1
IL_0012: sub
IL_0013: dup
IL_0014: starg.s i
IL_0016: call void [mscorlib]System.Console::WriteLine(int32)
IL_001b: ldarg.1
IL_001c: ldc.i4.5
IL_001d: sub
IL_001e: starg.s i
IL_0020: ldarg.1
IL_0021: ldc.i4.5
IL_0022: sub
IL_0023: dup
IL_0024: starg.s i
IL_0026: call void [mscorlib]System.Console::WriteLine(int32)
IL_002b: ret
} // end of method CompoundAssignmentTest::Int32_Local_Sub
.method public hidebysig instance void
Int32_Local_Mul(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: mul
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: mul
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_Mul
.method public hidebysig instance void
Int32_Local_Div(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: div
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: div
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_Div
.method public hidebysig instance void
Int32_Local_Rem(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: rem
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: rem
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_Rem
.method public hidebysig instance void
Int32_Local_BitAnd(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: and
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: and
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_BitAnd
.method public hidebysig instance void
Int32_Local_BitOr(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: or
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: or
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_BitOr
.method public hidebysig instance void
Int32_Local_BitXor(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: xor
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: xor
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_BitXor
.method public hidebysig instance void
Int32_Local_ShiftLeft(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: shl
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: shl
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_ShiftLeft
.method public hidebysig instance void
Int32_Local_ShiftRight(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: shr
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: shr
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_ShiftRight
.method public hidebysig instance void
IntegerWithInline(int32 i) cil managed
{
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: add
IL_0003: dup
IL_0004: starg.s i
IL_0006: call void [mscorlib]System.Console::WriteLine(int32)
IL_000b: ldarg.1
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: ret
} // end of method CompoundAssignmentTest::IntegerWithInline
.method public hidebysig instance void
IntegerField(int32 i) cil managed
{
// Code size 67 (0x43)
.maxstack 3
.locals init (int32 V_0,
int32 V_1)
IL_0000: ldarg.0
IL_0001: dup
IL_0002: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0007: ldarg.1
IL_0008: add
IL_0009: dup
IL_000a: stloc.0
IL_000b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0010: ldloc.0
IL_0011: call void [mscorlib]System.Console::WriteLine(int32)
IL_0016: ldarg.0
IL_0017: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_001c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0021: ldarg.0
IL_0022: dup
IL_0023: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0028: ldarg.1
IL_0029: sub
IL_002a: dup
IL_002b: stloc.1
IL_002c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0031: ldloc.1
IL_0032: call void [mscorlib]System.Console::WriteLine(int32)
IL_0037: ldarg.0
IL_0038: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_003d: call void [mscorlib]System.Console::WriteLine(int32)
IL_0042: ret
} // end of method CompoundAssignmentTest::IntegerField
.method public hidebysig instance void
Array(int32 i) cil managed
{
// Code size 71 (0x47)
.maxstack 4
.locals init (int32 V_0,
int32 V_1)
IL_0000: ldarg.0
IL_0001: ldfld int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::array1
IL_0006: ldarg.1
IL_0007: ldelema [mscorlib]System.Int32
IL_000c: dup
IL_000d: ldobj [mscorlib]System.Int32
IL_0012: ldarg.1
IL_0013: add
IL_0014: dup
IL_0015: stloc.0
IL_0016: stobj [mscorlib]System.Int32
IL_001b: ldloc.0
IL_001c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0021: ldarg.0
IL_0022: ldfld int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::array1
IL_0027: ldarg.1
IL_0028: ldc.i4.2
IL_0029: mul
IL_002a: ldelema [mscorlib]System.Int32
IL_002f: dup
IL_0030: ldobj [mscorlib]System.Int32
IL_0035: ldarg.1
IL_0036: ldc.i4.2
IL_0037: mul
IL_0038: add
IL_0039: dup
IL_003a: stloc.1
IL_003b: stobj [mscorlib]System.Int32
IL_0040: ldloc.1
IL_0041: call void [mscorlib]System.Console::WriteLine(int32)
IL_0046: ret
} // end of method CompoundAssignmentTest::Array
.method public hidebysig instance int32
ArrayUsageWithMethods() cil managed
{
// Code size 34 (0x22)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: call instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::GetArray()
IL_0006: ldarg.0
IL_0007: call instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::GetIndex()
IL_000c: ldelema [mscorlib]System.Int32
IL_0011: dup
IL_0012: ldobj [mscorlib]System.Int32
IL_0017: dup
IL_0018: stloc.0
IL_0019: ldc.i4.1
IL_001a: add
IL_001b: stobj [mscorlib]System.Int32
IL_0020: ldloc.0
IL_0021: ret
} // end of method CompoundAssignmentTest::ArrayUsageWithMethods
.method public hidebysig instance void
NestedField() cil managed
{
// Code size 41 (0x29)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::field1
IL_0006: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer::HasIndex
IL_000b: brfalse.s IL_0028
IL_000d: ldarg.0
IL_000e: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::field1
IL_0013: dup
IL_0014: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer::Field
IL_0019: dup
IL_001a: stloc.0
IL_001b: ldc.i4.1
IL_001c: add
IL_001d: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer::Field
IL_0022: ldloc.0
IL_0023: call void [mscorlib]System.Console::WriteLine(int32)
IL_0028: ret
} // end of method CompoundAssignmentTest::NestedField
.method public hidebysig instance void
Enum() cil managed
{
// Code size 30 (0x1e)
.maxstack 8
IL_0000: ldarg.0
IL_0001: dup
IL_0002: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_0007: ldc.i4.2
IL_0008: or
IL_0009: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_000e: ldarg.0
IL_000f: dup
IL_0010: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_0015: ldc.i4.s -5
IL_0017: and
IL_0018: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_001d: ret
} // end of method CompoundAssignmentTest::Enum
.method public hidebysig instance int32
PreIncrementInAddition(int32 i,
int32 j) cil managed
{
// Code size 9 (0x9)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldarg.2
IL_0002: ldc.i4.1
IL_0003: add
IL_0004: dup
IL_0005: starg.s j
IL_0007: add
IL_0008: ret
} // end of method CompoundAssignmentTest::PreIncrementInAddition
.method public hidebysig instance int32
PreIncrementArrayElement(int32[] 'array',
int32 pos) cil managed
{
// Code size 24 (0x18)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.1
IL_0001: ldarg.2
IL_0002: ldelema [mscorlib]System.Int32
IL_0007: dup
IL_0008: ldobj [mscorlib]System.Int32
IL_000d: ldc.i4.1
IL_000e: sub
IL_000f: dup
IL_0010: stloc.0
IL_0011: stobj [mscorlib]System.Int32
IL_0016: ldloc.0
IL_0017: ret
} // end of method CompoundAssignmentTest::PreIncrementArrayElement
.method public hidebysig instance int32
PreIncrementInstanceField() cil managed
{
// Code size 23 (0x17)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: call instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::M()
IL_0006: dup
IL_0007: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_000c: ldc.i4.1
IL_000d: add
IL_000e: dup
IL_000f: stloc.0
IL_0010: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_0015: ldloc.0
IL_0016: ret
} // end of method CompoundAssignmentTest::PreIncrementInstanceField
.method public hidebysig instance int32
PreIncrementInstanceField2(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass m) cil managed
{
// Code size 18 (0x12)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.1
IL_0001: dup
IL_0002: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_0007: ldc.i4.1
IL_0008: add
IL_0009: dup
IL_000a: stloc.0
IL_000b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_0010: ldloc.0
IL_0011: ret
} // end of method CompoundAssignmentTest::PreIncrementInstanceField2
.method public hidebysig instance int32
PreIncrementInstanceProperty() cil managed
{
// Code size 23 (0x17)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: call instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::M()
IL_0006: dup
IL_0007: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::get_Property()
IL_000c: ldc.i4.1
IL_000d: add
IL_000e: dup
IL_000f: stloc.0
IL_0010: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::set_Property(int32)
IL_0015: ldloc.0
IL_0016: ret
} // end of method CompoundAssignmentTest::PreIncrementInstanceProperty
.method public hidebysig instance int32
PreIncrementStaticField() cil managed
{
// Code size 14 (0xe)
.maxstack 8
IL_0000: ldsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::StaticField
IL_0005: ldc.i4.1
IL_0006: add
IL_0007: dup
IL_0008: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::StaticField
IL_000d: ret
} // end of method CompoundAssignmentTest::PreIncrementStaticField
.method public hidebysig instance int32
PreIncrementStaticProperty() cil managed
{
// Code size 14 (0xe)
.maxstack 8
IL_0000: call int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::get_StaticProperty()
IL_0005: ldc.i4.1
IL_0006: add
IL_0007: dup
IL_0008: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::set_StaticProperty(int32)
IL_000d: ret
} // end of method CompoundAssignmentTest::PreIncrementStaticProperty
.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 CompoundAssignmentTest::.ctor
.property int32 StaticProperty()
{
.get int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::get_StaticProperty()
.set void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::set_StaticProperty(int32)
} // end of property CompoundAssignmentTest::StaticProperty
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************
// WARNING: Created Win32 resource file ../../Tests/TestCases/Pretty\CompoundAssignmentTest.opt.res

728
ICSharpCode.Decompiler/Tests/TestCases/Pretty/CompoundAssignmentTest.opt.roslyn.il

@ -0,0 +1,728 @@ @@ -0,0 +1,728 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.18020
// 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 CompoundAssignmentTest
{
.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 CompoundAssignmentTest.dll
// MVID: {4291E75E-F92B-4A69-AD59-40A9D8C6DF95}
.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: 0x00A00000
// =============== CLASS MEMBERS DECLARATION ===================
.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest
extends [mscorlib]System.Object
{
.class auto ansi sealed nested private MyEnum
extends [mscorlib]System.Enum
{
.custom instance void [mscorlib]System.FlagsAttribute::.ctor() = ( 01 00 00 00 )
.field public specialname rtspecialname int32 value__
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum None = int32(0x00000000)
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum One = int32(0x00000001)
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum Two = int32(0x00000002)
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum Four = int32(0x00000004)
} // end of class MyEnum
.class sequential ansi sealed nested private beforefieldinit StructContainer
extends [mscorlib]System.ValueType
{
.field public bool HasIndex
.field public int32 Field
} // end of class StructContainer
.class auto ansi nested public beforefieldinit MutableClass
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 04 49 74 65 6D 00 00 ) // ...Item..
.field public int32 Field
.field private int32 '<Property>k__BackingField'
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.method public hidebysig specialname
instance int32 get_Property() cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::'<Property>k__BackingField'
IL_0006: ret
} // end of method MutableClass::get_Property
.method public hidebysig specialname
instance void set_Property(int32 'value') cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::'<Property>k__BackingField'
IL_0007: ret
} // end of method MutableClass::set_Property
.method public hidebysig specialname
instance uint32 get_Item(string name) cil managed
{
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: ret
} // end of method MutableClass::get_Item
.method public hidebysig specialname
instance void set_Item(string name,
uint32 'value') cil managed
{
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method MutableClass::set_Item
.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 MutableClass::.ctor
.property instance int32 Property()
{
.get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::get_Property()
.set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::set_Property(int32)
} // end of property MutableClass::Property
.property instance uint32 Item(string)
{
.get instance uint32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::get_Item(string)
.set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::set_Item(string,
uint32)
} // end of property MutableClass::Item
} // end of class MutableClass
.field private int32 test1
.field private int32[] array1
.field private valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer field1
.field private valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum enumField
.field public static int32 StaticField
.field private static int32 '<StaticProperty>k__BackingField'
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.method public hidebysig specialname static
int32 get_StaticProperty() cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 6 (0x6)
.maxstack 8
IL_0000: ldsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::'<StaticProperty>k__BackingField'
IL_0005: ret
} // end of method CompoundAssignmentTest::get_StaticProperty
.method public hidebysig specialname static
void set_StaticProperty(int32 'value') cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::'<StaticProperty>k__BackingField'
IL_0006: ret
} // end of method CompoundAssignmentTest::set_StaticProperty
.method private hidebysig instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass
M() cil managed
{
// Code size 6 (0x6)
.maxstack 8
IL_0000: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::.ctor()
IL_0005: ret
} // end of method CompoundAssignmentTest::M
.method private hidebysig instance int32[0...,0...]
Array() cil managed
{
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldnull
IL_0001: ret
} // end of method CompoundAssignmentTest::Array
.method private hidebysig instance int32*
GetPointer() cil managed
{
// Code size 3 (0x3)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: conv.u
IL_0002: ret
} // end of method CompoundAssignmentTest::GetPointer
.method public hidebysig instance int32
GetIndex() cil managed
{
// Code size 14 (0xe)
.maxstack 8
IL_0000: newobj instance void [mscorlib]System.Random::.ctor()
IL_0005: ldc.i4.0
IL_0006: ldc.i4.s 100
IL_0008: callvirt instance int32 [mscorlib]System.Random::Next(int32,
int32)
IL_000d: ret
} // end of method CompoundAssignmentTest::GetIndex
.method public hidebysig instance int32[]
GetArray() cil managed
{
// Code size 6 (0x6)
.maxstack 8
IL_0000: newobj instance void [mscorlib]System.NotImplementedException::.ctor()
IL_0005: throw
} // end of method CompoundAssignmentTest::GetArray
.method public hidebysig instance int32
GetValue(int32 'value') cil managed
{
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ret
} // end of method CompoundAssignmentTest::GetValue
.method public hidebysig instance void
Int32_Local_Add(int32 i) cil managed
{
// Code size 44 (0x2c)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.1
IL_0002: add
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: dup
IL_0007: ldc.i4.1
IL_0008: add
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ldarg.1
IL_0011: ldc.i4.1
IL_0012: add
IL_0013: dup
IL_0014: starg.s i
IL_0016: call void [mscorlib]System.Console::WriteLine(int32)
IL_001b: ldarg.1
IL_001c: ldc.i4.5
IL_001d: add
IL_001e: starg.s i
IL_0020: ldarg.1
IL_0021: ldc.i4.5
IL_0022: add
IL_0023: dup
IL_0024: starg.s i
IL_0026: call void [mscorlib]System.Console::WriteLine(int32)
IL_002b: ret
} // end of method CompoundAssignmentTest::Int32_Local_Add
.method public hidebysig instance void
Int32_Local_Sub(int32 i) cil managed
{
// Code size 44 (0x2c)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.1
IL_0002: sub
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: dup
IL_0007: ldc.i4.1
IL_0008: sub
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ldarg.1
IL_0011: ldc.i4.1
IL_0012: sub
IL_0013: dup
IL_0014: starg.s i
IL_0016: call void [mscorlib]System.Console::WriteLine(int32)
IL_001b: ldarg.1
IL_001c: ldc.i4.5
IL_001d: sub
IL_001e: starg.s i
IL_0020: ldarg.1
IL_0021: ldc.i4.5
IL_0022: sub
IL_0023: dup
IL_0024: starg.s i
IL_0026: call void [mscorlib]System.Console::WriteLine(int32)
IL_002b: ret
} // end of method CompoundAssignmentTest::Int32_Local_Sub
.method public hidebysig instance void
Int32_Local_Mul(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: mul
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: mul
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_Mul
.method public hidebysig instance void
Int32_Local_Div(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: div
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: div
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_Div
.method public hidebysig instance void
Int32_Local_Rem(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: rem
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: rem
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_Rem
.method public hidebysig instance void
Int32_Local_BitAnd(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: and
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: and
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_BitAnd
.method public hidebysig instance void
Int32_Local_BitOr(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: or
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: or
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_BitOr
.method public hidebysig instance void
Int32_Local_BitXor(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: xor
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: xor
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_BitXor
.method public hidebysig instance void
Int32_Local_ShiftLeft(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: shl
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: shl
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_ShiftLeft
.method public hidebysig instance void
Int32_Local_ShiftRight(int32 i) cil managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: shr
IL_0003: starg.s i
IL_0005: ldarg.1
IL_0006: ldc.i4.5
IL_0007: shr
IL_0008: dup
IL_0009: starg.s i
IL_000b: call void [mscorlib]System.Console::WriteLine(int32)
IL_0010: ret
} // end of method CompoundAssignmentTest::Int32_Local_ShiftRight
.method public hidebysig instance void
IntegerWithInline(int32 i) cil managed
{
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.5
IL_0002: add
IL_0003: dup
IL_0004: starg.s i
IL_0006: call void [mscorlib]System.Console::WriteLine(int32)
IL_000b: ldarg.1
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: ret
} // end of method CompoundAssignmentTest::IntegerWithInline
.method public hidebysig instance void
IntegerField(int32 i) cil managed
{
// Code size 67 (0x43)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: ldarg.0
IL_0002: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0007: ldarg.1
IL_0008: add
IL_0009: dup
IL_000a: stloc.0
IL_000b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0010: ldloc.0
IL_0011: call void [mscorlib]System.Console::WriteLine(int32)
IL_0016: ldarg.0
IL_0017: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_001c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0021: ldarg.0
IL_0022: ldarg.0
IL_0023: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0028: ldarg.1
IL_0029: sub
IL_002a: dup
IL_002b: stloc.0
IL_002c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0031: ldloc.0
IL_0032: call void [mscorlib]System.Console::WriteLine(int32)
IL_0037: ldarg.0
IL_0038: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_003d: call void [mscorlib]System.Console::WriteLine(int32)
IL_0042: ret
} // end of method CompoundAssignmentTest::IntegerField
.method public hidebysig instance void
Array(int32 i) cil managed
{
// Code size 55 (0x37)
.maxstack 4
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: ldfld int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::array1
IL_0006: ldarg.1
IL_0007: ldelema [mscorlib]System.Int32
IL_000c: dup
IL_000d: ldind.i4
IL_000e: ldarg.1
IL_000f: add
IL_0010: dup
IL_0011: stloc.0
IL_0012: stind.i4
IL_0013: ldloc.0
IL_0014: call void [mscorlib]System.Console::WriteLine(int32)
IL_0019: ldarg.0
IL_001a: ldfld int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::array1
IL_001f: ldarg.1
IL_0020: ldc.i4.2
IL_0021: mul
IL_0022: ldelema [mscorlib]System.Int32
IL_0027: dup
IL_0028: ldind.i4
IL_0029: ldarg.1
IL_002a: ldc.i4.2
IL_002b: mul
IL_002c: add
IL_002d: dup
IL_002e: stloc.0
IL_002f: stind.i4
IL_0030: ldloc.0
IL_0031: call void [mscorlib]System.Console::WriteLine(int32)
IL_0036: ret
} // end of method CompoundAssignmentTest::Array
.method public hidebysig instance int32
ArrayUsageWithMethods() cil managed
{
// Code size 26 (0x1a)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: call instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::GetArray()
IL_0006: ldarg.0
IL_0007: call instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::GetIndex()
IL_000c: ldelema [mscorlib]System.Int32
IL_0011: dup
IL_0012: ldind.i4
IL_0013: stloc.0
IL_0014: ldloc.0
IL_0015: ldc.i4.1
IL_0016: add
IL_0017: stind.i4
IL_0018: ldloc.0
IL_0019: ret
} // end of method CompoundAssignmentTest::ArrayUsageWithMethods
.method public hidebysig instance void
NestedField() cil managed
{
// Code size 38 (0x26)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::field1
IL_0006: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer::HasIndex
IL_000b: brfalse.s IL_0025
IL_000d: ldarg.0
IL_000e: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::field1
IL_0013: ldflda int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer::Field
IL_0018: dup
IL_0019: ldind.i4
IL_001a: stloc.0
IL_001b: ldloc.0
IL_001c: ldc.i4.1
IL_001d: add
IL_001e: stind.i4
IL_001f: ldloc.0
IL_0020: call void [mscorlib]System.Console::WriteLine(int32)
IL_0025: ret
} // end of method CompoundAssignmentTest::NestedField
.method public hidebysig instance void
Enum() cil managed
{
// Code size 30 (0x1e)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.0
IL_0002: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_0007: ldc.i4.2
IL_0008: or
IL_0009: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_000e: ldarg.0
IL_000f: ldarg.0
IL_0010: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_0015: ldc.i4.s -5
IL_0017: and
IL_0018: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_001d: ret
} // end of method CompoundAssignmentTest::Enum
.method public hidebysig instance int32
PreIncrementInAddition(int32 i,
int32 j) cil managed
{
// Code size 9 (0x9)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldarg.2
IL_0002: ldc.i4.1
IL_0003: add
IL_0004: dup
IL_0005: starg.s j
IL_0007: add
IL_0008: ret
} // end of method CompoundAssignmentTest::PreIncrementInAddition
.method public hidebysig instance int32
PreIncrementArrayElement(int32[] 'array',
int32 pos) cil managed
{
// Code size 16 (0x10)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.1
IL_0001: ldarg.2
IL_0002: ldelema [mscorlib]System.Int32
IL_0007: dup
IL_0008: ldind.i4
IL_0009: ldc.i4.1
IL_000a: sub
IL_000b: stloc.0
IL_000c: ldloc.0
IL_000d: stind.i4
IL_000e: ldloc.0
IL_000f: ret
} // end of method CompoundAssignmentTest::PreIncrementArrayElement
.method public hidebysig instance int32
PreIncrementInstanceField() cil managed
{
// Code size 23 (0x17)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: call instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::M()
IL_0006: dup
IL_0007: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_000c: ldc.i4.1
IL_000d: add
IL_000e: stloc.0
IL_000f: ldloc.0
IL_0010: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_0015: ldloc.0
IL_0016: ret
} // end of method CompoundAssignmentTest::PreIncrementInstanceField
.method public hidebysig instance int32
PreIncrementInstanceField2(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass m) cil managed
{
// Code size 18 (0x12)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.1
IL_0001: dup
IL_0002: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_0007: ldc.i4.1
IL_0008: add
IL_0009: stloc.0
IL_000a: ldloc.0
IL_000b: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_0010: ldloc.0
IL_0011: ret
} // end of method CompoundAssignmentTest::PreIncrementInstanceField2
.method public hidebysig instance int32
PreIncrementInstanceProperty() cil managed
{
// Code size 23 (0x17)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: call instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::M()
IL_0006: dup
IL_0007: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::get_Property()
IL_000c: ldc.i4.1
IL_000d: add
IL_000e: stloc.0
IL_000f: ldloc.0
IL_0010: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::set_Property(int32)
IL_0015: ldloc.0
IL_0016: ret
} // end of method CompoundAssignmentTest::PreIncrementInstanceProperty
.method public hidebysig instance int32
PreIncrementStaticField() cil managed
{
// Code size 14 (0xe)
.maxstack 8
IL_0000: ldsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::StaticField
IL_0005: ldc.i4.1
IL_0006: add
IL_0007: dup
IL_0008: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::StaticField
IL_000d: ret
} // end of method CompoundAssignmentTest::PreIncrementStaticField
.method public hidebysig instance int32
PreIncrementStaticProperty() cil managed
{
// Code size 14 (0xe)
.maxstack 8
IL_0000: call int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::get_StaticProperty()
IL_0005: ldc.i4.1
IL_0006: add
IL_0007: dup
IL_0008: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::set_StaticProperty(int32)
IL_000d: ret
} // end of method CompoundAssignmentTest::PreIncrementStaticProperty
.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 CompoundAssignmentTest::.ctor
.property int32 StaticProperty()
{
.get int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::get_StaticProperty()
.set void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::set_StaticProperty(int32)
} // end of property CompoundAssignmentTest::StaticProperty
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************

863
ICSharpCode.Decompiler/Tests/TestCases/Pretty/CompoundAssignmentTest.roslyn.il

@ -0,0 +1,863 @@ @@ -0,0 +1,863 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.18020
// 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 CompoundAssignmentTest
{
.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 CompoundAssignmentTest.dll
// MVID: {FF19A157-76FD-4795-BA24-7C956CED48C1}
.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: 0x00EE0000
// =============== CLASS MEMBERS DECLARATION ===================
.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest
extends [mscorlib]System.Object
{
.class auto ansi sealed nested private MyEnum
extends [mscorlib]System.Enum
{
.custom instance void [mscorlib]System.FlagsAttribute::.ctor() = ( 01 00 00 00 )
.field public specialname rtspecialname int32 value__
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum None = int32(0x00000000)
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum One = int32(0x00000001)
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum Two = int32(0x00000002)
.field public static literal valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum Four = int32(0x00000004)
} // end of class MyEnum
.class sequential ansi sealed nested private beforefieldinit StructContainer
extends [mscorlib]System.ValueType
{
.field public bool HasIndex
.field public int32 Field
} // end of class StructContainer
.class auto ansi nested public beforefieldinit MutableClass
extends [mscorlib]System.Object
{
.custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string) = ( 01 00 04 49 74 65 6D 00 00 ) // ...Item..
.field public int32 Field
.field private int32 '<Property>k__BackingField'
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.method public hidebysig specialname
instance int32 get_Property() cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::'<Property>k__BackingField'
IL_0006: ret
} // end of method MutableClass::get_Property
.method public hidebysig specialname
instance void set_Property(int32 'value') cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::'<Property>k__BackingField'
IL_0007: ret
} // end of method MutableClass::set_Property
.method public hidebysig specialname
instance uint32 get_Item(string name) cil managed
{
// Code size 7 (0x7)
.maxstack 1
.locals init (uint32 V_0)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: stloc.0
IL_0003: br.s IL_0005
IL_0005: ldloc.0
IL_0006: ret
} // end of method MutableClass::get_Item
.method public hidebysig specialname
instance void set_Item(string name,
uint32 'value') cil managed
{
// Code size 2 (0x2)
.maxstack 8
IL_0000: nop
IL_0001: ret
} // end of method MutableClass::set_Item
.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 MutableClass::.ctor
.property instance int32 Property()
{
.get instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::get_Property()
.set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::set_Property(int32)
} // end of property MutableClass::Property
.property instance uint32 Item(string)
{
.get instance uint32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::get_Item(string)
.set instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::set_Item(string,
uint32)
} // end of property MutableClass::Item
} // end of class MutableClass
.field private int32 test1
.field private int32[] array1
.field private valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer field1
.field private valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum enumField
.field public static int32 StaticField
.field private static int32 '<StaticProperty>k__BackingField'
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.method public hidebysig specialname static
int32 get_StaticProperty() cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 6 (0x6)
.maxstack 8
IL_0000: ldsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::'<StaticProperty>k__BackingField'
IL_0005: ret
} // end of method CompoundAssignmentTest::get_StaticProperty
.method public hidebysig specialname static
void set_StaticProperty(int32 'value') cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::'<StaticProperty>k__BackingField'
IL_0006: ret
} // end of method CompoundAssignmentTest::set_StaticProperty
.method private hidebysig instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass
M() cil managed
{
// Code size 11 (0xb)
.maxstack 1
.locals init (class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass V_0)
IL_0000: nop
IL_0001: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::.ctor()
IL_0006: stloc.0
IL_0007: br.s IL_0009
IL_0009: ldloc.0
IL_000a: ret
} // end of method CompoundAssignmentTest::M
.method private hidebysig instance int32[0...,0...]
Array() cil managed
{
// Code size 7 (0x7)
.maxstack 1
.locals init (int32[0...,0...] V_0)
IL_0000: nop
IL_0001: ldnull
IL_0002: stloc.0
IL_0003: br.s IL_0005
IL_0005: ldloc.0
IL_0006: ret
} // end of method CompoundAssignmentTest::Array
.method private hidebysig instance int32*
GetPointer() cil managed
{
// Code size 8 (0x8)
.maxstack 1
.locals init (int32* V_0)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: conv.u
IL_0003: stloc.0
IL_0004: br.s IL_0006
IL_0006: ldloc.0
IL_0007: ret
} // end of method CompoundAssignmentTest::GetPointer
.method public hidebysig instance int32
GetIndex() cil managed
{
// Code size 19 (0x13)
.maxstack 3
.locals init (int32 V_0)
IL_0000: nop
IL_0001: newobj instance void [mscorlib]System.Random::.ctor()
IL_0006: ldc.i4.0
IL_0007: ldc.i4.s 100
IL_0009: callvirt instance int32 [mscorlib]System.Random::Next(int32,
int32)
IL_000e: stloc.0
IL_000f: br.s IL_0011
IL_0011: ldloc.0
IL_0012: ret
} // end of method CompoundAssignmentTest::GetIndex
.method public hidebysig instance int32[]
GetArray() cil managed
{
// Code size 7 (0x7)
.maxstack 8
IL_0000: nop
IL_0001: newobj instance void [mscorlib]System.NotImplementedException::.ctor()
IL_0006: throw
} // end of method CompoundAssignmentTest::GetArray
.method public hidebysig instance int32
GetValue(int32 'value') cil managed
{
// Code size 7 (0x7)
.maxstack 1
.locals init (int32 V_0)
IL_0000: nop
IL_0001: ldarg.1
IL_0002: stloc.0
IL_0003: br.s IL_0005
IL_0005: ldloc.0
IL_0006: ret
} // end of method CompoundAssignmentTest::GetValue
.method public hidebysig instance void
Int32_Local_Add(int32 i) cil managed
{
// Code size 48 (0x30)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.1
IL_0003: add
IL_0004: starg.s i
IL_0006: ldarg.1
IL_0007: dup
IL_0008: ldc.i4.1
IL_0009: add
IL_000a: starg.s i
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: nop
IL_0012: ldarg.1
IL_0013: ldc.i4.1
IL_0014: add
IL_0015: dup
IL_0016: starg.s i
IL_0018: call void [mscorlib]System.Console::WriteLine(int32)
IL_001d: nop
IL_001e: ldarg.1
IL_001f: ldc.i4.5
IL_0020: add
IL_0021: starg.s i
IL_0023: ldarg.1
IL_0024: ldc.i4.5
IL_0025: add
IL_0026: dup
IL_0027: starg.s i
IL_0029: call void [mscorlib]System.Console::WriteLine(int32)
IL_002e: nop
IL_002f: ret
} // end of method CompoundAssignmentTest::Int32_Local_Add
.method public hidebysig instance void
Int32_Local_Sub(int32 i) cil managed
{
// Code size 48 (0x30)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.1
IL_0003: sub
IL_0004: starg.s i
IL_0006: ldarg.1
IL_0007: dup
IL_0008: ldc.i4.1
IL_0009: sub
IL_000a: starg.s i
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: nop
IL_0012: ldarg.1
IL_0013: ldc.i4.1
IL_0014: sub
IL_0015: dup
IL_0016: starg.s i
IL_0018: call void [mscorlib]System.Console::WriteLine(int32)
IL_001d: nop
IL_001e: ldarg.1
IL_001f: ldc.i4.5
IL_0020: sub
IL_0021: starg.s i
IL_0023: ldarg.1
IL_0024: ldc.i4.5
IL_0025: sub
IL_0026: dup
IL_0027: starg.s i
IL_0029: call void [mscorlib]System.Console::WriteLine(int32)
IL_002e: nop
IL_002f: ret
} // end of method CompoundAssignmentTest::Int32_Local_Sub
.method public hidebysig instance void
Int32_Local_Mul(int32 i) cil managed
{
// Code size 19 (0x13)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.5
IL_0003: mul
IL_0004: starg.s i
IL_0006: ldarg.1
IL_0007: ldc.i4.5
IL_0008: mul
IL_0009: dup
IL_000a: starg.s i
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: nop
IL_0012: ret
} // end of method CompoundAssignmentTest::Int32_Local_Mul
.method public hidebysig instance void
Int32_Local_Div(int32 i) cil managed
{
// Code size 19 (0x13)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.5
IL_0003: div
IL_0004: starg.s i
IL_0006: ldarg.1
IL_0007: ldc.i4.5
IL_0008: div
IL_0009: dup
IL_000a: starg.s i
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: nop
IL_0012: ret
} // end of method CompoundAssignmentTest::Int32_Local_Div
.method public hidebysig instance void
Int32_Local_Rem(int32 i) cil managed
{
// Code size 19 (0x13)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.5
IL_0003: rem
IL_0004: starg.s i
IL_0006: ldarg.1
IL_0007: ldc.i4.5
IL_0008: rem
IL_0009: dup
IL_000a: starg.s i
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: nop
IL_0012: ret
} // end of method CompoundAssignmentTest::Int32_Local_Rem
.method public hidebysig instance void
Int32_Local_BitAnd(int32 i) cil managed
{
// Code size 19 (0x13)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.5
IL_0003: and
IL_0004: starg.s i
IL_0006: ldarg.1
IL_0007: ldc.i4.5
IL_0008: and
IL_0009: dup
IL_000a: starg.s i
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: nop
IL_0012: ret
} // end of method CompoundAssignmentTest::Int32_Local_BitAnd
.method public hidebysig instance void
Int32_Local_BitOr(int32 i) cil managed
{
// Code size 19 (0x13)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.5
IL_0003: or
IL_0004: starg.s i
IL_0006: ldarg.1
IL_0007: ldc.i4.5
IL_0008: or
IL_0009: dup
IL_000a: starg.s i
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: nop
IL_0012: ret
} // end of method CompoundAssignmentTest::Int32_Local_BitOr
.method public hidebysig instance void
Int32_Local_BitXor(int32 i) cil managed
{
// Code size 19 (0x13)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.5
IL_0003: xor
IL_0004: starg.s i
IL_0006: ldarg.1
IL_0007: ldc.i4.5
IL_0008: xor
IL_0009: dup
IL_000a: starg.s i
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: nop
IL_0012: ret
} // end of method CompoundAssignmentTest::Int32_Local_BitXor
.method public hidebysig instance void
Int32_Local_ShiftLeft(int32 i) cil managed
{
// Code size 19 (0x13)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.5
IL_0003: shl
IL_0004: starg.s i
IL_0006: ldarg.1
IL_0007: ldc.i4.5
IL_0008: shl
IL_0009: dup
IL_000a: starg.s i
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: nop
IL_0012: ret
} // end of method CompoundAssignmentTest::Int32_Local_ShiftLeft
.method public hidebysig instance void
Int32_Local_ShiftRight(int32 i) cil managed
{
// Code size 19 (0x13)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.5
IL_0003: shr
IL_0004: starg.s i
IL_0006: ldarg.1
IL_0007: ldc.i4.5
IL_0008: shr
IL_0009: dup
IL_000a: starg.s i
IL_000c: call void [mscorlib]System.Console::WriteLine(int32)
IL_0011: nop
IL_0012: ret
} // end of method CompoundAssignmentTest::Int32_Local_ShiftRight
.method public hidebysig instance void
IntegerWithInline(int32 i) cil managed
{
// Code size 21 (0x15)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldc.i4.5
IL_0003: add
IL_0004: dup
IL_0005: starg.s i
IL_0007: call void [mscorlib]System.Console::WriteLine(int32)
IL_000c: nop
IL_000d: ldarg.1
IL_000e: call void [mscorlib]System.Console::WriteLine(int32)
IL_0013: nop
IL_0014: ret
} // end of method CompoundAssignmentTest::IntegerWithInline
.method public hidebysig instance void
IntegerField(int32 i) cil managed
{
// Code size 72 (0x48)
.maxstack 3
.locals init (int32 V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldarg.0
IL_0003: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0008: ldarg.1
IL_0009: add
IL_000a: dup
IL_000b: stloc.0
IL_000c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0011: ldloc.0
IL_0012: call void [mscorlib]System.Console::WriteLine(int32)
IL_0017: nop
IL_0018: ldarg.0
IL_0019: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_001e: call void [mscorlib]System.Console::WriteLine(int32)
IL_0023: nop
IL_0024: ldarg.0
IL_0025: ldarg.0
IL_0026: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_002b: ldarg.1
IL_002c: sub
IL_002d: dup
IL_002e: stloc.0
IL_002f: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0034: ldloc.0
IL_0035: call void [mscorlib]System.Console::WriteLine(int32)
IL_003a: nop
IL_003b: ldarg.0
IL_003c: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::test1
IL_0041: call void [mscorlib]System.Console::WriteLine(int32)
IL_0046: nop
IL_0047: ret
} // end of method CompoundAssignmentTest::IntegerField
.method public hidebysig instance void
Array(int32 i) cil managed
{
// Code size 58 (0x3a)
.maxstack 4
.locals init (int32 V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldfld int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::array1
IL_0007: ldarg.1
IL_0008: ldelema [mscorlib]System.Int32
IL_000d: dup
IL_000e: ldind.i4
IL_000f: ldarg.1
IL_0010: add
IL_0011: dup
IL_0012: stloc.0
IL_0013: stind.i4
IL_0014: ldloc.0
IL_0015: call void [mscorlib]System.Console::WriteLine(int32)
IL_001a: nop
IL_001b: ldarg.0
IL_001c: ldfld int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::array1
IL_0021: ldarg.1
IL_0022: ldc.i4.2
IL_0023: mul
IL_0024: ldelema [mscorlib]System.Int32
IL_0029: dup
IL_002a: ldind.i4
IL_002b: ldarg.1
IL_002c: ldc.i4.2
IL_002d: mul
IL_002e: add
IL_002f: dup
IL_0030: stloc.0
IL_0031: stind.i4
IL_0032: ldloc.0
IL_0033: call void [mscorlib]System.Console::WriteLine(int32)
IL_0038: nop
IL_0039: ret
} // end of method CompoundAssignmentTest::Array
.method public hidebysig instance int32
ArrayUsageWithMethods() cil managed
{
// Code size 31 (0x1f)
.maxstack 3
.locals init (int32 V_0,
int32 V_1)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: call instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::GetArray()
IL_0007: ldarg.0
IL_0008: call instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::GetIndex()
IL_000d: ldelema [mscorlib]System.Int32
IL_0012: dup
IL_0013: ldind.i4
IL_0014: stloc.0
IL_0015: ldloc.0
IL_0016: ldc.i4.1
IL_0017: add
IL_0018: stind.i4
IL_0019: ldloc.0
IL_001a: stloc.1
IL_001b: br.s IL_001d
IL_001d: ldloc.1
IL_001e: ret
} // end of method CompoundAssignmentTest::ArrayUsageWithMethods
.method public hidebysig instance void
NestedField() cil managed
{
// Code size 44 (0x2c)
.maxstack 3
.locals init (bool V_0,
int32 V_1)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::field1
IL_0007: ldfld bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer::HasIndex
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: brfalse.s IL_002b
IL_0010: nop
IL_0011: ldarg.0
IL_0012: ldflda valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::field1
IL_0017: ldflda int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/StructContainer::Field
IL_001c: dup
IL_001d: ldind.i4
IL_001e: stloc.1
IL_001f: ldloc.1
IL_0020: ldc.i4.1
IL_0021: add
IL_0022: stind.i4
IL_0023: ldloc.1
IL_0024: call void [mscorlib]System.Console::WriteLine(int32)
IL_0029: nop
IL_002a: nop
IL_002b: ret
} // end of method CompoundAssignmentTest::NestedField
.method public hidebysig instance void
Enum() cil managed
{
// Code size 31 (0x1f)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldarg.0
IL_0003: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_0008: ldc.i4.2
IL_0009: or
IL_000a: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_000f: ldarg.0
IL_0010: ldarg.0
IL_0011: ldfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_0016: ldc.i4.s -5
IL_0018: and
IL_0019: stfld valuetype ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MyEnum ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::enumField
IL_001e: ret
} // end of method CompoundAssignmentTest::Enum
.method public hidebysig instance int32
PreIncrementInAddition(int32 i,
int32 j) cil managed
{
// Code size 14 (0xe)
.maxstack 3
.locals init (int32 V_0)
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: ldc.i4.1
IL_0004: add
IL_0005: dup
IL_0006: starg.s j
IL_0008: add
IL_0009: stloc.0
IL_000a: br.s IL_000c
IL_000c: ldloc.0
IL_000d: ret
} // end of method CompoundAssignmentTest::PreIncrementInAddition
.method public hidebysig instance int32
PreIncrementArrayElement(int32[] 'array',
int32 pos) cil managed
{
// Code size 21 (0x15)
.maxstack 3
.locals init (int32 V_0,
int32 V_1)
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: ldelema [mscorlib]System.Int32
IL_0008: dup
IL_0009: ldind.i4
IL_000a: ldc.i4.1
IL_000b: sub
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: stind.i4
IL_000f: ldloc.0
IL_0010: stloc.1
IL_0011: br.s IL_0013
IL_0013: ldloc.1
IL_0014: ret
} // end of method CompoundAssignmentTest::PreIncrementArrayElement
.method public hidebysig instance int32
PreIncrementInstanceField() cil managed
{
// Code size 28 (0x1c)
.maxstack 3
.locals init (int32 V_0,
int32 V_1)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: call instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::M()
IL_0007: dup
IL_0008: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_000d: ldc.i4.1
IL_000e: add
IL_000f: stloc.0
IL_0010: ldloc.0
IL_0011: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_0016: ldloc.0
IL_0017: stloc.1
IL_0018: br.s IL_001a
IL_001a: ldloc.1
IL_001b: ret
} // end of method CompoundAssignmentTest::PreIncrementInstanceField
.method public hidebysig instance int32
PreIncrementInstanceField2(class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass m) cil managed
{
// Code size 23 (0x17)
.maxstack 3
.locals init (int32 V_0,
int32 V_1)
IL_0000: nop
IL_0001: ldarg.1
IL_0002: dup
IL_0003: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_0008: ldc.i4.1
IL_0009: add
IL_000a: stloc.0
IL_000b: ldloc.0
IL_000c: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::Field
IL_0011: ldloc.0
IL_0012: stloc.1
IL_0013: br.s IL_0015
IL_0015: ldloc.1
IL_0016: ret
} // end of method CompoundAssignmentTest::PreIncrementInstanceField2
.method public hidebysig instance int32
PreIncrementInstanceProperty() cil managed
{
// Code size 29 (0x1d)
.maxstack 3
.locals init (int32 V_0,
int32 V_1)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: call instance class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::M()
IL_0007: dup
IL_0008: callvirt instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::get_Property()
IL_000d: ldc.i4.1
IL_000e: add
IL_000f: stloc.0
IL_0010: ldloc.0
IL_0011: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest/MutableClass::set_Property(int32)
IL_0016: nop
IL_0017: ldloc.0
IL_0018: stloc.1
IL_0019: br.s IL_001b
IL_001b: ldloc.1
IL_001c: ret
} // end of method CompoundAssignmentTest::PreIncrementInstanceProperty
.method public hidebysig instance int32
PreIncrementStaticField() cil managed
{
// Code size 19 (0x13)
.maxstack 2
.locals init (int32 V_0)
IL_0000: nop
IL_0001: ldsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::StaticField
IL_0006: ldc.i4.1
IL_0007: add
IL_0008: dup
IL_0009: stsfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::StaticField
IL_000e: stloc.0
IL_000f: br.s IL_0011
IL_0011: ldloc.0
IL_0012: ret
} // end of method CompoundAssignmentTest::PreIncrementStaticField
.method public hidebysig instance int32
PreIncrementStaticProperty() cil managed
{
// Code size 20 (0x14)
.maxstack 2
.locals init (int32 V_0)
IL_0000: nop
IL_0001: call int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::get_StaticProperty()
IL_0006: ldc.i4.1
IL_0007: add
IL_0008: dup
IL_0009: call void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::set_StaticProperty(int32)
IL_000e: nop
IL_000f: stloc.0
IL_0010: br.s IL_0012
IL_0012: ldloc.0
IL_0013: ret
} // end of method CompoundAssignmentTest::PreIncrementStaticProperty
.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 CompoundAssignmentTest::.ctor
.property int32 StaticProperty()
{
.get int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::get_StaticProperty()
.set void ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest::set_StaticProperty(int32)
} // end of property CompoundAssignmentTest::StaticProperty
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.CompoundAssignmentTest
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************

13
ICSharpCode.Decompiler/Tests/TestCases/Pretty/HelloWorld.il

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.17929
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.18020
// Copyright (c) Microsoft Corporation. All rights reserved.
@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly xxnyzhlv
.assembly k1t5kqf4
{
.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
@ -20,15 +20,15 @@ @@ -20,15 +20,15 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module xxnyzhlv.exe
// MVID: {81192B72-DC9D-4496-83E9-F42A6852B7DB}
.module k1t5kqf4.dll
// MVID: {E5E22476-66BF-4224-B0B7-8B8B07971677}
.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
.imagebase 0x00400000
.imagebase 0x10000000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
// Image base: 0x00BC0000
// Image base: 0x00B10000
// =============== CLASS MEMBERS DECLARATION ===================
@ -38,7 +38,6 @@ @@ -38,7 +38,6 @@
{
.method public hidebysig static void Main() cil managed
{
.entrypoint
// Code size 13 (0xd)
.maxstack 8
IL_0000: nop

5
ICSharpCode.Decompiler/Tests/TestCases/Pretty/InlineAssignmentTest.cs

@ -26,11 +26,6 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty @@ -26,11 +26,6 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
private static InlineAssignmentTest field2;
private int[] field3;
public static void Main()
{
}
public void SimpleInlineWithLocals()
{
int V_0;

21
ICSharpCode.Decompiler/Tests/TestCases/Pretty/InlineAssignmentTest.il

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.17929
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.18020
// Copyright (c) Microsoft Corporation. All rights reserved.
@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly ddqu2emz
.assembly ibag1kve
{
.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
@ -20,15 +20,15 @@ @@ -20,15 +20,15 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module ddqu2emz.exe
// MVID: {E3C9CEDE-53B1-4B60-977E-6E7ECB67DB34}
.module ibag1kve.dll
// MVID: {C798271E-70DB-47E6-B4B1-8CCE369C32D9}
.custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 )
.imagebase 0x00400000
.imagebase 0x10000000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
// Image base: 0x03080000
// Image base: 0x01380000
// =============== CLASS MEMBERS DECLARATION ===================
@ -39,15 +39,6 @@ @@ -39,15 +39,6 @@
.field private int32 field1
.field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest field2
.field private int32[] field3
.method public hidebysig static void Main() cil managed
{
.entrypoint
// Code size 2 (0x2)
.maxstack 8
IL_0000: nop
IL_0001: ret
} // end of method InlineAssignmentTest::Main
.method public hidebysig instance void
SimpleInlineWithLocals() cil managed
{

250
ICSharpCode.Decompiler/Tests/TestCases/Pretty/InlineAssignmentTest.opt.il

@ -0,0 +1,250 @@ @@ -0,0 +1,250 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.18020
// 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 apcrd50s
{
.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 apcrd50s.dll
// MVID: {2884A62F-51BC-4EC0-B257-046D0505426A}
.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: 0x02680000
// =============== CLASS MEMBERS DECLARATION ===================
.class public auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest
extends [mscorlib]System.Object
{
.field private int32 field1
.field private static class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest field2
.field private int32[] field3
.method public hidebysig instance void
SimpleInlineWithLocals() cil managed
{
// Code size 33 (0x21)
.maxstack 2
.locals init (int32 V_0,
class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest V_1)
IL_0000: ldc.i4.5
IL_0001: dup
IL_0002: stloc.0
IL_0003: call void [mscorlib]System.Console::WriteLine(int32)
IL_0008: ldloc.0
IL_0009: call void [mscorlib]System.Console::WriteLine(int32)
IL_000e: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::.ctor()
IL_0013: dup
IL_0014: stloc.1
IL_0015: call void [mscorlib]System.Console::WriteLine(object)
IL_001a: ldloc.1
IL_001b: call void [mscorlib]System.Console::WriteLine(object)
IL_0020: ret
} // end of method InlineAssignmentTest::SimpleInlineWithLocals
.method public hidebysig instance void
SimpleInlineWithFields() cil managed
{
// Code size 32 (0x20)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: ldc.i4.5
IL_0002: dup
IL_0003: stloc.0
IL_0004: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::field1
IL_0009: ldloc.0
IL_000a: call void [mscorlib]System.Console::WriteLine(int32)
IL_000f: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::.ctor()
IL_0014: dup
IL_0015: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::field2
IL_001a: call void [mscorlib]System.Console::WriteLine(object)
IL_001f: ret
} // end of method InlineAssignmentTest::SimpleInlineWithFields
.method public hidebysig instance void
SimpleInlineWithFields2() cil managed
{
// Code size 53 (0x35)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: ldc.i4.5
IL_0002: dup
IL_0003: stloc.0
IL_0004: stfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::field1
IL_0009: ldloc.0
IL_000a: call void [mscorlib]System.Console::WriteLine(int32)
IL_000f: ldarg.0
IL_0010: ldfld int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::field1
IL_0015: call void [mscorlib]System.Console::WriteLine(int32)
IL_001a: newobj instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::.ctor()
IL_001f: dup
IL_0020: stsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::field2
IL_0025: call void [mscorlib]System.Console::WriteLine(object)
IL_002a: ldsfld class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::field2
IL_002f: call void [mscorlib]System.Console::WriteLine(object)
IL_0034: ret
} // end of method InlineAssignmentTest::SimpleInlineWithFields2
.method public hidebysig instance void
AccessArray(int32[] a) cil managed
{
// Code size 23 (0x17)
.maxstack 4
.locals init (int32 V_0,
int32 V_1)
IL_0000: ldarg.1
IL_0001: ldc.i4.0
IL_0002: ldelem.i4
IL_0003: dup
IL_0004: stloc.0
IL_0005: call void [mscorlib]System.Console::WriteLine(int32)
IL_000a: ldarg.1
IL_000b: ldloc.0
IL_000c: ldloc.0
IL_000d: dup
IL_000e: stloc.1
IL_000f: stelem.i4
IL_0010: ldloc.1
IL_0011: call void [mscorlib]System.Console::WriteLine(int32)
IL_0016: ret
} // end of method InlineAssignmentTest::AccessArray
.method public hidebysig instance int32
Return(int32& a) cil managed
{
// Code size 7 (0x7)
.maxstack 3
.locals init (int32 V_0)
IL_0000: ldarg.1
IL_0001: ldc.i4.3
IL_0002: dup
IL_0003: stloc.0
IL_0004: stind.i4
IL_0005: ldloc.0
IL_0006: ret
} // end of method InlineAssignmentTest::Return
.method public hidebysig instance int32
Array(int32[] a,
int32 i) cil managed
{
// Code size 8 (0x8)
.maxstack 4
.locals init (int32 V_0)
IL_0000: ldarg.1
IL_0001: ldarg.2
IL_0002: ldarg.2
IL_0003: dup
IL_0004: stloc.0
IL_0005: stelem.i4
IL_0006: ldloc.0
IL_0007: ret
} // end of method InlineAssignmentTest::Array
.method public hidebysig instance int32
Array2(int32 i) cil managed
{
// Code size 13 (0xd)
.maxstack 4
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: ldfld int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::field3
IL_0006: ldarg.1
IL_0007: ldc.i4.1
IL_0008: dup
IL_0009: stloc.0
IL_000a: stelem.i4
IL_000b: ldloc.0
IL_000c: ret
} // end of method InlineAssignmentTest::Array2
.method public hidebysig instance int32
GetIndex() cil managed
{
// Code size 14 (0xe)
.maxstack 8
IL_0000: newobj instance void [mscorlib]System.Random::.ctor()
IL_0005: ldc.i4.0
IL_0006: ldc.i4.s 100
IL_0008: callvirt instance int32 [mscorlib]System.Random::Next(int32,
int32)
IL_000d: ret
} // end of method InlineAssignmentTest::GetIndex
.method public hidebysig instance int32[]
GetArray() cil managed
{
// Code size 6 (0x6)
.maxstack 8
IL_0000: newobj instance void [mscorlib]System.NotImplementedException::.ctor()
IL_0005: throw
} // end of method InlineAssignmentTest::GetArray
.method public hidebysig instance int32
GetValue(int32 'value') cil managed
{
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ret
} // end of method InlineAssignmentTest::GetValue
.method public hidebysig instance int32
ArrayUsageWithMethods() cil managed
{
// Code size 29 (0x1d)
.maxstack 4
.locals init (int32 V_0)
IL_0000: ldarg.0
IL_0001: call instance int32[] ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::GetArray()
IL_0006: ldarg.0
IL_0007: call instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::GetIndex()
IL_000c: ldarg.0
IL_000d: ldarg.0
IL_000e: call instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::GetIndex()
IL_0013: call instance int32 ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest::GetValue(int32)
IL_0018: dup
IL_0019: stloc.0
IL_001a: stelem.i4
IL_001b: ldloc.0
IL_001c: ret
} // end of method InlineAssignmentTest::ArrayUsageWithMethods
.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 InlineAssignmentTest::.ctor
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.InlineAssignmentTest
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************
// WARNING: Created Win32 resource file ../../Tests/TestCases/Pretty\InlineAssignmentTest.opt.res

8
ICSharpCode.Decompiler/Tests/TestCases/Pretty/ShortCircuit.il

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly '0hc4wf1j'
.assembly '54jn3zeu'
{
.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
@ -20,15 +20,15 @@ @@ -20,15 +20,15 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module '0hc4wf1j.dll'
// MVID: {BB9907D8-9A9B-40EA-99C2-170F6DA15820}
.module '54jn3zeu.dll'
// MVID: {95CCC6F2-466F-4752-91AB-4D6F87ADF909}
.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: 0x017B0000
// Image base: 0x017A0000
// =============== CLASS MEMBERS DECLARATION ===================

18
ICSharpCode.Decompiler/Tests/TestCases/Pretty/ShortCircuit.opt.il

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.18020
// Copyright (c) Microsoft Corporation. All rights reserved.
@ -10,26 +10,25 @@ @@ -10,26 +10,25 @@
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly ShortCircuit.opt
.assembly bnt5tgxz
{
.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 ShortCircuit.opt.dll
// MVID: {B2A8B996-539C-419F-B01A-1DC6A75F40BA}
.module bnt5tgxz.dll
// MVID: {B950FA21-9F7A-4262-B8CD-886373656630}
.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: 0x00C70000
// Image base: 0x01520000
// =============== CLASS MEMBERS DECLARATION ===================
@ -298,3 +297,4 @@ @@ -298,3 +297,4 @@
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************
// WARNING: Created Win32 resource file ../../Tests/TestCases/Pretty\ShortCircuit.opt.res

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

@ -0,0 +1,303 @@ @@ -0,0 +1,303 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.18020
// 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 ShortCircuit
{
.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 ShortCircuit.dll
// MVID: {705562DA-2C0F-43A9-B4DA-DA6EF72B9256}
.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: 0x02D40000
// =============== CLASS MEMBERS DECLARATION ===================
.class public abstract auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit
extends [mscorlib]System.Object
{
.method public hidebysig newslot abstract virtual
instance void B(bool b) cil managed
{
} // end of method ShortCircuit::B
.method public hidebysig newslot abstract virtual
instance bool F(int32 i) cil managed
{
} // end of method ShortCircuit::F
.method public hidebysig newslot abstract virtual
instance void M1() cil managed
{
} // end of method ShortCircuit::M1
.method public hidebysig newslot abstract virtual
instance void M2() cil managed
{
} // end of method ShortCircuit::M2
.method public hidebysig newslot abstract virtual
instance void E() cil managed
{
} // end of method ShortCircuit::E
.method public hidebysig instance void
ExprAnd() cil managed
{
// Code size 26 (0x1a)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.0
IL_0002: ldc.i4.0
IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0008: brfalse.s IL_0013
IL_000a: ldarg.0
IL_000b: ldc.i4.1
IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0011: br.s IL_0014
IL_0013: ldc.i4.0
IL_0014: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::B(bool)
IL_0019: ret
} // end of method ShortCircuit::ExprAnd
.method public hidebysig instance void
ExprOr() cil managed
{
// Code size 26 (0x1a)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.0
IL_0002: ldc.i4.0
IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0008: brtrue.s IL_0013
IL_000a: ldarg.0
IL_000b: ldc.i4.1
IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0011: br.s IL_0014
IL_0013: ldc.i4.1
IL_0014: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::B(bool)
IL_0019: ret
} // end of method ShortCircuit::ExprOr
.method public hidebysig instance void
ExprCond() cil managed
{
// Code size 32 (0x20)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.0
IL_0002: ldc.i4.0
IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0008: brtrue.s IL_0013
IL_000a: ldarg.0
IL_000b: ldc.i4.2
IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0011: br.s IL_001a
IL_0013: ldarg.0
IL_0014: ldc.i4.1
IL_0015: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_001a: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::B(bool)
IL_001f: ret
} // end of method ShortCircuit::ExprCond
.method public hidebysig instance void
StmtAnd2() cil managed
{
// Code size 39 (0x27)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0007: brfalse.s IL_001a
IL_0009: ldarg.0
IL_000a: ldc.i4.1
IL_000b: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0010: brfalse.s IL_001a
IL_0012: ldarg.0
IL_0013: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M1()
IL_0018: br.s IL_0020
IL_001a: ldarg.0
IL_001b: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M2()
IL_0020: ldarg.0
IL_0021: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::E()
IL_0026: ret
} // end of method ShortCircuit::StmtAnd2
.method public hidebysig instance void
StmtOr2() cil managed
{
// Code size 39 (0x27)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0007: brtrue.s IL_0012
IL_0009: ldarg.0
IL_000a: ldc.i4.1
IL_000b: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0010: brfalse.s IL_001a
IL_0012: ldarg.0
IL_0013: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M1()
IL_0018: br.s IL_0020
IL_001a: ldarg.0
IL_001b: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M2()
IL_0020: ldarg.0
IL_0021: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::E()
IL_0026: ret
} // end of method ShortCircuit::StmtOr2
.method public hidebysig instance void
StmtAnd3() cil managed
{
// Code size 48 (0x30)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0007: brfalse.s IL_0023
IL_0009: ldarg.0
IL_000a: ldc.i4.1
IL_000b: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0010: brfalse.s IL_0023
IL_0012: ldarg.0
IL_0013: ldc.i4.2
IL_0014: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0019: brfalse.s IL_0023
IL_001b: ldarg.0
IL_001c: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M1()
IL_0021: br.s IL_0029
IL_0023: ldarg.0
IL_0024: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M2()
IL_0029: ldarg.0
IL_002a: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::E()
IL_002f: ret
} // end of method ShortCircuit::StmtAnd3
.method public hidebysig instance void
StmtOr3() cil managed
{
// Code size 48 (0x30)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0007: brtrue.s IL_001b
IL_0009: ldarg.0
IL_000a: ldc.i4.1
IL_000b: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0010: brtrue.s IL_001b
IL_0012: ldarg.0
IL_0013: ldc.i4.3
IL_0014: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0019: brfalse.s IL_0023
IL_001b: ldarg.0
IL_001c: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M1()
IL_0021: br.s IL_0029
IL_0023: ldarg.0
IL_0024: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M2()
IL_0029: ldarg.0
IL_002a: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::E()
IL_002f: ret
} // end of method ShortCircuit::StmtOr3
.method public hidebysig instance void
StmtComplex() cil managed
{
// Code size 66 (0x42)
.maxstack 2
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0007: brfalse.s IL_0035
IL_0009: ldarg.0
IL_000a: ldc.i4.1
IL_000b: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0010: brfalse.s IL_0035
IL_0012: ldarg.0
IL_0013: ldc.i4.2
IL_0014: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0019: brtrue.s IL_0035
IL_001b: ldarg.0
IL_001c: ldc.i4.3
IL_001d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0022: brtrue.s IL_002d
IL_0024: ldarg.0
IL_0025: ldc.i4.4
IL_0026: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_002b: brfalse.s IL_0035
IL_002d: ldarg.0
IL_002e: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M1()
IL_0033: br.s IL_003b
IL_0035: ldarg.0
IL_0036: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M2()
IL_003b: ldarg.0
IL_003c: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::E()
IL_0041: ret
} // end of method ShortCircuit::StmtComplex
.method family hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0006: ret
} // end of method ShortCircuit::.ctor
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************

383
ICSharpCode.Decompiler/Tests/TestCases/Pretty/ShortCircuit.roslyn.il

@ -0,0 +1,383 @@ @@ -0,0 +1,383 @@
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.18020
// 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 ShortCircuit
{
.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 ShortCircuit.dll
// MVID: {B3B8C47D-78FB-4162-BB12-12183DDBD57B}
.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: 0x02FC0000
// =============== CLASS MEMBERS DECLARATION ===================
.class public abstract auto ansi beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit
extends [mscorlib]System.Object
{
.method public hidebysig newslot abstract virtual
instance void B(bool b) cil managed
{
} // end of method ShortCircuit::B
.method public hidebysig newslot abstract virtual
instance bool F(int32 i) cil managed
{
} // end of method ShortCircuit::F
.method public hidebysig newslot abstract virtual
instance void M1() cil managed
{
} // end of method ShortCircuit::M1
.method public hidebysig newslot abstract virtual
instance void M2() cil managed
{
} // end of method ShortCircuit::M2
.method public hidebysig newslot abstract virtual
instance void E() cil managed
{
} // end of method ShortCircuit::E
.method public hidebysig instance void
ExprAnd() cil managed
{
// Code size 28 (0x1c)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldarg.0
IL_0003: ldc.i4.0
IL_0004: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0009: brfalse.s IL_0014
IL_000b: ldarg.0
IL_000c: ldc.i4.1
IL_000d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0012: br.s IL_0015
IL_0014: ldc.i4.0
IL_0015: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::B(bool)
IL_001a: nop
IL_001b: ret
} // end of method ShortCircuit::ExprAnd
.method public hidebysig instance void
ExprOr() cil managed
{
// Code size 28 (0x1c)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldarg.0
IL_0003: ldc.i4.0
IL_0004: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0009: brtrue.s IL_0014
IL_000b: ldarg.0
IL_000c: ldc.i4.1
IL_000d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0012: br.s IL_0015
IL_0014: ldc.i4.1
IL_0015: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::B(bool)
IL_001a: nop
IL_001b: ret
} // end of method ShortCircuit::ExprOr
.method public hidebysig instance void
ExprCond() cil managed
{
// Code size 34 (0x22)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldarg.0
IL_0003: ldc.i4.0
IL_0004: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0009: brtrue.s IL_0014
IL_000b: ldarg.0
IL_000c: ldc.i4.2
IL_000d: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0012: br.s IL_001b
IL_0014: ldarg.0
IL_0015: ldc.i4.1
IL_0016: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_001b: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::B(bool)
IL_0020: nop
IL_0021: ret
} // end of method ShortCircuit::ExprCond
.method public hidebysig instance void
StmtAnd2() cil managed
{
// Code size 52 (0x34)
.maxstack 2
.locals init (bool V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldc.i4.0
IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0008: brfalse.s IL_0013
IL_000a: ldarg.0
IL_000b: ldc.i4.1
IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0011: br.s IL_0014
IL_0013: ldc.i4.0
IL_0014: stloc.0
IL_0015: ldloc.0
IL_0016: brfalse.s IL_0023
IL_0018: nop
IL_0019: ldarg.0
IL_001a: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M1()
IL_001f: nop
IL_0020: nop
IL_0021: br.s IL_002c
IL_0023: nop
IL_0024: ldarg.0
IL_0025: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M2()
IL_002a: nop
IL_002b: nop
IL_002c: ldarg.0
IL_002d: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::E()
IL_0032: nop
IL_0033: ret
} // end of method ShortCircuit::StmtAnd2
.method public hidebysig instance void
StmtOr2() cil managed
{
// Code size 52 (0x34)
.maxstack 2
.locals init (bool V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldc.i4.0
IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0008: brtrue.s IL_0013
IL_000a: ldarg.0
IL_000b: ldc.i4.1
IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0011: br.s IL_0014
IL_0013: ldc.i4.1
IL_0014: stloc.0
IL_0015: ldloc.0
IL_0016: brfalse.s IL_0023
IL_0018: nop
IL_0019: ldarg.0
IL_001a: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M1()
IL_001f: nop
IL_0020: nop
IL_0021: br.s IL_002c
IL_0023: nop
IL_0024: ldarg.0
IL_0025: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M2()
IL_002a: nop
IL_002b: nop
IL_002c: ldarg.0
IL_002d: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::E()
IL_0032: nop
IL_0033: ret
} // end of method ShortCircuit::StmtOr2
.method public hidebysig instance void
StmtAnd3() cil managed
{
// Code size 61 (0x3d)
.maxstack 2
.locals init (bool V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldc.i4.0
IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0008: brfalse.s IL_001c
IL_000a: ldarg.0
IL_000b: ldc.i4.1
IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0011: brfalse.s IL_001c
IL_0013: ldarg.0
IL_0014: ldc.i4.2
IL_0015: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_001a: br.s IL_001d
IL_001c: ldc.i4.0
IL_001d: stloc.0
IL_001e: ldloc.0
IL_001f: brfalse.s IL_002c
IL_0021: nop
IL_0022: ldarg.0
IL_0023: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M1()
IL_0028: nop
IL_0029: nop
IL_002a: br.s IL_0035
IL_002c: nop
IL_002d: ldarg.0
IL_002e: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M2()
IL_0033: nop
IL_0034: nop
IL_0035: ldarg.0
IL_0036: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::E()
IL_003b: nop
IL_003c: ret
} // end of method ShortCircuit::StmtAnd3
.method public hidebysig instance void
StmtOr3() cil managed
{
// Code size 61 (0x3d)
.maxstack 2
.locals init (bool V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldc.i4.0
IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0008: brtrue.s IL_001c
IL_000a: ldarg.0
IL_000b: ldc.i4.1
IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0011: brtrue.s IL_001c
IL_0013: ldarg.0
IL_0014: ldc.i4.3
IL_0015: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_001a: br.s IL_001d
IL_001c: ldc.i4.1
IL_001d: stloc.0
IL_001e: ldloc.0
IL_001f: brfalse.s IL_002c
IL_0021: nop
IL_0022: ldarg.0
IL_0023: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M1()
IL_0028: nop
IL_0029: nop
IL_002a: br.s IL_0035
IL_002c: nop
IL_002d: ldarg.0
IL_002e: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M2()
IL_0033: nop
IL_0034: nop
IL_0035: ldarg.0
IL_0036: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::E()
IL_003b: nop
IL_003c: ret
} // end of method ShortCircuit::StmtOr3
.method public hidebysig instance void
StmtComplex() cil managed
{
// Code size 82 (0x52)
.maxstack 2
.locals init (bool V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldc.i4.0
IL_0003: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0008: brfalse.s IL_0031
IL_000a: ldarg.0
IL_000b: ldc.i4.1
IL_000c: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0011: brfalse.s IL_0031
IL_0013: ldarg.0
IL_0014: ldc.i4.2
IL_0015: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_001a: brtrue.s IL_0031
IL_001c: ldarg.0
IL_001d: ldc.i4.3
IL_001e: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_0023: brtrue.s IL_002e
IL_0025: ldarg.0
IL_0026: ldc.i4.4
IL_0027: callvirt instance bool ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::F(int32)
IL_002c: br.s IL_002f
IL_002e: ldc.i4.1
IL_002f: br.s IL_0032
IL_0031: ldc.i4.0
IL_0032: stloc.0
IL_0033: ldloc.0
IL_0034: brfalse.s IL_0041
IL_0036: nop
IL_0037: ldarg.0
IL_0038: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M1()
IL_003d: nop
IL_003e: nop
IL_003f: br.s IL_004a
IL_0041: nop
IL_0042: ldarg.0
IL_0043: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::M2()
IL_0048: nop
IL_0049: nop
IL_004a: ldarg.0
IL_004b: callvirt instance void ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit::E()
IL_0050: nop
IL_0051: ret
} // end of method ShortCircuit::StmtComplex
.method family hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0006: nop
IL_0007: ret
} // end of method ShortCircuit::.ctor
} // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.ShortCircuit
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************

11
ICSharpCode.Decompiler/Tests/app.config

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.1.0" newVersion="1.2.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

6
ICSharpCode.Decompiler/Tests/packages.config

@ -1,7 +1,11 @@ @@ -1,7 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DiffLib" version="1.0.0.55" />
<package id="Microsoft.CodeAnalysis.Analyzers" version="1.1.0" targetFramework="net45" />
<package id="Microsoft.CodeAnalysis.Common" version="1.3.2" targetFramework="net45" />
<package id="Microsoft.CodeAnalysis.CSharp" version="1.3.2" targetFramework="net45" />
<package id="NUnit" version="2.6.3" targetFramework="net45" />
<package id="NUnitTestAdapter" version="2.0.0" targetFramework="net45" />
<package id="System.Collections.Immutable" version="1.2.0-rc2-24027" targetFramework="net45" />
<package id="System.Collections.Immutable" version="1.3.0" targetFramework="net45" />
<package id="System.Reflection.Metadata" version="1.2.0" targetFramework="net45" />
</packages>

2
ICSharpCode.Decompiler/packages.config

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="System.Collections.Immutable" version="1.2.0-rc2-24027" targetFramework="net45" />
<package id="System.Collections.Immutable" version="1.3.0" targetFramework="net45" />
</packages>

1
ILSpy.BamlDecompiler/Tests/ILSpy.BamlDecompiler.Tests.csproj

@ -143,6 +143,7 @@ @@ -143,6 +143,7 @@
<Page Include="Cases\Issue445.xaml" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />

11
ILSpy.BamlDecompiler/Tests/app.config

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.1.0" newVersion="1.2.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

4
ILSpy/ILSpy.csproj

@ -80,8 +80,8 @@ @@ -80,8 +80,8 @@
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System" />
<Reference Include="System.Collections.Immutable, Version=1.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.1.2.0-rc2-24027\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
<Reference Include="System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.1.3.0\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.ComponentModel.Composition">

2
ILSpy/packages.config

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AvalonEdit" version="5.0.3" targetFramework="net45" />
<package id="System.Collections.Immutable" version="1.2.0-rc2-24027" targetFramework="net45" />
<package id="System.Collections.Immutable" version="1.3.0" targetFramework="net45" />
</packages>

8
Rebracer.xml

@ -22,9 +22,13 @@ @@ -22,9 +22,13 @@
</ToolsOptionsCategory>
<ToolsOptionsCategory name="TextEditor">
<ToolsOptionsSubCategory name="CSharp-Specific">
<PropertyValue name="AddImport_SuggestForTypesInNuGetPackages">0</PropertyValue>
<PropertyValue name="AddImport_SuggestForTypesInReferenceAssemblies">0</PropertyValue>
<PropertyValue name="AutoComment">1</PropertyValue>
<PropertyValue name="AutoInsertAsteriskForNewLinesOfBlockComments">1</PropertyValue>
<PropertyValue name="BringUpOnIdentifier">1</PropertyValue>
<PropertyValue name="ClosedFileDiagnostics">1</PropertyValue>
<PropertyValue name="CSharpClosedFileDiagnostics">-1</PropertyValue>
<PropertyValue name="ClosedFileDiagnostics">-1</PropertyValue>
<PropertyValue name="CodeDefinitionWindow_DocumentationComment_IndentBase">1</PropertyValue>
<PropertyValue name="CodeDefinitionWindow_DocumentationComment_IndentOffset">2</PropertyValue>
<PropertyValue name="CodeDefinitionWindow_DocumentationComment_WrapLength">80</PropertyValue>
@ -96,7 +100,7 @@ @@ -96,7 +100,7 @@
<PropertyValue name="Style_PreferIntrinsicPredefinedTypeKeywordInMemberAccess">1</PropertyValue>
<PropertyValue name="Style_QualifyMemberAccessWithThisOrMe">0</PropertyValue>
<PropertyValue name="Style_UseVarWhenDeclaringLocals">1</PropertyValue>
<PropertyValue name="WarnOnBuildErrors">1</PropertyValue>
<PropertyValue name="WarnOnBuildErrors">0</PropertyValue>
<PropertyValue name="WarnWhenMembersCauseCompilerGeneratedReferences">1</PropertyValue>
<PropertyValue name="Wrapping_IgnoreSpacesAroundBinaryOperators">0</PropertyValue>
<PropertyValue name="Wrapping_IgnoreSpacesAroundVariableDeclaration">0</PropertyValue>

Loading…
Cancel
Save