.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 1e6a19e2c4 Fix #3860: Avoid 'out var' if the variable recurs in the argument list 2 months ago
..
.gitignore Rewrite TransformFieldAndConstructorInitializers from a step-by-step AST-based analysis to an analysis that tracks the whole constructor body. 10 months ago
AnonymousTypes.cs Add pretty tests for nested anonymous-type members 2 months ago
AssemblyCustomAttributes.cs dev: Strip BOM mark from text files 1 year ago
Async.cs Add pretty tests for await in expression positions 2 months ago
AsyncForeach.cs Add pretty tests for ConfigureAwait in async iterators and foreach 2 months ago
AsyncMain.cs dev: Strip BOM mark from text files 1 year ago
AsyncStreams.cs Fix #3825: handle hoisted-local cleanup before combined-tokens disposal 2 months ago
AsyncUsing.cs dev: Strip BOM mark from text files 1 year ago
AutoProperties.cs Add pretty tests for SetsRequiredMembers and required-member inheritance 2 months ago
CS9_ExtensionGetEnumerator.cs dev: Strip BOM mark from text files 1 year ago
CS72_PrivateProtected.cs dev: Strip BOM mark from text files 1 year ago
CS73_StackAllocInitializers.cs Don't inline a pointer-typed stackalloc into an expression 3 months ago
CheckedUnchecked.cs dev: Strip BOM mark from text files 1 year ago
Comparisons.cs dev: Strip BOM mark from text files 1 year ago
CompoundAssignmentTest.cs Add preprocessor directive 1 year ago
ConstantsTests.cs dev: Strip BOM mark from text files 1 year ago
ConstructorInitializers.cs Simplify hoisted null-guard fold to reference-type constructor chains 2 months ago
CovariantReturns.cs Merge pull request #3546 from petercrabtree/dev/dev-env-clean-no-bom 1 year ago
CustomAttributeConflicts.cs dev: Strip BOM mark from text files 1 year ago
CustomAttributeSamples.cs Fix IDE2000 globally 9 months ago
CustomAttributes.cs Add pretty test for generic attributes with constructed type arguments 2 months ago
CustomAttributes2.cs Fix #2448: Decompiler shows some enum values as hexdecimal instead of decimal 5 years ago
CustomShortCircuitOperators.cs Rewrite TransformFieldAndConstructorInitializers from a step-by-step AST-based analysis to an analysis that tracks the whole constructor body. 10 months ago
CustomTaskType.cs dev: Strip BOM mark from text files 1 year ago
DeconstructionTests.cs dev: Strip BOM mark from text files 1 year ago
DelegateConstruction.cs dev: Strip BOM mark from text files 1 year ago
Discards.cs Remove obsolete tests 12 months ago
DynamicAwait.cs Fix #1388, #1928: decompile await on dynamic expressions 2 months ago
DynamicTests.cs Fix dynamic event-assignment decompilation leaking is-event opcode 2 months ago
EnumTests.cs Addressed feedback 2 years ago
ExceptionHandling.cs Add pretty test for exception filters with side effects 2 months ago
ExpandParamsArgumentsDisabled.cs Add ExpandParamsArguments DecompilerSettings 1 year ago
ExpressionTrees.cs Add pretty test for checked arithmetic in expression trees 2 months ago
ExtensionEverything.cs Apply suggestions from Claude code review 6 months ago
FileScopedNamespaces.cs dev: Strip BOM mark from text files 1 year ago
FixProxyCalls.cs dev: Strip BOM mark from text files 1 year ago
FunctionPointers.cs Handle multiple calling conventions at once 10 months ago
Generics.cs Add pretty test for overriding members of a generic base type 2 months ago
GloballyQualifiedTypeInStringInterpolation.cs dev: Strip BOM mark from text files 1 year ago
HelloWorld.cs dev: Strip BOM mark from text files 1 year ago
IndexRangeTest.cs dev: Strip BOM mark from text files 1 year ago
InitializerTests.cs Add regression test for duplicate array-element assignment 2 months ago
InlineArrayTests.cs Fix #3804: reconstruct foreach over an inline array 2 months ago
InlineAssignmentTest.cs dev: Strip BOM mark from text files 1 year ago
InterfaceTests.cs Add pretty tests for protected, static, and generic interface members 2 months ago
Issue1080.cs dev: Strip BOM mark from text files 1 year ago
Issue3406.cs dev: Strip BOM mark from text files 1 year ago
Issue3439.cs dev: Strip BOM mark from text files 1 year ago
Issue3442.cs dev: Strip BOM mark from text files 1 year ago
Issue3452.cs Fix #3611: Update test cases to reflect original test 9 months ago
Issue3483.cs dev: Strip BOM mark from text files 1 year ago
Issue3541.cs Fix regression in decompiling local functions with default parameters 1 year ago
Issue3571_A.cs Fix lower case type name conflicting with variable name 12 months ago
Issue3571_B.cs Fix lower case type name conflicting with variable name 12 months ago
Issue3571_C.cs Formatting 12 months ago
Issue3576.cs Do not create object initializers for tuples 12 months ago
Issue3584.cs Improve inlining of boxed values 10 months ago
Issue3598.cs Rewrite TransformFieldAndConstructorInitializers from a step-by-step AST-based analysis to an analysis that tracks the whole constructor body. 10 months ago
Issue3610.cs Fix #3611: Update test cases to reflect original test 9 months ago
Issue3611.cs Fix IDE2000 globally 9 months ago
Issue3684.cs Fix #1682, fix #1949, fix #2394 and fix #3684: Added basic algorithm of IsAccessorInterfaceImplementationRuntimeHelper 6 months ago
Issue3684.dep.cs Fix #1682, fix #1949, fix #2394 and fix #3684: Added basic algorithm of IsAccessorInterfaceImplementationRuntimeHelper 6 months ago
Issue3751.cs Fix anonymous-type lambda early-return emitting unresolvable cast (#3752) 3 months ago
LiftedOperators.cs Add pretty tests for lifted compound assignment and nullable boxing 2 months ago
LocalFunctions.cs Add pretty tests for async local functions 2 months ago
Lock.cs dev: Strip BOM mark from text files 1 year ago
Loops.cs dev: Strip BOM mark from text files 1 year ago
MemberTests.cs dev: Strip BOM mark from text files 1 year ago
MetadataAttributes.cs dev: Strip BOM mark from text files 1 year ago
MultidimensionalArray.cs dev: Strip BOM mark from text files 1 year ago
NamedArguments.cs Fix #3626: Do not emit named arguments for bool constants, if it causes the call to become ambiguous. 10 months ago
NativeInts.cs dev: Strip BOM mark from text files 1 year ago
NullPropagation.cs dev: Strip BOM mark from text files 1 year ago
NullableRefTypes.cs Add pretty tests for nullable postcondition attributes 2 months ago
Operators.cs Add pretty test for compound assignment with checked operators 2 months ago
OptionalArguments.cs dev: Strip BOM mark from text files 1 year ago
OptionalArgumentsDisabled.cs Fix methods with mandatory arguments ignore disabled OptionalArguments setting 1 year ago
OutVariables.cs Fix #3860: Avoid 'out var' if the variable recurs in the argument list 2 months ago
PInvoke.cs dev: Strip BOM mark from text files 1 year ago
ParamsCollections.cs Add test for "params scoped Span'. 11 months ago
PatternMatching.cs dev: Strip BOM mark from text files 1 year ago
PointerArithmetic.cs dev: Strip BOM mark from text files 1 year ago
PropertiesAndEvents.cs Fix #3575: Uses of compiler-generated events getting swapped with non-generated events of same type 12 months ago
QualifierTests.cs Remove obsolete tests 12 months ago
QueryExpressions.cs Add pretty test for select-into query continuations 2 months ago
Readme.txt dev: Strip BOM mark from text files 1 year ago
Records.cs Add pretty tests for readonly record structs and custom record members 2 months ago
ReduceNesting.cs dev: Strip BOM mark from text files 1 year ago
RefFields.cs Add pretty tests for UnscopedRef members 2 months ago
RefLocalsAndReturns.cs Address review: keep while-loop instead of headless for for ref locals 2 months ago
ShortCircuit.cs Fix IDE2000 globally 9 months ago
StaticAbstractInterfaceMembers.cs Add pretty tests for static abstract checked and shift operators 2 months ago
StringInterpolation.cs dev: Strip BOM mark from text files 1 year ago
Structs.cs Many thanks to @sonyps5201314 for providing the test cases and a suggested fix, which inspired these changes. 10 months ago
Switch.cs Fix IDE2000 globally 9 months ago
SwitchExpressions.cs Fix #3382: Support compiler-generated throw-helper invocations in switch-expression implicit default-case. 3 months ago
ThrowExpressions.cs dev: Strip BOM mark from text files 1 year ago
TupleTests.cs dev: Strip BOM mark from text files 1 year ago
TypeAnalysisTests.cs dev: Strip BOM mark from text files 1 year ago
TypeMemberTests.cs dev: Strip BOM mark from text files 1 year ago
UnsafeCode.cs Add pretty tests for pointer-to-pointer shapes 2 months ago
UserDefinedConversions.cs dev: Strip BOM mark from text files 1 year ago
Using.cs dev: Strip BOM mark from text files 1 year ago
UsingVariables.cs Add pretty test for pattern-based Dispose of a ref struct 2 months ago
ValueTypes.cs dev: Strip BOM mark from text files 1 year ago
VariableNaming.cs dev: Strip BOM mark from text files 1 year ago
VariableNamingWithoutSymbols.cs dev: Strip BOM mark from text files 1 year ago
Variance.cs Add Variance pretty test fixture 2 months ago
WellKnownConstants.cs dev: Strip BOM mark from text files 1 year ago
YieldReturn.cs Add pretty test for generic iterator methods 2 months ago

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.