mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
don't include underscore in ellipsis pattern vars (issue #421)
This commit is contained in:
parent
c80a1ece92
commit
db186784e3
2 changed files with 8 additions and 1 deletions
|
@ -829,7 +829,8 @@
|
||||||
(define (all-vars x dim)
|
(define (all-vars x dim)
|
||||||
(let lp ((x x) (dim dim) (vars '()))
|
(let lp ((x x) (dim dim) (vars '()))
|
||||||
(cond ((identifier? x)
|
(cond ((identifier? x)
|
||||||
(if (any (lambda (lit) (compare x lit)) lits)
|
(if (or (any (lambda (lit) (compare x lit)) lits)
|
||||||
|
(compare x _underscore))
|
||||||
vars
|
vars
|
||||||
(cons (cons x dim) vars)))
|
(cons (cons x dim) vars)))
|
||||||
((ellipsis? x) (lp (car x) (+ dim 1) (lp (cddr x) dim vars)))
|
((ellipsis? x) (lp (car x) (+ dim 1) (lp (cddr x) dim vars)))
|
||||||
|
|
|
@ -473,6 +473,12 @@
|
||||||
((foo _) '_)))
|
((foo _) '_)))
|
||||||
(test '_ (underscore foo))
|
(test '_ (underscore foo))
|
||||||
|
|
||||||
|
(let ()
|
||||||
|
(define-syntax underscore2
|
||||||
|
(syntax-rules ()
|
||||||
|
((underscore2 (a _) ...) 42)))
|
||||||
|
(test 42 (underscore2 (1 2))))
|
||||||
|
|
||||||
(define-syntax count-to-2
|
(define-syntax count-to-2
|
||||||
(syntax-rules ()
|
(syntax-rules ()
|
||||||
((_) 0)
|
((_) 0)
|
||||||
|
|
Loading…
Add table
Reference in a new issue