Handbook
Glossary
call-recursive-inline-word ( word label -- )
Vocabulary
stack-checker
.
inlining
Inputs
word
an
object
label
an
object
Outputs
None
Definition
USING:
accessors
kernel
namespaces
sequences
stack-checker.backend
stack-checker.errors
stack-checker.row-polymorphism
stack-checker.state
stack-checker.visitor
words
;
IN:
stack-checker.inlining
:
call-recursive-inline-word
( word label -- )
over
recursive?
[
[
required-stack-effect
dup
in>>
length
ensure-d
drop
adjust-stack-effect
]
dip
dup
[
effect-scope>>
effect-scope
get
eq?
]
[
current-recursive
get
eq?
]
bi
and
[
inner-d-index
get
]
[
f
]
if
[
[
check-call
]
[
'[
_
#call-recursive,
]
consume/produce
]
bi
]
dip
[
inner-d-index
set
]
when*
]
[
drop
undeclared-recursion-error
inference-error
]
if
;