.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.
 
 
 
 
Christoph Wille 7bf102f3b4 Keep the default literal's type when a conversion is unwrapped 4 weeks 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 Fix #3894: keep lambda parameter typing consistent 1 month ago
AssemblyCustomAttributes.cs dev: Strip BOM mark from text files 1 year ago
Async.cs Extend UseLambdaSyntax to emit statement lambdas 1 month ago
AsyncAwaitPatterns.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks 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 #3908: use the async iterator element type for yield 2 months ago
AsyncUsing.cs Keep the default literal's type when a conversion is unwrapped 4 weeks ago
AutoProperties.cs Add pretty tests for SetsRequiredMembers and required-member inheritance 2 months ago
AutomaticEvents.cs Replace automatic-event backing-field references during translation 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
CachedReadOnlySpanInitialization.cs Fix #3850: recover ReadOnlySpan<T> array literals from the legacy lazy cache 2 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 Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
ConstantsTests.cs dev: Strip BOM mark from text files 1 year ago
ConstructorInitializers.cs Give an explicit `this` the same resolve result as `base` 1 month 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 Extend UseLambdaSyntax to emit statement lambdas 1 month ago
DeconstructionTests.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
DefaultLiteral.cs Keep the default literal's type when a conversion is unwrapped 4 weeks ago
DelegateConstruction.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks 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 Beautify enum declarations by referencing previously declared members 2 months 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 Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
ExtensionEverything.cs Apply suggestions from Claude code review 6 months ago
FieldKeyword.cs Cover the field-keyword name collisions with fixtures 1 month ago
FileScopedNamespaces.cs dev: Strip BOM mark from text files 1 year ago
FirstClassSpanConversions.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
FirstClassSpanTypes.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
FixProxyCalls.cs Extend UseLambdaSyntax to emit statement lambdas 1 month 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 Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
InlineArrayTests.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
InlineAssignmentTest.cs dev: Strip BOM mark from text files 1 year ago
InterfaceTests.cs Run InterfaceTests against the legacy csc and mcs compilers too 1 month 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 Extend UseLambdaSyntax to emit statement lambdas 1 month 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 Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
Issue3571_B.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
Issue3571_C.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
Issue3576.cs Do not create object initializers for tuples 12 months ago
Issue3584.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks 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 Extend UseLambdaSyntax to emit statement lambdas 1 month ago
Issue3877.cs Add Issue3877 test and handle negative dict capacity 2 months ago
Issue3909.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
LiftedOperators.cs Add pretty tests for lifted compound assignment and nullable boxing 2 months ago
LocalFunctions.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
Lock.cs dev: Strip BOM mark from text files 1 year ago
Loops.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks 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 Emit C# 7.1 default literals where the context supplies the type 4 weeks 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 Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
NullableRefTypes.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks 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 Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
OverloadResolution.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks 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 Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
PropertiesAndEvents.cs Extend UseLambdaSyntax to emit statement lambdas 1 month ago
QualifierTests.cs Extend UseLambdaSyntax to emit statement lambdas 1 month ago
QueryExpressions.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
Readme.txt dev: Strip BOM mark from text files 1 year ago
Records.cs Cover nested deconstruction of record structs with a fixture 1 month ago
ReduceNesting.cs dev: Strip BOM mark from text files 1 year ago
RefFields.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
RefLocalsAndReturns.cs Keep ref-returning switches as statements 1 month ago
RefStructInterfaces.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
ShortCircuit.cs Fix #1924: don't undo the compiler's &&-to-& optimization 2 months ago
StaticAbstractInterfaceMembers.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
StringConcatenation.cs Fix #3895: keep byref-like ToString in string concatenation 2 months ago
StringInterpolation.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
Structs.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
Switch.cs Fix #1924: don't undo the compiler's &&-to-& optimization 2 months ago
SwitchExpressions.cs Fix #3382: Support compiler-generated throw-helper invocations in switch-expression implicit default-case. 3 months ago
TargetTypedDefault.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
ThrowExpressions.cs dev: Strip BOM mark from text files 1 year ago
TupleTests.cs Extend UseLambdaSyntax to emit statement lambdas 1 month ago
TypeAnalysisTests.cs Fix #1142: recover enum members for out-of-range constant operands 1 month ago
TypeMemberTests.cs dev: Strip BOM mark from text files 1 year ago
UnsafeCode.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
UserDefinedConversions.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
Using.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
UsingVariables.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
ValueTypes.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks 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 Cover the fractions that were not written as fractions 4 weeks 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.