Move utils into its onw file
[scheme.git] / tests.scm
index fa5b195e1b2575c4d14f9e385c854aad53dd0823..ecee99eed962aa94ea39ed8c0f16f4b9c32bc4fa 100644 (file)
--- a/tests.scm
+++ b/tests.scm
 
 (test-types
  (typecheck
-  '((data A
-         [foo Int]
-         [bar Bool])
+  '((data A [foo Int])
     (let ([x (foo 42)]
          [(foo y) x])
       x)))
 
 (test-types
  (typecheck
-  '((data A
-         [foo Int]
-         [bar Bool])
+  '((data A [foo Int])
     (let ([x (foo 42)]
          [(foo y) x])
       y)))
             (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])
+                (+ 1 y))))
+          43)
+
+(test-prog '((data A [foo Int])
+            (data B [bar A])
+            (let ([(bar (foo x)) (bar (foo 42))])
+              x))
+          42)