]> gitweb.factorcode.org Git - factor.git/commitdiff
Forgetting a word doesn't call reset-word anymore, fixing an issue where a word calli...
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 13 Mar 2009 05:40:18 +0000 (00:40 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 13 Mar 2009 05:40:18 +0000 (00:40 -0500)
basis/stack-checker/stack-checker-tests.factor
core/classes/classes.factor
core/words/words-tests.factor
core/words/words.factor

index c881ccee11438e9ed7987f72b770b3a185d7d20d..3d8c2cdd8c24ea87f9deddd3429334f4a31f3f60 100644 (file)
@@ -7,7 +7,7 @@ sorting assocs definitions prettyprint io inspector
 classes.tuple classes.union classes.predicate debugger
 threads.private io.streams.string io.timeouts io.thread
 sequences.private destructors combinators eval locals.backend
-system ;
+system compiler.units ;
 IN: stack-checker.tests
 
 \ infer. must-infer
@@ -580,4 +580,11 @@ DEFER: eee'
 
 [ [ ] debugging-curry-folding ] must-infer
 
-[ [ exit ] [ 1 2 3 ] if ] must-infer
\ No newline at end of file
+[ [ exit ] [ 1 2 3 ] if ] must-infer
+
+! Stack effects are required now but FORGET: clears them...
+: forget-test ( -- ) ;
+
+[ forget-test ] must-infer
+[ ] [ [ \ forget-test forget ] with-compilation-unit ] unit-test
+[ forget-test ] must-infer
\ No newline at end of file
index 8145730f401f91c9a28ca0ba02c8aa23e5c3fd4f..888eac76450ba0c266552730733e7dc66d8e7dc4 100644 (file)
@@ -42,8 +42,11 @@ PREDICATE: class < word "class" word-prop ;
 
 PREDICATE: predicate < word "predicating" word-prop >boolean ;
 
+M: predicate forget*
+    [ call-next-method ] [ f "predicating" set-word-prop ] bi ;
+
 M: predicate reset-word
-    [ call-next-method ] [ { "predicating" } reset-props ] bi ;
+    [ call-next-method ] [ f "predicating" set-word-prop ] bi ;
 
 : define-predicate ( class quot -- )
     [ "predicate" word-prop first ] dip
index a22b6a5b976d7328ab89de7d51f7edd83a3ba6dd..52a20ba48a476f40df0ff17c280e56b7124f5c84 100755 (executable)
@@ -55,18 +55,18 @@ GENERIC: testing
 
 [ f ] [ \ testing generic? ] unit-test
 
-: forgotten ;
-: another-forgotten ;
+: forgotten ( -- ) ;
+: another-forgotten ( -- ) ;
 
 FORGET: forgotten
 
 FORGET: another-forgotten
-: another-forgotten ;
+: another-forgotten ( -- ) ;
 
 ! I forgot remove-crossref calls!
-: fee ;
-: foe fee ;
-: fie foe ;
+: fee ( -- ) ;
+: foe ( -- ) fee ;
+: fie ( -- ) foe ;
 
 [ t ] [ \ fee usage [ word? ] filter empty? ] unit-test
 [ t ] [ \ foe usage empty? ] unit-test
@@ -97,7 +97,7 @@ DEFER: calls-a-gensym
 ! more xref buggery
 [ f ] [
     GENERIC: xyzzle ( x -- x )
-    : a ; \ a
+    : a ( -- ) ; \ a
     M: integer xyzzle a ;
     FORGET: a
     M: object xyzzle ;
index c27ea4fd8fbd02eedb92d6a6ce220b5f445831f3..cd11fb2db19b35e653d51dbcae5677b52a7d4ba0 100755 (executable)
@@ -248,7 +248,7 @@ M: word forget*
     dup "forgotten" word-prop [ drop ] [
         [ delete-xref ]
         [ [ name>> ] [ vocabulary>> vocab-words ] bi delete-at ]
-        [ [ reset-word ] [ t "forgotten" set-word-prop ] bi ]
+        [ t "forgotten" set-word-prop ]
         tri
     ] if ;