Files
mercury/tests/invalid/det_atomic_goal_msgs.err_exp
Zoltan Somogyi 209c546a77 Explain the components of determinism error msgs.
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.
2021-08-27 21:57:01 +10:00

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'.