X-Git-Url: https://git.lukelau.me/?a=blobdiff_plain;f=tests.scm;h=cdd60bd92730df41c4d15077ddee7ffc61bf7f17;hb=b1fae591d1981a511bd19218a6c85872344915c6;hp=fa5b195e1b2575c4d14f9e385c854aad53dd0823;hpb=006b94f5a24a794665788737fec8d54086284317;p=scheme.git diff --git a/tests.scm b/tests.scm index fa5b195..cdd60bd 100644 --- a/tests.scm +++ b/tests.scm @@ -155,9 +155,7 @@ (test-types (typecheck - '((data A - [foo Int] - [bar Bool]) + '((data A [foo Int]) (let ([x (foo 42)] [(foo y) x]) x))) @@ -165,9 +163,7 @@ (test-types (typecheck - '((data A - [foo Int] - [bar Bool]) + '((data A [foo Int]) (let ([x (foo 42)] [(foo y) x]) y))) @@ -259,3 +255,26 @@ (let ([(foo x y) (foo (= 3 3) 42)]) y)) 42) + +(test-exception (expand-pattern-matches + '((data A [foo Int] + [bar Bool]) + (let ([(foo x) (foo 0)]) x)))) + +(test-prog '((data A [foo Int]) + (let ([x (foo 42)]) + (let ([(foo y) x]) + (+ 2 y)))) + 44) + +(test-prog '((data A [foo Bool Int Int]) + (let ([x (foo (= 2 1) 123 45)] + [(foo a b c) x]) + (+ b c))) + (+ 123 45)) + +(test-prog '((data A [foo Int]) + (data B [bar A]) + (let ([(bar (foo x)) (bar (foo 42))]) + x)) + 42)