mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-18 19:03:45 +00:00
compiler/error_msg_inst.m:
Fix a bug that caused the suffix that all paths in two predicates
were supposed to add at the logical end of the constructed pieces
(though it could be followed by some punctuation) to *not* be added
to the constructed pieces on some paths. Since with our current approach,
the suffix for one inst in a list of insts can be the description
of *all the insts following it in the list*, this bug could delete
not just punctuation, but entire insts from the output. This did actually
happen for the invalid/html text case below.
Fix a problem that could cause each inst in a list of insts
to be indented one more level than the previous inst, which can be
very confusing.
Delete the comma from "instname, which expands to ...". When this output
occurs in an argument list, the presence of the comma can make it
harder to recognize where one argument ends and the next argument begins.
Factor out some common code.
Add an XXX noting a problem.
Fix documentation.
compiler/parse_tree_out_inst.m:
Provide two functions for use by error_msg_inst.m.
compiler/prog_mode.m:
Fix a comment.
tests/invalid/html.m:
Fix the description of the problem we are testing for.
tests/invalid/html.err_exp:
Expect the fix for the "omitted insts" bug above.
tests/invalid/bug117.err_exp:
tests/invalid/bug191.err_exp:
tests/invalid/bug415.err_exp:
tests/invalid/char_inst.err_exp:
tests/invalid/coerce_int.err_exp:
tests/invalid/constrained_poly_insts2.err_exp:
tests/invalid/ho_default_func_4.err_exp:
tests/invalid/merge_ground_any.err_exp:
tests/invalid/polymorphic_unification.err_exp:
Do not expect the deleted comma.
25 lines
1.4 KiB
Plaintext
25 lines
1.4 KiB
Plaintext
polymorphic_unification.m:023: In clause for `p(in, ((list.list_skel) >>
|
|
polymorphic_unification.m:023: dead))':
|
|
polymorphic_unification.m:023: in polymorphically-typed unification:
|
|
polymorphic_unification.m:023: mode error: variable `X' has instantiatedness
|
|
polymorphic_unification.m:023: named inst list.list_skel
|
|
polymorphic_unification.m:023: which expands to
|
|
polymorphic_unification.m:023: named inst list.list_skel(free)
|
|
polymorphic_unification.m:023: which expands to
|
|
polymorphic_unification.m:023: bound(
|
|
polymorphic_unification.m:023: []
|
|
polymorphic_unification.m:023: ;
|
|
polymorphic_unification.m:023: '[|]'(
|
|
polymorphic_unification.m:023: free,
|
|
polymorphic_unification.m:023: named inst list.list_skel(free)
|
|
polymorphic_unification.m:023: )
|
|
polymorphic_unification.m:023: ),
|
|
polymorphic_unification.m:023: expected instantiatedness was `ground' or
|
|
polymorphic_unification.m:023: `any'.
|
|
polymorphic_unification.m:023: When unifying two variables whose type will
|
|
polymorphic_unification.m:023: not be known until runtime, the variables must
|
|
polymorphic_unification.m:023: both be ground (or have inst `any').
|
|
polymorphic_unification.m:023: Unifications of polymorphically-typed
|
|
polymorphic_unification.m:023: variables with partially instantiated modes
|
|
polymorphic_unification.m:023: are not allowed.
|