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: 20
Branches: main
Fix a couple of bugs relating to the use of functional dependencies and
existential types.
compiler/check_typeclass.m:
Include type variables occurring in instance constraints and method
constraints in the tvarset created for instance methods. Previously
only type variables occurring in the arguments were included, but
with functional dependencies it is possible that some type variables
appear in the constraints but not in the arguments.
Rename a variable to be more accurate.
compiler/polymorphism.m:
When producing typeclass_infos for existential constraints use the
constraints from the constraint map (if available), which may have
been improved during typechecking.
Use the constraints and known instance tvars to calculate the
unconstrained tvars, rather than trying to figure them out from the
contents of the rtti_varmaps.
compiler/clause_to_proc.m:
When introducing exists_cast goals, use the constraints from the
head instead of the constraints already in the rtti_varmaps. The
constraints in the head represent the external view, which is what
we want for the introduced variables.
Ensure that all type variables in the external view have locations
recorded in the rtti_varmaps.
Update a comment.
compiler/prog_type.m:
Export a predicate for getting all the type variables occurring in
prog_constraints.
tests/valid/Mmakefile:
tests/valid/exists_fundeps.m:
tests/valid/exists_fundeps_2.m:
tests/valid/exists_fundeps_3.m:
New test cases.