Files
BFM-decomp/rules/R123.md
T

8 lines
846 B
Markdown

# R123 — Kept casts and lying declarations stay only with a ledger row
id: R123 · group: - · status: active · tags: casts,lying,ledger,macros · origin: PhaseEnd_Phase3.39 binding · added: 2026-10-02
A kept cast is spelled only by a registered macro of include/common.h (CAST_WIDTH, CAST_SIGN, CAST_ALIAS, CAST_MISALIGNED, CAST_NONSTRUCT) and is honest only with its KEPT row in the restruct ledger. A lying declaration stays only with a config/lying_exceptions.tsv row whose cause is byte evidence from a real judgement (compile error or DIFFERS object), never untried. `type_census --check-casts` is the gate; `--check` stays the broader reading.
Why: P3.39 took lying decls 229 -> 11 and unbacked macros to 0; an unledgered exception is indistinguishable from unfinished work.
Evidence: phase-ends/phase-3.39 tasks/T2.md:20, T6.md:15.