-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
An n-pass linter #220
An n-pass linter #220
Conversation
Running this on packages tends to yield a barrage of "local variable shadows global" problems (the new I340, I341, I342, I343). This is consistent with every package I try it on. They're not false positives but very annoying, so it might make sense to disable them by default. |
:ERROR => :magenta, | ||
:INFO => Base.info_color(), | ||
:WARN => Base.warn_color(), | ||
:ERROR => isdefined(Base, :error_color) ? Base.error_color() : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would it ever be the case where this is not defined ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On 0.5, Base.error_color
doesn't exist, because errors and warnings are both printed in Base.warn_color()
.
I think I'll merge this soon to give it time to simmer on master, in case people who are |
This is a big change that switches the current one-pass linter to a as-many-passes-as-needed linter. It should be a big step toward removing spurious symbol not found problems. Currently there are a lot of broken tests, but they should mostly not be too hard to fix.
This breaks a lot of backward compatibility for
LintContext
,LintMessage
, etc., because large portions of the infrastructure had to be rewritten. I'll document the changes.Closes #12.