[m-rev.] for review: improve error management in convert_parse_tree.m

Julien Fischer jfischer at opturion.com
Thu Feb 3 21:27:31 AEDT 2022


On Thu, 3 Feb 2022, Zoltan Somogyi wrote:

> Improve error management in convert_parse_tree.m.
> 
> compiler/hlds_module.m:
> compiler/prog_item.m:
>     Record the identity of predicates and functions that have misplaced
>     attempts at definition in the interface section using the
>     pred_pf_name_arity type instead of the pf_sym_name_arity type.
>     They both specify an arity, but only in pred_pf_name_arity is it clear
>     *which kind* of arity this is.
> 
> compiler/convert_parse_tree.m:
>     Record external declarations and foreign_procs in the interface
>     as misplaced attempts at predicate or function definition using
>     pred_pf_name_arity, so that the code obviously has no arity bugs,
>     whereas the old code merely had no obvious bugs. (It did actually work.)
>
>     Record fact_table pragmas in the interface as similar misplaced attempts
>     as predicate or function definition, *if* the pragma contains
>     a pred_or_func indication.
>
>     Factor out some common code.
> 
> compiler/hlds_pred.m:
>     Add predicates to return a pred_info's arity as pred_form_arity
>     and as user_arity.
> 
> compiler/make_hlds_separate_items.m:
> compiler/typecheck_errors.m:
>     Conform to the changes above.
> 
> tests/invalid_nodepend/external_in_interface.{m,err_exp}:
> tests/invalid_nodepend/foreign_proc_in_interface.{m,err_exp}:
> tests/invalid_nodepend/fact_table_in_interface.{m,err_exp}:
>     Three new test cases to test the 
> 
> tests/invalid_nodepend/Mmakefile:
>     Enable the new tests.
> 
> tests/invalid/external2.m:
>     Fix typo in comment.

That's fine.

Julien.


More information about the reviews mailing list