diff --git a/pollen/private/split-metas.rkt b/pollen/private/split-metas.rkt index 7b051b3..a77ed4b 100644 --- a/pollen/private/split-metas.rkt +++ b/pollen/private/split-metas.rkt @@ -3,23 +3,23 @@ racket/list) (provide (all-defined-out)) -(define (split-metas x meta-key) +(define (split-metas x [meta-key 'define-meta]) (apply hasheq (let loop ([x ((if (syntax? x) syntax->datum values) x)]) (match x [(list (== meta-key eq?) key val) (unless (symbol? key) - (raise-argument-error 'define-meta "valid meta key" key)) + (raise-argument-error meta-key "valid meta key" key)) (list key val)] [(? list? xs) (append-map loop xs)] [_ null])))) (module+ test (require rackunit) - (check-equal? (split-metas 'root 'define-meta) (hasheq)) - (check-equal? (split-metas '(root) 'define-meta) (hasheq)) - (check-exn exn:fail:contract? (λ () (split-metas '(root (define-meta 42 "bar")) 'define-meta))) - (check-equal? (split-metas '(root (div #:kw #f (define-meta foo "bar") "hi") "zim" (define-meta foo "boing") "zam") 'define-meta) '#hasheq((foo . "boing"))) - (check-equal? (split-metas '(root (div #:kw #f (define-meta foo 'bar) "hi") "zim" (define-meta foo 'boing) "zam") 'define-meta) '#hasheq((foo . 'boing))) - (check-equal? (split-metas #'(root (define-meta dog "Roxy") (define-meta dog "Lex")) 'define-meta) '#hasheq((dog . "Lex"))) - (check-equal? (split-metas #'(root (define-meta dog "Roxy") (div (define-meta dog "Lex"))) 'define-meta) '#hasheq((dog . "Lex")))) \ No newline at end of file + (check-equal? (split-metas 'root) (hasheq)) + (check-equal? (split-metas '(root)) (hasheq)) + (check-exn exn:fail:contract? (λ () (split-metas '(root (define-meta 42 "bar"))))) + (check-equal? (split-metas '(root (div #:kw #f (define-meta foo "bar") "hi") "zim" (define-meta foo "boing") "zam")) '#hasheq((foo . "boing"))) + (check-equal? (split-metas '(root (div #:kw #f (define-meta foo 'bar) "hi") "zim" (define-meta foo 'boing) "zam")) '#hasheq((foo . 'boing))) + (check-equal? (split-metas #'(root (define-meta dog "Roxy") (define-meta dog "Lex"))) '#hasheq((dog . "Lex"))) + (check-equal? (split-metas #'(root (define-meta dog "Roxy") (div (define-meta dog "Lex")))) '#hasheq((dog . "Lex")))) \ No newline at end of file diff --git a/pollen/private/ts.rktd b/pollen/private/ts.rktd index e8bd7f1..aa4910a 100644 --- a/pollen/private/ts.rktd +++ b/pollen/private/ts.rktd @@ -1 +1 @@ -1542912081 +1542912991