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.5
Branches: main
Relax the restriction on the constraints on existentially quantified data
structures. The type variables in constraints must be determined by the
constructor arguments and functional dependencies, but don't necessarily
have to appear directly in the constructor arguments.
compiler/check_typeclass.m:
Implement a check for type declarations which is analogous to the
existing check for pred/func declarations.
compiler/prog_io.m:
Relax the existing restriction, which was applied at parse-time.
Now we just check that all existentially quantified type vars appear
somewhere, either in the arguments or in the constraints.
Remove an XXX comment that asked whether the check that all
constrained variables were existentially quantified was overly
restrictive. The answer is no: we don't support existential
constraints with universal arguments, and we won't support it in
the foreseeable future.
tests/invalid/Mmakefile:
tests/invalid/fundeps_unbound_in_ctor.err_exp:
tests/invalid/fundeps_unbound_in_ctor.m:
New test case for the new and changed error messages.
tests/invalid/type_vars.err_exp:
Updated test case.
tests/valid/Mmakefile:
tests/valid/fundeps.m:
New test case.