about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Macleod <alex@macleod.io>2023-06-08 12:47:15 +0000
committerAlex Macleod <alex@macleod.io>2023-06-08 15:56:42 +0000
commit46808be16f38c3c09e9b7af5d08e9b8abb7cab13 (patch)
treea9ca84410c9f14f96fadd373aa9fc0f9db96abfc
parent60258b061d0e77f97bb40a377a53bb705178c0ba (diff)
downloadrust-46808be16f38c3c09e9b7af5d08e9b8abb7cab13.tar.gz
rust-46808be16f38c3c09e9b7af5d08e9b8abb7cab13.zip
Direct towards late passes in `cargo dev new_lint`
-rw-r--r--clippy_dev/src/main.rs4
-rw-r--r--clippy_dev/src/new_lint.rs12
2 files changed, 12 insertions, 4 deletions
diff --git a/clippy_dev/src/main.rs b/clippy_dev/src/main.rs
index c03fbe9d275..97d6a8353a0 100644
--- a/clippy_dev/src/main.rs
+++ b/clippy_dev/src/main.rs
@@ -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")
diff --git a/clippy_dev/src/new_lint.rs b/clippy_dev/src/new_lint.rs
index 13a27703427..f970a32726b 100644
--- a/clippy_dev/src/new_lint.rs
+++ b/clippy_dev/src/new_lint.rs
@@ -37,7 +37,7 @@ impl<T> Context for io::Result<T> {
 ///
 /// 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(())
 }