diff --git a/collects/tests/mzscheme/macrolib.ss b/collects/tests/mzscheme/macrolib.ss index fdf55dd..0276715 100644 --- a/collects/tests/mzscheme/macrolib.ss +++ b/collects/tests/mzscheme/macrolib.ss @@ -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)