ID |
|
|---|---|
Status |
Backlog |
Bucket |
testing |
Priority |
8 |
Theme |
service |
Created |
2026-08-14 |
Updated |
2026-08-14 |
Residue pins from the R648 gate: assert the service-leaf key pins fire, and name the wrong-table typed-record parent in the no-producer diagnostic
Two small residues from the R648 In Review → Done gate, filed rather than held against the approval. First, the R648 spec’s unit-test bullet asked that one case assert the non-null pins on ChildField.ServiceTableField / ChildField.ServiceRecordField (the sourceKey and keySource compact-constructor requireNonNull`s) actually fire, not merely that construction sites satisfy them; the delivery updated every direct-construction site but shipped no fires-assertion, so removing a `requireNonNull would today surface only as a downstream NPE in ChildField.sourceShape(). Second, a diagnostic wording nit: in FieldBuilder.resolveServiceKeySource, a JooqTableRecordType parent holding a record of a different table than the Sources element type names falls to the JooqRecordCarrier switch arm and is rejected with "carries no backing class that can produce one", which is untrue for a typed record parent (it carries a backing class; it is a record of the wrong table). The advice half of the message is still correct; the description half should name the actual shape.