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