diff --git a/clippy_dev/src/new_lint.rs b/clippy_dev/src/new_lint.rs index 76b8dd60d432..9d1f19f954b0 100644 --- a/clippy_dev/src/new_lint.rs +++ b/clippy_dev/src/new_lint.rs @@ -1,8 +1,9 @@ +use clippy_dev::clippy_project_root; use std::fs::{File, OpenOptions}; use std::io; use std::io::prelude::*; use std::io::ErrorKind; -use std::path::{Path, PathBuf}; +use std::path::Path; pub fn create(pass: Option<&str>, lint_name: Option<&str>, category: Option<&str>) -> Result<(), io::Error> { let pass = pass.expect("`pass` argument is validated by clap"); @@ -55,7 +56,7 @@ pub fn create(pass: Option<&str>, lint_name: Option<&str>, category: Option<&str } fn open_files(lint_name: &str) -> Result<(File, File), io::Error> { - let project_root = project_root()?; + let project_root = clippy_project_root(); let test_file_path = project_root.join("tests").join("ui").join(format!("{}.rs", lint_name)); let lint_file_path = project_root @@ -82,24 +83,6 @@ fn open_files(lint_name: &str) -> Result<(File, File), io::Error> { Ok((test_file, lint_file)) } -fn project_root() -> Result { - let current_dir = std::env::current_dir()?; - for path in current_dir.ancestors() { - let result = std::fs::read_to_string(path.join("Cargo.toml")); - if let Err(err) = &result { - if err.kind() == io::ErrorKind::NotFound { - continue; - } - } - - let content = result?; - if content.contains("[package]\nname = \"clippy\"") { - return Ok(path.to_path_buf()); - } - } - Err(io::Error::new(ErrorKind::Other, "Unable to find project root")) -} - fn to_camel_case(name: &str) -> String { name.split('_') .map(|s| {