ccl
ccl copied to clipboard
Allow inlining a function within its own argument forms
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.