Keegan McAllister
c747626ced
Reindent function call continuations, and other style fixes
2014-06-24 11:36:27 -07:00
Keegan McAllister
ba1c0c4232
Drop the ExportedItems argument from LintPass::check_crate
...
None of the builtin lints use this, and it's now available through the Context.
2014-06-24 11:36:27 -07:00
Keegan McAllister
6fede93475
Make the crate and its exported items available in the lint context
2014-06-24 11:36:27 -07:00
Keegan McAllister
b5542f7f5b
Convert builtin lints to uppercase names for style consistency
2014-06-24 11:36:27 -07:00
Keegan McAllister
c1898b9acb
Stop using Default for initializing builtin lints
...
It wasn't a very appropriate use of the trait. Instead, just enumerate
unit structs and those with a `fn new()` separately.
2014-06-24 11:36:27 -07:00
Keegan McAllister
c7af6060dd
Clean up and document the public lint API
...
Also change some code formatting.
lint::builtin becomes a sibling of lint::context in order to ensure that lints
implemented there use the same public API as lint plugins.
2014-06-24 11:36:27 -07:00
Keegan McAllister
819f76ca82
Store the registered lints in the Session
2014-06-24 11:36:27 -07:00
Keegan McAllister
442fbc473e
Replace enum LintId with an extensible alternative
2014-06-24 10:25:15 -07:00
Keegan McAllister
69b6bc5eee
Convert lints to a trait-based infrastructure
...
The immediate benefits are
* moving the state specific to a single lint out of Context, and
* replacing the soup of function calls in the Visitor impl with
more structured control flow
But this is also a step towards loadable lints.
2014-06-24 10:24:03 -07:00
Keegan McAllister
3144614f0b
Move lint infrastructure and individual lints into separate files
2014-06-24 10:24:03 -07:00