typed: forgetting a final class would throw an error while recompiling typed words depending on it

db4
Slava Pestov 2010-03-12 10:22:35 +13:00
parent 274a6ec5ce
commit 16ddd015d3
2 changed files with 11 additions and 2 deletions

View File

@ -141,7 +141,7 @@ TUPLE: depends-on-final class ;
[ \ depends-on-final add-conditional-dependency ] bi ;
M: depends-on-final satisfied?
class>> final-class? ;
class>> { [ class? ] [ final-class? ] } 1&& ;
: init-dependencies ( -- )
H{ } clone dependencies set

View File

@ -1,6 +1,6 @@
USING: accessors effects eval kernel layouts math namespaces
quotations tools.test typed words words.symbol
compiler.tree.debugger prettyprint ;
compiler.tree.debugger prettyprint definitions compiler.units ;
IN: typed.tests
TYPED: f+ ( a: float b: float -- c: float )
@ -149,3 +149,12 @@ SYMBOL: a-symbol
a-symbol get
] with-variable
] 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