larcenists / larceny

Larceny Scheme implementation
Other
203 stars 32 forks source link

Bug in syntax-rules expander: lookup of ‘...’ flawed #780

Closed mnieper closed 7 years ago

mnieper commented 8 years ago

The following program should print .... However, Larceny raises an error Too many ...'s.

(import (rename (scheme base))
        (scheme write))

(let ((... 'foo))
  (define-syntax bar
    (syntax-rules ()
      ((bar)
       (begin
     (display '...)
     (newline)))))

  (bar))

The normal binding of ... is exported by (scheme base), which, however, should be shadowed inside the let binding construct.

WillClinger commented 7 years ago

See also ticket #747.

WillClinger commented 7 years ago

Fixed by changeset fb44ba73d25f7380b3766109314c5f16bb55e34e