Auto merge of #10907 - Alexendoo:dev-new-lint-late-passes, r=Jarcho

Direct towards late passes in `cargo dev new_lint`

changelog: none

This would be the tooling part of #9311

- `--pass late` is now the default
- It prints a message recommending the use of a late pass if you choose `--pass early`
This commit is contained in:
bors 2023-06-10 18:29:29 +00:00
commit ff3b49cfcb
2 changed files with 12 additions and 4 deletions

View File

@ -35,7 +35,7 @@ fn main() {
},
Some(("new_lint", matches)) => {
match new_lint::create(
matches.get_one::<String>("pass"),
matches.get_one::<String>("pass").unwrap(),
matches.get_one::<String>("name"),
matches.get_one::<String>("category").map(String::as_str),
matches.get_one::<String>("type").map(String::as_str),
@ -176,7 +176,7 @@ fn get_clap_config() -> ArgMatches {
.help("Specify whether the lint runs during the early or late pass")
.value_parser(["early", "late"])
.conflicts_with("type")
.required_unless_present("type"),
.default_value("late"),
Arg::new("name")
.short('n')
.long("name")

View File

@ -37,7 +37,7 @@ fn context<C: AsRef<str>>(self, text: C) -> Self {
///
/// This function errors out if the files couldn't be created or written to.
pub fn create(
pass: Option<&String>,
pass: &String,
lint_name: Option<&String>,
category: Option<&str>,
mut ty: Option<&str>,
@ -49,7 +49,7 @@ pub fn create(
}
let lint = LintData {
pass: pass.map_or("", String::as_str),
pass,
name: lint_name.expect("`name` argument is validated by clap"),
category: category.expect("`category` argument is validated by clap"),
ty,
@ -63,6 +63,14 @@ pub fn create(
add_lint(&lint, msrv).context("Unable to add lint to clippy_lints/src/lib.rs")?;
}
if pass == "early" {
println!(
"\n\
NOTE: Use a late pass unless you need something specific from\
an early pass, as they lack many features and utilities"
);
}
Ok(())
}