.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 e990d5ac00 Revert the 'unwrapBoxingConversion' addition to TranslateTarget(), I ended up solving the boxing issue directly in HandleDelegateConstruction() 7 years ago
..
Async.cs Fix await in finally pattern with using statement. 7 years ago
BitNot.il Move test projects to their own directory in \ 8 years ago
Capturing.cs Use mcs for correctness tests. 7 years ago
Comparisons.cs Only use mcs for the first compilation pass. Consistently run test cases using .NET 4.x runtime. 7 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 Move test projects to their own directory in \ 8 years ago
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 Move test projects to their own directory in \ 8 years ago
ExpressionTrees.cs Use mcs for correctness tests. 7 years ago
FloatingPointArithmetic.cs Commit first test case. 8 years ago
Generics.cs Fix #958: Invalid cast in generic class for abstract base call 8 years ago
HelloWorld.cs Move test projects to their own directory in \ 8 years ago
InitializerTests.cs Use mcs for correctness tests. 7 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
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 Add license and source information to MiniJSON.cs 8 years ago
NullPropagation.cs Fix indentation 7 years ago
NullableTests.cs [nullables] Fix nullable transform being applied incorrectly. 8 years ago
OverloadResolution.cs Fix #1281: Fix CallBuilder: use expanded form only if overload resolution allows it. 7 years ago
PropertiesAndEvents.cs Move test projects to their own directory in \ 8 years ago
Readme.txt Move test projects to their own directory in \ 8 years ago
RefLocalsAndReturns.cs Add basic unit tests for ref returns, locals and conditional 7 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 7 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 Use mcs for correctness tests. 7 years ago
ValueTypeCall.cs Avoid unnecessary (object) cast when calling myEnum.ToString() 8 years ago
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.