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.
Branches: main
Improve two error messages related to typeclass constraints.
1. The "unsatisfied typeclass constraints" error message didn't tell the user
the line numbers of the atomic goals which originated the constraints.
2. The "unsatisfiable typeclass constraints" error message told the user that
a set of constraints couldn't be satisfied, including the constraints it
proved to be satisfiable. Also, it would list a top-level constraint in the
error message when some of the constraint's descendents could be satisfied.
It is more useful to tell the user about the descendants that couldn't be
satisfied. Bug #35.
compiler/post_typecheck.m:
Fix the first problem.
compiler/typeclasses.m:
Fix the second problem.
tests/invalid/Mmakefile:
tests/invalid/typeclass_test_8.err_exp:
tests/invalid/unsatisfiable_constraint.err_exp:
tests/invalid/unsatisfiable_constraint_msg.err_exp:
tests/invalid/unsatisfiable_constraint_msg.m:
Add test case and update expected error output.