SilverFox
11b44e53b7
Add support for attributes of field/property in primary ctor of records
4 years ago
Siegfried Pammer
07199e2ecf
Fix #2038 : Add proper support for Long paths on Windows 10 and limit path segments to 255 characters (with long path support) or 30 characters. If a PathTooLongException is thrown display a better error message on project export.
4 years ago
Siegfried Pammer
dbbcbb87fe
Make pattern matching transform a simple ILTransform for both reference and value types. Check that the true branch dominates all uses of the pattern variable.
4 years ago
Siegfried Pammer
e50d221e06
Adjust NullableLiftingTransform to match new patterns due to RemoveInfeasiblePathTransform.
4 years ago
Siegfried Pammer
73c898664f
Fix #2484 : Private modifier incorrectly applied to interface static constructors
4 years ago
SilverFox
89eebc387a
Fix #2475 : Fix support for records with custom copy ctor
4 years ago
SilverFox
d0d70a6496
Fix #2475 : Add support for sealed records and records with interface
4 years ago
Siegfried Pammer
84704a7452
Adds support for C# 9 covariant return types in methods and getter-only properties and indexers.
4 years ago
Siegfried Pammer
84101f804a
Fix #2444 : Ambiguous implicit conversions from null literals in decompiled code
4 years ago
Siegfried Pammer
cd787c5549
Fix DecompilerSettings.PatternMatching should only be active in case >= CS70.
4 years ago
Siegfried Pammer
5fa8201533
Added support for isinst-unbox.any pattern with generic reference types and simplified value types pattern detection.
4 years ago
Siegfried Pammer
83727ea4b0
Add support for value type patterns
4 years ago
Siegfried Pammer
c641072685
Translate MatchInstruction to BinaryOperatorExpression with BinaryOperatorType.IsPattern.
4 years ago
Daniel Grunwald
040ab41c69
Initial implementation of the pattern matching transform.
4 years ago
Siegfried Pammer
ec1b9a4ccd
Fix #2443 : do not use this()-ctor initializers by accident if base type is unknown.
4 years ago
Siegfried Pammer
bc5d078feb
Fix #1698 : Readonly auto properties from VB.NET are not properly decompiled
4 years ago
Siegfried Pammer
39404d9ea1
Fix unit tests.
4 years ago
Siegfried Pammer
c22977e1be
Fix #2390 : Extend variable splitting to treat stobj as immediate address use.
4 years ago
Daniel Grunwald
109b6d073a
Allow detecting exit points across multiple levels of containers.
4 years ago
Siegfried Pammer
1f0f6404e0
Fix #2231 : Add support for ldloca; dup; initobj pattern used by Roslyn.
4 years ago
Daniel Grunwald
685a79dc31
DetectExitPoints: introduce exit points for loops+switch
...
This allows reverting the changes to HighLevelLoopTransform+ReduceNestingTransform from the previous commit, which fixes a bug in loop detection (the previous commit did not handle loops where the loop BlockContainer didn't have a Block as parent).
4 years ago
Daniel Grunwald
6757295b3b
Fix #2379 : Keep `return` statements around in original form for ConditionDetection, only transform to fall-through block-exit at the end of the transform pipeline.
...
This fixes an issue where `return` statements within try-blocks could turn into `goto` statements.
4 years ago
Siegfried Pammer
ce199fad13
Fixed regression around foreach-on-string introduced in 16134e52e4
4 years ago
Siegfried Pammer
ba39dd5c55
Fix #2354 : decompilation of unary and binary operators with nullable value types.
4 years ago
Daniel Grunwald
407ec6be5b
Adjust AsyncAwaitDecompiler to Roslyn 3.9.0.
4 years ago
Daniel Grunwald
f327668928
Fix #2407 : Operator '-' cannot be applied to operand of type 'nuint'
4 years ago
SilverFox
65ea2e7af6
Fix #2406 : for readonly property with only getter, move readonly to property instead of getter
4 years ago
Siegfried Pammer
d54016ce8f
#2390 : Add support for generic object initializers.
4 years ago
Siegfried Pammer
16134e52e4
Fix #2395 : Do not use for->foreach transform if collection is not an array.
4 years ago
Siegfried Pammer
aa147870a2
Fix #2389 : missing extern keyword for properties and events.
4 years ago
Daniel Grunwald
bd9aabeae2
Update to dotnet-format 5.1.225507.
...
This makes the formatting expected by our CI consistent with that generated by VS2019.9.
4 years ago
Daniel Grunwald
1292ff70d9
Fix #2391 : mark method as unsafe when passing `null` to a parameter of pointer type.
4 years ago
Daniel Grunwald
aae27900dc
Fix #2398 : TranslateCondition: truncate condition value if necessary
4 years ago
Daniel Grunwald
8d70d63dba
#2392 : Avoid some redundant casts with the `?:` operator.
4 years ago
Siegfried Pammer
3f721a17c1
Add support for System.Runtime.CompilerServices.SpecialNameAttribute
4 years ago
Siegfried Pammer
7211587b45
Fix #2366 : NRE in AwaitInCatchTransform.MatchAwaitCatchHandler() and pattern errors when dealing with a switch-based jump table in AwaitInCatchTransform
4 years ago
Siegfried Pammer
76227af89d
Fix #1749 , fix #2339 , fix #2353 : Add support for rethrow in async exception handlers, fix await catch/finally patterns for complex methods.
4 years ago
Siegfried Pammer
d2fc380e0e
Fix #2349 : Use proper ExpressionType with DynamicCompoundAssign.
4 years ago
Siegfried Pammer
4ae41a855e
Fix #2321 : Missing readonly modifier for ref local
4 years ago
Siegfried Pammer
bdff99170c
#1828 : Add test case
4 years ago
Daniel Grunwald
f2d3f259fd
#2311 : Adjust test case for #1292 -- fixed statement is now correctly detected
4 years ago
Daniel Grunwald
51b3cf51c6
Fix #2305 : Cast to integer type where necessary in managed pointer arithmetic.
4 years ago
Daniel Grunwald
b4c5c0d212
Fix #2287 : Prefer `ref target.field[0]` over `ref *target.field`
4 years ago
Daniel Grunwald
281586de1f
`#enable nullable` for a couple of files.
...
Includes some fixes for potential NullReferenceExceptions.
4 years ago
Siegfried Pammer
3b2f00e44f
Add test case.
4 years ago
Daniel Grunwald
3c554b5e6c
Fix overload resolution: overloads with `in` parameters are applicable even if the argument is passed without explicit `in`
5 years ago
Daniel Grunwald
514cf9b03b
Fix #1944 : Add support for implicit conversions with `in` parameters.
5 years ago
Siegfried Pammer
fdda8abd74
Fix #2282 : Finalizers must be void and cannot be declared in interfaces
5 years ago
Siegfried Pammer
f29205448b
Fix #2283 : Disallow all implicit conversions in switch on string.
5 years ago
Siegfried Pammer
63ca748b9a
Fix #2283 : string.to.int instruction entails a conversion to string of the input value
5 years ago