Make great documentation goal 1.2, and plan the README's reorganisation and the nested-template gaps #33

Open
lilleman wants to merge 966 commits from worktree-todo-relative-dates-exact-counts into main
2 changed files with 15 additions and 12 deletions
Showing only changes of commit b3cc37be26 - Show all commits
+15 -8
View File
@@ -11,6 +11,7 @@ type readSurvey struct {
reads []pathRead
read map[readKey]bool
seen map[nodeVisit]bool
clash error
}
// surveyAt is where a survey stands: the draw group its reads draw in, how the render's root reached it, the
@@ -122,12 +123,14 @@ func (s *readSurvey) edge(from node, e renderEdge, at surveyAt) {
s.reads = append(s.reads, pathRead{at, a, tr})
}
if tr != nil {
tr.pins.each(func(t *table, r int) {
if c := at.pins.clash(t, r); c != nil {
panic(internalError("%s reads %s past a pinned row of %s, which checkOwnFamily refuses", e.reached(), t.selectorSpelling(r), c.path))
pins := at.pins.clone()
if err := tr.replay(&pins); err != nil {
if s.clash == nil {
s.clash = conflict(pathRead{at, a, tr}, err)
}
at.pins = at.pins.entered(t, r)
})
return
}
at.pins = pins
}
}
s.walk(e.to, at)
@@ -209,10 +212,14 @@ func (r *tableRead) replay(d *pinSet) error {
return err
}
// check refuses what one draw per reference path cannot answer for: a read of a level beside a path
// another read takes into it, and two reads of one table family that select different rows. Reads
// are compared in path order, so which pair is reported does not vary.
// check refuses what one draw per reference path cannot answer for: a read selecting a row its route
// pinned another of, a read of a level beside a path another read takes into it, and two reads of one
// table family that select different rows. Reads are compared in path order, so which pair is
// reported does not vary.
func (s *readSurvey) check() error {
if s.clash != nil {
return s.clash
}
sort.SliceStable(s.reads, func(i, j int) bool {
if s.reads[i].at.group != s.reads[j].at.group {
return s.reads[i].at.group < s.reads[j].at.group
-4
View File
@@ -34,10 +34,6 @@ ranking `readSurvey.walk` and `edge` hardest and the unit they would least modif
This round, in order:
- Make `readSurvey.edge` sound whatever order `checkNodeFences` runs its fences in:
report the pin clash as a load error, or have `checkDraws` run `checkOwnFamily` over
the scope before its survey, and delete the panic naming `checkOwnFamily`. All nine
seats found the survey sound only by a call order stated in that panic's text.
- Test that `render` and `renderEdges` agree on every node kind, and each of the
switches `node`'s comment lists, so a kind one of them misses fails a test: five
seats, both architects among them, found the mirror held by comments alone.