- changed status to resolved
Incorrect variable lookup converted by datum->syntax
Issue #92
resolved
If an identifier is not bound the same level then it should not be the same. Following should raise an unbound error.
(define-syntax aif
(lambda (x)
(syntax-case x ()
((ng test then)
#'(aif test then #f)) ;; template variable aif is not the same bound if (aif #t it)
((aif test then else)
(with-syntax ((it (datum->syntax #'aif 'it)))
#'(let ((it test))
(if it then else)))))))
(aif #t it)
Comments (1)
-
reporter - Log in to comment
Changing er-rename not to lookup before renaming. Adding identifier identity slot to determine whether identifiers are the same bound or not. Adding different bound test case. Fixes
#89Fixes#92→ <<cset 4f7dbb94ab8b>>