.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.
 
 
 
 
Daniel Grunwald e6afe4bf98 Fix #915: ensure that loops are nested correctly 8 years ago
..
Async.cs Remove redundant lambda casts. 8 years ago
BitNot.il
Capturing.cs Fix #963: foreach-over-array mishandles captured variables 8 years ago
Comparisons.cs
CompoundAssignment.cs Add support for compound assignment of short integers. 8 years ago
ConditionalAttr.cs
ControlFlow.cs Move using test from ControlFlow to Using 8 years ago
Conversions.cs Fix #926: missing explicit casts for implicit operators 8 years ago
DecimalFields.cs
Generics.cs Fix #958: Invalid cast in generic class for abstract base call 8 years ago
HelloWorld.cs
InitializerTests.cs Fix #953: Missing nullable specifier for array initializer 8 years ago
Jmp.il #899: decode jmp instruction into tail call 8 years ago
LINQRaytracer.cs Reduce size of LINQRaytracer test case 8 years ago
Loops.cs Fix #915: ensure that loops are nested correctly 8 years ago
MemberLookup.cs
MiniJSON.cs Add license and source information to MiniJSON.cs 8 years ago
NullableTests.cs [nullables] Fix nullable transform being applied incorrectly. 8 years ago
OverloadResolution.cs Add overload resolution for ctor calls. 8 years ago
PropertiesAndEvents.cs
Readme.txt
StackTypes.il Avoid using inline assignments if they truncate the input value. 8 years ago
Switch.cs Implement translation of cascading if-statements with string comparisons to switch(string). 8 years ago
TrickyTypes.cs Avoid unnecessary casts in pointer comparisons. 8 years ago
UndocumentedExpressions.cs Update tests (remove unnecessary casts) 8 years ago
UnsafeCode.cs Move stackalloc tests to pretty-tests. 8 years ago
Using.cs Add ILInlining.IsUsedAsThisPointerInCall(). 8 years ago
ValueTypeCall.cs Avoid unnecessary (object) cast when calling myEnum.ToString() 8 years ago
YieldReturn.cs

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.