racket/unit: fix test for use-before-definition

This commit is contained in:
Matthew Flatt 2014-04-20 20:18:13 -06:00
parent a03c396691
commit c38447c711

View File

@ -540,7 +540,9 @@
(test 1 (l u4)) (test 1 (l u4))
(test 1 (l u5)) (test 1 (l u5))
(test 2 (l u6)) (test 2 (l u6))
(test (letrec ((x x)) x) (test-runtime-error
exn:fail:contract:variable?
"undefined"
(let () (let ()
(define-values/invoke-unit (unit-from-context yz-sig) (import) (export yz-sig)) (define-values/invoke-unit (unit-from-context yz-sig) (import) (export yz-sig))
y)) y))
@ -660,8 +662,6 @@
(define-values/invoke-unit u1 (import) (export b-sig)) (define-values/invoke-unit u1 (import) (export b-sig))
b))) b)))
(let ((x 1) (let ((x 1)
(v 2)) (v 2))
(let-syntax ((s (syntax-rules () ((_) (list x v))))) (let-syntax ((s (syntax-rules () ((_) (list x v)))))
@ -1362,14 +1362,21 @@
(test-syntax-error "define-values/invoke-unit/infer: not a unit" (test-syntax-error "define-values/invoke-unit/infer: not a unit"
(let-syntax ([x 1]) (let-syntax ([x 1])
(define-values/invoke-unit/infer (link u x)))) (define-values/invoke-unit/infer (link u x))))
(test-runtime-error
exn:fail:contract:variable?
"undefined"
(let () (let ()
(define-values/invoke-unit/infer (link u v)) (define-values/invoke-unit/infer (link u v))
x) x))
(test-runtime-error
exn:fail:contract:variable?
"undefined"
(let () (let ()
(define-values/invoke-unit/infer (export x-sig) (link u v)) (define-values/invoke-unit/infer (export x-sig) (link u v))
x) x))
(let () (let ()
(define-values/invoke-unit/infer (export x-sig) v) (define-values/invoke-unit/infer (export x-sig) v)
x) x)
@ -1403,7 +1410,6 @@
(test-runtime-error exn? "define-values/invoke-unit/infer: init-depend broken" (test-runtime-error exn? "define-values/invoke-unit/infer: init-depend broken"
(define-values/invoke-unit/infer (export) (link u@ v@)))) (define-values/invoke-unit/infer (export) (link u@ v@))))
(define-unit u (import x-sig) (export) x) (define-unit u (import x-sig) (export) x)
(test-syntax-error "define-values/invoke-unit/infer: bad imports" (test-syntax-error "define-values/invoke-unit/infer: bad imports"
(define-values/invoke-unit/infer u)) (define-values/invoke-unit/infer u))
@ -1418,7 +1424,6 @@
(define-values/invoke-unit/infer u) (define-values/invoke-unit/infer u)
(+ y x))) (+ y x)))
(test 1 (test 1
(let () (let ()
(define-unit x (import) (export) 1) (define-unit x (import) (export) 1)
@ -1504,7 +1509,9 @@
(test-syntax-error "compound-unit/infer: unprovided sig" (test-syntax-error "compound-unit/infer: unprovided sig"
(compound-unit/infer (import) (export x-sig) (link))) (compound-unit/infer (import) (export x-sig) (link)))
(test (letrec ((x x)) x) (test-runtime-error
exn:fail:contract:variable?
"undefined"
(invoke-unit (invoke-unit
(compound-unit/infer (import) (export) (compound-unit/infer (import) (export)
(link x y)))) (link x y))))