Fix predicate clobberage

db4
Slava Pestov 2008-03-29 05:03:04 -05:00
parent 9e13e61a74
commit 47c91e379e
2 changed files with 15 additions and 3 deletions

View File

@ -340,6 +340,19 @@ TUPLE: electronic-device ;
[ f ] [ "laptop" get electronic-device? ] unit-test [ f ] [ "laptop" get electronic-device? ] unit-test
[ t ] [ "laptop" get computer? ] unit-test [ t ] [ "laptop" get computer? ] unit-test
! Redefinition problem
TUPLE: redefinition-problem ;
UNION: redefinition-problem' redefinition-problem integer ;
[ t ] [ 3 redefinition-problem'? ] unit-test
TUPLE: redefinition-problem-2 ;
"IN: classes.tuple.tests TUPLE: redefinition-problem < redefinition-problem-2 ;" eval
[ t ] [ 3 redefinition-problem'? ] unit-test
! Hardcore unit tests ! Hardcore unit tests
USE: threads USE: threads

View File

@ -140,12 +140,11 @@ PRIVATE>
[ drop f tuple-class define-class ] [ drop f tuple-class define-class ]
[ nip define-tuple-slots ] [ [ nip define-tuple-slots ] [
2drop 2drop
class-usages [ class-usages keys [ tuple-class? ] subset [
drop
[ define-tuple-layout ] [ define-tuple-layout ]
[ define-tuple-predicate ] [ define-tuple-predicate ]
bi bi
] assoc-each ] each
] 3tri ; ] 3tri ;
: redefine-tuple-class ( class superclass slots -- ) : redefine-tuple-class ( class superclass slots -- )