classes: call reset-generic on predicate word to avoid redefinition problems (reported by littledan)

release
Slava Pestov 2010-02-15 18:34:45 +13:00
parent 4266023639
commit 3e5e3a6d3f
2 changed files with 8 additions and 1 deletions

View File

@ -119,3 +119,9 @@ TUPLE: forgotten-predicate-test ;
[ ] [ [ \ forgotten-predicate-test forget ] with-compilation-unit ] unit-test [ ] [ [ \ forgotten-predicate-test forget ] with-compilation-unit ] unit-test
[ f ] [ \ forgotten-predicate-test? predicate? ] 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

View File

@ -60,7 +60,8 @@ PRIVATE>
: classes ( -- seq ) implementors-map get keys ; : classes ( -- seq ) implementors-map get keys ;
: create-predicate-word ( word -- predicate ) : create-predicate-word ( word -- predicate )
[ name>> "?" append ] [ vocabulary>> ] bi create ; [ name>> "?" append ] [ vocabulary>> ] bi
create dup reset-generic ;
: predicate-word ( word -- predicate ) : predicate-word ( word -- predicate )
"predicate" word-prop first ; "predicate" word-prop first ;