Address stability nits: doc grammar, scalar-JSON note, bracket-rule rationale
Tests / vet + fmt + tests (pull_request) Successful in 56s

This commit is contained in:
2026-09-03 17:53:05 +02:00
parent d8ece597c8
commit 305d8f8edd
4 changed files with 15 additions and 12 deletions
+2
View File
@@ -383,6 +383,8 @@ tokens add cost in proportion to the output.
a path. A name may not contain a brace or a bracket, so a path can never collide
with either spelling, and the `[` of a JSON array is gated on valid JSON so a
stray copied bracket never swallows an argument. No `--template` flag is needed.
Reserving both brackets — though only a leading `[` could collide — keeps one
simple name rule instead of a leading-position special case.
- **The shipped data is embedded, not discovered.** A directory a machine happens
to have would make `--seed 42` machine-dependent. Data still lives in `data/`
as JSON; `--data-path` layers over it.
+8 -8
View File
@@ -303,14 +303,14 @@ func TestRunShippedDataByDefault(t *testing.T) {
func TestIsTemplate(t *testing.T) {
for arg, want := range map[string]bool{
"sv_SE.person": false,
"person.last": false,
"[abc]": false, // a [ can open a real category name; not JSON
"[abc].field": false,
"name: {x}": true, // a { token: a path can never carry a brace
`{"format":"x"}`: true,
`["a","b"]`: true, // a JSON array carries no brace
`[1, 2]`: true,
"sv_SE.person": false,
"person.last": false,
"[abc]": false, // a [ that is not valid JSON is not a template
"[abc].field": false,
"name: {x}": true, // a { token: a path can never carry a brace
`{"format":"x"}`: true,
`["a","b"]`: true, // a JSON array carries no brace
`[1, 2]`: true,
} {
if got := isTemplate(arg); got != want {
t.Errorf("isTemplate(%q) = %v, want %v", arg, got, want)
+4 -3
View File
@@ -123,9 +123,10 @@ func (t *template) compileFormat() error {
}
// compileInput compiles an inline template: a JSON value, or a bare format string
// when the input is not JSON. A format string is a template with no fields, so a
// string that is itself valid JSON (a JSON string literal) and a bare string
// compile alike.
// when the input is not JSON. A JSON string literal and a bare string compile
// alike (both are a template with no fields); the other JSON scalars — a number,
// bool or null — are no template, so they are rejected here, as a data file that
// was one would be at load.
func compileInput(input string) (node, error) {
var raw any
if err := json.Unmarshal([]byte(input), &raw); err != nil {
+1 -1
View File
@@ -37,7 +37,7 @@ type Template struct {
n node
}
// Fake renders the template with one draws.
// Fake renders the template with one draw.
func (t *Template) Fake() string {
t.g.mu.Lock()
defer t.g.mu.Unlock()