The following two situations are almost indistinguishable to students and tutors:
A task configuration has set - Redundant bracket as an HlintError, the student has submitted a semantically wrong program that also has a pair of brackets too much.
A task configuration has set - Redundant bracket as an HlintSuggestion, the student has submitted a semantically correct program that just happens to have a pair of brackets too much.
In both situations, no information about tests having been performed (or not performed) is displayed. Only the information "That pair of brackets is redundant" is displayed.
That is quite harmful in the first situation. From the feedback it seems that there is only this one small stylistic issue with the program. While in reality the submission is completely wrong (but maybe in a subtle way not immediately discernible). The student, having previously encountered tasks where the redundant bracket warning is just a suggestion, and where no test information being printed means that all testing was successful, might now think that their program is functioning correctly (even though no tests were even run; which the student doesn't know, though). And a tutor looking at the submission will likely also just see that there is this bracket warning, but no other output, so assume that everything else with the progam is okay.
The following two situations are almost indistinguishable to students and tutors:
- Redundant bracket
as anHlintError
, the student has submitted a semantically wrong program that also has a pair of brackets too much.- Redundant bracket
as anHlintSuggestion
, the student has submitted a semantically correct program that just happens to have a pair of brackets too much.In both situations, no information about tests having been performed (or not performed) is displayed. Only the information "That pair of brackets is redundant" is displayed.
That is quite harmful in the first situation. From the feedback it seems that there is only this one small stylistic issue with the program. While in reality the submission is completely wrong (but maybe in a subtle way not immediately discernible). The student, having previously encountered tasks where the redundant bracket warning is just a suggestion, and where no test information being printed means that all testing was successful, might now think that their program is functioning correctly (even though no tests were even run; which the student doesn't know, though). And a tutor looking at the submission will likely also just see that there is this bracket warning, but no other output, so assume that everything else with the progam is okay.
Suggested fix: In https://github.com/fmidue/haskell-template-task/blob/0d393c806d5fa571e640e277a2e8ce62b6dafdd9/src/Haskell/Template/Task.hs#L344-L346 it should somehow be made so that if the
getHlintFeedback ... True
call actually found and printed some hlint hints (and thus will abort and not even progress to thematchTemplate
check), then before aborting there should be a printout along the lines of "Unless you fix the above things, your submission will not be considered further (e.g., no tests being run on it)."