Spell readSurvey.walk's dropped cell as a default arm

This commit is contained in:
2026-09-29 03:15:51 +02:00
committed by Lillem4n
parent 4e4254fa84
commit 38fbc47678
2 changed files with 4 additions and 5 deletions
+4 -3
View File
@@ -96,9 +96,7 @@ func (s *readSurvey) pinsID(p *pinSet) pinsID {
}
// walk follows what rendering n renders. A repeat renders over draws of its own, so the walk stops
// there. A cell whose row the pins keep out has no case: a pinned table renders its pinned row
// alone and an unpinned one draws a row inside its nearest pinned ancestor's, so that cell never
// renders on this route.
// there.
func (s *readSurvey) walk(n node, at surveyAt) {
v := nodeVisit{n, at.group, at.wholeTable, s.pinsID(&at.pins), s.pinsID(&at.wholePins)}
if s.seen[v] {
@@ -132,6 +130,9 @@ func (s *readSurvey) walk(n node, at surveyAt) {
in := at
in.pins = at.pins.entered(cell.table, cell.row)
s.edge(n, e, in)
default:
// A pinned table renders its pinned row alone, and an unpinned one draws a row inside its
// nearest pinned ancestor's, so a cell of a row the pins clash with never renders here.
}
}
}
-2
View File
@@ -26,8 +26,6 @@ least modify.
This round, in order:
- Spell `readSurvey.walk`'s dropped cell as a case of its switch: a clashing row's cell
falls out with no arm, which four seats named.
- Define `descended` where `table.route` takes it: five seats reverse-engineered it from
the `draw` expression and the four walks' loop condition.
- Keep a template's table in one field: `template.table` and `template.cell.table` both