Stack checker errors
Factor handbook » The language » Stack effect checking

Prev:Branch stack effects
Next:Stack effect checking escape hatches


Stack effect checking failure conditions are reported in one of two ways:
Stack effect tools report them when fed quotations interactively
The Optimizing compiler reports them while compiling words, via the Batch error reporting mechanism

Errors thrown when insufficient information is available to calculate the stack effect of a call to a combinator or macro (see Combinator stack effects):
do-not-compile ( word -- * )

unknown-macro-input ( macro -- * )

bad-macro-input ( macro -- * )


Error thrown when a word's stack effect declaration does not match the composition of the stack effects of its factors:
effect-error ( inferred declared -- * )


Error thrown when branches have incompatible stack effects (see Branch stack effects):
unbalanced-branches-error ( word quots declareds actuals -- * )


Inference errors for inline recursive words (see Recursive combinator stack effects):
undeclared-recursion-error ( word -- * )

diverging-recursion-error ( word -- * )

unbalanced-recursion-error ( word height -- * )

inconsistent-recursive-call-error ( word -- * )


More obscure errors that are unlikely to arise in ordinary code:
recursive-quotation-error ( quot -- * )

too-many->r ( -- * )

too-many-r> ( -- * )

missing-effect ( word -- * )