~ chicken-core (chicken-5) 56299cdc71ccbc6342b4614014536b715ff3747c


commit 56299cdc71ccbc6342b4614014536b715ff3747c
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Sep 26 08:34:10 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Mon Sep 26 08:34:10 2011 +0200

    added some testcases

diff --git a/scrutinizer.scm b/scrutinizer.scm
index 176129b3..3f9ebfd3 100755
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -2307,7 +2307,7 @@
 				   (else '())))
 			   insts)))
 		       vars)))
-	(dd "  collected: ~s" all)	;XXX remove
+	;;(dd "  collected: ~s" all)	;XXX remove
 	all))
 
     (dd " over-all-instantiations: ~s exact=~a" tlist exact) ;XXX remove
diff --git a/tests/typematch-tests.scm b/tests/typematch-tests.scm
index 3e4b759a..6b687c8b 100644
--- a/tests/typematch-tests.scm
+++ b/tests/typematch-tests.scm
@@ -1,7 +1,7 @@
 ;;;; typematch-tests.scm
 
 
-(use lolevel)
+(use lolevel data-structures)
 
 
 (define-syntax check
@@ -213,10 +213,10 @@
 	((or fixnum symbol) 'sf))))
 
 (: f3 (forall (a) ((list-of a) -> a)))
-(define (f3 x) (car x))
+(define f3 car)
 (define xxx '(1))
 
-(compiler-typecase (foo (the (or (vector-of fixnum) (list-of fixnum)) xxx))
+(compiler-typecase (f3 (the (or (vector-of fixnum) (list-of fixnum)) xxx))
   (fixnum 'ok))
 
 (assert
@@ -224,3 +224,15 @@
       (compiler-typecase (list 123)
 	((forall (a) (or (vector-of a) (list-of a))) 'ok)
 	(else 'not-ok))))
+
+(: f4 (forall (a) ((or fixnum (list-of a)) -> a)))
+(define f4 identity)
+
+(compiler-typecase (f4 '(1))
+  (fixnum 'ok))
+
+(assert
+ (eq? 'ok (compiler-typecase (f4 1)
+	    (fixnum 'not-ok)
+	    (else 'ok))))
+
Trap