Various fixes and improvements to module linting #95
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR consists of incremental fixes and simplifications and is best reviewed per commit, with help from the (long) commit messages.
Although some of the bugs fixed were made obvious by the new type linter, they existed since the beginning of the Git history, years ago. The most notable bugfixes are:
module type of
(was not working in signatures);(X: T)
(was not working in signatures);functor
construct (was not working except in one situation).Test suite for
module type of
(comments indicate behavior before this PR):Test suite for functor parameters:
Test suite for
functor
:This PR closes
:
onmodule
)Note: the module linting stuff has more bugs that I did not care fixing, because I am not in mood for rewriting it from scratch. I cannot figure out the purpose of several bits, neither if some bits are astute hacks, obsolete stuff or just mistakes. For instance, issue #6 remains unsolved; I saw which part of the code causes it, it seems to be done on purpose?