Siegfried Pammer
e4b63f7a35
- Make all tests async.
...
- Use custom test runner for correctness tests.
- Use .NET 6.0 framework for all Roslyn compiler tests.
- Disabled tests involving new string interpolation patterns.
3 years ago
Siegfried Pammer
41c99e4727
#2622 : Fix crash in ExpressionBuilder when decompiling object initializer composed of readonly properties.
4 years ago
Daniel Grunwald
7a97fdd02d
Add comment for Double_One_Div_LongMaxValue
4 years ago
Daniel Grunwald
db7d507138
Fix #2615 : Overflow check did not work reliably due to fp rounding error
4 years ago
Siegfried Pammer
4aa7f5fc38
Fix #2612 decompilation of newarr with int.MaxValue causes OOME in decompiler.
4 years ago
Siegfried Pammer
12e586b44b
Âdd a test case for stackalloc in nested context.
4 years ago
Siegfried Pammer
a48f0d311c
Fix #2330 : Add conditional sub directory support
4 years ago
Siegfried Pammer
15f49c0079
Add basic support for abstract static members in interfaces.
4 years ago
Siegfried Pammer
ec6a9afc57
Fix #2448 : Decompiler shows some enum values as hexdecimal instead of decimal
4 years ago
Daniel Grunwald
92ee317166
Add test case for #2436
4 years ago
Siegfried Pammer
c987eb66cd
Add struct test case.
4 years ago
Siegfried Pammer
d8bb40b45b
Generate file-scoped namespace declarations, if possible.
4 years ago
Daniel Grunwald
8c508d9bbb
#2445 : Fix `1f/6f` getting printed as `355f / (678f * (float)Math.PI)`
...
Also fix inconsistent float comparisons due to JIT optimizations.
4 years ago
Daniel Grunwald
7f985757a7
Fix #2541 : Add explicit `unchecked()` around non-constant cast of constant to `nint`
4 years ago
Siegfried Pammer
7c7ce6f6c7
mcs 5 generates IL patterns that might lead to wrong behavior, if inlined, therefore we have to add another special case to the tests.
4 years ago
Siegfried Pammer
ea1cea96c4
Fix #2547 : decimal const not removed from static constructor.
4 years ago
Siegfried Pammer
4b6fd7aee6
Fix #2545 : LINQ expression has a question operator on the source collection
4 years ago
Siegfried Pammer
65f2c54166
Fix #2544 : do not transform to interpolated string, if the format string is not syntactically correct.
4 years ago
Siegfried Pammer
b87cdf6bc4
Fix CS73_StackAllocInitializer tests
4 years ago
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
6bc0abc336
Fix #2378 : DeconstructionTransform produced invalid ILAst with some optimized deconstruction patterns.
4 years ago
Siegfried Pammer
ee3aabdc51
Fix #2534 : Handle default implementations of properties and events in interfaces.
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
Siegfried Pammer
3f62216c85
Fix simple type patterns.
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
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