~ chicken-core (chicken-5) c8f585fcafd0e5b9e31b1c8910e6b9fc72068124


commit c8f585fcafd0e5b9e31b1c8910e6b9fc72068124
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri May 13 13:54:44 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Fri May 13 13:54:44 2011 +0200

    added more scrutinizer tests

diff --git a/tests/scrutiny-tests.scm b/tests/scrutiny-tests.scm
index 2f65cf19..f7f08a12 100644
--- a/tests/scrutiny-tests.scm
+++ b/tests/scrutiny-tests.scm
@@ -32,7 +32,6 @@
 ((values 1 2))				; expected procedure, got fixnum (canonicalizes to 1 result)
 
 ; this should *not* signal a warning:
-
 (define (test-values x)
   (define (fail) (error "failed"))
   (if x
@@ -45,3 +44,27 @@
   (if foo 2)				; not in tail position
   (if bar 3))				; should warn
 
+;; noreturn conditional branch enforces "number" on x
+(define (foo2 x)
+  (if (string? x) (error "foo") (+ x 3))
+  (string-append x "abc"))
+
+;; implicit declaration of foo3
+(declare (hide foo3))
+
+(define (foo3 x)
+  (string-append x "abc"))
+
+(foo3 99)
+
+;; predicate
+(define (foo4 x)
+  (if (string? x)
+      (+ x 1)
+      (+ x 2)))				; ok
+
+;; enforcement
+(define (foo5 x)
+  (string-append x "abc")
+  (+ x 3))
+
Trap