mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
Always print lints from plugins, if they're available
Currently you can get a list of lints and lint groups by running `rustc -Whelp`. This prints an additional line at the end: ``` Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename. ``` Clippy is such a "compiler plugin", that provides additional lints. Running `clippy-driver -Whelp` (`rustc` wrapper) still only prints the rustc lints with the above message at the end. But when running `clippy-driver -Whelp main.rs`, where `main.rs` is any rust file, it also prints Clippy lints. I don't think this is a good approach from a UX perspective: Why is a random file necessary to print a help message? This commit changes this behavior: Whenever a compiler callback registers lints, it is assumed that these lints come from a plugin and are printed without having to specify a Rust source file.
This commit is contained in:
parent
be1e502cef
commit
4daa263e0b
@ -248,11 +248,18 @@ fn run_compiler(
|
||||
interface::run_compiler(config, |compiler| {
|
||||
let sopts = &compiler.session().opts;
|
||||
if sopts.describe_lints {
|
||||
let lint_store = rustc_lint::new_lint_store(
|
||||
let mut lint_store = rustc_lint::new_lint_store(
|
||||
sopts.debugging_opts.no_interleave_lints,
|
||||
compiler.session().unstable_options(),
|
||||
);
|
||||
describe_lints(compiler.session(), &lint_store, false);
|
||||
let registered_lints =
|
||||
if let Some(register_lints) = compiler.register_lints() {
|
||||
register_lints(compiler.session(), &mut lint_store);
|
||||
true
|
||||
} else {
|
||||
false
|
||||
};
|
||||
describe_lints(compiler.session(), &lint_store, registered_lints);
|
||||
return;
|
||||
}
|
||||
let should_stop = RustcDefaultCalls::print_crate_info(
|
||||
|
Loading…
Reference in New Issue
Block a user