DoxigAlpha

GenZir

This is a temporary structure; references to it are valid only while constructing a Zir.

Fields of this type

Fields

#
base:Scope
= Scope{ .tag = base_tag }
is_comptime:bool
Whether we're already in a scope known to be comptime.
is_typeof:bool
Whether we're in an expression within a `@TypeOf` operand.
is_inline:bool
This is set to true for a `GenZir` of a `block_inline`, indicating that
c_import:bool
= false
decl_node_index:Ast.Node.Index
The containing decl AST node.
decl_line:u32
The containing decl line index, absolute.
parent:*Scope
Parents can be: `LocalVal`, `LocalPtr`, `GenZir`, `Defer`, `Namespace`.
astgen:*AstGen
All `GenZir` scopes for the same ZIR share this.
instructions:*ArrayListUnmanaged(Zir.Inst.Index)
Keeps track of the list of instructions in this scope.
instructions_top:usize
A sub-block may share its instructions ArrayList with containing GenZir,
label:?Label
= null
break_block:Zir.Inst.OptionalIndex
= .none
continue_block:Zir.Inst.OptionalIndex
= .none
break_result_info:AstGen.ResultInfo
Only valid when setBreakResultInfo is called.
continue_result_info:AstGen.ResultInfo
= undefined
suspend_node:Ast.Node.OptionalIndex
= .none
nosuspend_node:Ast.Node.OptionalIndex
= .none
cur_defer_node:Ast.Node.OptionalIndex
Set if this GenZir is a defer.
any_defer_node:Ast.Node.OptionalIndex
= .none