diff --git a/private/test-common.rkt b/private/test-common.rkt new file mode 100644 index 0000000..cdd9e9a --- /dev/null +++ b/private/test-common.rkt @@ -0,0 +1,26 @@ +#lang racket/base + +(provide + test-compile-error +) + +(require + rackunit + (for-syntax + racket/base + syntax/parse)) + +;; ============================================================================= + +(define-syntax (test-compile-error stx) + (syntax-parse stx + [(_ #:require r-s* ... + #:exn exn-rx + e* ...) + (syntax/loc stx + (begin + (check-exn exn-rx + (lambda () + (compile-syntax #'(module t typed/racket/base (require r-s* ...) e*)))) + ...))])) + diff --git a/test/function-fail.rkt b/test/function-fail.rkt new file mode 100644 index 0000000..e800548 --- /dev/null +++ b/test/function-fail.rkt @@ -0,0 +1,13 @@ +#lang racket/base +(require trivial/private/test-common) + + +(module+ test + (test-compile-error + #:require trivial/function + #:exn #rx"Type Checker" + ;; --- + ((curry: (lambda (x y) x)) 0 1) + (((curry: (lambda (x y z) z)) 'x) 'y 'z) + ) +)