mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-28 15:54:18 +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.
28 lines
1.8 KiB
Plaintext
28 lines
1.8 KiB
Plaintext
det_atomic_goal_msgs.m:011: In `det_calls_failure'(in, out):
|
|
det_atomic_goal_msgs.m:011: error: determinism declaration not satisfied.
|
|
det_atomic_goal_msgs.m:011: Declared `det', inferred `failure'.
|
|
det_atomic_goal_msgs.m:011: The reason for the difference is the following.
|
|
det_atomic_goal_msgs.m:018: Call to `det_atomic_goal_msgs.failure_pred'(in)
|
|
det_atomic_goal_msgs.m:018: can fail.
|
|
det_atomic_goal_msgs.m:012: In `det_calls_semidet'(in, out):
|
|
det_atomic_goal_msgs.m:012: error: determinism declaration not satisfied.
|
|
det_atomic_goal_msgs.m:012: Declared `det', inferred `semidet'.
|
|
det_atomic_goal_msgs.m:012: The reason for the difference is the following.
|
|
det_atomic_goal_msgs.m:019: Call to `det_atomic_goal_msgs.semidet_pred'(in)
|
|
det_atomic_goal_msgs.m:019: can fail.
|
|
det_atomic_goal_msgs.m:013: In `det_calls_multi'(out):
|
|
det_atomic_goal_msgs.m:013: error: determinism declaration not satisfied.
|
|
det_atomic_goal_msgs.m:013: Declared `det', inferred `multi'.
|
|
det_atomic_goal_msgs.m:013: The reason for the difference is the following.
|
|
det_atomic_goal_msgs.m:020: Call to `det_atomic_goal_msgs.multi_pred'(out)
|
|
det_atomic_goal_msgs.m:020: can succeed more than once.
|
|
det_atomic_goal_msgs.m:014: In `det_calls_nondet'(in, out):
|
|
det_atomic_goal_msgs.m:014: error: determinism declaration not satisfied.
|
|
det_atomic_goal_msgs.m:014: Declared `det', inferred `nondet'.
|
|
det_atomic_goal_msgs.m:014: The reason for the difference is the following.
|
|
det_atomic_goal_msgs.m:021: Call to `det_atomic_goal_msgs.nondet_pred'(in,
|
|
det_atomic_goal_msgs.m:021: out) can fail and can succeed more than once.
|
|
det_atomic_goal_msgs.m:041: In `failure_pred'(in):
|
|
det_atomic_goal_msgs.m:041: error: determinism declaration not satisfied.
|
|
det_atomic_goal_msgs.m:041: Declared `failure', inferred `det'.
|