www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit d29aed64b8c31adf1208e0aebe32d27154f64b89
parent 98169cd383a1f58fcadeaa1ccc8602d25565f3c6
Author: Stephen Chang <stchang@ccs.neu.edu>
Date:   Tue, 16 Sep 2014 18:56:36 -0400

racket extended: name ldots in pattern

Diffstat:
Mracket-extended-for-implementing-typed-langs.rkt | 8++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/racket-extended-for-implementing-typed-langs.rkt b/racket-extended-for-implementing-typed-langs.rkt @@ -175,12 +175,12 @@ #`(#:when (Γ (type-env-extend #'([f τ] ... #,@(template ((?? ldots)))))))) (pattern (~seq (let τ := (typeof e)) (~literal ...)) #:attr pattern-directive #'(#:with (τ (... ...)) (stx-map typeof #'(e (... ...))))) - (pattern (~seq (e0 : τ0) (~literal ...)) + (pattern (~seq (e0 : τ0) (~and ldots (~literal ...))) #:when (concrete-τ? #'τ0) - #:attr pattern-directive #'(#:when (stx-andmap (λ (e) (assert-type e #'τ0)) #'(e0 (... ...))))) + #:attr pattern-directive #'(#:when (stx-andmap (λ (e) (assert-type e #'τ0)) #'(e0 ldots)))) ;; not concrete-τ - (pattern (~seq (e0 : τ0) (~literal ...)) - #:attr pattern-directive #'(#:when (stx-andmap assert-type #'(e0 (... ...)) #'(τ0 (... ...))))))) + (pattern (~seq (e0 : τ0) (~and ldots (~literal ...))) + #:attr pattern-directive #'(#:when (stx-andmap assert-type #'(e0 ldots) #'(τ0 ldots)))))) ;; define-typed-syntax