pub fn lower_store_field_shape_ir(
f: &StoreField,
program: &CheckedProgram,
) -> StoreFieldIrExpand description
A store field’s storage shape — its Cell/Map/Set/Cache/Log
kind and @indexed keys (via store_field_kind_and_indexed), with
init always None. This is the entry point emit_agent’s own state
section actually needs; a Cell field’s zero/initial-value expression is
rendered by the emitter from the AST, never lowered here. (An
init-lowering sibling existed until Slice D1 of #1542; it lowered the
initialiser through the deleted expression lowerer and had no caller.)
The field’s own type reference falls back to Ty::Unit on a resolve
miss rather than panicking — no checker pass validates a store field’s
type reference, only its shape and annotation legality, so store x: Cell[Bogus] certifies today and this reader must not turn that into an
ICE (store_field_falls_back_to_unit_on_an_unresolvable_type_like_the_checker_does
pins it).