Add first-order checks for free variable contracts, and tests for everything.
svn: r13706
This commit is contained in:
parent
d18a56a956
commit
9098c94e9c
|
@ -2401,6 +2401,70 @@
|
||||||
(eval '(require 'foo-dc18)))
|
(eval '(require 'foo-dc18)))
|
||||||
"(unit U@)")
|
"(unit U@)")
|
||||||
|
|
||||||
|
(test/spec-failed
|
||||||
|
'define/contract19
|
||||||
|
'(let ()
|
||||||
|
(define y 3)
|
||||||
|
(define/contract (f n)
|
||||||
|
(-> number? number?)
|
||||||
|
#:freevar y (-> number? boolean?)
|
||||||
|
3)
|
||||||
|
1)
|
||||||
|
"top-level")
|
||||||
|
|
||||||
|
(test/spec-passed
|
||||||
|
'define/contract20
|
||||||
|
'(let ()
|
||||||
|
(define y (lambda (n) 4))
|
||||||
|
(define/contract (f n)
|
||||||
|
(-> number? number?)
|
||||||
|
#:freevar y (-> number? boolean?)
|
||||||
|
3)
|
||||||
|
1))
|
||||||
|
|
||||||
|
(test/spec-passed
|
||||||
|
'define/contract21
|
||||||
|
'(let ()
|
||||||
|
(define y (lambda (n) 4))
|
||||||
|
(define/contract (f n)
|
||||||
|
(-> number? number?)
|
||||||
|
#:freevar y (-> number? boolean?)
|
||||||
|
(if (y n) 3 1))
|
||||||
|
1))
|
||||||
|
|
||||||
|
(test/spec-failed
|
||||||
|
'define/contract22
|
||||||
|
'(let ()
|
||||||
|
(define y 4)
|
||||||
|
(define/contract (f n)
|
||||||
|
(-> number? number?)
|
||||||
|
#:freevar y (-> number? boolean?)
|
||||||
|
3)
|
||||||
|
1)
|
||||||
|
"top-level")
|
||||||
|
|
||||||
|
(test/spec-failed
|
||||||
|
'define/contract23
|
||||||
|
'(let ()
|
||||||
|
(define y (lambda (n) #t))
|
||||||
|
(define/contract (f n)
|
||||||
|
(-> number? number?)
|
||||||
|
#:freevar y (-> number? number?)
|
||||||
|
(y n))
|
||||||
|
(f 5))
|
||||||
|
"top-level")
|
||||||
|
|
||||||
|
(test/spec-failed
|
||||||
|
'define/contract24
|
||||||
|
'(let ()
|
||||||
|
(define y (lambda (n) 4))
|
||||||
|
(define/contract (f n)
|
||||||
|
(-> number? number?)
|
||||||
|
#:freevar y (-> number? boolean?)
|
||||||
|
(if (y #t) 3 1))
|
||||||
|
(f 5))
|
||||||
|
"(function f)")
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user