mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-24 13:53:54 +00:00
compiler/det_report.m:
When we report that a predicate does not satisfy the requirements
of its determinism declaration, we follow that statement with a list
of statements about pieces of code that all contribute to that mismatch.
However, a thread on m-users last month showed that some users did not
make that connection. So add an explicit statement to that effect.
tests/invalid/bug150.err_exp:
tests/invalid/bug496.err_exp:
tests/invalid/det_atomic_goal_msgs.err_exp:
tests/invalid/det_errors.err_exp:
tests/invalid/magicbox.err_exp:
tests/invalid/not_a_switch.err_exp:
tests/invalid/try_detism.err_exp:
tests/invalid/user_field_access_decl_override.err_exp:
Expect updated error messages.
31 lines
2.0 KiB
Plaintext
31 lines
2.0 KiB
Plaintext
user_field_access_decl_override.m:020: In `f1'(in) = out:
|
|
user_field_access_decl_override.m:020: warning: determinism declaration could
|
|
user_field_access_decl_override.m:020: be tighter.
|
|
user_field_access_decl_override.m:020: Declared `semidet', inferred `det'.
|
|
user_field_access_decl_override.m:021: In `f1 :='(in, in) = out:
|
|
user_field_access_decl_override.m:021: warning: determinism declaration could
|
|
user_field_access_decl_override.m:021: be tighter.
|
|
user_field_access_decl_override.m:021: Declared `semidet', inferred `det'.
|
|
user_field_access_decl_override.m:023: In `get_foo_f1'(in) = out:
|
|
user_field_access_decl_override.m:023: error: determinism declaration not
|
|
user_field_access_decl_override.m:023: satisfied.
|
|
user_field_access_decl_override.m:023: Declared `det', inferred `semidet'.
|
|
user_field_access_decl_override.m:023: The reasons for the difference are the
|
|
user_field_access_decl_override.m:023: following.
|
|
user_field_access_decl_override.m:028: Call to
|
|
user_field_access_decl_override.m:028: `user_field_access_decl_override.f1'(in)
|
|
user_field_access_decl_override.m:028: = out can fail.
|
|
user_field_access_decl_override.m:028: In unification of `X' and `f1(Foo)':
|
|
user_field_access_decl_override.m:030: In `set_foo_f1'(in, in, out):
|
|
user_field_access_decl_override.m:030: error: determinism declaration not
|
|
user_field_access_decl_override.m:030: satisfied.
|
|
user_field_access_decl_override.m:030: Declared `det', inferred `semidet'.
|
|
user_field_access_decl_override.m:030: The reasons for the difference are the
|
|
user_field_access_decl_override.m:030: following.
|
|
user_field_access_decl_override.m:035: Call to
|
|
user_field_access_decl_override.m:035: `user_field_access_decl_override.f1
|
|
user_field_access_decl_override.m:035: :='(in, in) = out can fail.
|
|
user_field_access_decl_override.m:035: In unification of `STATE_VARIABLE_Foo'
|
|
user_field_access_decl_override.m:035: and `'f1 :='(STATE_VARIABLE_Foo_0,
|
|
user_field_access_decl_override.m:035: X)':
|