| Newsgroups |
gmane.lisp.scheme.bigloo |
| Organization |
Inria |
| Message-ID |
<[email protected]> |
Hi Joseph,
> Hello,
> I have recently seen an interesting expansion of a syntax-rules macro whose definition contained a reference to a expansition-style macro, specifically an instantiate macro introduced by the object system. Here is a simplified example:
> (define-class foo
> a)
>
> (define-syntax darn
> (syntax-rules ()
> ((_)
> (let ((a 1))
> (instantiate::foo (a a))))))
>
> (darn)
> Unexpectedly, at least to me, this expands to:
> (let ((a1019 1)) (instantiate::foo (a1019 a1019)))
> This results in an error because foo does not have a field named a1019. Contrary to my expectations, is the expected behavior?
No, it's obviously not. I will see if I can fix that problem. Thanks for the
report.
--
Manuel