Daniel Grunwald
c0b1119fab
Use C# 8.0 to build ILSpy.
5 years ago
Daniel Grunwald
345b65511c
Update to Roslyn 3.7.0-2.final for tests.
5 years ago
Daniel Grunwald
2c0554f129
Fix #1963 : Support decompiling `calli` instructions into C# 9 function pointer syntax.
5 years ago
dymanoid
fdef5d11c6
Rearrange project writing logic
...
The WholeProjectDecompiler shall not have too many responsibilities.
5 years ago
dymanoid
b492a20442
Move assembly resolution logic to better place
...
WholeProjectDecompiler shall not care about checking whether an assembly
is in GAC.
5 years ago
Siegfried Pammer
fcc910cb4d
Cleanup and refactoring after code review
5 years ago
Daniel Grunwald
2665d800d0
Update test to Roslyn 3.6.0-3.final.
5 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.
5 years ago
Daniel Grunwald
65fe59e393
#1918 : Fix a bunch of issues with pinned region detection.
...
Not every pinned region has a clean `P = null` assignment to mark its end.
If a second pinned region starts with the same variable `P`, consider that to mark the end of the previous pinned region for that variable.
Also, fix a bunch of special cases with empty pinned regions.
5 years ago
Siegfried Pammer
371d732c0a
Fix #1881 : Not properly reusing names from PDB#2
5 years ago
Daniel Grunwald
ad5ba9295e
Fix #1924 : preserve hexadecimal format when converting literal to wider type
5 years ago
Daniel Grunwald
4b1f0b342c
Fix #1925 : Adjust AsyncAwaitDecompiler to changes in Roslyn 3.5.0-beta2
5 years ago
Siegfried Pammer
6973dec0ef
Fix #1906 : RRs for default expressions of primitive types should use the correct constant value.
...
VB's `New Long()` is emitted as `initobj` whereas C#'s `default(long)` is emitted as `ldc.i4.0; conv.i8`.
5 years ago
Siegfried Pammer
e189ad9ca3
Fix #1863 : Invalid decompilation: accessibility level for CompilerGenerated method
5 years ago
Daniel Grunwald
832c18f0be
Fix #1809 : Support VB Select on string.
6 years ago
Daniel Grunwald
1b505b8c6d
Adjust async-streams decompiler for dotnet/roslyn#39436
6 years ago
Daniel Grunwald
7326a69823
Fix #1795 : `InvalidCastException: Cast from Boolean to Int64 not supported` when decompiling enum with bool constants
6 years ago
Siegfried Pammer
e92b9f9476
Add basic "ugly" test with disabled foreach detection.
6 years ago
Daniel Grunwald
de33e79384
Add tests for 'async IAsyncEnumerable'.
...
Remove [AsyncIteratorStateMachine] attribute and left-over ldc.i4 instructions.
6 years ago
Siegfried Pammer
d45311f65e
Enable tests for await using and DIM.
6 years ago
Daniel Grunwald
a02bcd8f30
Upgrade Roslyn for tests to 3.3.1.
6 years ago
Daniel Grunwald
c32361d464
#1691 : Avoid replacing string.Concat() with operator+ when the evaluation order depends on the compiler version.
6 years ago
Siegfried Pammer
9fff0438c0
Fix #1675 : Emit __ldftn/__ldvirtftn pseudo expressions, if delegate construction is not supported.
6 years ago
Christoph Wille
250b59fee9
Revert to 3.3.0-beta1 Roslyn. See #1691 (considered atm wontfix for 5.0)
6 years ago
Christoph Wille
61ef67f854
Update to RC1 of AvalonEdit 6
...
Pick correct version of netcore3 on Azure Pipelines
Set version for upcoming RC1
6 years ago
Christoph Wille
28be4a755b
Switch to net472, of note:
...
* app.config.template fewer asm redirects, but coll.immutable is necessary
6 years ago
Siegfried Pammer
4db22c87e1
Implement detection of custom task implementations + tests.
6 years ago
Siegfried Pammer
0f667a126d
Update tests to Roslyn 3.3.0-beta1-final
6 years ago
Daniel Grunwald
df13f0ce01
Fix #1605 : Inline ref locals more aggressively; this is necessary for VB compound assignments.
6 years ago
Siegfried Pammer
4a0ca21bbf
Add (failing) test case for throw expressions.
6 years ago
Daniel Grunwald
b7f0e2e929
Be less aggressive when removing dead code -- some of it may still be interesting to users.
6 years ago
Daniel Grunwald
18ee984ade
Add support for "definitely assigned if true/false" to data flow analysis.
6 years ago
Siegfried Pammer
e9a020062d
Add more RefLocalsAndReturns pretty tests.
6 years ago
Daniel Grunwald
42eafb587f
Fix #684 : Improve detection of variable type for stack slots.
6 years ago
Daniel Grunwald
7e3b36aaa7
#1563 : Where possible, replace an explicit interface implementation call with a call to the interface member.
6 years ago
Daniel Grunwald
b75c252193
Upgrade C# 8.0 nullability support for Roslyn 3.2.0-beta4.
6 years ago
Daniel Grunwald
ccdabf2325
Fix a bunch of XmlDoc compiler warnings.
6 years ago
Siegfried Pammer
b83cb41f2e
Add pretty tests for local functions.
6 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.
6 years ago
Siegfried Pammer
9590cfbf59
Update tests to latest Roslyn implementation.
6 years ago
Oren Novotny
d0d0e9953a
Use MSBuild locator API to find MSBuild. Fixes VS 2019 issue.
6 years ago
Daniel Grunwald
961923f4fd
#1499 , #1240 : Translate pointer arithmetic on managed pointers (ref T) using the System.Runtime.CompilerServices.Unsafe intrinsics
6 years ago
Siegfried Pammer
3abb548e1e
Fix #1479 : Unable to cast object of type 'System.Int32' to type 'System.Single'
6 years ago
Siegfried Pammer
b0cb976357
Fix #1454 : Name collision after converting for-over-array to foreach.
6 years ago
Daniel Grunwald
e45ffc1c29
Update to Roslyn 3.0.0-beta4
6 years ago
Daniel Grunwald
72508b5777
Add test for C# 8 nullable reference types; and fix some bugs.
6 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.
6 years ago
Siegfried Pammer
f05c1bb466
Fix build break; only escape _ if it is a type name. Add basic Discards tests.
6 years ago
Daniel Grunwald
2f35374d7d
Support "where T : unmanaged" constraints.
6 years ago
Siegfried Pammer
5962d4675f
Add IL tests for basic isinst patterns. Undo change mentioned in 54ff546221 (commitcomment-32359757)
6 years ago