Answer stability round 2: only a name bound to a reference hints reading the row without it

This commit is contained in:
2026-10-09 11:18:51 +02:00
committed by Lillem4n
parent 76277ed61a
commit 2bd04b528a
+4 -1
View File
@@ -100,7 +100,10 @@ func (t *template) compileArm(name string, targets map[*nameBinding]nameTarget)
}
b := t.nameScope.lookup(a.head)
if grammar.HasSelector(a.tail) {
return a, fmt.Errorf("a path through name %q may not select a row; read it directly, {%s}, or bind the row to a name of its own", a.head, grammar.JoinSegments(append([]string{b.ref}, a.tail...)))
if !grammar.IsRef(b.ref) {
return a, fmt.Errorf("a path through name %q may not select a row; bind the row to a name of its own", a.head)
}
return a, fmt.Errorf("a path through name %q may not select a row; read the row without the name, {%s}, or bind it to a name of its own", a.head, grammar.JoinSegments(append([]string{b.ref}, a.tail...)))
}
target := targets[b]
full := append(target.tail[:len(target.tail):len(target.tail)], a.tail...)