diff --git a/core/classes/classes-tests.factor b/core/classes/classes-tests.factor index 10a5f674bd..2b02d7c5a1 100644 --- a/core/classes/classes-tests.factor +++ b/core/classes/classes-tests.factor @@ -119,3 +119,9 @@ TUPLE: forgotten-predicate-test ; [ ] [ [ \ forgotten-predicate-test forget ] with-compilation-unit ] unit-test [ f ] [ \ forgotten-predicate-test? predicate? ] unit-test + +GENERIC: generic-predicate? ( a -- b ) + +[ ] [ "IN: classes.tests TUPLE: generic-predicate ;" eval( -- ) ] unit-test + +[ f ] [ \ generic-predicate? generic? ] unit-test diff --git a/core/classes/classes.factor b/core/classes/classes.factor index 6d68ad7fb4..a730636ca9 100644 --- a/core/classes/classes.factor +++ b/core/classes/classes.factor @@ -60,7 +60,8 @@ PRIVATE> : classes ( -- seq ) implementors-map get keys ; : create-predicate-word ( word -- predicate ) - [ name>> "?" append ] [ vocabulary>> ] bi create ; + [ name>> "?" append ] [ vocabulary>> ] bi + create dup reset-generic ; : predicate-word ( word -- predicate ) "predicate" word-prop first ;