From 4d580d95bfa2547ee0d9068d6dc368e74bbb5a0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Lindqvist?= Date: Sat, 31 Dec 2016 11:41:29 +0100 Subject: [PATCH] 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. --- .../backend/backend-tests.factor | 20 ++++++++++++++++++- basis/stack-checker/backend/backend.factor | 5 +---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/basis/stack-checker/backend/backend-tests.factor b/basis/stack-checker/backend/backend-tests.factor index cf02e82258..8aff2d774b 100644 --- a/basis/stack-checker/backend/backend-tests.factor +++ b/basis/stack-checker/backend/backend-tests.factor @@ -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@ = ; diff --git a/basis/stack-checker/backend/backend.factor b/basis/stack-checker/backend/backend.factor index cbcc4b095b..e3e231e93e 100644 --- a/basis/stack-checker/backend/backend.factor +++ b/basis/stack-checker/backend/backend.factor @@ -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 ;