mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-24 22:04:13 +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.
32 lines
1.9 KiB
Plaintext
32 lines
1.9 KiB
Plaintext
bug496.m:022: Error: the determinism declaration for predicate
|
||
bug496.m:022: [38;5;87m`options_to_action'/3[39;49m [38;5;203mis not satisfied.[39;49m
|
||
bug496.m:022: Declared [38;5;40m`det',[39;49m inferred [38;5;203m`nondet'.[39;49m
|
||
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 [38;5;203mmay have a solution.[39;49m
|
||
bug496.m:050:
|
||
bug496.m:050: In argument 2 of functor `[|]/2':
|
||
bug496.m:050: unification with [38;5;87m`list.[]'[39;49m [38;5;203mcan fail.[39;49m
|
||
bug496.m:053:
|
||
bug496.m:053: In argument 2 of functor `[|]/2':
|
||
bug496.m:053: unification with [38;5;87m`list.[V_11 | V_12]'[39;49m [38;5;203mcan fail.[39;49m
|
||
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.
|