Skip to content

Allow inlining a function within its own argument forms #534

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

se-mz
Copy link
Contributor

@se-mz se-mz commented May 7, 2025

nx1-expand-inline overzealously protects not just the body but also the argument forms from what I assume is (mutually) recursive inlining. As a result, only the outer call is inlined in calls like (f x (f y z)).

Adding an extra parameter just for this is a bit annoying, but nx1-destructure is only called here and nx1-lambda-bind only has one other call site.

I did once try to disable the *nx-inline-expansions* mechanism entirely for the hell of it but still couldn't trigger a problem with inlining. Is it possible that it's redundant? Maybe I'm just not good at coming up with test cases.

NX1-EXPAND-INLINE overzealously protects not just the body but also the argument
forms from (mutually) recursive inlining. As a result, only the outer call is
inlined in calls like (F X (F Y Z)).
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.

1 participant