Walking form which is trying to rewrite a (var ...) special form errors because walk-exprs runs eval on it. #35
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When trying to walk a form where I want to handle the var special form
(var ...)
in order to rewrite it to something else and not have it perform the actual var lookup walk-exprs fails, because even if you pass'var
intospecial-form?
walk-exprs will still run(eval x)
which will cause errors when walking, since the(var ...)
form being walked is not compatible with the default behavior of the special form and meant to be rewritten.To solve this, I modified walk-exprs so when
'var
is passed as asepcial-form?
it will also skip running eval on it and calling the handler with it.This was preventing walking macros that want to handle the var special form in different ways.
As far as I understand, this should make sense with what
special-form?
was intended.