mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-11 03:45:33 +00:00
compiler/module_imports.m:
The module_timestamp type has long had a field of the need_qualifier type.
For a year or more now, this field has had a big comment on it explaining
why its use here does not match the semantics of the need_qualifier type.
This diff gives this field a new, bespoke type, that is isomorphic
to need_qualifier, but is completely deparate. Document the reason why
I *can't* document the semantics of this new type :-(
compiler/grab_modules.m:
Do the same kind of replacement on values that are used only to set
this field of module_timestamps.
compiler/recompilation.check.m:
compiler/recompilation.usage.m:
Use the values of the new type to make the same decisions we used to make
using values of the need_qualifier type.
tests/recompilation/*.m*:
Bring the programming style of these modules up to date.
tests/recompilation/*.err_exp.2:
Expect the updated line numbers in messages.
Delete the need_qualifier field from timestamps.
30 lines
532 B
Groff
30 lines
532 B
Groff
%---------------------------------------------------------------------------%
|
|
% vim: ts=4 sw=4 et ft=mercury
|
|
%---------------------------------------------------------------------------%
|
|
|
|
:- module add_instance_r_2.
|
|
|
|
:- interface.
|
|
|
|
:- import_module io.
|
|
|
|
:- type foo
|
|
---> a
|
|
; b(int).
|
|
|
|
:- pred init_foo(foo::out) is det.
|
|
|
|
:- typeclass io(T) where [
|
|
pred output(T::in, io::di, io::uo) is det
|
|
].
|
|
|
|
:- instance io(foo).
|
|
|
|
:- implementation.
|
|
|
|
:- instance io(foo) where [
|
|
pred(output/3) is io.write
|
|
].
|
|
|
|
init_foo(a).
|