Name digits among an operand's spellings, and document number by what its text is
Tests / vet + fmt + tests (pull_request) Successful in 1m0s

This commit is contained in:
2026-09-15 14:39:25 +02:00
parent 4283af1968
commit 8ca887aa7d
2 changed files with 8 additions and 2 deletions
+1 -1
View File
@@ -73,7 +73,7 @@ type builtin struct {
// for a builtin that reads none. // for a builtin that reads none.
operands func(args []string) []string operands func(args []string) []string
// number bounds the number a call prints and names the datatype its text is; nil // number bounds the number a call prints and names the datatype its text is; nil
// for a builtin that prints text. // for a builtin whose text is no number.
number func(args []string) (proven, DataType) number func(args []string) (proven, DataType)
} }
+7 -1
View File
@@ -92,7 +92,9 @@ func (p *valueProof) template(t *template) proven {
case t.fixed: case t.fixed:
return literalValue(t.lit) return literalValue(t.lit)
case len(t.ops) != 1: case len(t.ops) != 1:
return unproven(fmt.Sprintf("%q is not one value; write one literal or one {int()}, {float()}, {seq()} or {calc()}, or read one", t.format)) v := unproven(notOneValue(t.format, "{int()}, {float()}, {seq()} or {calc()}"))
v.notNumber = notOneValue(t.format, "{int()}, {float()}, {seq()}, {digits()} or {calc()}")
return v
} }
body := t.format[1 : len(t.format)-1] body := t.format[1 : len(t.format)-1]
name, args, isFunc := funcCall(body) name, args, isFunc := funcCall(body)
@@ -227,6 +229,10 @@ func printing(token string, prints DataType, v proven) proven {
return v return v
} }
func notOneValue(format, calls string) string {
return fmt.Sprintf("%q is not one value; write one literal or one %s, or read one", format, calls)
}
// unproven is a render no datatype and no calc can take, for why. // unproven is a render no datatype and no calc can take, for why.
func unproven(why string) proven { func unproven(why string) proven {
v := proven{notNumber: why} v := proven{notNumber: why}