Commit Graph

3 Commits

Author SHA1 Message Date
Zoltan Somogyi
3dc4babb24 Update the style of more test cases.
And update expected output files for changes in line numbers.
2021-07-27 13:29:46 +10:00
Zoltan Somogyi
fdd141bf77 Clean up the tests in the other test directories.
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.
2015-02-16 12:32:18 +11:00
Zoltan Somogyi
69eb936833 Fix Mantis bug 197.
Estimated hours taken: 3
Branches: main

Fix Mantis bug 197.

compiler/add_clause.m:
	If the state variable transformation report an error (as opposed to a
	warning), then act as if we got a syntax error, and ignore the clause
	body.

compiler/state_var.m:
	Return a list of errors as well as warnings.

	Loosen the over-tight sanity check that caused the bug. The sanity
	check insisted that a state variable that is updated in one or more
	arms of a branched control structure (disjunction, switch, or
	if-then-else) could not be readonly. However, if a readonly variable
	DOES happen to be illegally updated in an arm, existing code in the
	state var transformation generates an error message, and then records
	the variable as updated (and hence further updateable) to avoid error
	messages for later updates in the same readonly context. As shown by
	the bug test case, this can lead to violations of the sanity check.

	The alternative approach would be to keep the readonly status of
	the variable after illegal updates. Whether the additional error
	messages generated for any other illegal updates on the same
	computation paths would be helpful or noise is at the moment a
	question of taste and guessing; there is as yet no empirical data
	that would allow a reasoned decision one way or the other.

compiler/superhomogeneous.m:
	Fix style.

tests/invalid/bug197.{m,err_exp}:
	A regression test for the bug.

tests/invalid/Mmakefile:
	Enable the new test.
2011-05-16 05:03:43 +00:00