.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 32058da4eb Add pretty tests for UnscopedRef members 3 days ago
..
.gitignore Rewrite TransformFieldAndConstructorInitializers from a step-by-step AST-based analysis to an analysis that tracks the whole constructor body. 8 months ago
AnonymousTypes.cs Add pretty tests for nested anonymous-type members 3 days ago
AssemblyCustomAttributes.cs dev: Strip BOM mark from text files 10 months ago
Async.cs Add pretty tests for await in expression positions 3 days ago
AsyncForeach.cs Add pretty tests for ConfigureAwait in async iterators and foreach 3 days ago
AsyncMain.cs dev: Strip BOM mark from text files 10 months ago
AsyncStreams.cs Add pretty tests for ConfigureAwait in async iterators and foreach 3 days ago
AsyncUsing.cs dev: Strip BOM mark from text files 10 months ago
AutoProperties.cs Add pretty tests for SetsRequiredMembers and required-member inheritance 3 days ago
CS9_ExtensionGetEnumerator.cs dev: Strip BOM mark from text files 10 months ago
CS72_PrivateProtected.cs dev: Strip BOM mark from text files 10 months ago
CS73_StackAllocInitializers.cs Don't inline a pointer-typed stackalloc into an expression 2 weeks ago
CheckedUnchecked.cs dev: Strip BOM mark from text files 10 months ago
Comparisons.cs dev: Strip BOM mark from text files 10 months ago
CompoundAssignmentTest.cs Add preprocessor directive 11 months ago
ConstantsTests.cs dev: Strip BOM mark from text files 10 months ago
ConstructorInitializers.cs Fix #3703: Do not transform to a primary constructor if it's not public (or protected in abstract classes) 3 months ago
CovariantReturns.cs Merge pull request #3546 from petercrabtree/dev/dev-env-clean-no-bom 10 months ago
CustomAttributeConflicts.cs dev: Strip BOM mark from text files 10 months ago
CustomAttributeSamples.cs Fix IDE2000 globally 6 months ago
CustomAttributes.cs Add pretty test for generic attributes with constructed type arguments 3 days 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. 8 months ago
CustomTaskType.cs dev: Strip BOM mark from text files 10 months ago
DeconstructionTests.cs dev: Strip BOM mark from text files 10 months ago
DelegateConstruction.cs dev: Strip BOM mark from text files 10 months ago
Discards.cs Remove obsolete tests 9 months ago
DynamicTests.cs Add pretty tests for dynamic in loop conditions and conditional calls 3 days ago
EnumTests.cs Addressed feedback 1 year ago
ExceptionHandling.cs Add pretty test for exception filters with side effects 3 days ago
ExpandParamsArgumentsDisabled.cs Add ExpandParamsArguments DecompilerSettings 11 months ago
ExpressionTrees.cs Add pretty test for checked arithmetic in expression trees 3 days ago
ExtensionEverything.cs Apply suggestions from Claude code review 4 months ago
FileScopedNamespaces.cs dev: Strip BOM mark from text files 10 months ago
FixProxyCalls.cs dev: Strip BOM mark from text files 10 months ago
FunctionPointers.cs Handle multiple calling conventions at once 7 months ago
Generics.cs Add pretty test for overriding members of a generic base type 3 days ago
GloballyQualifiedTypeInStringInterpolation.cs dev: Strip BOM mark from text files 10 months ago
HelloWorld.cs dev: Strip BOM mark from text files 10 months ago
IndexRangeTest.cs dev: Strip BOM mark from text files 10 months ago
InitializerTests.cs Add pretty tests for UTF-8 string literal edge cases 3 days ago
InlineArrayTests.cs dev: Strip BOM mark from text files 10 months ago
InlineAssignmentTest.cs dev: Strip BOM mark from text files 10 months ago
InterfaceTests.cs Add pretty tests for protected, static, and generic interface members 3 days ago
Issue1080.cs dev: Strip BOM mark from text files 10 months ago
Issue3406.cs dev: Strip BOM mark from text files 10 months ago
Issue3439.cs dev: Strip BOM mark from text files 10 months ago
Issue3442.cs dev: Strip BOM mark from text files 10 months ago
Issue3452.cs Fix #3611: Update test cases to reflect original test 7 months ago
Issue3483.cs dev: Strip BOM mark from text files 10 months ago
Issue3541.cs Fix regression in decompiling local functions with default parameters 10 months ago
Issue3571_A.cs Fix lower case type name conflicting with variable name 9 months ago
Issue3571_B.cs Fix lower case type name conflicting with variable name 9 months ago
Issue3571_C.cs Formatting 9 months ago
Issue3576.cs Do not create object initializers for tuples 9 months ago
Issue3584.cs Improve inlining of boxed values 8 months ago
Issue3598.cs Rewrite TransformFieldAndConstructorInitializers from a step-by-step AST-based analysis to an analysis that tracks the whole constructor body. 8 months ago
Issue3610.cs Fix #3611: Update test cases to reflect original test 7 months ago
Issue3611.cs Fix IDE2000 globally 6 months ago
Issue3684.cs Fix #1682, fix #1949, fix #2394 and fix #3684: Added basic algorithm of IsAccessorInterfaceImplementationRuntimeHelper 4 months ago
Issue3684.dep.cs Fix #1682, fix #1949, fix #2394 and fix #3684: Added basic algorithm of IsAccessorInterfaceImplementationRuntimeHelper 4 months ago
Issue3751.cs Fix anonymous-type lambda early-return emitting unresolvable cast (#3752) 4 weeks ago
LiftedOperators.cs Add pretty tests for lifted compound assignment and nullable boxing 3 days ago
LocalFunctions.cs Add pretty tests for async local functions 3 days ago
Lock.cs dev: Strip BOM mark from text files 10 months ago
Loops.cs dev: Strip BOM mark from text files 10 months ago
MemberTests.cs dev: Strip BOM mark from text files 10 months ago
MetadataAttributes.cs dev: Strip BOM mark from text files 10 months ago
MultidimensionalArray.cs dev: Strip BOM mark from text files 10 months ago
NamedArguments.cs Fix #3626: Do not emit named arguments for bool constants, if it causes the call to become ambiguous. 7 months ago
NativeInts.cs dev: Strip BOM mark from text files 10 months ago
NullPropagation.cs dev: Strip BOM mark from text files 10 months ago
NullableRefTypes.cs Add pretty tests for nullable postcondition attributes 3 days ago
Operators.cs Add pretty test for compound assignment with checked operators 3 days ago
OptionalArguments.cs dev: Strip BOM mark from text files 10 months ago
OptionalArgumentsDisabled.cs Fix methods with mandatory arguments ignore disabled OptionalArguments setting 11 months ago
OutVariables.cs Add fine-grained C# AST debug steps 6 days ago
PInvoke.cs dev: Strip BOM mark from text files 10 months ago
ParamsCollections.cs Add test for "params scoped Span'. 9 months ago
PatternMatching.cs dev: Strip BOM mark from text files 10 months ago
PointerArithmetic.cs dev: Strip BOM mark from text files 10 months ago
PropertiesAndEvents.cs Fix #3575: Uses of compiler-generated events getting swapped with non-generated events of same type 9 months ago
QualifierTests.cs Remove obsolete tests 9 months ago
QueryExpressions.cs Add pretty test for select-into query continuations 3 days ago
Readme.txt dev: Strip BOM mark from text files 10 months ago
Records.cs Add pretty tests for readonly record structs and custom record members 3 days ago
ReduceNesting.cs dev: Strip BOM mark from text files 10 months ago
RefFields.cs Add pretty tests for UnscopedRef members 3 days ago
RefLocalsAndReturns.cs Fix `in` erroneously being applied to `this` 4 months ago
ShortCircuit.cs Fix IDE2000 globally 6 months ago
StaticAbstractInterfaceMembers.cs Add pretty tests for static abstract checked and shift operators 3 days ago
StringInterpolation.cs dev: Strip BOM mark from text files 10 months ago
Structs.cs Many thanks to @sonyps5201314 for providing the test cases and a suggested fix, which inspired these changes. 8 months ago
Switch.cs Fix IDE2000 globally 6 months ago
SwitchExpressions.cs Fix #3382: Support compiler-generated throw-helper invocations in switch-expression implicit default-case. 3 weeks ago
ThrowExpressions.cs dev: Strip BOM mark from text files 10 months ago
TupleTests.cs dev: Strip BOM mark from text files 10 months ago
TypeAnalysisTests.cs dev: Strip BOM mark from text files 10 months ago
TypeMemberTests.cs dev: Strip BOM mark from text files 10 months ago
UnsafeCode.cs Add pretty tests for pointer-to-pointer shapes 3 days ago
UserDefinedConversions.cs dev: Strip BOM mark from text files 10 months ago
Using.cs dev: Strip BOM mark from text files 10 months ago
UsingVariables.cs Add pretty test for pattern-based Dispose of a ref struct 3 days ago
ValueTypes.cs dev: Strip BOM mark from text files 10 months ago
VariableNaming.cs dev: Strip BOM mark from text files 10 months ago
VariableNamingWithoutSymbols.cs dev: Strip BOM mark from text files 10 months ago
Variance.cs Add Variance pretty test fixture 3 days ago
WellKnownConstants.cs dev: Strip BOM mark from text files 10 months ago
YieldReturn.cs Add pretty test for generic iterator methods 3 days 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.