]> gitweb.factorcode.org Git - factor.git/commitdiff
classes: fix regression from recent bug fix
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 15 Feb 2010 10:46:55 +0000 (23:46 +1300)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 15 Feb 2010 10:46:55 +0000 (23:46 +1300)
core/classes/classes.factor
core/classes/tuple/tuple-tests.factor

index a730636ca9327c27c624db6521cb379bcfd31afa..28f0b192ee209dba6d286f4d6dc8d554349e75de 100644 (file)
@@ -59,15 +59,15 @@ PRIVATE>
 
 : classes ( -- seq ) implementors-map get keys ;
 
+PREDICATE: predicate < word "predicating" word-prop >boolean ;
+
 : create-predicate-word ( word -- predicate )
-    [ name>> "?" append ] [ vocabulary>> ] bi
-    create dup reset-generic ;
+    [ name>> "?" append ] [ vocabulary>> ] bi create
+    dup predicate? [ dup reset-generic ] unless ;
 
 : predicate-word ( word -- predicate )
     "predicate" word-prop first ;
 
-PREDICATE: predicate < word "predicating" word-prop >boolean ;
-
 M: predicate flushable? drop t ;
 
 M: predicate forget*
index f452d8fb28b8ddaec6a80898eea6b244e84bcc1e..36d402c61dbec55d849e9b42a50bc566c07c025f 100644 (file)
@@ -764,3 +764,9 @@ DEFER: factor-crashes-anymore
 ] unit-test
 
 [ 31337 ] [ factor-crashes-anymore ] unit-test
+
+TUPLE: tuple-predicate-redefine-test ;
+
+[ ] [ "IN: classes.tuple.tests TUPLE: tuple-predicate-redefine-test ;" eval( -- ) ] unit-test
+
+[ t ] [ \ tuple-predicate-redefine-test? predicate? ] unit-test