check protected syntax
svn: r2188
This commit is contained in:
parent
692b99e636
commit
0e67ca6810
|
@ -183,6 +183,23 @@
|
|||
(continuation-marks k)
|
||||
'x))))
|
||||
|
||||
;; nested full continuation, mark shared
|
||||
(wcm-test '(12 11 10)
|
||||
(lambda ()
|
||||
(let ([k (with-continuation-mark 'x 10
|
||||
(begin0
|
||||
(with-continuation-mark 'x 11
|
||||
(let/cc k0
|
||||
(begin0
|
||||
(with-continuation-mark 'x 12
|
||||
(let/cc k
|
||||
k))
|
||||
(cons 4 5))))
|
||||
(cons 2 3)))])
|
||||
(continuation-mark-set->list
|
||||
(continuation-marks k)
|
||||
'x))))
|
||||
|
||||
;; escape continuation, same thread
|
||||
(wcm-test '(11 10)
|
||||
(lambda ()
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
[eval-jit-enabled #t])
|
||||
(namespace-require 'mzscheme)
|
||||
(let* ([check-error-message (lambda (name proc)
|
||||
(unless (memq name '(eq? not null? pair?))
|
||||
(unless (memq name '(eq? not null? pair?
|
||||
real? number? boolean?))
|
||||
(let ([s (with-handlers ([exn? exn-message])
|
||||
(proc 'bad))]
|
||||
[name (symbol->string name)])
|
||||
|
@ -59,6 +60,9 @@
|
|||
|
||||
(un #f 'null? 0)
|
||||
(un #f 'pair? 0)
|
||||
(un #f 'boolean? 0)
|
||||
(un #t 'boolean? #t)
|
||||
(un #t 'boolean? #f)
|
||||
|
||||
(bin #f 'eq? 0 10)
|
||||
|
||||
|
@ -74,6 +78,18 @@
|
|||
(un #f 'negative? 1)
|
||||
(un #t 'negative? -1)
|
||||
|
||||
(un #t 'real? 1)
|
||||
(un #t 'real? (expt 2 100))
|
||||
(un #t 'real? 1.0)
|
||||
(un #f 'real? 1+2i)
|
||||
(un #f 'real? 'apple)
|
||||
|
||||
(un #t 'number? 1)
|
||||
(un #t 'number? (expt 2 100))
|
||||
(un #t 'number? 1.0)
|
||||
(un #t 'number? 1+2i)
|
||||
(un #f 'number? 'apple)
|
||||
|
||||
(un #t 'not #f)
|
||||
(un #f 'not #t)
|
||||
(un #f 'not 10)
|
||||
|
|
|
@ -742,7 +742,8 @@
|
|||
|
||||
(module ++m mzscheme
|
||||
(define ++x 10)
|
||||
(provide (protect ++x)))
|
||||
(define-syntax (++xm stx) #'100)
|
||||
(provide (protect ++x ++xm)))
|
||||
(module ++n mzscheme
|
||||
(require ++m)
|
||||
(define ++y ++x)
|
||||
|
@ -762,6 +763,7 @@
|
|||
(require ++m)
|
||||
|
||||
(test 10 values ++x)
|
||||
(test 100 values ++xm)
|
||||
(test 10 values ++y-macro2)
|
||||
|
||||
(let ()
|
||||
|
@ -783,9 +785,11 @@
|
|||
|
||||
(err/rt-test (teval '++y-macro2) exn:fail:contract:variable?)
|
||||
(err/rt-test (teval '++x) exn:fail:contract:variable?)
|
||||
(err/rt-test (teval '++xm) exn:fail:contract:variable?)
|
||||
|
||||
(teval '(require ++m))
|
||||
(err/rt-test (teval '++x) exn:fail:syntax?)
|
||||
(err/rt-test (teval '++xm) exn:fail:syntax?)
|
||||
(err/rt-test (teval '++y-macro2) exn:fail:syntax?)
|
||||
|
||||
(teval '(module zrt mzscheme
|
||||
|
|
Loading…
Reference in New Issue
Block a user