Match up 9.2 and current definitions of GUARANTEE.
authorMatt Birkholz <matt@birchwood-abbey.net>
Sun, 5 Mar 2017 19:06:53 +0000 (12:06 -0700)
committerMatt Birkholz <matt@birchwood-abbey.net>
Sun, 5 Mar 2017 19:06:53 +0000 (12:06 -0700)
Fix the 9.2 host adapter to agree with expected behavior (returning
the object), after changing the new definition so that it is easier to
continue from (error...) with a substitute.

src/runtime/host-adapter.scm
src/runtime/predicate-metadata.scm

index bc8da4741bfe0d65a58e989071bd1de92fb0e45a..c8c7dab47733a13e8e603404193afdfa3e5c571b 100644 (file)
@@ -41,7 +41,8 @@ USA.
 (define random-bytevector random-byte-vector) env)
   (eval '
 (define (guarantee predicate object #!optional caller)
-  (if (not (predicate object))
+  (if (predicate object)
+      object
       (error "Not a:" predicate object))) env)
   (eval '
 (define (microcode-type name)
index f0f6b3c130b35472fb96eca6783bd753cf54b96d..ed3567b9a32a3ff1af8b2e0fa721dec59ae1bdb0 100644 (file)
@@ -87,9 +87,9 @@ USA.
     tag))
 
 (define (guarantee predicate object #!optional caller)
-  (if (not (predicate object))
-      (error:not-a predicate object caller))
-  object)
+  (if (predicate object)
+      object
+      (error:not-a predicate object caller)))
 
 (define (error:not-a predicate object #!optional caller)
   (error:wrong-type-argument object (predicate-description predicate) caller))