lang: funcs: core: fmt: Add an additional invariant to printf
This adds an invariant for printf that I might have missed. It may be redundant, or it may help.
This commit is contained in:
@@ -111,6 +111,16 @@ func (obj *PrintfFunc) Unify(expr interfaces.Expr) ([]interfaces.Invariant, erro
|
|||||||
return nil, fmt.Errorf("unable to build function with no args")
|
return nil, fmt.Errorf("unable to build function with no args")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var invariants []interfaces.Invariant
|
||||||
|
var invar interfaces.Invariant
|
||||||
|
|
||||||
|
// first arg must be a string
|
||||||
|
invar = &interfaces.EqualsInvariant{
|
||||||
|
Expr: cfavInvar.Args[0],
|
||||||
|
Type: types.TypeStr,
|
||||||
|
}
|
||||||
|
invariants = append(invariants, invar)
|
||||||
|
|
||||||
value, err := cfavInvar.Args[0].Value() // is it known?
|
value, err := cfavInvar.Args[0].Value() // is it known?
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("format string is not known statically")
|
return nil, fmt.Errorf("format string is not known statically")
|
||||||
@@ -130,8 +140,6 @@ func (obj *PrintfFunc) Unify(expr interfaces.Expr) ([]interfaces.Invariant, erro
|
|||||||
ordered := []string{formatName}
|
ordered := []string{formatName}
|
||||||
mapped[formatName] = dummyFormat
|
mapped[formatName] = dummyFormat
|
||||||
|
|
||||||
var invariants []interfaces.Invariant
|
|
||||||
var invar interfaces.Invariant
|
|
||||||
for i, x := range typList {
|
for i, x := range typList {
|
||||||
argName, err := obj.ArgGen(i + 1) // skip 0th
|
argName, err := obj.ArgGen(i + 1) // skip 0th
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user