Skip to content

Restricting recursiveCallsAndSurroundingUnfoldings to look for recursive calls only#896

Merged
marcoeilers merged 1 commit intomasterfrom
meilers_fix_895
Nov 5, 2025
Merged

Restricting recursiveCallsAndSurroundingUnfoldings to look for recursive calls only#896
marcoeilers merged 1 commit intomasterfrom
meilers_fix_895

Conversation

@marcoeilers
Copy link
Contributor

@JonasAlaif found that predicate triggers don't apply just to recursive calls but to any function calls, which is almost certainly not intended, contradicts the name of the function that looks for relevant calls, and can easily lead to matching loops (see #895).

While there are other issues with the way the triggers are generated, this PR just fixes the most glaring issue and restricts the triggers to look for actual recursive calls only.

@marcoeilers marcoeilers merged commit 546e53f into master Nov 5, 2025
5 checks passed
@marcoeilers marcoeilers deleted the meilers_fix_895 branch November 5, 2025 20:36
@JonasAlaif
Copy link
Contributor

I'm a bit worried about solving it this way wrt to mutually recursive calls however

@marcoeilers
Copy link
Contributor Author

We could of course look at the actual function call graph to also support mutual recursion. I didn't want to do that because I've seen call graph computation being slow, and I'm not sure I've ever seen a case where this would matter. But actually call graph computation was slow because we're hashing functions for no reason (see #867), so I'll just fix that, and then we can use the call graph here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants