]> gitweb.factorcode.org Git - factor.git/commitdiff
stack-checker.backend: no need to add extra dependencies on wrappers
authorBjörn Lindqvist <bjourne@gmail.com>
Sat, 31 Dec 2016 10:41:29 +0000 (11:41 +0100)
committerBjörn Lindqvist <bjourne@gmail.com>
Sat, 31 Dec 2016 10:41:29 +0000 (11:41 +0100)
This makes it so that if you declare a symbol it won't have an effect
dependency on itself.

basis/stack-checker/backend/backend-tests.factor
basis/stack-checker/backend/backend.factor

index cf02e82258a7011a99d7a388e64e553a564149ec..8aff2d774b75ece2756cd4009b334679794ddfb3 100644 (file)
@@ -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@ = ;
index cbcc4b095b4a7d4f5d31a0fffda828d45bf35056..e3e231e93e4640517ccfb6757bf9e63cb3eb35ce 100644 (file)
@@ -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 ;