For review by anyone.
Estimated hours taken: 10
Branches: main, release
Do not allow non-abstract instance declarations to occur in module
interfaces. Emit an error message if this occurs.
Fix the formatting of some error messages regarding typeclasses
and instances.
compiler/check_typeclass.m:
Use error_util to generate the error messages from this module.
This fixes a problem where the printing of sym_names and arities
differed in the same error message.
compiler/error_util.m:
Add a format component for the pred_or_func type.
Add the equivalence type format_components.
compiler/make_hlds.m:
Make the format of some error messages concerning typeclasses
more consistent.
compiler/modules.m:
Check for non-abstract instance declarations in module interfaces
and emit an error message if they do.
tests/invalid/Mmakefile:
tests/invalid/instance_bug.m:
tests/invalid/instance_bug.err_exp:
Test case for the above.
tests/hard_coded/typeclasses/*:
tests/invalid/*:
tests/recompilation/*:
tests/valid/*:
Update test cases as necessary.
Estimated hours taken: 1/4
Fix test case... the compiler was getting tripped up by a different bug than
the one this was meant to be testing.
ts/valid/instance_superclass.m:
Fixed so it doesn't have an unbound type variable.
(Actually, I don't really see why the compiler thinks it is unbound).
Estimated hours taken: 1/4
New typeclass test case.
tests/valid/instance_superclass.m:
New test case.
tests/valid/Mmakefile:
Updated to run the new test.