lang: funcs: Don't allow interpolation in printf format string
We'd like to pre-compute the interpolation if we can, so that we can run this code properly... For now, we can't so it's a compile time error... Hopefully we can remove this restriction in the future. The problem is the string must be a constant, or it would be possible to switch it from "%d %s" to "%s %d %d" or anything that changes the type signature.
This commit is contained in:
@@ -85,6 +85,13 @@ func (obj *PrintfFunc) Polymorphisms(partialType *types.Type, partialValues []ty
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: we'd like to pre-compute the interpolation if we can, so that
|
||||
// we can run this code properly... for now, we can't, so it's a compile
|
||||
// time error...
|
||||
if partialValues[0] == nil {
|
||||
return nil, fmt.Errorf("could not determine type from format string")
|
||||
}
|
||||
|
||||
format := partialValues[0].Str() // must not panic
|
||||
typList, err := parseFormatToTypeList(format)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user