diff --git a/basis/stack-checker/branches/branches.factor b/basis/stack-checker/branches/branches.factor index 2862b03f20..bb85ec5b1e 100644 --- a/basis/stack-checker/branches/branches.factor +++ b/basis/stack-checker/branches/branches.factor @@ -92,7 +92,7 @@ M: literal infer-branch ] H{ } make-assoc ; M: declared-effect infer-branch - value>> infer-branch ; + known>> infer-branch ; M: callable infer-branch [ @@ -114,7 +114,7 @@ GENERIC: curried/composed? ( known -- ? ) M: object curried/composed? drop f ; M: curried curried/composed? drop t ; M: composed curried/composed? drop t ; -M: declared-effect curried/composed? value>> known curried/composed? ; +M: declared-effect curried/composed? known>> curried/composed? ; : infer-if ( -- ) 2 literals-available? [ diff --git a/basis/stack-checker/inlining/inlining.factor b/basis/stack-checker/inlining/inlining.factor index fd49fa73f0..697e668409 100644 --- a/basis/stack-checker/inlining/inlining.factor +++ b/basis/stack-checker/inlining/inlining.factor @@ -121,7 +121,7 @@ SYMBOL: enter-out GENERIC: (undeclared-known) ( value -- known ) M: object (undeclared-known) ; -M: declared-effect (undeclared-known) value>> known (undeclared-known) ; +M: declared-effect (undeclared-known) known>> (undeclared-known) ; : undeclared-known ( value -- known ) known (undeclared-known) ; diff --git a/basis/stack-checker/known-words/known-words.factor b/basis/stack-checker/known-words/known-words.factor index 203c4c8cb9..c2c110e6a4 100644 --- a/basis/stack-checker/known-words/known-words.factor +++ b/basis/stack-checker/known-words/known-words.factor @@ -115,7 +115,7 @@ M: composed infer-call* ! current-effect P. ] bi ; M: declared-effect infer-call* - [ nip dup value>> (infer-call) ] with-effect-here check-declared-effect ; + [ [ known>> infer-call* ] keep ] with-effect-here check-declared-effect ; M: input-parameter infer-call* \ call unknown-macro-input ; M: object infer-call* \ call bad-macro-input ; diff --git a/basis/stack-checker/row-polymorphism/row-polymorphism.factor b/basis/stack-checker/row-polymorphism/row-polymorphism.factor index 406ef7aaae..2a5696e380 100644 --- a/basis/stack-checker/row-polymorphism/row-polymorphism.factor +++ b/basis/stack-checker/row-polymorphism/row-polymorphism.factor @@ -17,12 +17,10 @@ IN: stack-checker.row-polymorphism meta-d length :> d-length n d-length < [ d-length 1 - n - :> n' - n' meta-d [| value | - value word effect variables :> known' - :> value' - known' value' set-known - value' - ] change-nth + n' meta-d nth :> value + value known :> known + known word effect variables :> known' + known' value set-known ] [ word unknown-macro-input ] if ; :: declare-input-effects ( word -- ) diff --git a/basis/stack-checker/values/values.factor b/basis/stack-checker/values/values.factor index 1590cd886d..668bdd63a8 100644 --- a/basis/stack-checker/values/values.factor +++ b/basis/stack-checker/values/values.factor @@ -100,15 +100,15 @@ M: input-parameter (literal) current-word get unknown-macro-input ; ! Argument corresponding to polymorphic declared input of inline combinator -TUPLE: declared-effect value word effect variables ; +TUPLE: declared-effect known word effect variables ; C: declared-effect -M: declared-effect (input-value?) value>> input-value? ; +M: declared-effect (input-value?) known>> (input-value?) ; -M: declared-effect (literal-value?) value>> literal-value? ; +M: declared-effect (literal-value?) known>> (literal-value?) ; -M: declared-effect (literal) value>> literal ; +M: declared-effect (literal) known>> (literal) ; ! Computed values M: f (input-value?) drop f ; @@ -134,5 +134,5 @@ M: curried known>callable [ quot>> known known>callable ] [ obj>> known known>callable ] bi prefix ; M: declared-effect known>callable - value>> known known>callable ; + known>> known>callable ;