stack-checker.backend: no need to add extra dependencies on wrappers
This makes it so that if you declare a symbol it won't have an effect dependency on itself.char-rename
parent
8f28fb2587
commit
4d580d95bf
|
@ -1,5 +1,5 @@
|
|||
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
|
||||
|
@ -51,6 +51,24 @@ 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@ = ;
|
||||
|
|
|
@ -81,10 +81,7 @@ IN: stack-checker.backend
|
|||
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 ;
|
||||
|
||||
|
|
Loading…
Reference in New Issue