.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 cc3a0bef7e Fix #1745: Empty string is missing from switch result 6 years ago
..
.gitignore
AnonymousTypes.cs
AssemblyCustomAttributes.cs
Async.cs Fix #1703: Support async methods that never return normally. 6 years ago
AsyncMain.cs
AutoProperties.cs
CS6_StringInterpolation.cs Fix #1497: do not insert newlines inside string interpolation expressions. 6 years ago
CS72_PrivateProtected.cs
CS73_StackAllocInitializers.cs
CheckedUnchecked.cs
CompoundAssignmentTest.cs #1691: Further improvements for decompiling the new VS 2019.3 string concatenation IL pattern 6 years ago
ConstantsTests.cs Fix #1552: user-defined and decimal increments 6 years ago
ConstructorInitializers.cs Fix #1743: Add pattern for struct constructor initializers. 6 years ago
CustomAttributeConflicts.cs
CustomAttributeSamples.cs
CustomAttributes.cs
CustomAttributes2.cs
CustomShortCircuitOperators.cs
CustomTaskType.cs Fix #1703: Support async methods that never return normally. 6 years ago
DelegateConstruction.cs Implement transformation of delegate construction with ldvirtftn. 6 years ago
Discards.cs
DynamicTests.cs Fix #1635: DynamicInvokeConstructorInstruction Did report the wrong StackType for value types and unknown types. 6 years ago
EnumTests.cs
ExceptionHandling.cs Fix #1643: Handle unbox.any in TransformCatchVariable. 6 years ago
ExpressionTrees.cs Don't remove redundant ToString() calls in expression trees. 6 years ago
FixProxyCalls.cs Fix #1660: Generic proxy calls should use the callee's type parameter substitution, not the caller's. 6 years ago
Generics.cs
HelloWorld.cs
InitializerTests.cs Do not convert simple LINQ method calls to LINQ expressions. Closes #1501. 6 years ago
InlineAssignmentTest.cs Fix #1571: Expression transforms not running for values of inline assignments. 6 years ago
InterfaceTests.cs Fix modifiers on default interface methods. 6 years ago
Issue1080.cs
LiftedOperators.cs
LocalFunctions.cs Refactor TransformDisplayClassUsage 6 years ago
Lock.cs
Loops.cs #1691: Further improvements for decompiling the new VS 2019.3 string concatenation IL pattern 6 years ago
MemberTests.cs
MultidimensionalArray.cs
NamedArguments.cs
NullPropagation.cs Fix #1689: Add support for null propagation on array access: `arr?[i]` 6 years ago
NullableRefTypes.cs Fix references to nested types in generic classes. 6 years ago
OptionalArguments.cs Fix #1567: Do not transform string.Concat method calls to + operators if named arguments are used. 6 years ago
OutVariables.cs Add support for "definitely assigned if true/false" to data flow analysis. 6 years ago
PInvoke.cs
PropertiesAndEvents.cs
QualifierTests.cs Add option: 'ref' extension methods 6 years ago
QueryExpressions.cs
Readme.txt
ReduceNesting.cs
RefLocalsAndReturns.cs Implement support for C# 8 readonly members. 6 years ago
ShortCircuit.cs
Switch.cs Fix #1745: Empty string is missing from switch result 6 years ago
ThrowExpressions.cs Reformat ThrowExpressions tests. 6 years ago
TupleTests.cs Merge branch 'master' of https://github.com/icsharpcode/ILSpy into ref 6 years ago
TypeAnalysisTests.cs Fix invalid code generated for impossible casts. 6 years ago
TypeMemberTests.cs
UnsafeCode.cs Fix #1499, fix #1502 6 years ago
UserDefinedConversions.cs Fix #1574: When re-introducing an explicit cast for an implicit user-defined conversion; ensure we use a direct cast and don't go through the code path for builtin conversions. 6 years ago
Using.cs Avoid making explicit ToString() implicit when doing so changes the semantics for mutable value types. 6 years ago
ValueTypes.cs #1691: Further improvements for decompiling the new VS 2019.3 string concatenation IL pattern 6 years ago
VariableNaming.cs Fix #1681: Use discard assignment, if possible. 6 years ago
VariableNamingWithoutSymbols.cs Fix #1681: Use discard assignment, if possible. 6 years ago
WellKnownConstants.cs
YieldReturn.cs Fix #1563: `Unexpected return in MoveNext()` when mixed `using` and more than one `yield break` 6 years 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.