Attempt to fix extra level of let for typecheck-fail
This commit is contained in:
parent
6fd94fab24
commit
c115b497c0
|
@ -76,25 +76,29 @@
|
|||
(if (attribute msg-pat)
|
||||
(eval-syntax (datum->stx #'h (stx->datum #'msg-pat)))
|
||||
(eval-syntax (datum->stx #'h `(add-escs ,(stx->datum #'vmsg)))))
|
||||
#`(let-syntax ([chk (λ (_stx)
|
||||
(with-check-info*
|
||||
;; Most of these are actually ignored by rackunit's define-check.
|
||||
(list (make-check-expected (syntax-e #'msg))
|
||||
(make-check-expression (syntax->datum #'stx))
|
||||
(make-check-location (build-source-location-list #'stx))
|
||||
(make-check-name 'typecheck-fail)
|
||||
(make-check-params (list (syntax->datum #'e) (syntax-e #'msg))))
|
||||
(λ ()
|
||||
#,(syntax/loc stx
|
||||
(check-exn
|
||||
(λ (ex)
|
||||
(and (or (exn:fail? ex) (exn:test:check? ex))
|
||||
; check err msg matches
|
||||
(regexp-match? (syntax-e #'msg) (exn-message ex))))
|
||||
(λ ()
|
||||
(expand/df #'e))))))
|
||||
#'(void))])
|
||||
chk)]))
|
||||
#:with transformer-proc #`(λ (_stx)
|
||||
(with-check-info*
|
||||
;; Most of these are actually ignored by rackunit's define-check.
|
||||
(list (make-check-expected (syntax-e #'msg))
|
||||
(make-check-expression (syntax->datum #'stx))
|
||||
(make-check-location (build-source-location-list #'stx))
|
||||
(make-check-name 'typecheck-fail)
|
||||
(make-check-params (list (syntax->datum #'e) (syntax-e #'msg))))
|
||||
(λ ()
|
||||
#,(syntax/loc stx
|
||||
(check-exn
|
||||
(λ (ex)
|
||||
(and (or (exn:fail? ex) (exn:test:check? ex))
|
||||
; check err msg matches
|
||||
(regexp-match? (syntax-e #'msg) (exn-message ex))))
|
||||
(λ ()
|
||||
(expand/df #'e))))))
|
||||
#'(void))
|
||||
(if (eq? (syntax-local-context) 'expression)
|
||||
#'(let-syntax ([chk transformer-proc])
|
||||
chk)
|
||||
#'(begin (define-syntax chk transformer-proc)
|
||||
chk))]))
|
||||
|
||||
(define-syntax (typecheck-fail/toplvl stx)
|
||||
(syntax-parse stx #:datum-literals (:)
|
||||
|
|
Loading…
Reference in New Issue
Block a user