typed: forgetting a final class would throw an error while recompiling typed words depending on it
parent
274a6ec5ce
commit
16ddd015d3
|
@ -141,7 +141,7 @@ TUPLE: depends-on-final class ;
|
||||||
[ \ depends-on-final add-conditional-dependency ] bi ;
|
[ \ depends-on-final add-conditional-dependency ] bi ;
|
||||||
|
|
||||||
M: depends-on-final satisfied?
|
M: depends-on-final satisfied?
|
||||||
class>> final-class? ;
|
class>> { [ class? ] [ final-class? ] } 1&& ;
|
||||||
|
|
||||||
: init-dependencies ( -- )
|
: init-dependencies ( -- )
|
||||||
H{ } clone dependencies set
|
H{ } clone dependencies set
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: accessors effects eval kernel layouts math namespaces
|
USING: accessors effects eval kernel layouts math namespaces
|
||||||
quotations tools.test typed words words.symbol
|
quotations tools.test typed words words.symbol
|
||||||
compiler.tree.debugger prettyprint ;
|
compiler.tree.debugger prettyprint definitions compiler.units ;
|
||||||
IN: typed.tests
|
IN: typed.tests
|
||||||
|
|
||||||
TYPED: f+ ( a: float b: float -- c: float )
|
TYPED: f+ ( a: float b: float -- c: float )
|
||||||
|
@ -149,3 +149,12 @@ SYMBOL: a-symbol
|
||||||
a-symbol get
|
a-symbol get
|
||||||
] with-variable
|
] with-variable
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
! Forgetting an unboxed final class should work
|
||||||
|
TUPLE: forget-class { x read-only } ; final
|
||||||
|
|
||||||
|
TYPED: forget-fail ( a: forget-class -- ) drop ;
|
||||||
|
|
||||||
|
[ ] [ [ \ forget-class forget ] with-compilation-unit ] unit-test
|
||||||
|
|
||||||
|
[ ] [ [ \ forget-fail forget ] with-compilation-unit ] unit-test
|
||||||
|
|
Loading…
Reference in New Issue