Fix tuple redefinition bug
parent
5d9c1ea0a0
commit
498986fe88
|
@ -683,3 +683,17 @@ DEFER: error-y
|
||||||
[ t ] [ \ error-y tuple-class? ] unit-test
|
[ t ] [ \ error-y tuple-class? ] unit-test
|
||||||
|
|
||||||
[ f ] [ \ error-y generic? ] unit-test
|
[ f ] [ \ error-y generic? ] unit-test
|
||||||
|
|
||||||
|
[ ] [
|
||||||
|
"IN: classes.tuple.tests TUPLE: forget-subclass-test ; TUPLE: forget-subclass-test' < forget-subclass-test ;"
|
||||||
|
<string-reader> "forget-subclass-test" parse-stream
|
||||||
|
drop
|
||||||
|
] unit-test
|
||||||
|
|
||||||
|
[ ] [ "forget-subclass-test'" "classes.tuple.tests" lookup new "bad-object" set ] unit-test
|
||||||
|
|
||||||
|
[ ] [
|
||||||
|
"IN: classes.tuple.tests TUPLE: forget-subclass-test a ;"
|
||||||
|
<string-reader> "forget-subclass-test" parse-stream
|
||||||
|
drop
|
||||||
|
] unit-test
|
||||||
|
|
|
@ -194,13 +194,17 @@ ERROR: bad-superclass class ;
|
||||||
[ permute-slots ] [ class>> ] bi
|
[ permute-slots ] [ class>> ] bi
|
||||||
slots>tuple ;
|
slots>tuple ;
|
||||||
|
|
||||||
|
: outdated-tuple? ( tuple assoc -- ? )
|
||||||
|
over tuple? [
|
||||||
|
[ [ layout-of ] dip key? ]
|
||||||
|
[ drop class "forgotten" word-prop not ]
|
||||||
|
2bi and
|
||||||
|
] [ 2drop f ] if ;
|
||||||
|
|
||||||
: update-tuples ( -- )
|
: update-tuples ( -- )
|
||||||
outdated-tuples get
|
outdated-tuples get
|
||||||
dup assoc-empty? [ drop ] [
|
dup assoc-empty? [ drop ] [
|
||||||
[
|
[ outdated-tuple? ] curry instances
|
||||||
over tuple?
|
|
||||||
[ >r layout-of r> key? ] [ 2drop f ] if
|
|
||||||
] curry instances
|
|
||||||
dup [ update-tuple ] map become
|
dup [ update-tuple ] map become
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue