1 USING: accessors classes.tuple compiler.tree stack-checker.backend tools.test
2 kernel namespaces stack-checker.state stack-checker.values
3 stack-checker.visitor sequences assocs ;
4 IN: stack-checker.backend.tests
7 V{ } clone (meta-d) set
8 V{ } clone (meta-r) set
9 V{ } clone literals set
10 H{ } clone known-values set
15 { 0 } [ 0 ensure-d length ] unit-test
17 { 2 } [ 2 ensure-d length ] unit-test
19 { t } [ meta-d [ known-values get at input-parameter? ] all? ] unit-test
21 { 2 } [ meta-d length ] unit-test
23 { 3 } [ 3 ensure-d length ] unit-test
24 { 3 } [ meta-d length ] unit-test
26 { 1 } [ 1 ensure-d length ] unit-test
27 { 3 } [ meta-d length ] unit-test
29 { } [ 1 consume-d drop ] unit-test
33 H{ { 8 input-parameter } { 9 input-parameter } { 3 input-parameter } }
36 V{ } clone stack-visitor set
37 V{ 3 9 8 } introduce-values
38 stack-visitor get first out-d>>
43 0 \ <value> set-global init-inference 5 ensure-d
47 V{ } clone stack-visitor set
48 V{ 9 7 3 } (meta-d) set
50 stack-visitor get first in-d>>
53 ! Because node is an identity-tuple
54 : node-seqs-eq? ( seq1 seq2 -- ? )
55 [ [ tuple-slots ] map concat ] bi@ = ;
59 0 \ <value> set-global [
60 V{ } clone stack-visitor set pop-d
62 V{ T{ #introduce { out-d { 1 } } } T{ #return { in-d V{ } } } }
70 0 \ <value> set-global [
71 V{ } clone stack-visitor set
72 [ foo ] <literal> infer-literal-quot
75 T{ #introduce { out-d { 1 } } }
76 T{ #call { word foo } { in-d V{ 1 } } { out-d { } } }
77 T{ #return { in-d V{ } } }