[m-rev.] for review: --warn-too-private-instances

Julien Fischer jfischer at opturion.com
Fri Jul 18 16:31:27 AEST 2025


On Fri, 18 Jul 2025 at 15:52, Zoltan Somogyi <zoltan.somogyi at runbox.com> wrote:

> Add --warn-too-private-instances.
>
> This implements an idea from 2022 mar 8 on m-rev.
>
> compiler/options.m:
>     Add this option.
>
> compiler/check_typeclass.m:
>     Generate a warning that is conditional on this option if an instance
>     is local to the module even if both
>
>     - the class the instance is for, and
>     - all the type_ctors that occur in the instance's arg type vector
>
>     are visible outside the module.
>
>     Add an XXX about the status we record for instances.
>
> tests/invalid/Mercury.options:
> tests/warnings/Mercury.options:
>     Explicitly enable the new warning for some of the affected tests, and
>     explicitly disable it for others.
>
> tests/invalid/impure_method_impl.err_exp:
> tests/invalid/inconsistent_instances.err_exp:
> tests/invalid/method_impl.err_exp:
> tests/invalid/mpj_3.err_exp:
> tests/invalid/mpj_4.err_exp:
> tests/invalid/range_restrict.err_exp:
> tests/warnings/help_text.err_exp:
> tests/warnings/unused_interface_import.err_exp:
>     For the tests for which the new warning is enabled, expect that warning.

That looks fine.

Julien.


More information about the reviews mailing list