Files
mercury/tests/invalid/synth_attr_error_spec
Zoltan Somogyi 81b4c3272e Stop using digraph.tsort and digraph.atsort ...
... and start using their more descriptively-named synonyms.

In some cases, instead of getting and then reversing a list of sccs,
ask for the sccs in the needed order in the first place.

compiler/dependency_graph.m:
compiler/generate_dep_d_files.m:
compiler/make.program_target.m:
compiler/mlds_to_java_global.m:
compiler/mode_ordering.m:
compiler/rtti_to_mlds.m:
compiler/stratify.m:
    As above.

compiler/prog_event.m:
    As above.

    Address an old and now-inaccurate XXX. When a synthesized attribute
    depends on its value, either directly or through the values of other
    synthesized attributes, include the names of the attributes involved
    in the error message, instead of just saying that there is circular
    dependency *somewhere* among the attributes.

tests/invalid/synth_attr_error.err_exp:
    Expect the updated, more specific error messages.

tests/invalid/Mmakefile:
    Enable the synth_attr_error test case, which wasn't enabled before
    (though it does have an entry in Mercury.options.)

tests/invalid/invalid_event_spec:
tests/invalid/syntax_error_event_spec:
tests/invalid/synth_attr_error_spec:
    Replace tabs with spaces.
2023-06-22 00:25:26 +02:00

46 lines
1.1 KiB
Plaintext

event set queens
event nodiag_fail(
test_failed: string,
arg_b: int,
arg_d: int,
arg_list_len: int synthesized by list_len_func(xsorted_list),
sorted_list: list(int) synthesized by list_sort_func(sorted_list),
arg_list_lenb: int synthesized by arg_list(sorted_list),
list_len_func: function,
list_sort_func: function,
arg_list: list(int)
)
event safe_test(
test_list: listint,
f: function,
excp: int synthesized by f(test_list, excp2),
excp2: int synthesized by f(excp, test_list)
)
/*
** Test the line number counting code in the scanner.
*/
event safe_test(
dup: listint
)
event e(
dupx: listint,
dupx: listint,
f: function,
a: string,
s1: int synthesized by f(a),
s2: string synthesized by f(a)
)
event f(
f: function,
a: string,
b: float,
s1: int synthesized by f(a),
s2: int synthesized by f(b)
)