dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
6 years ago
Siegfried Pammer
3bac7e1d4e
Fix #2124 : Unwrap nullables when printing constant values.
6 years ago
Siegfried Pammer
9e0e8d1cbc
Add basic support for C# 8.0 enhanced using statements.
6 years ago
Siegfried Pammer
562699fc94
Add support for C# 8.0 await foreach
6 years ago
Daniel Grunwald
c9f65d3b5e
Fix #1555 : Eliminate value-type temporaries emitted by mcs on field reads.
6 years ago
Siegfried Pammer
2403548ce3
Add tests for C# 9.0 lambda parameter discards
6 years ago
Daniel Grunwald
abb9d49a0f
Add support for C# 8 switch expressions.
6 years ago
Siegfried Pammer
c9df069526
Add minimal test case + DecompilerSettings.Deconstruction setting
6 years ago
Siegfried Pammer
a231ab54d4
Add test cases
6 years ago
Daniel Grunwald
2c9b84a1e1
If possible, use nint/nuint for conversions to/from IntPtr.
6 years ago
Daniel Grunwald
4846feb640
Add support for C# 8 range syntax.
...
This initial commit only handles the trivial case where an Index or Range object is constructed.
The TODO portions of the test case show there are plenty of cases where where the C# compiler emits more complex code patterns that will require ILAst transforms.
6 years ago
Siegfried Pammer
371d732c0a
Fix #1881 : Not properly reusing names from PDB#2
6 years ago
Daniel Grunwald
de33e79384
Add tests for 'async IAsyncEnumerable'.
...
Remove [AsyncIteratorStateMachine] attribute and left-over ldc.i4 instructions.
7 years ago
Siegfried Pammer
15fe9118dc
Add CompilerOptions.ReferenceCore
7 years ago
Siegfried Pammer
d45311f65e
Enable tests for await using and DIM.
7 years ago
Siegfried Pammer
d2f7258347
Fix #1681 : Use discard assignment, if possible.
7 years ago
Siegfried Pammer
4db22c87e1
Implement detection of custom task implementations + tests.
7 years ago
Siegfried Pammer
047f119e99
Add RemoveDeadStores option
7 years ago
Siegfried Pammer
4a0ca21bbf
Add (failing) test case for throw expressions.
7 years ago
Daniel Grunwald
18ee984ade
Add support for "definitely assigned if true/false" to data flow analysis.
7 years ago
Siegfried Pammer
b83cb41f2e
Add pretty tests for local functions.
7 years ago
Daniel Grunwald
e6489d543e
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.
7 years ago
Siegfried Pammer
c1ac461c26
Enable MCS yield return pretty tests.
7 years ago
Siegfried Pammer
7f8856b10f
Fix #1026 : Improve support for mcs in TransformDisplayClassUsage
7 years ago
Siegfried Pammer
1c261c6170
Optimize ProxyCallReplacer: ignore calls to static methods as those can never be a call to a proxy.
...
Enable FixProxyCalls test for rosyln+opt
7 years ago
Siegfried Pammer
7671ac6fe4
Fix switch on nullable for Roslyn. Ignore switch on bool because it is indistinguishable from if (bool).
7 years ago
Siegfried Pammer
d42cf99a8c
Fix dynamic transforms because https://github.com/dotnet/roslyn/issues/27800 was fixed.
7 years ago
Daniel Grunwald
72508b5777
Add test for C# 8 nullable reference types; and fix some bugs.
7 years ago
Daniel Grunwald
af69c03442
Enable ValueTypes.cs pretty test
7 years ago
Daniel Grunwald
482da77893
Reenable LiftedOperators tests.
7 years ago
Daniel Grunwald
3fac3c07a2
Upgrade Roslyn for tests to 3.0.0-beta3.
...
Remove the committed .il files: these were originally intended to prevent test failures due to differences in the C# compiler on the system.
But legacy csc stopped changing long ago; and roslyn is tested via NuGet package, so everyone is using the same version.
Interestingly enough, avoiding the roundtrip through ildasm/ilasm caused some test failures due to changes in the order of top-level types.
So I've started sorting the types by name to ensure consistency in the tests. This required adjusting some existing tests.
7 years ago
Siegfried Pammer
f05c1bb466
Fix build break; only escape _ if it is a type name. Add basic Discards tests.
7 years ago
Siegfried Pammer
545be6d133
Fix CSharpDecompiler.SetNewModifier: follow rules stated in the language specification.
7 years ago
Siegfried Pammer
9437c6e4ad
Add basic interface tests.
7 years ago
Siegfried Pammer
ccfd3cb789
Add ValueTypes tests from old decompiler.
7 years ago
Siegfried Pammer
72be265c5b
Add disabled TypeMembers tests from old decompiler.
7 years ago
Siegfried Pammer
488348e798
Add old MultidimensionalArrays test to pretty test runner.
7 years ago
Siegfried Pammer
2edfac8f99
Rename TypeTests to EnumTests and merge old EnumTests into new pretty tests.
7 years ago
Siegfried Pammer
6f3230af48
Add ununsed CustomAttributes test.
...
Fix CalculatedGetterOnlyPropertyPattern for properties with attributes.
7 years ago
Daniel Grunwald
0c0ac6ea44
Add RunVB() for VB correctness tests
7 years ago
Siegfried Pammer
17f42066a0
Fix #1378 : Missing unsafe modifier for static fields
7 years ago
Siegfried Pammer
7919ce8dd7
TSAB: Add option to display integral literals as hexadecimal numbers.
7 years ago
Daniel Grunwald
e041454987
Add pretty tests for "yield return" and fix some minor bugs:
...
* remove redundant casts on yield-return-expression
* keep variable name from metadata for foreach loops
* fix 'yield break;' in nested try-finally sometimes causing a decompiler error
8 years ago
Chicken-Bones
ab9397d099
Add ReduceNestingTransform
8 years ago
Chicken-Bones
7017d998d0
Improve switch decompilation in loops via early detection of continue blocks.
8 years ago
Siegfried Pammer
8d028b57ec
Add test cases.
8 years ago
Daniel Grunwald
9479e8af13
Support overloaded operator &&/||.
8 years ago
Siegfried Pammer
f956e16f58
Add basic support for C# 4 optional arguments.
8 years ago
Siegfried Pammer
f1f70d0ded
Fix #1148 : Do not use hexadecimal display in enums if the value is negative.
8 years ago
Daniel Grunwald
0f8c310de2
Started work on new resolved TS implementation that directly uses SRM.
...
This is a work-in-progress; ILSpy is not functional with this commit.
The old code path still exists but is broken because some classes were modified for the new system.
The new system is still highly incomplete (types only have fields, but no methods).
8 years ago