Files
BFM-decomp/rules/R123.md
T

846 B

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.