Fixed syntax/parse bug:
Syntax classes with keyword arguments were unintentionally requiring all arguments at an application site to be in alphabetical order. Added a test for this fix.
This commit is contained in:
parent
59731368fc
commit
97642c1cb6
|
@ -46,7 +46,7 @@ An Arity is
|
||||||
(arity-maxpos arity)
|
(arity-maxpos arity)
|
||||||
(arity-minkws arity)
|
(arity-minkws arity)
|
||||||
(arity-maxkws arity)
|
(arity-maxkws arity)
|
||||||
pos-count keywords)])
|
pos-count (sort keywords keyword<?))])
|
||||||
(when msg
|
(when msg
|
||||||
(proc msg))))
|
(proc msg))))
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ An Arity is
|
||||||
(arity-maxpos arity)
|
(arity-maxpos arity)
|
||||||
(arity-minkws arity)
|
(arity-minkws arity)
|
||||||
(arity-maxkws arity)
|
(arity-maxkws arity)
|
||||||
pos-count keywords)])
|
pos-count (sort keywords keyword<?))])
|
||||||
(when msg
|
(when msg
|
||||||
(proc msg))))
|
(proc msg))))
|
||||||
|
|
||||||
|
|
|
@ -194,3 +194,9 @@
|
||||||
#:with c #'c0
|
#:with c #'c0
|
||||||
#:declare c (Nat> (syntax-e #'b0))
|
#:declare c (Nat> (syntax-e #'b0))
|
||||||
(void)])
|
(void)])
|
||||||
|
|
||||||
|
(define-syntax-class (Nat-Between #:lo lo #:hi hi)
|
||||||
|
#:description (format "~s <= Nat <= ~s" lo hi)
|
||||||
|
(pattern x:nat #:when (<= lo (syntax-e #'x) hi)))
|
||||||
|
(syntax-parse #'5
|
||||||
|
[(~var _ (Nat-Between #:lo 0 #:hi 10)) (void)])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user