38 lines
998 B
Factor
38 lines
998 B
Factor
|
USING: accessors assocs classes.tuple compiler.tree kernel namespaces sequences
|
||
|
stack-checker.backend stack-checker.recursive-state stack-checker.state
|
||
|
stack-checker.values stack-checker.visitor tools.test ;
|
||
|
IN: stack-checker.state.tests
|
||
|
|
||
|
{
|
||
|
V{ 1 2 3 }
|
||
|
} [
|
||
|
0 \ <value> set-global
|
||
|
init-inference init-known-values
|
||
|
V{ 1 2 3 } literals set commit-literals
|
||
|
(meta-d) get
|
||
|
] unit-test
|
||
|
|
||
|
: node-seqs-eq? ( seq1 seq2 -- ? )
|
||
|
[ [ tuple-slots ] map concat ] bi@ = ;
|
||
|
|
||
|
{ t t } [
|
||
|
23 \ <value> set-global [
|
||
|
V{ } clone stack-visitor set
|
||
|
33 (push-literal)
|
||
|
known-values get 24 of value>> 33 =
|
||
|
] with-infer nip
|
||
|
V{
|
||
|
T{ #push { literal 33 } { out-d { 24 } } }
|
||
|
T{ #return { in-d V{ 24 } } }
|
||
|
} node-seqs-eq?
|
||
|
] unit-test
|
||
|
|
||
|
{ t } [
|
||
|
0 \ <value> set-global
|
||
|
V{ } clone stack-visitor set
|
||
|
V{ [ call ] } literals set commit-literals
|
||
|
stack-visitor get
|
||
|
V{ T{ #push { literal [ call ] } { out-d { 1 } } } }
|
||
|
node-seqs-eq?
|
||
|
] unit-test
|