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: 4
Fix a bug reported by Nick Nethercote. The symptom of this bug was that
the compiler aborted during the polymorphism transformation for predicates
whose type contained a repeated type class constraint.
library/map.m:
Add a new predicate map__set_from_corresponding_lists which is like
map__det_insert_from_corresponding_lists but uses map__set rather
than map__det_insert. ie. it does not abort if a duplicate key
is provided. Also add a pred map__set_from_assoc_list and function
versions of these two new preds to be consistent with
map__det_insert_from_corresponding_lists.
compiler/polymorphism.m:
When building the initial type class info variable map, use
map__set_from_corresponding_lists rather than
map__det_insert_from_corresponding_lists to take the case of repeated
type class constraints into account.
tests/valid/Mmakefile:
tests/valid/repeated_class_constraint.m:
A test case for this.