Keep reference bindings out of template.fields, in template.refHeads

This commit is contained in:
2026-09-24 13:47:51 +02:00
committed by Lillem4n
parent 84b3252bfc
commit 5aae86638b
13 changed files with 26 additions and 53 deletions
+2 -7
View File
@@ -78,14 +78,9 @@ func contained(n node) []namedNode {
}
}
// named skips a bound {/path} key: it is a render edge, not containment, so using
// it as a path segment would report a node under a path that does not reach it.
func named(m map[string]node) []namedNode {
out := make([]namedNode, 0, len(m))
for _, name := range sortedNames(m) {
if isRef(name) {
continue
}
out = append(out, namedNode{name: name, node: m[name]})
}
return out
@@ -134,8 +129,8 @@ func renderEdges(n node) []renderEdge {
var es []renderEdge
add := func(name, operand string) {
a := splitArm(name, n.refs)
c, ok := n.fields[a.key]
if !ok {
c := n.head(a.key)
if c == nil {
return
}
for _, leaf := range pathLeaves(c, a.tail) {