.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 1ee3384a05 Fix #2640: Invalid implicit enum value for unordered items 3 years ago
..
.gitignore
AnonymousTypes.cs
AssemblyCustomAttributes.cs
Async.cs Add test case for #2436 4 years ago
AsyncForeach.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
AsyncMain.cs
AsyncStreams.cs
AsyncUsing.cs
AutoProperties.cs
CS9_ExtensionGetEnumerator.cs Add additional tests for .NET 4.0 3 years ago
CS72_PrivateProtected.cs
CS73_StackAllocInitializers.cs Âdd a test case for stackalloc in nested context. 4 years ago
CheckedUnchecked.cs
CompoundAssignmentTest.cs Fix #2448: Decompiler shows some enum values as hexdecimal instead of decimal 4 years ago
ConstantsTests.cs
ConstructorInitializers.cs Fix #2547: decimal const not removed from static constructor. 4 years ago
CovariantReturns.cs Adds support for C# 9 covariant return types in methods and getter-only properties and indexers. 4 years ago
CustomAttributeConflicts.cs
CustomAttributeSamples.cs Fix #2448: Decompiler shows some enum values as hexdecimal instead of decimal 4 years ago
CustomAttributes.cs Fix #2448: Decompiler shows some enum values as hexdecimal instead of decimal 4 years ago
CustomAttributes2.cs Fix #2448: Decompiler shows some enum values as hexdecimal instead of decimal 4 years ago
CustomShortCircuitOperators.cs
CustomTaskType.cs
DeconstructionTests.cs Add additional tests for .NET 4.0 3 years ago
DelegateConstruction.cs
Discards.cs
DynamicTests.cs
EnumTests.cs Fix #2640: Invalid implicit enum value for unordered items 3 years ago
ExceptionHandling.cs Fix #2379: Keep `return` statements around in original form for ConditionDetection, only transform to fall-through block-exit at the end of the transform pipeline. 4 years ago
ExpressionTrees.cs Fix #2354: decompilation of unary and binary operators with nullable value types. 4 years ago
FileScopedNamespaces.cs Generate file-scoped namespace declarations, if possible. 4 years ago
FixProxyCalls.cs
FunctionPointers.cs Adjust AsyncAwaitDecompiler to Roslyn 3.9.0. 4 years ago
Generics.cs Fix #2231: Add support for ldloca; dup; initobj pattern used by Roslyn. 4 years ago
HelloWorld.cs
IndexRangeTest.cs
InitializerTests.cs Add additional tests for .NET 4.0 3 years ago
InlineAssignmentTest.cs
InterfaceTests.cs Add additional tests for .NET 4.0 3 years ago
Issue1080.cs
LiftedOperators.cs Adjust NullableLiftingTransform to match new patterns due to RemoveInfeasiblePathTransform. 4 years ago
LocalFunctions.cs `#enable nullable` for a couple of files. 5 years ago
Lock.cs
Loops.cs mcs 5 generates IL patterns that might lead to wrong behavior, if inlined, therefore we have to add another special case to the tests. 4 years ago
MemberTests.cs Fix #2389: missing extern keyword for properties and events. 4 years ago
MultidimensionalArray.cs
NamedArguments.cs
NativeInts.cs Fix #2541: Add explicit `unchecked()` around non-constant cast of constant to `nint` 4 years ago
NullPropagation.cs
NullableRefTypes.cs Remove incomplete/wrong support for null-forgiving operator. 3 years ago
OptionalArguments.cs
OutVariables.cs Initial implementation of the pattern matching transform. 4 years ago
PInvoke.cs
PatternMatching.cs Move PatternMatchingTransform after LoopDetection. 4 years ago
PropertiesAndEvents.cs
QualifierTests.cs #1828: Add test case 5 years ago
QueryExpressions.cs Remove incomplete/wrong support for null-forgiving operator. 3 years ago
Readme.txt
Records.cs Add support for `in parameters` in primary ctor of records 4 years ago
ReduceNesting.cs DetectExitPoints: introduce exit points for loops+switch 4 years ago
RefLocalsAndReturns.cs Fix #2406: for readonly property with only getter, move readonly to property instead of getter 4 years ago
ShortCircuit.cs Fix DecompilerSettings.PatternMatching should only be active in case >= CS70. 4 years ago
StaticAbstractInterfaceMembers.cs Add basic support for abstract static members in interfaces. 4 years ago
StringInterpolation.cs - Make all tests async. 3 years ago
Structs.cs Add struct test case. 4 years ago
Switch.cs
SwitchExpressions.cs Update to dotnet-format 5.1.225507. 4 years ago
ThrowExpressions.cs
TupleTests.cs
TypeAnalysisTests.cs Fix #2398: TranslateCondition: truncate condition value if necessary 4 years ago
TypeMemberTests.cs
UnsafeCode.cs DetectPinnedRegions: Inline the stack-slot involved in CustomRefPinPattern so that the following ProcessPinnedRegion call can reuse existing unmanaged pointer variables instead of being forced to create a new variable. 3 years ago
UserDefinedConversions.cs
Using.cs
UsingVariables.cs Add additional tests for .NET 4.0 3 years ago
ValueTypes.cs Fix #2390: Extend variable splitting to treat stobj as immediate address use. 4 years ago
VariableNaming.cs
VariableNamingWithoutSymbols.cs
WellKnownConstants.cs Add additional tests for .NET 4.0 3 years ago
YieldReturn.cs

Readme.txt

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

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

Each test case is a C# file.
The test runner will:
1. Compile the file into an .exe/.dll
2. Decompile the .exe/.dll
3. Compare the resulting code with the original input code.

The tests pass if the code looks exactly the same as the input code, ignoring comments, empty lines and preprocessor directives.
It also ignores disabled preprocessors sections (e.g. "#if ROSLYN") when the test runs with a compiler that does not set this symbol.
See Tester.GetPreprocessorSymbols() for the available symbols.