Files
BFM-decomp/rules/R122.md
T

13 lines
994 B
Markdown

# R122 — Tier-2 struct twins are folded on evidence or listed with a cause
id: R122 · group: - · status: active · tags: structs,census,twins · origin: PhaseEnd_Phase3.38 binding (T5.1) · added: 2026-09-30
A duplicate struct layout whose names are all placeholders (census tier 2) is never left apart silently: it is
either folded onto one canonical type on SHARED use-site evidence (`tools/struct_twins.py`), or listed in
`docs/struct-twins.md` with its per-class cause (SEPARATE, UNBOUND). The list is generated: rerun
`tools/struct_twins.py --write` as its own call after every fold, so `type_census --check-structs` never reads a
stale twin (`twins_stale` gates).
Why: G62/S106 keep layout twins without evidence apart ("per type, not per layout"), but an unlisted twin is
indistinguishable from forgotten work; P38 T5 stopped at 198 classes because the gate had no list to read.
Evidence: phase-ends/phase-3.38 tasks/T5.md, T5.1.md; docs/struct-twins.md (53 classes at P38 close).