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
83727ea4b0
Add support for value type patterns
4 years ago
Daniel Grunwald
c26d9ad6f1
Mark stack slot for aggressive removal in InfeasiblePathTransform
...
This helps with pattern matching in short circuiting operators.
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
8eafbb3d90
Fix #2092 : aggressively inline code in compiler-generated lambdas and expression trees.
4 years ago
Siegfried Pammer
bc5d078feb
Fix #1698 : Readonly auto properties from VB.NET are not properly decompiled
4 years ago
Daniel Grunwald
ffed8ea2c8
#nullable enable for AstNode
4 years ago
Daniel Grunwald
5fb2f7a22f
#nullable enable for ILAst (except for generated code)
4 years ago
Daniel Grunwald
2419c2641a
StatementBuilder.TransformToForeach: allow both `break;` and `return;` within the using body
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
bbaddf84cc
Fix #2424 : Suppress the string==null special-case within the string class itself.
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
Daniel Grunwald
55ab2a1739
Adjust RecordDecompiler to changes in Roslyn 3.10.0
4 years ago
Siegfried Pammer
c90c0786b6
Do not add readonly modifier to accessors/properties/events if TSAB.ShowModifiers is false.
4 years ago
Daniel Grunwald
108c5f643e
Fix #2413 : Avoid global state in `TokenRole`.
...
We can already compactly store a `TokenRole` via the index+lookup in the `Role` base class.
The lookup in the base class is thread-safe; the one removed here was not.
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
710c17fee2
switch expressions: use same brace style as object initializers
4 years ago
Daniel Grunwald
d917a3706b
Fix #2396 : Extend the #1903 workaround to unconstrained generic types.
...
The logic in the `FixLoneIsInst` transform already handled this correctly, it's just the check in the `isinst` translation that handled the `IsReferenceType == null` case incorrectly.
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
635013329a
Fix #2358 : use current Path.DirectorySeparatorChar instead of hard-coded backslashes.
4 years ago
Siegfried Pammer
2a9a5237d1
Fix exception when trying to export project for which no target-framework moniker was detected.
4 years ago
Siegfried Pammer
2ed52b9634
#2362 : Provide more information on assembly resolve errors
4 years ago
Siegfried Pammer
7e913e056b
Exclude artificial ILInstructions from PDB generation
4 years ago
Siegfried Pammer
8fc64669c2
Add annotations on local function parameter declarations
4 years ago
Siegfried Pammer
5734da4294
Fix #2314 : ILSpy incorrectly resolves a runtime dependency when dll is present in both WindowsDesktop.App and NETCore.App
4 years ago
Siegfried Pammer
bf8166d045
Fix #2291 : block container end labels should be unique as well.
4 years ago
Siegfried Pammer
e6c351c43d
Do not use single-line formatting for auto properties/indexers if there are attributes.
4 years ago
Siegfried Pammer
280a94ce5d
Fix #1828 , Fix #2290 : Ensure base references have the correct type and are turned into this references and casted if necessary
4 years ago
Siegfried Pammer
3431881345
Fix #2307 : potential NRE in IntroduceExtensionMethods
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
Siegfried Pammer
afa4db00b6
Fix #2297 : Add an option to disable decompilation of getter-only auto properties.
4 years ago
Siegfried Pammer
f35074ebd8
Fix #2257 : Add global:: prefix, iff the containing namespace matches the type name.
4 years ago
Siegfried Pammer
34557ab76b
#2294 : Remove redundant condition
4 years ago
Daniel Grunwald
c95da67cbe
Fix extension method calls on `this in`.
4 years ago