.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
 
 
 
 
ElektroKill c76f755ec6
Fix code style
2 years ago
..
Async.cs Fix #1749, fix #2339, fix #2353: Add support for rethrow in async exception handlers, fix await catch/finally patterns for complex methods. 4 years ago
BitNot.il
Capturing.cs #2128: Reformat the whole code base. 5 years ago
ComInterop.cs Run ComInterop test case only on .NET 4.0. 3 years ago
Comparisons.cs Fix #2398: TranslateCondition: truncate condition value if necessary 4 years ago
CompoundAssignment.cs #2128: Reformat the whole code base. 5 years ago
ConditionalAttr.cs
ControlFlow.cs #2128: Reformat the whole code base. 5 years ago
Conversions.cs #2128: Reformat the whole code base. 5 years ago
DecimalFields.cs Fix code style 2 years ago
DeconstructionTests.cs Run tests with different versions of Roslyn 5 years ago
DynamicTests.cs Fix #2349: Use proper ExpressionType with DynamicCompoundAssign. 4 years ago
ExpressionTrees.cs
FloatingPointArithmetic.cs #2128: Reformat the whole code base. 5 years ago
Generics.cs #2128: Reformat the whole code base. 5 years ago
HelloWorld.cs
InitializerTests.cs #2622: Fix crash in ExpressionBuilder when decompiling object initializer composed of readonly properties. 4 years ago
Jmp.il
LINQRaytracer.cs #2128: Reformat the whole code base. 5 years ago
Loops.cs #2128: Reformat the whole code base. 5 years ago
MemberLookup.cs #2128: Reformat the whole code base. 5 years ago
MiniJSON.cs #2128: Reformat the whole code base. 5 years ago
NullPropagation.cs #2128: Reformat the whole code base. 5 years ago
NullableTests.cs Run tests with different versions of Roslyn 5 years ago
OverloadResolution.cs Fix #2741: CallBuilder produces invalid invocation target when disambiguating calls to protected methods. 3 years ago
PropertiesAndEvents.cs #2128: Reformat the whole code base. 5 years ago
Readme.txt
StackTests.il
StackTypes.il
StringConcat.cs Add support for DefaultInterpolatedStringHandler 3 years ago
Switch.cs #2128: Reformat the whole code base. 5 years ago
TrickyTypes.cs #2128: Reformat the whole code base. 5 years ago
UndocumentedExpressions.cs #2128: Reformat the whole code base. 5 years ago
Uninit.vb
UnsafeCode.cs #2128: Reformat the whole code base. 5 years ago
Using.cs #2128: Reformat the whole code base. 5 years ago
ValueTypeCall.cs #2128: Reformat the whole code base. 5 years ago
YieldReturn.cs #2128: Reformat the whole code base. 5 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.