19 Commits
Author SHA1 Message Date
ElektroKill f9c7b6b66e Extend EliminateRedundantTryFinally in ReduceNestingTransform 2023-05-13 12:17:13 +02:00
Daniel Grunwald 17d323c943 Fix #2557: Remove incorrect assertion from ReduceNestingTransform
ILFunctions can appear as statements when the source code has a lambda expression which is immediately discarded.

```
_ = (Action)delegate { ... };
```
2021-11-22 23:13:14 +01:00
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).
2021-06-03 16:53:56 +02:00
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.
2021-06-02 22:40:28 +02:00
dotnet format 0d9f871a4f #2128: Reformat the whole code base. 2020-08-28 01:05:38 +02:00
Daniel Grunwald 417a2c3391 Revert the InvertIf change; it causes too many issues for the following transforms. 2020-07-11 23:11:24 +02:00
Daniel Grunwald e083d43fb9 Fix ReduceNestingTransform 2020-07-11 23:09:25 +02:00
Chicken-Bones da905acc6d Fix logic error in last commit, and ignore fault clauses in ReduceNestingTransform 2020-06-11 22:23:32 +10:00
Chicken-Bones abd9af29c6 Fix failed assertion when encountering a finally block with an unreachable endpoint in ReduceNestingTransform. 2020-06-09 20:28:53 +10:00
Chicken-Bones e0e26a0e77 Fix ReduceNestingTransform when extracting default block of switch in a try container 2020-06-09 19:55:34 +10:00
Chicken-Bones 22243de7b0 Improve ReduceNestingTransform by considering nested containers (Try/Using/Lock/Pinned/etc) 2019-12-29 18:17:36 +10:00
Jane Doe 180280cc2d agressive -> aggressive 2019-10-13 07:39:51 -07:00
Daniel Grunwald 6c0216bbb9 Fix assertion in ReduceNestingTransform: after copying the exitInst, it was possible that the old copy of the exitInst became unreachable. 2019-07-26 17:14:12 +02:00
Daniel Grunwald ed5d71b365 Fix #1537: KeyNotFoundException in ReduceNestingTransform.ReduceSwitchNesting() 2019-07-13 22:38:59 +02:00
Daniel Grunwald 877780beb5 Fix ReduceNestingTransform bug introduced in commit 7f27768ff9 2019-06-08 21:29:24 +02:00
Daniel Grunwald 7f27768ff9 Fix #1391, #1393, #1458: Fix ReduceNestingTransform modifying the Blocks collection while iterating over it. 2019-06-08 19:16:31 +02:00
Siegfried Pammer c1fca21e8a Make ILRange field private - introduce public API for IL range manipulation. 2019-02-16 20:36:17 +01:00
Daniel Grunwald da5693e605 Fix #1339: fixed statement not decompiled correctly when pinned variable is reset in finally block 2019-02-15 18:36:45 +01:00
Chicken-Bones ab9397d099 Add ReduceNestingTransform 2018-10-08 21:21:56 +10:00