Skip to content

Commit 97d2813

Browse files
committed
C#: Refactor last predicate
- Split up the `last` predicate into a non-recursive part `lastNonRec` and a recursive part `last`. - Almost all syntactic constructs have a very simple `last` definition; a set of disjuncts with exactly one recursive call -- those are defined in `lastNonRec`. - `try` statements and (last) `catch` clauses require multiple recursive calls in the same disjunct, and are therefore handled in the `last` predicate (as before). - The benefit is that we only need to take care of the join order in the recursive call (for non-`try`/`catch` statements) in one place (the predicate `lastRec`), so we can get rid of many `nomagic`'ed `last`-specialisations.
1 parent bffc330 commit 97d2813

File tree

4 files changed

+419
-493
lines changed

4 files changed

+419
-493
lines changed

0 commit comments

Comments
 (0)