new local

original commit: 007be329144ced53d05f670d96d7e53201d21023
This commit is contained in:
Matthew Flatt 1998-03-06 19:35:59 +00:00
commit 8649d99a32

View File

@ -42,6 +42,7 @@
s)
(get-output-string s)))
(test 'hi 'local (local () 'hi))
(define x 7)
(test 6 'local (local ((define x 6)) x))
(test 7 'local x)
@ -55,8 +56,14 @@
(test 5 'local (let ([x 10]) (local ((define y (lambda () x))) (define x 5) x)))
(test 8 'local (let ([lambda 9]) (local [(define lambda 8)] lambda)))
(test 9 'local (let ([lambda 10]) (local [(define lambda 9) (define lambda2 lambda)] lambda2)))
(test 19 'local (local [(define lambda 19) (define lambda2 lambda)] lambda2))
(test 1 'local (local ((define-values (a b c) (values 1 2 3))) a))
(test 1 (lambda () (local ((define-values (a b c) (values 1 2 3))) a)))
(test 8 'local (local [(define lambda 8)] lambda))
(test 12 'local (local [(define (f y) (add1 y))] (f 11)))
(test 17 'local (local [(define-values (apple b) (values 12 17))] b))
(test 4 'local (local [(define-struct cons (car cdr))] (cons-car (make-cons 4 5))))
(test 40 'local (local [(define-struct (cons struct:exn) (car cdr))] (cons-car (make-cons "" (void) 40 50))))
(syntax-test '(local))
(syntax-test '(local . 1))
(syntax-test '(local ()))
@ -68,7 +75,13 @@
(syntax-test '(local ((define x)) 1))
(syntax-test '(local ((define x 4) (+ 1 2)) 1))
(syntax-test '(local ((define x 4) (+ 1 2) (define y 10)) 1))
(syntax-test '(local [(define lambda 8)] lambda))
(syntax-test '(local ((define (x 8) 4)) 1))
(syntax-test '(local ((define (x . 8) 4)) 1))
(syntax-test '(local ((define x 8 4)) 1))
(syntax-test '(local ((define 1 8 4)) 1))
(syntax-test '(let ([define 10]) (local ((define x 4)) 10)))
(syntax-test '(let ([define-values 10]) (local ((define-values (x) 4)) 10)))
(syntax-test '(let ([define-struct 10]) (local ((define-struct x ())) 10)))
(for-each syntax-test
(list '(evcase)