Compiler-Only Types
Besides ordinary script types, LIR can carry backend-owned compiler::<Name> types:
compiler::GdccForRangeIter:forrange iteration state.compiler::GdccForPacked*ArrayIter: iteration state per packed element family, for examplecompiler::GdccForPackedInt32ArrayIter.compiler::GdccCoroState: a hidden coroutine state object reference, see Coroutine Instructions in the LIR reference.
These types are LIR-only textual types; they do not reuse source-level type parsing and are only allowed inside a function’s <variables>. They must not appear on function parameters, return types, class properties, signal parameters, or lambda captures, and they do not participate in ordinary ABI-facing type widening.
Ownership of compiler::GdccCoroState
Section titled “Ownership of compiler::GdccCoroState”compiler::GdccCoroState is a single-consumer owned reference: the only legal consumers are await (consumes the reference and leaves the source slot in a moved-from NULL state) and destruct (releases the reference, i.e. the fire-and-forget detach for a statement-position coroutine call). It must not be copied or moved via assign, packed/unpacked to/from Variant, passed as a call argument, returned, stored into properties or containers, or marked ref.