.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Siegfried Pammer 64686b9547 Fix #1336: multi-dimensional array initializers with custom objects not detected. 7 years ago
..
Async.cs Fix await in finally pattern with using statement. 7 years ago
BitNot.il
Capturing.cs Use mcs for correctness tests. 8 years ago
Comparisons.cs Only use mcs for the first compilation pass. Consistently run test cases using .NET 4.x runtime. 8 years ago
CompoundAssignment.cs Don't use compound assignment when the RHS value does not fit into the LHS type. 7 years ago
ConditionalAttr.cs
ControlFlow.cs
Conversions.cs
DecimalFields.cs
ExpressionTrees.cs Use mcs for correctness tests. 8 years ago
FloatingPointArithmetic.cs Commit first test case. 8 years ago
Generics.cs
HelloWorld.cs
InitializerTests.cs Fix #1336: multi-dimensional array initializers with custom objects not detected. 7 years ago
Jmp.il
LINQRaytracer.cs
LocalFunctions.cs Add detection of local functions, so we do not hide the methods/display classes. 7 years ago
Loops.cs Add test case for #1304. 7 years ago
MemberLookup.cs Fix missing 'base.' qualifier on non-virtual call to virtual base method. 7 years ago
MiniJSON.cs
NullPropagation.cs Fix indentation 8 years ago
NullableTests.cs
OverloadResolution.cs Fix #1281: Fix CallBuilder: use expanded form only if overload resolution allows it. 7 years ago
PropertiesAndEvents.cs
Readme.txt
RefLocalsAndReturns.cs Add basic unit tests for ref returns, locals and conditional 8 years ago
StackTypes.il Revert the 'unwrapBoxingConversion' addition to TranslateTarget(), I ended up solving the boxing issue directly in HandleDelegateConstruction() 7 years ago
Switch.cs Fix #1076; improve detection of mcs switch-on-string pattern 8 years ago
TrickyTypes.cs
UndocumentedExpressions.cs
UnsafeCode.cs
Using.cs Use mcs for correctness tests. 8 years ago
ValueTypeCall.cs
YieldReturn.cs Add pretty tests for "yield return" and fix some minor bugs: 7 years ago

Readme.txt

The files in this folder are correctness tests for the decompiler.

The NUnit class running these tests is ../../CorrectnessTestRunner.cs.

We:
* compile/assemble a test case (call the result "executable 1")
* decompile "executable 1" to C# ("decompiled.cs")
* compile decompiled.cs, resulting in "executable 2"
* run both executable and compare their output (exit code, stdout, stderr)

We repeat the steps above with a few different compiler options (/o+ or not; /debug or not).

The tests pass if the code compiles without error and produces the same output.
The tests do not care at all if the resulting code is pretty, or if any high-level constructs like closures were detected.