1 USING: assocs compiler.crossref fry io kernel namespaces sequences
2 stack-checker.dependencies tools.test vocabs words ;
3 IN: compiler.crossref.tests
5 ! Dependencies of all words should always be satisfied unless we're
6 ! in the middle of recompiling something
8 all-words dup [ subwords ] map concat append
9 H{ } clone '[ _ dependencies-satisfied? ] reject
12 : setup-crossref ( -- assoc )
27 ! Setup a fake dependency; kolobi -> print
28 +effect+ kolobi compiled-crossref get \ print of set-at
29 kolobi { print } "dependencies" set-word-prop
31 ! Ensure it is being forgotten
32 kolobi compiled-unxref
33 kolobi "dependencies" word-prop
34 compiled-crossref get \ print of kolobi of
39 H{ { 20 +definition+ } }
41 setup-crossref compiled-crossref [
42 10 +definition+ dependencies-of
47 H{ { 20 +definition+ } { 30 +conditional+ } }
49 setup-crossref compiled-crossref [
50 10 +conditional+ dependencies-of
61 { foo1 H{ { bar +definition+ } } }
62 } clone [ remove-xref ] keep
66 : setup-deps ( -- assoc )
78 foo [ setup-deps store-dependencies ] keep "dependencies" word-prop
79 foo delete-compiled-xref