USING: accessors assocs classes.tuple compiler.tree kernel namespaces
-sequences stack-checker.backend stack-checker.recursive-state
+sequences stack-checker.backend stack-checker.dependencies
stack-checker.state stack-checker.values stack-checker.visitor
tools.test ;
IN: stack-checker.backend.tests
stack-visitor get first in-d>>
] unit-test
+! apply-object
+SYMBOL: sam-sum
+
+{ H{ } } [
+ H{ } clone dependencies set
+ H{ } clone known-values set
+ init-inference
+ [ \ sam-sum ] first apply-object
+ dependencies get
+] unit-test
+
+{ V{ "abc" } } [
+ H{ } clone known-values set
+ init-inference
+ "abc" apply-object
+ literals get
+] unit-test
+
! Because node is an identity-tuple
: node-seqs-eq? ( seq1 seq2 -- ? )
[ [ tuple-slots ] map concat ] bi@ = ;
GENERIC: apply-object ( obj -- )
M: wrapper apply-object
- wrapped>>
- [ dup word? [ +effect+ depends-on ] [ drop ] if ]
- [ push-literal ]
- bi ;
+ wrapped>> push-literal ;
M: object apply-object push-literal ;