Compiler declarations - Factor Documentation (original) (raw)

Compiler declarations are parsing words that set a word property in the most recently defined word. They appear after the final ; of a word definition:

: cubed ( x -- y ) dup dup * * ; foldable

Compiler declarations assert that the word follows a certain contract, enabling certain optimizations that are not valid in general.
inline
foldable
flushable
recursive

It is entirely up to the programmer to ensure that the word satisfies the contract of a declaration. Furthermore, if a generic word is declared foldable or flushable, all methods must satisfy the contract. Unspecified behavior may result if a word does not follow the contract of one of its declarations.

See also
Stack effect declarations