.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.
 
 
 
 
Daniel Grunwald 05d274ff72
Merge pull request #4077 from icsharpcode/type-inference
3 weeks ago
..
.gitignore
AnonymousTypes.cs Adjust tests: the improved stack slot type caused variable names to improve. 3 weeks ago
AssemblyCustomAttributes.cs
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
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
CS72_PrivateProtected.cs
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
Comparisons.cs
CompoundAssignmentTest.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
ConditionalOperatorNesting.cs Expand nested conditional operators back into if-else 3 weeks ago
ConstantsTests.cs
ConstructorInitializers.cs Give an explicit `this` the same resolve result as `base` 1 month ago
CovariantReturns.cs
CustomAttributeConflicts.cs
CustomAttributeSamples.cs
CustomAttributes.cs Add pretty test for generic attributes with constructed type arguments 2 months ago
CustomAttributes2.cs
CustomShortCircuitOperators.cs
CustomTaskType.cs Extend UseLambdaSyntax to emit statement lambdas 1 month ago
DeconstructionTests.cs Adjust tests: the improved stack slot type caused variable names to improve. 3 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
DynamicAwait.cs Fix #3704: keep the static type of a dynamic call target 3 weeks ago
DynamicTests.cs Infer the C# type of ldlen 3 weeks 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
ExpressionTrees.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
ExtensionEverything.cs
FieldKeyword.cs Cover the field-keyword name collisions with fixtures 1 month ago
FileScopedNamespaces.cs
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
Generics.cs Add pretty test for overriding members of a generic base type 2 months ago
GloballyQualifiedTypeInStringInterpolation.cs
HelloWorld.cs
IndexRangeTest.cs
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
InterfaceTests.cs Run InterfaceTests against the legacy csc and mcs compilers too 2 months ago
Issue1080.cs
Issue3406.cs
Issue3439.cs Extend UseLambdaSyntax to emit statement lambdas 1 month ago
Issue3442.cs
Issue3452.cs
Issue3483.cs
Issue3541.cs
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
Issue3584.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
Issue3598.cs
Issue3610.cs
Issue3611.cs
Issue3684.cs
Issue3684.dep.cs
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 Fix #3714: declare a local function in its innermost capture scope 3 weeks ago
Lock.cs
Loops.cs Adjust tests: the improved stack slot type caused variable names to improve. 3 weeks ago
MemberTests.cs
MetadataAttributes.cs
MultidimensionalArray.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
NamedArguments.cs
NativeInts.cs
NullPropagation.cs Infer the C# type of ldlen 3 weeks ago
NullableRefTypes.cs Avoid breaking LINQ query expressions with nullable reference types. 3 weeks ago
Operators.cs Add pretty test for compound assignment with checked operators 2 months ago
OptionalArguments.cs
OptionalArgumentsDisabled.cs
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
ParamsCollections.cs
PatternMatching.cs
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 Adjust tests: the improved stack slot type caused variable names to improve. 3 weeks ago
Readme.txt
Records.cs Cover nested deconstruction of record structs with a fixture 1 month ago
ReduceNesting.cs
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 Stack slots holding value types previously nevertheless often had type `object` 3 weeks ago
TargetTypedDefault.cs Emit C# 7.1 default literals where the context supplies the type 4 weeks ago
ThrowExpressions.cs
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
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
VariableNamingWithoutSymbols.cs
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.