tests/invalid/*.{m,err_exp}:
tests/misc_tests/*.m:
tests/mmc_make/*.m:
tests/par_conj/*.m:
tests/purity/*.m:
tests/stm/*.m:
tests/string_format/*.m:
tests/structure_reuse/*.m:
tests/submodules/*.m:
tests/tabling/*.m:
tests/term/*.m:
tests/trailing/*.m:
tests/typeclasses/*.m:
tests/valid/*.m:
tests/warnings/*.{m,exp}:
Make these tests use four-space indentation, and ensure that
each module is imported on its own line. (I intend to use the latter
to figure out which subdirectories' tests can be executed in parallel.)
These changes usually move code to different lines. For the tests
that check compiler error messages, expect the new line numbers.
browser/cterm.m:
browser/tree234_cc.m:
Import only one module per line.
tests/hard_coded/boyer.m:
Fix something I missed.
Estimated hours taken: 1
Branches: main
Emit an error if abstract instances in the implementation of a module do
not have a corresponding concrete instance.
compiler/check_typeclass.m:
Check that abstract instance declarations in the implementation
section of a module have a corresponding concrete instance
declaration somewhere. Emit an error if they don't.
tests/invalid/missing_concrete_instance.{m,err_exp}:
Extend this test case to cover the above situation.
Estimated hours taken: 3
Branches: main, release
Have the compiler emit an error if an abstract instance declaration
in the interface of a module does not have a corresponding concrete
instance declaration in the implementation of the module. Currently
the compiler just ignores this situation which leads to C compilation
errors in the MLDS grades and link-time errors in the LLDS grades.
compiler/check_typeclass.m:
Emit an error message if an abstract instance declaration
in the interface of a module does not have a corresponding
concrete instance in the implementation.
Use unexpected/2 in place of error/2.
Fix the positioning of a few comments.
Add an end_module declaration.
compiler/hlds_data.m:
Make the instance_table type a multi_map (which it
already effectively was).
tests/invalid/Mmakefile:
tests/invalid/missing_concrete_instance.m:
tests/invalid/missing_concrete_instance.err_exp:
Test case for the above.