GenZir
This is a temporary structure; references to it are valid only
while constructing a Zir.
Fields of this type
Fields
- 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