run: dissolve the qualifiers and the missing dispatch #96

Merged
PerishFire merged 1 commit from clear-words into main 2026-07-21 05:34:22 +00:00
Owner
No description provided.
run: dissolve the qualifiers and the missing dispatch
All checks were successful
guard / guard (pull_request) Successful in 30s
98d232d5c5
Two shapes, seventeen debts.

Qualifiers the receiver already said. Work::tie_ends is reached through
a Work with an owner and a bond in hand, so it is ends. The live_ family
was never one unsettled concept, which is what I had assumed from the
shared prefix -- each member just lacked its own word: live_has is alive,
live_pair is paired, live_in is inbound, live_out is outbound, live_from
is feeds. cell_val and read_tie named their return type, which is what a
missing conversion looks like: Val gets From<&Cell>, and read becomes
Row::read and Tie::read, so the type carries what the suffix carried.

Dispatch that leaked into names. hit_map, hit_text, hit_key and hit_flag
are one function of Pred and Cell whose suffix names the other argument's
type -- overloading, spelled out longhand because Rust has none. Pred
takes them: hits dispatches on the Cell, with suits, spans and flags as
its arms, finds looks the field up first, and covers is what hit_at was.
key_text is key.

rank_key needed no home at all. It existed because order special-cased
sorting by id; teaching cell() to answer ddl::KEY with the row key lets
the general comparator handle it, and the special case and the function
both go. Behaviour is identical -- the tiebreak rank_key lacked can never
fire, since keys are unique -- and the two existing paths, "order by id"
in smoke and "order by id desc" in tests/query/run, both stay green.

Also write_shape -> shaped, write_pred -> spell, and a lone `b` in the
scanner becomes byte.

Debt 78 -> 61: word 53 -> 36, and life/ is clean apart from set_tie,
which is load-bearing in bond.md's W1b ruling and stays until that ruling
is revisited.

guard clean, 45 tests green on sqlite and on real postgres.
PerishFire deleted branch clear-words 2026-07-21 05:34:22 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
PerishLab/keel!96
No description provided.