original commit: e99733a1906e18fc9c4007c97cba59c0e412b221
This commit is contained in:
Matthew Flatt 1998-02-10 20:31:33 +00:00
parent bcbb507304
commit e7a2831768

View File

@ -70,4 +70,31 @@
(syntax-test '(local ((define x 4) (+ 1 2) (define y 10)) 1))
(syntax-test '(local [(define lambda 8)] lambda))
(for-each syntax-test
(list '(evcase)
'(evcase 1 (a))
'(evcase 1 (a b) a)
'(evcase 1 (a . b) a)
'(evcase 1 [else 5] [1 10])))
(define => 17)
(test (void) 'void-evcase (with-handlers ([(lambda (x) #t) (lambda (x) 17)]) (evcase 1)))
(define save-comp (compile-allow-cond-fallthrough))
(compile-allow-cond-fallthrough #f)
(test #t andmap (lambda (x) (= x 17))
(list
(evcase 3 [3 17])
(evcase 3 [(+ 1 2) 17] [3 1])
(evcase 3 [3 4 5 17])
(evcase 3 [4 1] [3 4 5 17])
(evcase 3 [4 1 2 3 4] [3 4 5 17])
(evcase 3 [4 4] [2 10] [else 17])
(let ([else 10]) (evcase 3 [4 4] [2 10] [else 15] [3 17]))
(let ([else 3]) (evcase 3 [else 17] [2 14]))
(with-handlers ([(lambda (x) #t) (lambda (x) 17)]) (evcase 1))
(evcase 3 [3 =>])
(evcase 3 [3 => 17])
(let ([=> 12]) (evcase 3 [3 => 17]))
(let ([=> 17]) (evcase 3 [3 =>]))))
(compile-allow-cond-fallthrough save-comp)
(report-errs)