initializers.l0
Module: backend.initializers
Source: compiler/stage2_l0/src/backend/initializers.l0 Language: Dea/L0
Imports / Includes
backend.statetypessymbolssignaturesc_emitter.valuesbackend.loweringc_emitter.namesc_emitter.statec_emitter.typesaststd.vector
Symbols
- be_emit_bare_variant_static_initializer
- be_is_static_let_initializer
- be_static_variant_symbol
- be_emit_static_ord_initializer
- be_emit_let_initializer
- be_emit_const_constructor
Function be_emit_bare_variant_static_initializer
1
func be_emit_bare_variant_static_initializer(self: Backend*, expr_id: ExprId, expected_type: Type*) -> string
Emit a bare zero-field enum variant as a static initializer.
Parameters:
self: Backend state to inspect.expr_id: Var-ref expression id.expected_type: Resolved binding type.
Returns: Static enum initializer, or an ICE string when invariants are broken.
Function be_is_static_let_initializer
1
func be_is_static_let_initializer(self: Backend*, expr_id: ExprId) -> bool
Check whether an expression belongs to the supported static-initializer subset.
Parameters:
self: Backend state to inspect.expr_id: Expression id to inspect.
Returns: true when the expression can be emitted at C file scope.
Function be_static_variant_symbol
1
func be_static_variant_symbol(self: Backend*, expr_id: ExprId) -> Symbol*?
Resolve the enum-variant symbol named by one static constructor expression.
Parameters:
self: Backend state to inspect.expr_id: Bare or called variant constructor expression.
Returns: Resolved variant symbol, or null when the expression is not a variant constructor.
Function be_emit_static_ord_initializer
1
func be_emit_static_ord_initializer(self: Backend*, expr_id: ExprId) -> string
Emit a file-scope ord initializer as a direct C enum-tag constant.
Parameters:
self: Backend state to inspect.expr_id: Staticordcall expression.
Returns: C99 constant expression for the resolved variant tag.
Function be_emit_let_initializer
1
func be_emit_let_initializer(self: Backend*, expr_id: ExprId, expected_type: Type*) -> string
Emit a constant initializer for a top-level let .
Parameters:
self: Backend state to inspect.expr_id: Expression id to lower.expected_type: Resolvedlettype.
Returns: Constant initializer expression.
Function be_emit_const_constructor
1
func be_emit_const_constructor(self: Backend*, expr_id: ExprId, expected_type: Type*) -> string
Emit a constant constructor initializer for a top-level let .
Parameters:
self: Backend state to inspect.expr_id: Call expression id.expected_type: Expected constructed type.
Returns: Constant initializer expression.