mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 17:33:38 +00:00
library/string.format.m:
We used to parse format strings, and pair up format specifiers with
the list of input poly_types, using semidet code, throwing
exceptions with generic messages if the semidet code failed.
This diff switches to using det code that returns a list of
situation-specific error messages. Since errors after the first
may be caused by the first error, we now throw exceptions whose
message is a detailed description of the first error, but that
decision is easily changeable.
Simplify some existing code.
tests/general/string_format_test_{2,3}.{exp,exp2,exp3,...}:
tests/invalid/string_format_bad.err_exp:
tests/invalid/string_format_unknown.err_exp:
Update the expected error messages.
10 lines
504 B
Plaintext
10 lines
504 B
Plaintext
Uncaught Mercury exception:
|
|
Software Error: string.format: There is no first conversion specifier, but there is an input.
|
|
Stack dump follows:
|
|
0 pred exception.throw/1-0 (erroneous) (exception.m:NNNN)
|
|
1 pred require.error/1-0 (erroneous) (require.m:NNNN)
|
|
2 pred string.format/3-0 (det) (string.m:NNNN)
|
|
3 pred io.format/5-0 (det) (io.m:NNNN)
|
|
4 pred io.format/4-0 (det) (io.m:NNNN)
|
|
5 pred string_format_test_2.main/2-0 (det) (string_format_test_2.m:13)
|