Siegfried Pammer
30f9a82fbe
Add Roslyn 3.11.0 as separate test configuration. Update RoslynLatest to 4.0.0. Use LanguageVersion.CSharp9_0 instead of Preview. Add LanguageVersion.CSharp10_0.
4 years ago
Siegfried Pammer
ee3aabdc51
Fix #2534 : Handle default implementations of properties and events in interfaces.
4 years ago
Siegfried Pammer
e1ca4db851
Fix #2527 : Support skip locals init
4 years ago
Christoph Wille
c68bf60b1b
Wrap DoDecompileEvent(IMethod...)
4 years ago
Christoph Wille
6e5c474dfc
Instrument more DoDecompile methods
4 years ago
Christoph Wille
1b3a73d9e9
Add ETW for event + property decompilation as PoC
4 years ago
Siegfried Pammer
6f032e267e
Fix #2515 : Auto events are not decompiled correctly, if left untouched.
4 years ago
Siegfried Pammer
665c731cfc
Move PatternMatchingTransform after LoopDetection.
4 years ago
SilverFox
1367e7ba95
Add support for `in parameters` in primary ctor of records
4 years ago
SilverFox
11b44e53b7
Add support for attributes of field/property in primary ctor of records
4 years ago
SilverFox
58bed656cd
Fix records support for Roslyn 4.0.0-3.final
4 years ago
Siegfried Pammer
1568aeca3e
Fix #2506 : NamedArgumentTransform loses information, if the original variable is of StackType.Ref
4 years ago
Daniel Grunwald
9a053d5e6c
nullable enable for CSharpOperators.cs
4 years ago
Siegfried Pammer
19d5ea4095
Fix #2505 : Do treat whole resource name as file name without directory at the start of GetFileNameForResource.
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
ed82bff896
Fix #2497 : NRE in covariant returns check on set-only property
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
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