42 Commits (70616b301cbeddab02a9af3d2ec07f91087d2eb8)

Author SHA1 Message Date
Siegfried Pammer 70616b301c Implement support for C# 11 switch on (ReadOnly)Span<char>. 2 years ago
Siegfried Pammer a3191f19e2 Fix #2763: Improve decompilation of switch-on-enum by preserving enum type information when inlining local variables into SwitchInstruction.Value. 3 years ago
Siegfried Pammer f29205448b Fix #2283: Disallow all implicit conversions in switch on string. 4 years ago
Siegfried Pammer 63ca748b9a Fix #2283: string.to.int instruction entails a conversion to string of the input value 4 years ago
Daniel Grunwald 6951ccb1a2 Fix #2260: switch(string) transform: handle empty cases where the C# compiler optimizes out the `if` 4 years ago
Siegfried Pammer cc19e9043e Fix #603: Single element arrays should not span multiple lines 4 years ago
dotnet format 0d9f871a4f #2128: Reformat the whole code base. 5 years ago
Siegfried Pammer 9a77a80e3c Fix #1767: Fix detection switch-on-string that uses leave instead of branch instructions. 6 years ago
Siegfried Pammer cc3a0bef7e Fix #1745: Empty string is missing from switch result 6 years ago
Daniel Grunwald 7a5d8af57d #1691: Further improvements for decompiling the new VS 2019.3 string concatenation IL pattern 6 years ago
Siegfried Pammer 05454bd741 Fix SwitchOnStringTransform.SimplifyCascadingIfStatements: do not remove statements unrelated to switch pattern. 6 years ago
Siegfried Pammer bbb40ecb32 Fix #1602: Recognize Roslyn empty string case block. 6 years ago
Siegfried Pammer def681ccdf Fix #1621: Add AllowUnreachableCases in switch analysis. 6 years ago
Siegfried Pammer 7671ac6fe4 Fix switch on nullable for Roslyn. Ignore switch on bool because it is indistinguishable from if (bool). 6 years ago
Siegfried Pammer b9f179465d Fix part 1 of #1292: switch on string inside try-block not recognized. 7 years ago
Chicken-Bones 481e05eabb Better shortcircuit detection to avoid single condition switch statements 7 years ago
Chicken-Bones d8244e347b Select outer-loop continue branches as break targets for switches in nested loops 7 years ago
Chicken-Bones d86f4b4132 Prefer simple if statements over switch with single case block 7 years ago
Chicken-Bones 52a279f861 Restore HighLevelLoopTransform pattern match for loop contents within if body 7 years ago
Chicken-Bones 7017d998d0 Improve switch decompilation in loops via early detection of continue blocks. 7 years ago
Chicken-Bones 1a021635cc Fix detection of switch statements with cases containing a single break; 7 years ago
Chicken-Bones cb4fa90545 Add IL ordering based hint to UseCSharpSwitch 7 years ago
Chicken-Bones 62b2ad4f8d Improve UseCSharpSwitch to reduce over-aggressive use of switch producing poor quality code. 7 years ago
Chicken-Bones 9a3914fca9 Handle roslyn generated sub instructions in partitioned C# switch statements 7 years ago
Siegfried Pammer 5dd7eaf129 Fix #1093: Remove usage of type or this qualifiers, when possible. 7 years ago
Siegfried Pammer eac591a7d7 Fix #1084: Decompiling constants of the target type 7 years ago
Siegfried Pammer 16c900ebfa Remove sequential values from enum members + display powers of two (- 1) as hex. 8 years ago
Siegfried Pammer 5ee6d88ff3 Add foreach over array pattern. 8 years ago
Siegfried Pammer 9630acd8b7 SwitchOnNullableTransform: Fix another special case produced by the Roslyn compiler. 8 years ago
Siegfried Pammer 086325afdf Fix #917: InvalidCastException: Cast from Int64 to Boolean not supported. 8 years ago
Siegfried Pammer d6d7020893 Add test cases for nullable switch 8 years ago
Siegfried Pammer 7ae44fcdc6 Add FlattenSwitchBlocks transform + update test cases. 8 years ago
Siegfried Pammer c2761b0e02 Update test cases for switch. 8 years ago
Siegfried Pammer 67272e58ef SwitchOnStringTransform: Remove extra variables introduced by switch pattern. 8 years ago
Siegfried Pammer 4927de647b Add more switch pretty test cases 8 years ago
Siegfried Pammer f2ee1c55f9 Add test case for switch without default + remove empty default sections in StatementBuilder. 8 years ago
Siegfried Pammer 51d13bfefe Add transform for Roslyn Switch-On-Nullable 8 years ago
Siegfried Pammer 0fa58c3d53 Fix #567: switch statement not properly decompile 8 years ago
Siegfried Pammer 945ebc7702 Add test cases for switch on int? 8 years ago
Siegfried Pammer 930d142a62 Fix bug in SwitchOnStringTransform introduced by 9719926b6bc1e43c9d43d811e5c27d9e797209b8: Ignore exit instruction if condition is not inverted. Otherwise we need a special case for br and leave. 8 years ago
Siegfried Pammer 9719926b6b Fix some more bugs in SwitchOnStringTransform 8 years ago
Siegfried Pammer 2145543ada Add Switch pretty tests 8 years ago
Siegfried Pammer e0df621e44 Implement translation of cascading if-statements with string comparisons to switch(string). 8 years ago
Siegfried Pammer 41aa4573d9 Fix #498: switches implemented by the compiler as Dictionary lookup are not correctly decompiled 8 years ago
Siegfried Pammer ddd5f43b41 [switch] Add basic SwitchOnStringTransform for Roslyn switch on strings. 8 years ago
Siegfried Pammer e26af08a1c Move test projects to their own directory in \ 8 years ago
Siegfried Pammer f24f1e007e Move correctness tests to single namespace 9 years ago
Daniel Grunwald 4eb5e82613 Add a test case that demonstrates that if/switch detection and loop detection interact. 9 years ago
Daniel Grunwald 4a13491ff9 Improve switch simplifcation: combine case section with default block where possible 9 years ago
Siegfried Pammer 6c57304684 Reorganize TestRunner-Tests 9 years ago