Files
mercury/tests/invalid/polymorphic_unification.err_exp
Zoltan Somogyi 52c0c52cfd Fix formatting when reporting problem insts.
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.
2022-02-05 19:40:51 +11:00

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.