Add format string validation in expressions package
Format string validation now happens at parse time in the Parser: - Invalid format string syntax throws ErrorInvalidFormatString - Argument count mismatch throws ErrorFormatArgCountMismatch This catches errors early and automatically for all consumers.
This commit is contained in:
Vendored
+34
-34
@@ -87,120 +87,120 @@
|
||||
{
|
||||
"expr": "format('{0')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: {0"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('{0', '')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: {0"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('{0}}', '')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: {0}}"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('{0}}}}', '')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: {0}}}}"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('0}')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: 0}"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('0}', '')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: 0}"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('{{0}')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: {{0}"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('{{0}', '')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: {{0}"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('{{{{0}')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: {{{{0}"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('{{{{0}', '')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: {{{{0}"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('}0{')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: }0{"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('}0{', '')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: }0{"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('}{0}')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: }{0}"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('}{0}', '')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: }{0}"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('{0}{', '')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string is invalid: {0}{"
|
||||
"kind": "parsing",
|
||||
"value": "Invalid format string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('{0}')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string references more arguments than were supplied: {0}"
|
||||
"kind": "parsing",
|
||||
"value": "Format string references {0} but only 0 argument(s) provided"
|
||||
}
|
||||
},
|
||||
{
|
||||
"expr": "format('{0}{1}', 'abc')",
|
||||
"err": {
|
||||
"kind": "evaluation",
|
||||
"value": "The following format string references more arguments than were supplied: {0}{1}"
|
||||
"kind": "parsing",
|
||||
"value": "Format string references {1} but only 1 argument(s) provided"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user