.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 cbe05e7fa0 Add/move some foreach test cases. 8 years ago
..
.gitignore
AnonymousTypes.cs Update tests (remove unnecessary casts) 8 years ago
AnonymousTypes.il Update tests (remove unnecessary casts) 8 years ago
AnonymousTypes.opt.il Update tests (remove unnecessary casts) 8 years ago
Async.cs Split Async tests 8 years ago
Async.il Split Async tests 8 years ago
Async.opt.il Split Async tests 8 years ago
Async.opt.roslyn.il Split Async tests 8 years ago
Async.roslyn.il Split Async tests 8 years ago
AutoProperties.cs
AutoProperties.opt.roslyn.il
AutoProperties.roslyn.il
CheckedUnchecked.cs Add back CheckedUnchecked test case. 8 years ago
CheckedUnchecked.il Add back CheckedUnchecked test case. 8 years ago
CheckedUnchecked.opt.il Add back CheckedUnchecked test case. 8 years ago
CheckedUnchecked.opt.roslyn.il Add back CheckedUnchecked test case. 8 years ago
CheckedUnchecked.roslyn.il Add back CheckedUnchecked test case. 8 years ago
CompoundAssignmentTest.cs Fix #882: Invalid assignment code after decompiling 8 years ago
CompoundAssignmentTest.il Fix #882: Invalid assignment code after decompiling 8 years ago
CompoundAssignmentTest.opt.il Fix #882: Invalid assignment code after decompiling 8 years ago
CompoundAssignmentTest.opt.roslyn.il Fix #882: Invalid assignment code after decompiling 8 years ago
CompoundAssignmentTest.roslyn.il Fix #882: Invalid assignment code after decompiling 8 years ago
ExceptionHandling.cs ad #885 and #886: add more tests 8 years ago
ExceptionHandling.il ad #885 and #886: add more tests 8 years ago
ExceptionHandling.opt.il ad #885 and #886: add more tests 8 years ago
ExceptionHandling.opt.roslyn.il ad #885 and #886: add more tests 8 years ago
ExceptionHandling.roslyn.il ad #885 and #886: add more tests 8 years ago
Generics.cs Add transform for new T(). 8 years ago
Generics.il Add transform for new T(). 8 years ago
Generics.opt.il Add transform for new T(). 8 years ago
Generics.opt.roslyn.il Add transform for new T(). 8 years ago
Generics.roslyn.il Add transform for new T(). 8 years ago
HelloWorld.cs
HelloWorld.il
InlineAssignmentTest.cs Update tests (remove unnecessary casts) 8 years ago
InlineAssignmentTest.il
InlineAssignmentTest.opt.il
LiftedOperators.cs Add support for syntax sugar when writing out the ILAst. 8 years ago
Lock.cs Implement C# 2, C# 4 legacy and Roslyn lock patterns. 8 years ago
Lock.il Implement C# 2, C# 4 legacy and Roslyn lock patterns. 8 years ago
Lock.opt.il Implement C# 2, C# 4 legacy and Roslyn lock patterns. 8 years ago
Lock.opt.roslyn.il Implement C# 2, C# 4 legacy and Roslyn lock patterns. 8 years ago
Lock.roslyn.il Implement C# 2, C# 4 legacy and Roslyn lock patterns. 8 years ago
Loops.cs Add/move some foreach test cases. 8 years ago
Loops.il Add/move some foreach test cases. 8 years ago
Loops.opt.il Add/move some foreach test cases. 8 years ago
Loops.opt.roslyn.il Add/move some foreach test cases. 8 years ago
Loops.roslyn.il Add/move some foreach test cases. 8 years ago
PInvoke.cs Restore P/Invoke test. 8 years ago
PInvoke.il Restore P/Invoke test. 8 years ago
PInvoke.opt.il Restore P/Invoke test. 8 years ago
PInvoke.opt.roslyn.il Restore P/Invoke test. 8 years ago
PInvoke.roslyn.il Restore P/Invoke test. 8 years ago
PropertiesAndEvents.cs Fix #883: Incorrect decompilation of explicitly implemented events 8 years ago
PropertiesAndEvents.il Fix #883: Incorrect decompilation of explicitly implemented events 8 years ago
PropertiesAndEvents.opt.il Fix #883: Incorrect decompilation of explicitly implemented events 8 years ago
PropertiesAndEvents.opt.roslyn.il Fix #883: Incorrect decompilation of explicitly implemented events 8 years ago
PropertiesAndEvents.roslyn.il Fix #883: Incorrect decompilation of explicitly implemented events 8 years ago
QueryExpressions.cs Eliminate the dedicated logic.not instruction, and treat it as syntax sugar similar to logic.and/logic.or. 8 years ago
QueryExpressions.il Reimplement IntroduceQueryExpressions and CombineQueryExpressions 8 years ago
QueryExpressions.opt.il Reimplement IntroduceQueryExpressions and CombineQueryExpressions 8 years ago
QueryExpressions.opt.roslyn.il Reimplement IntroduceQueryExpressions and CombineQueryExpressions 8 years ago
QueryExpressions.roslyn.il Reimplement IntroduceQueryExpressions and CombineQueryExpressions 8 years ago
Readme.txt
ShortCircuit.cs
ShortCircuit.il
ShortCircuit.opt.il
ShortCircuit.opt.roslyn.il
ShortCircuit.roslyn.il
TypeAnalysisTests.cs Restore P/Invoke test. 8 years ago
TypeAnalysisTests.il Restore P/Invoke test. 8 years ago
TypeAnalysisTests.opt.il Restore P/Invoke test. 8 years ago
TypeAnalysisTests.opt.roslyn.il Restore P/Invoke test. 8 years ago
TypeAnalysisTests.roslyn.il Restore P/Invoke test. 8 years ago
Using.cs [using] Add more test cases. 8 years ago
Using.il Add support for using on nullables. 8 years ago
Using.opt.il Add support for using on nullables. 8 years ago
Using.opt.roslyn.il Add support for using on nullables. 8 years ago
Using.roslyn.il Add support for using on nullables. 8 years ago

Readme.txt

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

The NUnit class running these tests is ../PrettyTestRunner.cs.
It uses pre-defined IL files in order to avoid test failures in cause of compiler changes.
We test different C# compiler versions as well (in future).

Each test consists of a C# file for comparing the resulting code and a source IL file used for assembling/decompiling.

We:
* assemble a test case (call the result "executable 1")
* decompile "executable 1" to C# ("decompiled.cs")
* compare "decompiled.cs" to "source.cs"

The tests pass if the code looks exactly the same as the input code, ignoring comments, empty lines and preprocessor directives.

Note: If you delete an .il file, it will be re-created on the next test run.
This can be helpful when modifying the test case; but it also might have unexpected results when your C# compiler differs
from the compiler previously used to create the .il file.