Make great documentation goal 1.2, and plan the README's reorganisation and the nested-template gaps #33
@@ -257,6 +257,9 @@ func checkNodeFences(s nodeScope) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if refs {
|
if refs {
|
||||||
|
if err := s(checkOwnFamilies); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err := s(fence.checkDraws); err != nil {
|
if err := s(fence.checkDraws); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-1
@@ -24,7 +24,7 @@ func (f *drawFence) checkDrawGroup(path string, n node) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *drawFence) checkDraws(path string, n node) error {
|
func checkOwnFamilies(path string, n node) error {
|
||||||
t, ok := n.(*template)
|
t, ok := n.(*template)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
@@ -32,6 +32,14 @@ func (f *drawFence) checkDraws(path string, n node) error {
|
|||||||
if err := checkOwnFamily(t); err != nil {
|
if err := checkOwnFamily(t); err != nil {
|
||||||
return fmt.Errorf("%s: %w", path, err)
|
return fmt.Errorf("%s: %w", path, err)
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *drawFence) checkDraws(path string, n node) error {
|
||||||
|
t, ok := n.(*template)
|
||||||
|
if !ok {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
if !f.readsPath(t) {
|
if !f.readsPath(t) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-1
@@ -122,7 +122,12 @@ func (s *readSurvey) edge(from node, e renderEdge, at surveyAt) {
|
|||||||
s.reads = append(s.reads, pathRead{at, a, tr})
|
s.reads = append(s.reads, pathRead{at, a, tr})
|
||||||
}
|
}
|
||||||
if tr != nil {
|
if tr != nil {
|
||||||
tr.pins.each(func(t *table, r int) { at.pins = at.pins.entered(t, r) })
|
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))
|
||||||
|
}
|
||||||
|
at.pins = at.pins.entered(t, r)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s.walk(e.to, at)
|
s.walk(e.to, at)
|
||||||
|
|||||||
Reference in New Issue
Block a user