Skip to content

Comments

Walking form which is trying to rewrite a (var ...) special form errors because walk-exprs runs eval on it.#35

Open
didibus wants to merge 1 commit intoclj-commons:masterfrom
didibus:fix-var-special-form-being-evaled-by-walk-exprs
Open

Walking form which is trying to rewrite a (var ...) special form errors because walk-exprs runs eval on it.#35
didibus wants to merge 1 commit intoclj-commons:masterfrom
didibus:fix-var-special-form-being-evaled-by-walk-exprs

Conversation

@didibus
Copy link

@didibus didibus commented Sep 4, 2022

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 into special-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 a sepcial-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.

… 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.
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