Fence a record once per node, refuse a column reading its own record, and keep a bare reference independent as an operand
Tests / vet + fmt + tests (pull_request) Successful in 1m3s

This commit is contained in:
2026-09-04 09:32:29 +02:00
parent 78572ccbbc
commit 79827a66d6
6 changed files with 100 additions and 33 deletions
+8 -6
View File
@@ -126,12 +126,14 @@ renders nothing by `Fake`, and is compiled only so the tree's fences still run.
The columns are the point, and their facts stay together: two columns that
reference one category — `{/currency.code}` and `{/currency.symbol}` — share one
draw of it, so the record is internally consistent. That one draw is also why two
columns may not read overlapping reference paths`{/cat.a}` beside `{/cat.a.b}`
is refused, naming the fields to write instead, exactly as
[One draw, one spelling](#one-draw-one-spelling) refuses the pair inside a single
format. A field hold, transform or operand ties fields together within one column
as always (see [Correlated fields](#correlated-fields) and
[Decisions](#decisions)).
columns may not read overlapping reference *paths*`{/cat.a}` beside
`{/cat.a.b}` is refused, naming the fields to write instead, as
[One draw, one spelling](#one-draw-one-spelling) refuses that pair inside a single
format. A column may not reference the record it belongs to either: `{/users.first}`
inside `users` would contradict the `first` column beside it, so put a value two
columns share in its own category and reference that. A field hold, transform or
operand ties fields together within one column as always (see
[Correlated fields](#correlated-fields) and [Decisions](#decisions)).
## Library