]> gitweb.factorcode.org Git - factor.git/blobdiff - core/vocabs/vocabs.factor
vocabs: when forgetting vocab foo, also forget foo.private.
[factor.git] / core / vocabs / vocabs.factor
index 419219b0c63954246e9666d3518d16d6d867994a..87ca67325a83708b649b37efb5e5fe65cc6fe4ab 100644 (file)
@@ -130,11 +130,22 @@ M: vocab-spec >vocab-link ;
 
 M: object >vocab-link dup lookup-vocab [ ] [ <vocab-link> ] ?if ;
 
-: forget-vocab ( vocab -- )
+<PRIVATE
+
+: (forget-vocab) ( vocab -- )
     [ vocab-words forget-all ]
     [ vocab-name dictionary get delete-at ]
     [ notify-vocab-observers ] tri ;
 
+PRIVATE>
+
+: forget-vocab ( vocab -- )
+    [ (forget-vocab) ] [
+        vocab-name dup ".private" tail? [ drop ] [
+            ".private" append (forget-vocab)
+        ] if
+    ] bi ;
+
 M: vocab-spec forget* forget-vocab ;
 
 SYMBOL: require-hook