Siegfried Pammer
60e9c204cc
Fix #1940 : Make sure that we use the correct .NET Core version, when there are multiple frameworks loaded in the current assembly list.
5 years ago
Daniel Grunwald
0cf50aa827
Fix #1959 : Resolve the "F(G<A,B>(7));" grammar ambiguity by inserting parentheses when necessary.
5 years ago
Siegfried Pammer
df84ab8f6b
Fix #1882 : Provide a setting to desugar X? into Nullable<X> for value types
5 years ago
Daniel Grunwald
9e82b95373
Fix hexadecimal format of flags enum member initializers.
5 years ago
Siegfried Pammer
e189ad9ca3
Fix #1863 : Invalid decompilation: accessibility level for CompilerGenerated method
5 years ago
Siegfried Pammer
83c525c1c2
Fix #1758 : Input var name conflicting with framework class name
6 years ago
SilverFox
8c8dcf5630
Fix issue #1762
6 years ago
Daniel Grunwald
de33e79384
Add tests for 'async IAsyncEnumerable'.
...
Remove [AsyncIteratorStateMachine] attribute and left-over ldc.i4 instructions.
6 years ago
Daniel Grunwald
f8ee7c2bf3
Initial support for `async IAsyncEnumerator<T>` methods
6 years ago
Siegfried Pammer
9190515d8b
#1151 : Support for ref readonly locals.
6 years ago
Siegfried Pammer
51b48b9332
Fix #1685 : Add "Always show enum values" setting.
6 years ago
Siegfried Pammer
9358ea6d73
Fix ReadCodeMappingInfo for delegates that are embedded in the declaring type, not a nested type.
6 years ago
Siegfried Pammer
25f625af99
Move copy propagation after expression and statement transforms.
6 years ago
Daniel Grunwald
539e3a906d
Fix #1552 : user-defined and decimal increments
...
For user-defined increments, there were problems with Roslyn was optimizing out one of the stores.
The new transform FixRemainingIncrements now takes increments/decrements that were not detected by TransformAssignment and introduces a temporary variable that can be incremented.
This sometimes requires un-inlining via the new ILInstruction.Extract() operation.
Extract() is not supported in all possible contexts, so it is possible but unlikely that some op_Increment calls remain.
For decimals, the situation is different: legacy csc actually was optimizing "d + 1m" to "op_Increment(d)", so we can get rid of any left-over increments by undoing this optimization. This now happens in ReplaceMethodCallsWithOperators.
6 years ago
Siegfried Pammer
01b8b83360
Fix CSharpDecompiler.ReadCodeMappingInfo not taking generic lambdas into account.
6 years ago
Daniel Grunwald
5a8796c05c
Reuse the existing TSAB.
6 years ago
Siegfried Pammer
305b47245e
Refactor representation of local functions in ILAst.
6 years ago
Siegfried Pammer
5a2302089b
Refactor TransformDisplayClassUsage into separate transform.
...
Make display class detection pattern-based instead of name-based. Fixes #1554
6 years ago
Siegfried Pammer
bd77b8301f
Basic implementation of local functions.
6 years ago
Daniel Grunwald
ef035e6e02
Use ".data cil" if data is in text section.
6 years ago
Siegfried Pammer
5a692610ff
Fix #1523 : Search throws EnumUnderlyingTypeResolverException
6 years ago
Siegfried Pammer
2e00285666
Display type information of fixed fields as "Type[Length]" in tree view.
6 years ago
Siegfried Pammer
a23c192324
Add missing documentation in CSharpDecompiler.
6 years ago
Siegfried Pammer
b0309ca9e3
Fix #1180 : Fix generation of Windows Forms InitializeComponent.
6 years ago
Siegfried Pammer
d42cf99a8c
Fix dynamic transforms because https://github.com/dotnet/roslyn/issues/27800 was fixed.
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
545be6d133
Fix CSharpDecompiler.SetNewModifier: follow rules stated in the language specification.
6 years ago
Daniel Grunwald
f9f9d57398
#1386 : Fix fixed-statement detection when fixed statement contains "return" and the method has multiple return statements.
6 years ago
Siegfried Pammer
b7fc830faa
Fix #1406 : Use IEnumerable<T> instead of IList<T> in CSharpDecompiler.Decompile and DecompileAsString.
6 years ago
Siegfried Pammer
9d19b33ec0
Fix #1394 : Fields marked 'specialname' are excluded from the type system
6 years ago
Daniel Grunwald
72d755037b
Fix #1283 : handle invalid metadata when decoding constants
6 years ago
Siegfried Pammer
9e71e7fe09
Fix #517 : Try to reverse constant folding for double and float expressions containing Math.PI and Math.E as factors.
6 years ago
Siegfried Pammer
00a54a278a
Fix #1344 : Fix GetCodeMappingInfo for nested async FSMs
7 years ago
Siegfried Pammer
1854a33749
Fix #1340 : infinite recursion in DelegateConstruction due to recursive local function being mistreated as delegate construction.
7 years ago
Siegfried Pammer
14f3544a2b
#1341 : force DecompilerSettings.LoadInMemory = true, in all CSharpDecompiler ctors that take a filename.
7 years ago
Siegfried Pammer
fd0d898703
#1330 : add more exception handling to CSharpDecompiler, so an entity that caused decompilation to fail can easier be identified.
7 years ago
Siegfried Pammer
fac1a4d115
Fix #1311 : Methods in .winmd files compiled from C# don't show up in individual method view in ILSpy 4.
...
Add an option to disable application of WinRT projections.
7 years ago
Siegfried Pammer
86329349ba
Fix #1332 : DecompileMemberBodies: Cannot mutate frozen NullBlockStatement
7 years ago
Siegfried Pammer
6c193ac50e
Fix #1323 : NRE in DetectBestEnumValueDisplayMode; emit error message, if enum field definition has no constant value.
7 years ago
Siegfried Pammer
dd5fb5a78b
Fix #1282 : Decompiling types in non-main modules - should throw a NotSupportedException.
7 years ago
Chicken-Bones
ab9397d099
Add ReduceNestingTransform
7 years ago
Siegfried Pammer
d5a2b893e9
Fix ReadCodeMappingInfo for lambdas compiled with mcs.
7 years ago
Siegfried Pammer
cf1d05042f
Add detection of local functions, so we do not hide the methods/display classes.
7 years ago
Siegfried Pammer
71441786eb
Fix #1254 : Assert in Transforms.IntroduceUsingDeclarations.Run - using left tree navigation
7 years ago
Siegfried Pammer
7ef7f1870e
Refactor TS representation of ref / readonly structs. Add support for in parameters.
7 years ago
Daniel Grunwald
61698b615d
Fix #1232 : BadImageFormatException: Invalid SEH header
...
This makes the decompiler and a bunch of analyzers more robust against invalid assemblies.
7 years ago
Daniel Grunwald
b331c59169
Fix #1234 : handle exception when a field initial value is not available
7 years ago
Daniel Grunwald
9479e8af13
Support overloaded operator &&/||.
7 years ago
Siegfried Pammer
f1f70d0ded
Fix #1148 : Do not use hexadecimal display in enums if the value is negative.
7 years ago
Siegfried Pammer
71ffb0183b
Fix #1103 : Deactivating "Insert using declarations" now uses fully qualified types everywhere.
7 years ago