mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 17:33:38 +00:00
compiler/write_error_spec.m:
When error_specs include blank lines, we used to output lines
of the form "filename:linenumber: ". Stop generating the final space.
compiler/parse_tree_out_misc.m:
Add a new version of an existing function.
tests/invalid/actual_more_expected.err_exp:
tests/invalid/ambiguous_overloading_error.err_exp:
tests/invalid/any_passed_as_ground.err_exp:
tests/invalid/anys_in_negated_contexts.err_exp:
tests/invalid/bad_ambiguity_msg.err_exp:
tests/invalid/bug150.err_exp:
tests/invalid/bug150_partial_color.err_exp:
tests/invalid/bug496.err_exp:
tests/invalid/det_atomic_goal_msgs.err_exp:
tests/invalid/det_errors.err_exp:
tests/invalid/det_errors_and_io.err_exp:
tests/invalid/det_errors_deep.err_exp:
tests/invalid/ho_default_func_1.err_exp:
tests/invalid/ho_default_func_3.err_exp:
tests/invalid/ho_default_func_4.err_exp:
tests/invalid/ho_type_mode_bug.err_exp:
tests/invalid/magicbox.err_exp:
tests/invalid/max_error_line_width.err_exp:
tests/invalid/mode_inf.err_exp:
tests/invalid/modes_erroneous.err_exp:
tests/invalid/no_ho_inst.err_exp:
tests/invalid/not_a_switch.err_exp:
tests/invalid/state_vars_test_1.err_exp:
tests/invalid/try_detism.err_exp:
tests/invalid/user_field_access_decl_override_1.err_exp:
tests/invalid_nodepend/errors_2.err_exp:
tests/warnings/ambiguous_overloading.err_exp:
tests/warnings/inconsistent_pred_order.err_exp:
tests/warnings/subtype_order.err_exp:
tests/warnings/test_tscp.err_exp:
Stop expecting a final space.
1.9 KiB
1.9 KiB
bug496.m:022: Error: the determinism declaration for predicate
bug496.m:022: `options_to_action'/3 is not satisfied.
bug496.m:022: Declared `det', inferred `nondet'.
bug496.m:022: The reasons for the difference are the following.
bug496.m:050:
bug496.m:050: Inside the case [|]/2 of the switch on AllActions:
bug496.m:050: disjunction has more than one disjunct with solutions.
bug496.m:053:
bug496.m:053: This later disjunct may have a solution.
bug496.m:050:
bug496.m:050: In argument 2 of functor `[|]/2':
bug496.m:050: unification with `list.[]' can fail.
bug496.m:053:
bug496.m:053: In argument 2 of functor `[|]/2':
bug496.m:053: unification with `list.[V_11 | V_12]' can fail.
bug496.m:050:
bug496.m:050: It is possible that the cause of the declared determinism not
bug496.m:050: being satisfied is the inability of determinism analysis to
bug496.m:050: recognize that a disjunction (usually created by the compiler
bug496.m:050: for a switch arm) is a switch on a *subterm* of a variable when
bug496.m:050: the instantiation state of that variable is at least partially
bug496.m:050: unique. This is because converting such a disjunction to a
bug496.m:050: switch requires replacing several unifications, one in each arm
bug496.m:050: of the disjunction, that each unify the variable representing
bug496.m:050: the subterm (e.g. the tail of a list) with the same function
bug496.m:050: symbol, with just one unification before the disjunction, but
bug496.m:050: due to limitations of the current modechecker, this
bug496.m:050: transformation could destroy the uniqueness.
bug496.m:050: In cases where this uniqueness is not needed, the programmer
bug496.m:050: can fix the determinism error by performing this transformation
bug496.m:050: manually.
bug496.m:022: `options_to_action'/3 is not satisfied.
bug496.m:022: Declared `det', inferred `nondet'.
bug496.m:022: The reasons for the difference are the following.
bug496.m:050:
bug496.m:050: Inside the case [|]/2 of the switch on AllActions:
bug496.m:050: disjunction has more than one disjunct with solutions.
bug496.m:053:
bug496.m:053: This later disjunct may have a solution.
bug496.m:050:
bug496.m:050: In argument 2 of functor `[|]/2':
bug496.m:050: unification with `list.[]' can fail.
bug496.m:053:
bug496.m:053: In argument 2 of functor `[|]/2':
bug496.m:053: unification with `list.[V_11 | V_12]' can fail.
bug496.m:050:
bug496.m:050: It is possible that the cause of the declared determinism not
bug496.m:050: being satisfied is the inability of determinism analysis to
bug496.m:050: recognize that a disjunction (usually created by the compiler
bug496.m:050: for a switch arm) is a switch on a *subterm* of a variable when
bug496.m:050: the instantiation state of that variable is at least partially
bug496.m:050: unique. This is because converting such a disjunction to a
bug496.m:050: switch requires replacing several unifications, one in each arm
bug496.m:050: of the disjunction, that each unify the variable representing
bug496.m:050: the subterm (e.g. the tail of a list) with the same function
bug496.m:050: symbol, with just one unification before the disjunction, but
bug496.m:050: due to limitations of the current modechecker, this
bug496.m:050: transformation could destroy the uniqueness.
bug496.m:050: In cases where this uniqueness is not needed, the programmer
bug496.m:050: can fix the determinism error by performing this transformation
bug496.m:050: manually.