mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-23 21:23:56 +00:00
Auto merge of #8625 - Jarcho:rename_lint, r=xFrednet
Add `cargo dev rename_lint` fixes #7799 changelog: None
This commit is contained in:
commit
32fe4762bf
11 changed files with 688 additions and 309 deletions
|
@ -4,6 +4,7 @@ version = "0.0.1"
|
|||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
aho-corasick = "0.7"
|
||||
clap = "2.33"
|
||||
indoc = "1.0"
|
||||
itertools = "0.10.1"
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#![feature(let_chains)]
|
||||
#![feature(let_else)]
|
||||
#![feature(once_cell)]
|
||||
#![feature(rustc_private)]
|
||||
|
|
|
@ -19,9 +19,9 @@ fn main() {
|
|||
if matches.is_present("print-only") {
|
||||
update_lints::print_lints();
|
||||
} else if matches.is_present("check") {
|
||||
update_lints::run(update_lints::UpdateMode::Check);
|
||||
update_lints::update(update_lints::UpdateMode::Check);
|
||||
} else {
|
||||
update_lints::run(update_lints::UpdateMode::Change);
|
||||
update_lints::update(update_lints::UpdateMode::Change);
|
||||
}
|
||||
},
|
||||
("new_lint", Some(matches)) => {
|
||||
|
@ -31,7 +31,7 @@ fn main() {
|
|||
matches.value_of("category"),
|
||||
matches.is_present("msrv"),
|
||||
) {
|
||||
Ok(_) => update_lints::run(update_lints::UpdateMode::Change),
|
||||
Ok(_) => update_lints::update(update_lints::UpdateMode::Change),
|
||||
Err(e) => eprintln!("Unable to create lint: {}", e),
|
||||
}
|
||||
},
|
||||
|
@ -78,6 +78,12 @@ fn main() {
|
|||
let path = matches.value_of("path").unwrap();
|
||||
lint::run(path);
|
||||
},
|
||||
("rename_lint", Some(matches)) => {
|
||||
let old_name = matches.value_of("old_name").unwrap();
|
||||
let new_name = matches.value_of("new_name").unwrap_or(old_name);
|
||||
let uplift = matches.is_present("uplift");
|
||||
update_lints::rename(old_name, new_name, uplift);
|
||||
},
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
|
@ -279,5 +285,26 @@ fn get_clap_config<'a>() -> ArgMatches<'a> {
|
|||
.help("The path to a file or package directory to lint"),
|
||||
),
|
||||
)
|
||||
.subcommand(
|
||||
SubCommand::with_name("rename_lint")
|
||||
.about("Renames the given lint")
|
||||
.arg(
|
||||
Arg::with_name("old_name")
|
||||
.index(1)
|
||||
.required(true)
|
||||
.help("The name of the lint to rename"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("new_name")
|
||||
.index(2)
|
||||
.required_unless("uplift")
|
||||
.help("The new name of the lint"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("uplift")
|
||||
.long("uplift")
|
||||
.help("This lint will be uplifted into rustc"),
|
||||
),
|
||||
)
|
||||
.get_matches()
|
||||
}
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
use core::fmt::Write;
|
||||
use aho_corasick::AhoCorasickBuilder;
|
||||
use core::fmt::Write as _;
|
||||
use itertools::Itertools;
|
||||
use rustc_lexer::{tokenize, unescape, LiteralKind, TokenKind};
|
||||
use std::collections::HashMap;
|
||||
use std::collections::{HashMap, HashSet};
|
||||
use std::ffi::OsStr;
|
||||
use std::fs;
|
||||
use std::path::Path;
|
||||
use walkdir::WalkDir;
|
||||
use std::io::{self, Read as _, Seek as _, Write as _};
|
||||
use std::path::{Path, PathBuf};
|
||||
use walkdir::{DirEntry, WalkDir};
|
||||
|
||||
use crate::clippy_project_root;
|
||||
|
||||
|
@ -30,12 +32,19 @@ pub enum UpdateMode {
|
|||
/// # Panics
|
||||
///
|
||||
/// Panics if a file path could not read from or then written to
|
||||
#[allow(clippy::too_many_lines)]
|
||||
pub fn run(update_mode: UpdateMode) {
|
||||
let (lints, deprecated_lints) = gather_all();
|
||||
pub fn update(update_mode: UpdateMode) {
|
||||
let (lints, deprecated_lints, renamed_lints) = gather_all();
|
||||
generate_lint_files(update_mode, &lints, &deprecated_lints, &renamed_lints);
|
||||
}
|
||||
|
||||
let internal_lints = Lint::internal_lints(&lints);
|
||||
let usable_lints = Lint::usable_lints(&lints);
|
||||
fn generate_lint_files(
|
||||
update_mode: UpdateMode,
|
||||
lints: &[Lint],
|
||||
deprecated_lints: &[DeprecatedLint],
|
||||
renamed_lints: &[RenamedLint],
|
||||
) {
|
||||
let internal_lints = Lint::internal_lints(lints);
|
||||
let usable_lints = Lint::usable_lints(lints);
|
||||
let mut sorted_usable_lints = usable_lints.clone();
|
||||
sorted_usable_lints.sort_by_key(|lint| lint.name.clone());
|
||||
|
||||
|
@ -87,7 +96,7 @@ pub fn run(update_mode: UpdateMode) {
|
|||
process_file(
|
||||
"clippy_lints/src/lib.deprecated.rs",
|
||||
update_mode,
|
||||
&gen_deprecated(&deprecated_lints),
|
||||
&gen_deprecated(deprecated_lints),
|
||||
);
|
||||
|
||||
let all_group_lints = usable_lints.iter().filter(|l| {
|
||||
|
@ -107,10 +116,16 @@ pub fn run(update_mode: UpdateMode) {
|
|||
&content,
|
||||
);
|
||||
}
|
||||
|
||||
let content = gen_deprecated_lints_test(deprecated_lints);
|
||||
process_file("tests/ui/deprecated.rs", update_mode, &content);
|
||||
|
||||
let content = gen_renamed_lints_test(renamed_lints);
|
||||
process_file("tests/ui/rename.rs", update_mode, &content);
|
||||
}
|
||||
|
||||
pub fn print_lints() {
|
||||
let (lint_list, _) = gather_all();
|
||||
let (lint_list, _, _) = gather_all();
|
||||
let usable_lints = Lint::usable_lints(&lint_list);
|
||||
let usable_lint_count = usable_lints.len();
|
||||
let grouped_by_lint_group = Lint::by_lint_group(usable_lints.into_iter());
|
||||
|
@ -128,6 +143,209 @@ pub fn print_lints() {
|
|||
println!("there are {} lints", usable_lint_count);
|
||||
}
|
||||
|
||||
/// Runs the `rename_lint` command.
|
||||
///
|
||||
/// This does the following:
|
||||
/// * Adds an entry to `renamed_lints.rs`.
|
||||
/// * Renames all lint attributes to the new name (e.g. `#[allow(clippy::lint_name)]`).
|
||||
/// * Renames the lint struct to the new name.
|
||||
/// * Renames the module containing the lint struct to the new name if it shares a name with the
|
||||
/// lint.
|
||||
///
|
||||
/// # Panics
|
||||
/// Panics for the following conditions:
|
||||
/// * If a file path could not read from or then written to
|
||||
/// * If either lint name has a prefix
|
||||
/// * If `old_name` doesn't name an existing lint.
|
||||
/// * If `old_name` names a deprecated or renamed lint.
|
||||
#[allow(clippy::too_many_lines)]
|
||||
pub fn rename(old_name: &str, new_name: &str, uplift: bool) {
|
||||
if let Some((prefix, _)) = old_name.split_once("::") {
|
||||
panic!("`{}` should not contain the `{}` prefix", old_name, prefix);
|
||||
}
|
||||
if let Some((prefix, _)) = new_name.split_once("::") {
|
||||
panic!("`{}` should not contain the `{}` prefix", new_name, prefix);
|
||||
}
|
||||
|
||||
let (mut lints, deprecated_lints, mut renamed_lints) = gather_all();
|
||||
let mut old_lint_index = None;
|
||||
let mut found_new_name = false;
|
||||
for (i, lint) in lints.iter().enumerate() {
|
||||
if lint.name == old_name {
|
||||
old_lint_index = Some(i);
|
||||
} else if lint.name == new_name {
|
||||
found_new_name = true;
|
||||
}
|
||||
}
|
||||
let old_lint_index = old_lint_index.unwrap_or_else(|| panic!("could not find lint `{}`", old_name));
|
||||
|
||||
let lint = RenamedLint {
|
||||
old_name: format!("clippy::{}", old_name),
|
||||
new_name: if uplift {
|
||||
new_name.into()
|
||||
} else {
|
||||
format!("clippy::{}", new_name)
|
||||
},
|
||||
};
|
||||
|
||||
// Renamed lints and deprecated lints shouldn't have been found in the lint list, but check just in
|
||||
// case.
|
||||
assert!(
|
||||
!renamed_lints.iter().any(|l| lint.old_name == l.old_name),
|
||||
"`{}` has already been renamed",
|
||||
old_name
|
||||
);
|
||||
assert!(
|
||||
!deprecated_lints.iter().any(|l| lint.old_name == l.name),
|
||||
"`{}` has already been deprecated",
|
||||
old_name
|
||||
);
|
||||
|
||||
// Update all lint level attributes. (`clippy::lint_name`)
|
||||
for file in WalkDir::new(clippy_project_root())
|
||||
.into_iter()
|
||||
.map(Result::unwrap)
|
||||
.filter(|f| {
|
||||
let name = f.path().file_name();
|
||||
let ext = f.path().extension();
|
||||
(ext == Some(OsStr::new("rs")) || ext == Some(OsStr::new("fixed")))
|
||||
&& name != Some(OsStr::new("rename.rs"))
|
||||
&& name != Some(OsStr::new("renamed_lints.rs"))
|
||||
})
|
||||
{
|
||||
rewrite_file(file.path(), |s| {
|
||||
replace_ident_like(s, &[(&lint.old_name, &lint.new_name)])
|
||||
});
|
||||
}
|
||||
|
||||
renamed_lints.push(lint);
|
||||
renamed_lints.sort_by(|lhs, rhs| {
|
||||
lhs.new_name
|
||||
.starts_with("clippy::")
|
||||
.cmp(&rhs.new_name.starts_with("clippy::"))
|
||||
.reverse()
|
||||
.then_with(|| lhs.old_name.cmp(&rhs.old_name))
|
||||
});
|
||||
|
||||
write_file(
|
||||
Path::new("clippy_lints/src/renamed_lints.rs"),
|
||||
&gen_renamed_lints_list(&renamed_lints),
|
||||
);
|
||||
|
||||
if uplift {
|
||||
write_file(Path::new("tests/ui/rename.rs"), &gen_renamed_lints_test(&renamed_lints));
|
||||
println!(
|
||||
"`{}` has be uplifted. All the code inside `clippy_lints` related to it needs to be removed manually.",
|
||||
old_name
|
||||
);
|
||||
} else if found_new_name {
|
||||
write_file(Path::new("tests/ui/rename.rs"), &gen_renamed_lints_test(&renamed_lints));
|
||||
println!(
|
||||
"`{}` is already defined. The old linting code inside `clippy_lints` needs to be updated/removed manually.",
|
||||
new_name
|
||||
);
|
||||
} else {
|
||||
// Rename the lint struct and source files sharing a name with the lint.
|
||||
let lint = &mut lints[old_lint_index];
|
||||
let old_name_upper = old_name.to_uppercase();
|
||||
let new_name_upper = new_name.to_uppercase();
|
||||
lint.name = new_name.into();
|
||||
|
||||
// Rename test files. only rename `.stderr` and `.fixed` files if the new test name doesn't exist.
|
||||
if try_rename_file(
|
||||
Path::new(&format!("tests/ui/{}.rs", old_name)),
|
||||
Path::new(&format!("tests/ui/{}.rs", new_name)),
|
||||
) {
|
||||
try_rename_file(
|
||||
Path::new(&format!("tests/ui/{}.stderr", old_name)),
|
||||
Path::new(&format!("tests/ui/{}.stderr", new_name)),
|
||||
);
|
||||
try_rename_file(
|
||||
Path::new(&format!("tests/ui/{}.fixed", old_name)),
|
||||
Path::new(&format!("tests/ui/{}.fixed", new_name)),
|
||||
);
|
||||
}
|
||||
|
||||
// Try to rename the file containing the lint if the file name matches the lint's name.
|
||||
let replacements;
|
||||
let replacements = if lint.module == old_name
|
||||
&& try_rename_file(
|
||||
Path::new(&format!("clippy_lints/src/{}.rs", old_name)),
|
||||
Path::new(&format!("clippy_lints/src/{}.rs", new_name)),
|
||||
) {
|
||||
// Edit the module name in the lint list. Note there could be multiple lints.
|
||||
for lint in lints.iter_mut().filter(|l| l.module == old_name) {
|
||||
lint.module = new_name.into();
|
||||
}
|
||||
replacements = [(&*old_name_upper, &*new_name_upper), (old_name, new_name)];
|
||||
replacements.as_slice()
|
||||
} else if !lint.module.contains("::")
|
||||
// Catch cases like `methods/lint_name.rs` where the lint is stored in `methods/mod.rs`
|
||||
&& try_rename_file(
|
||||
Path::new(&format!("clippy_lints/src/{}/{}.rs", lint.module, old_name)),
|
||||
Path::new(&format!("clippy_lints/src/{}/{}.rs", lint.module, new_name)),
|
||||
)
|
||||
{
|
||||
// Edit the module name in the lint list. Note there could be multiple lints, or none.
|
||||
let renamed_mod = format!("{}::{}", lint.module, old_name);
|
||||
for lint in lints.iter_mut().filter(|l| l.module == renamed_mod) {
|
||||
lint.module = format!("{}::{}", lint.module, new_name);
|
||||
}
|
||||
replacements = [(&*old_name_upper, &*new_name_upper), (old_name, new_name)];
|
||||
replacements.as_slice()
|
||||
} else {
|
||||
replacements = [(&*old_name_upper, &*new_name_upper), ("", "")];
|
||||
&replacements[0..1]
|
||||
};
|
||||
|
||||
// Don't change `clippy_utils/src/renamed_lints.rs` here as it would try to edit the lint being
|
||||
// renamed.
|
||||
for (_, file) in clippy_lints_src_files().filter(|(rel_path, _)| rel_path != OsStr::new("renamed_lints.rs")) {
|
||||
rewrite_file(file.path(), |s| replace_ident_like(s, replacements));
|
||||
}
|
||||
|
||||
generate_lint_files(UpdateMode::Change, &lints, &deprecated_lints, &renamed_lints);
|
||||
println!("{} has been successfully renamed", old_name);
|
||||
}
|
||||
|
||||
println!("note: `cargo uitest` still needs to be run to update the test results");
|
||||
}
|
||||
|
||||
/// Replace substrings if they aren't bordered by identifier characters. Returns `None` if there
|
||||
/// were no replacements.
|
||||
fn replace_ident_like(contents: &str, replacements: &[(&str, &str)]) -> Option<String> {
|
||||
fn is_ident_char(c: u8) -> bool {
|
||||
matches!(c, b'a'..=b'z' | b'A'..=b'Z' | b'0'..=b'9' | b'_')
|
||||
}
|
||||
|
||||
let searcher = AhoCorasickBuilder::new()
|
||||
.dfa(true)
|
||||
.match_kind(aho_corasick::MatchKind::LeftmostLongest)
|
||||
.build_with_size::<u16, _, _>(replacements.iter().map(|&(x, _)| x.as_bytes()))
|
||||
.unwrap();
|
||||
|
||||
let mut result = String::with_capacity(contents.len() + 1024);
|
||||
let mut pos = 0;
|
||||
let mut edited = false;
|
||||
for m in searcher.find_iter(contents) {
|
||||
let (old, new) = replacements[m.pattern()];
|
||||
result.push_str(&contents[pos..m.start()]);
|
||||
result.push_str(
|
||||
if !is_ident_char(contents.as_bytes().get(m.start().wrapping_sub(1)).copied().unwrap_or(0))
|
||||
&& !is_ident_char(contents.as_bytes().get(m.end()).copied().unwrap_or(0))
|
||||
{
|
||||
edited = true;
|
||||
new
|
||||
} else {
|
||||
old
|
||||
},
|
||||
);
|
||||
pos = m.end();
|
||||
}
|
||||
result.push_str(&contents[pos..]);
|
||||
edited.then(|| result)
|
||||
}
|
||||
|
||||
fn round_to_fifty(count: usize) -> usize {
|
||||
count / 50 * 50
|
||||
}
|
||||
|
@ -210,6 +428,19 @@ impl DeprecatedLint {
|
|||
}
|
||||
}
|
||||
|
||||
struct RenamedLint {
|
||||
old_name: String,
|
||||
new_name: String,
|
||||
}
|
||||
impl RenamedLint {
|
||||
fn new(old_name: &str, new_name: &str) -> Self {
|
||||
Self {
|
||||
old_name: remove_line_splices(old_name),
|
||||
new_name: remove_line_splices(new_name),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Generates the code for registering a group
|
||||
fn gen_lint_group_list<'a>(group_name: &str, lints: impl Iterator<Item = &'a Lint>) -> String {
|
||||
let mut details: Vec<_> = lints.map(|l| (&l.module, l.name.to_uppercase())).collect();
|
||||
|
@ -278,18 +509,55 @@ fn gen_register_lint_list<'a>(
|
|||
output
|
||||
}
|
||||
|
||||
fn gen_deprecated_lints_test(lints: &[DeprecatedLint]) -> String {
|
||||
let mut res: String = GENERATED_FILE_COMMENT.into();
|
||||
for lint in lints {
|
||||
writeln!(res, "#![warn(clippy::{})]", lint.name).unwrap();
|
||||
}
|
||||
res.push_str("\nfn main() {}\n");
|
||||
res
|
||||
}
|
||||
|
||||
fn gen_renamed_lints_test(lints: &[RenamedLint]) -> String {
|
||||
let mut seen_lints = HashSet::new();
|
||||
let mut res: String = GENERATED_FILE_COMMENT.into();
|
||||
res.push_str("// run-rustfix\n\n");
|
||||
for lint in lints {
|
||||
if seen_lints.insert(&lint.new_name) {
|
||||
writeln!(res, "#![allow({})]", lint.new_name).unwrap();
|
||||
}
|
||||
}
|
||||
seen_lints.clear();
|
||||
for lint in lints {
|
||||
if seen_lints.insert(&lint.old_name) {
|
||||
writeln!(res, "#![warn({})]", lint.old_name).unwrap();
|
||||
}
|
||||
}
|
||||
res.push_str("\nfn main() {}\n");
|
||||
res
|
||||
}
|
||||
|
||||
fn gen_renamed_lints_list(lints: &[RenamedLint]) -> String {
|
||||
const HEADER: &str = "\
|
||||
// This file is managed by `cargo dev rename_lint`. Prefer using that when possible.\n\n\
|
||||
#[rustfmt::skip]\n\
|
||||
pub static RENAMED_LINTS: &[(&str, &str)] = &[\n";
|
||||
|
||||
let mut res = String::from(HEADER);
|
||||
for lint in lints {
|
||||
writeln!(res, " (\"{}\", \"{}\"),", lint.old_name, lint.new_name).unwrap();
|
||||
}
|
||||
res.push_str("];\n");
|
||||
res
|
||||
}
|
||||
|
||||
/// Gathers all lints defined in `clippy_lints/src`
|
||||
fn gather_all() -> (Vec<Lint>, Vec<DeprecatedLint>) {
|
||||
fn gather_all() -> (Vec<Lint>, Vec<DeprecatedLint>, Vec<RenamedLint>) {
|
||||
let mut lints = Vec::with_capacity(1000);
|
||||
let mut deprecated_lints = Vec::with_capacity(50);
|
||||
let root_path = clippy_project_root().join("clippy_lints/src");
|
||||
let mut renamed_lints = Vec::with_capacity(50);
|
||||
|
||||
for (rel_path, file) in WalkDir::new(&root_path)
|
||||
.into_iter()
|
||||
.map(Result::unwrap)
|
||||
.filter(|f| f.path().extension() == Some(OsStr::new("rs")))
|
||||
.map(|f| (f.path().strip_prefix(&root_path).unwrap().to_path_buf(), f))
|
||||
{
|
||||
for (rel_path, file) in clippy_lints_src_files() {
|
||||
let path = file.path();
|
||||
let contents =
|
||||
fs::read_to_string(path).unwrap_or_else(|e| panic!("Cannot read from `{}`: {}", path.display(), e));
|
||||
|
@ -307,13 +575,21 @@ fn gather_all() -> (Vec<Lint>, Vec<DeprecatedLint>) {
|
|||
module.strip_suffix(".rs").unwrap_or(&module)
|
||||
};
|
||||
|
||||
if module == "deprecated_lints" {
|
||||
parse_deprecated_contents(&contents, &mut deprecated_lints);
|
||||
} else {
|
||||
parse_contents(&contents, module, &mut lints);
|
||||
match module {
|
||||
"deprecated_lints" => parse_deprecated_contents(&contents, &mut deprecated_lints),
|
||||
"renamed_lints" => parse_renamed_contents(&contents, &mut renamed_lints),
|
||||
_ => parse_contents(&contents, module, &mut lints),
|
||||
}
|
||||
}
|
||||
(lints, deprecated_lints)
|
||||
(lints, deprecated_lints, renamed_lints)
|
||||
}
|
||||
|
||||
fn clippy_lints_src_files() -> impl Iterator<Item = (PathBuf, DirEntry)> {
|
||||
let root_path = clippy_project_root().join("clippy_lints/src");
|
||||
let iter = WalkDir::new(&root_path).into_iter();
|
||||
iter.map(Result::unwrap)
|
||||
.filter(|f| f.path().extension() == Some(OsStr::new("rs")))
|
||||
.map(move |f| (f.path().strip_prefix(&root_path).unwrap().to_path_buf(), f))
|
||||
}
|
||||
|
||||
macro_rules! match_tokens {
|
||||
|
@ -396,6 +672,25 @@ fn parse_deprecated_contents(contents: &str, lints: &mut Vec<DeprecatedLint>) {
|
|||
}
|
||||
}
|
||||
|
||||
fn parse_renamed_contents(contents: &str, lints: &mut Vec<RenamedLint>) {
|
||||
for line in contents.lines() {
|
||||
let mut offset = 0usize;
|
||||
let mut iter = tokenize(line).map(|t| {
|
||||
let range = offset..offset + t.len;
|
||||
offset = range.end;
|
||||
(t.kind, &line[range])
|
||||
});
|
||||
let (old_name, new_name) = match_tokens!(
|
||||
iter,
|
||||
// ("old_name",
|
||||
Whitespace OpenParen Literal{kind: LiteralKind::Str{..},..}(old_name) Comma
|
||||
// "new_name"),
|
||||
Whitespace Literal{kind: LiteralKind::Str{..},..}(new_name) CloseParen Comma
|
||||
);
|
||||
lints.push(RenamedLint::new(old_name, new_name));
|
||||
}
|
||||
}
|
||||
|
||||
/// Removes the line splices and surrounding quotes from a string literal
|
||||
fn remove_line_splices(s: &str) -> String {
|
||||
let s = s
|
||||
|
@ -464,6 +759,52 @@ fn replace_region_in_text<'a>(
|
|||
Ok(res)
|
||||
}
|
||||
|
||||
fn try_rename_file(old_name: &Path, new_name: &Path) -> bool {
|
||||
match fs::OpenOptions::new().create_new(true).write(true).open(new_name) {
|
||||
Ok(file) => drop(file),
|
||||
Err(e) if matches!(e.kind(), io::ErrorKind::AlreadyExists | io::ErrorKind::NotFound) => return false,
|
||||
Err(e) => panic_file(e, new_name, "create"),
|
||||
};
|
||||
match fs::rename(old_name, new_name) {
|
||||
Ok(()) => true,
|
||||
Err(e) => {
|
||||
drop(fs::remove_file(new_name));
|
||||
if e.kind() == io::ErrorKind::NotFound {
|
||||
false
|
||||
} else {
|
||||
panic_file(e, old_name, "rename");
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(clippy::needless_pass_by_value)]
|
||||
fn panic_file(error: io::Error, name: &Path, action: &str) -> ! {
|
||||
panic!("failed to {} file `{}`: {}", action, name.display(), error)
|
||||
}
|
||||
|
||||
fn rewrite_file(path: &Path, f: impl FnOnce(&str) -> Option<String>) {
|
||||
let mut file = fs::OpenOptions::new()
|
||||
.write(true)
|
||||
.read(true)
|
||||
.open(path)
|
||||
.unwrap_or_else(|e| panic_file(e, path, "open"));
|
||||
let mut buf = String::new();
|
||||
file.read_to_string(&mut buf)
|
||||
.unwrap_or_else(|e| panic_file(e, path, "read"));
|
||||
if let Some(new_contents) = f(&buf) {
|
||||
file.rewind().unwrap_or_else(|e| panic_file(e, path, "write"));
|
||||
file.write_all(new_contents.as_bytes())
|
||||
.unwrap_or_else(|e| panic_file(e, path, "write"));
|
||||
file.set_len(new_contents.len() as u64)
|
||||
.unwrap_or_else(|e| panic_file(e, path, "write"));
|
||||
}
|
||||
}
|
||||
|
||||
fn write_file(path: &Path, contents: &str) {
|
||||
fs::write(path, contents).unwrap_or_else(|e| panic_file(e, path, "write"));
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
|
|
@ -163,6 +163,8 @@ mod deprecated_lints;
|
|||
#[cfg_attr(feature = "internal", allow(clippy::missing_clippy_version_attribute))]
|
||||
mod utils;
|
||||
|
||||
mod renamed_lints;
|
||||
|
||||
// begin lints modules, do not remove this comment, it’s used in `update_lints`
|
||||
mod absurd_extreme_comparisons;
|
||||
mod approx_const;
|
||||
|
@ -938,43 +940,9 @@ fn register_removed_non_tool_lints(store: &mut rustc_lint::LintStore) {
|
|||
///
|
||||
/// Used in `./src/driver.rs`.
|
||||
pub fn register_renamed(ls: &mut rustc_lint::LintStore) {
|
||||
// NOTE: when renaming a lint, add a corresponding test to tests/ui/rename.rs
|
||||
ls.register_renamed("clippy::stutter", "clippy::module_name_repetitions");
|
||||
ls.register_renamed("clippy::new_without_default_derive", "clippy::new_without_default");
|
||||
ls.register_renamed("clippy::cyclomatic_complexity", "clippy::cognitive_complexity");
|
||||
ls.register_renamed("clippy::const_static_lifetime", "clippy::redundant_static_lifetimes");
|
||||
ls.register_renamed("clippy::option_and_then_some", "clippy::bind_instead_of_map");
|
||||
ls.register_renamed("clippy::box_vec", "clippy::box_collection");
|
||||
ls.register_renamed("clippy::block_in_if_condition_expr", "clippy::blocks_in_if_conditions");
|
||||
ls.register_renamed("clippy::block_in_if_condition_stmt", "clippy::blocks_in_if_conditions");
|
||||
ls.register_renamed("clippy::option_map_unwrap_or", "clippy::map_unwrap_or");
|
||||
ls.register_renamed("clippy::option_map_unwrap_or_else", "clippy::map_unwrap_or");
|
||||
ls.register_renamed("clippy::result_map_unwrap_or_else", "clippy::map_unwrap_or");
|
||||
ls.register_renamed("clippy::option_unwrap_used", "clippy::unwrap_used");
|
||||
ls.register_renamed("clippy::result_unwrap_used", "clippy::unwrap_used");
|
||||
ls.register_renamed("clippy::option_expect_used", "clippy::expect_used");
|
||||
ls.register_renamed("clippy::result_expect_used", "clippy::expect_used");
|
||||
ls.register_renamed("clippy::for_loop_over_option", "clippy::for_loops_over_fallibles");
|
||||
ls.register_renamed("clippy::for_loop_over_result", "clippy::for_loops_over_fallibles");
|
||||
ls.register_renamed("clippy::identity_conversion", "clippy::useless_conversion");
|
||||
ls.register_renamed("clippy::zero_width_space", "clippy::invisible_characters");
|
||||
ls.register_renamed("clippy::single_char_push_str", "clippy::single_char_add_str");
|
||||
ls.register_renamed("clippy::if_let_some_result", "clippy::match_result_ok");
|
||||
ls.register_renamed("clippy::disallowed_type", "clippy::disallowed_types");
|
||||
ls.register_renamed("clippy::disallowed_method", "clippy::disallowed_methods");
|
||||
ls.register_renamed("clippy::ref_in_deref", "clippy::needless_borrow");
|
||||
ls.register_renamed("clippy::to_string_in_display", "clippy::recursive_format_impl");
|
||||
|
||||
// uplifted lints
|
||||
ls.register_renamed("clippy::invalid_ref", "invalid_value");
|
||||
ls.register_renamed("clippy::into_iter_on_array", "array_into_iter");
|
||||
ls.register_renamed("clippy::unused_label", "unused_labels");
|
||||
ls.register_renamed("clippy::drop_bounds", "drop_bounds");
|
||||
ls.register_renamed("clippy::temporary_cstring_as_ptr", "temporary_cstring_as_ptr");
|
||||
ls.register_renamed("clippy::panic_params", "non_fmt_panics");
|
||||
ls.register_renamed("clippy::unknown_clippy_lints", "unknown_lints");
|
||||
ls.register_renamed("clippy::invalid_atomic_ordering", "invalid_atomic_ordering");
|
||||
ls.register_renamed("clippy::mem_discriminant_non_enum", "enum_intrinsics_non_enums");
|
||||
for (old_name, new_name) in renamed_lints::RENAMED_LINTS {
|
||||
ls.register_renamed(old_name, new_name);
|
||||
}
|
||||
}
|
||||
|
||||
// only exists to let the dogfood integration test works.
|
||||
|
|
39
clippy_lints/src/renamed_lints.rs
Normal file
39
clippy_lints/src/renamed_lints.rs
Normal file
|
@ -0,0 +1,39 @@
|
|||
// This file is managed by `cargo dev rename_lint`. Prefer using that when possible.
|
||||
|
||||
#[rustfmt::skip]
|
||||
pub static RENAMED_LINTS: &[(&str, &str)] = &[
|
||||
("clippy::block_in_if_condition_expr", "clippy::blocks_in_if_conditions"),
|
||||
("clippy::block_in_if_condition_stmt", "clippy::blocks_in_if_conditions"),
|
||||
("clippy::box_vec", "clippy::box_collection"),
|
||||
("clippy::const_static_lifetime", "clippy::redundant_static_lifetimes"),
|
||||
("clippy::cyclomatic_complexity", "clippy::cognitive_complexity"),
|
||||
("clippy::disallowed_method", "clippy::disallowed_methods"),
|
||||
("clippy::disallowed_type", "clippy::disallowed_types"),
|
||||
("clippy::for_loop_over_option", "clippy::for_loops_over_fallibles"),
|
||||
("clippy::for_loop_over_result", "clippy::for_loops_over_fallibles"),
|
||||
("clippy::identity_conversion", "clippy::useless_conversion"),
|
||||
("clippy::if_let_some_result", "clippy::match_result_ok"),
|
||||
("clippy::new_without_default_derive", "clippy::new_without_default"),
|
||||
("clippy::option_and_then_some", "clippy::bind_instead_of_map"),
|
||||
("clippy::option_expect_used", "clippy::expect_used"),
|
||||
("clippy::option_map_unwrap_or", "clippy::map_unwrap_or"),
|
||||
("clippy::option_map_unwrap_or_else", "clippy::map_unwrap_or"),
|
||||
("clippy::option_unwrap_used", "clippy::unwrap_used"),
|
||||
("clippy::ref_in_deref", "clippy::needless_borrow"),
|
||||
("clippy::result_expect_used", "clippy::expect_used"),
|
||||
("clippy::result_map_unwrap_or_else", "clippy::map_unwrap_or"),
|
||||
("clippy::result_unwrap_used", "clippy::unwrap_used"),
|
||||
("clippy::single_char_push_str", "clippy::single_char_add_str"),
|
||||
("clippy::stutter", "clippy::module_name_repetitions"),
|
||||
("clippy::to_string_in_display", "clippy::recursive_format_impl"),
|
||||
("clippy::zero_width_space", "clippy::invisible_characters"),
|
||||
("clippy::drop_bounds", "drop_bounds"),
|
||||
("clippy::into_iter_on_array", "array_into_iter"),
|
||||
("clippy::invalid_atomic_ordering", "invalid_atomic_ordering"),
|
||||
("clippy::invalid_ref", "invalid_value"),
|
||||
("clippy::mem_discriminant_non_enum", "enum_intrinsics_non_enums"),
|
||||
("clippy::panic_params", "non_fmt_panics"),
|
||||
("clippy::temporary_cstring_as_ptr", "temporary_cstring_as_ptr"),
|
||||
("clippy::unknown_clippy_lints", "unknown_lints"),
|
||||
("clippy::unused_label", "unused_labels"),
|
||||
];
|
|
@ -1,3 +1,7 @@
|
|||
// This file was generated by `cargo dev update_lints`.
|
||||
// Use that command to update this file and do not edit by hand.
|
||||
// Manual edits will be overwritten.
|
||||
|
||||
#![warn(clippy::should_assert_eq)]
|
||||
#![warn(clippy::extend_from_slice)]
|
||||
#![warn(clippy::range_step_by_zero)]
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error: lint `clippy::should_assert_eq` has been removed: `assert!()` will be more flexible with RFC 2011
|
||||
--> $DIR/deprecated.rs:1:9
|
||||
--> $DIR/deprecated.rs:5:9
|
||||
|
|
||||
LL | #![warn(clippy::should_assert_eq)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -7,91 +7,91 @@ LL | #![warn(clippy::should_assert_eq)]
|
|||
= note: `-D renamed-and-removed-lints` implied by `-D warnings`
|
||||
|
||||
error: lint `clippy::extend_from_slice` has been removed: `.extend_from_slice(_)` is a faster way to extend a Vec by a slice
|
||||
--> $DIR/deprecated.rs:2:9
|
||||
--> $DIR/deprecated.rs:6:9
|
||||
|
|
||||
LL | #![warn(clippy::extend_from_slice)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::range_step_by_zero` has been removed: `iterator.step_by(0)` panics nowadays
|
||||
--> $DIR/deprecated.rs:3:9
|
||||
--> $DIR/deprecated.rs:7:9
|
||||
|
|
||||
LL | #![warn(clippy::range_step_by_zero)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::unstable_as_slice` has been removed: `Vec::as_slice` has been stabilized in 1.7
|
||||
--> $DIR/deprecated.rs:4:9
|
||||
--> $DIR/deprecated.rs:8:9
|
||||
|
|
||||
LL | #![warn(clippy::unstable_as_slice)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::unstable_as_mut_slice` has been removed: `Vec::as_mut_slice` has been stabilized in 1.7
|
||||
--> $DIR/deprecated.rs:5:9
|
||||
--> $DIR/deprecated.rs:9:9
|
||||
|
|
||||
LL | #![warn(clippy::unstable_as_mut_slice)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::misaligned_transmute` has been removed: this lint has been split into cast_ptr_alignment and transmute_ptr_to_ptr
|
||||
--> $DIR/deprecated.rs:6:9
|
||||
--> $DIR/deprecated.rs:10:9
|
||||
|
|
||||
LL | #![warn(clippy::misaligned_transmute)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::assign_ops` has been removed: using compound assignment operators (e.g., `+=`) is harmless
|
||||
--> $DIR/deprecated.rs:7:9
|
||||
--> $DIR/deprecated.rs:11:9
|
||||
|
|
||||
LL | #![warn(clippy::assign_ops)]
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::if_let_redundant_pattern_matching` has been removed: this lint has been changed to redundant_pattern_matching
|
||||
--> $DIR/deprecated.rs:8:9
|
||||
--> $DIR/deprecated.rs:12:9
|
||||
|
|
||||
LL | #![warn(clippy::if_let_redundant_pattern_matching)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::unsafe_vector_initialization` has been removed: the replacement suggested by this lint had substantially different behavior
|
||||
--> $DIR/deprecated.rs:9:9
|
||||
--> $DIR/deprecated.rs:13:9
|
||||
|
|
||||
LL | #![warn(clippy::unsafe_vector_initialization)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::unused_collect` has been removed: `collect` has been marked as #[must_use] in rustc and that covers all cases of this lint
|
||||
--> $DIR/deprecated.rs:10:9
|
||||
--> $DIR/deprecated.rs:14:9
|
||||
|
|
||||
LL | #![warn(clippy::unused_collect)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::replace_consts` has been removed: associated-constants `MIN`/`MAX` of integers are preferred to `{min,max}_value()` and module constants
|
||||
--> $DIR/deprecated.rs:11:9
|
||||
--> $DIR/deprecated.rs:15:9
|
||||
|
|
||||
LL | #![warn(clippy::replace_consts)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::regex_macro` has been removed: the regex! macro has been removed from the regex crate in 2018
|
||||
--> $DIR/deprecated.rs:12:9
|
||||
--> $DIR/deprecated.rs:16:9
|
||||
|
|
||||
LL | #![warn(clippy::regex_macro)]
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::find_map` has been removed: this lint has been replaced by `manual_find_map`, a more specific lint
|
||||
--> $DIR/deprecated.rs:13:9
|
||||
--> $DIR/deprecated.rs:17:9
|
||||
|
|
||||
LL | #![warn(clippy::find_map)]
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::filter_map` has been removed: this lint has been replaced by `manual_filter_map`, a more specific lint
|
||||
--> $DIR/deprecated.rs:14:9
|
||||
--> $DIR/deprecated.rs:18:9
|
||||
|
|
||||
LL | #![warn(clippy::filter_map)]
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::pub_enum_variant_names` has been removed: set the `avoid-breaking-exported-api` config option to `false` to enable the `enum_variant_names` lint for public items
|
||||
--> $DIR/deprecated.rs:15:9
|
||||
--> $DIR/deprecated.rs:19:9
|
||||
|
|
||||
LL | #![warn(clippy::pub_enum_variant_names)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: lint `clippy::wrong_pub_self_convention` has been removed: set the `avoid-breaking-exported-api` config option to `false` to enable the `wrong_self_convention` lint for public items
|
||||
--> $DIR/deprecated.rs:16:9
|
||||
--> $DIR/deprecated.rs:20:9
|
||||
|
|
||||
LL | #![warn(clippy::wrong_pub_self_convention)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
|
@ -1,71 +1,70 @@
|
|||
//! Test for Clippy lint renames.
|
||||
// This file was generated by `cargo dev update_lints`.
|
||||
// Use that command to update this file and do not edit by hand.
|
||||
// Manual edits will be overwritten.
|
||||
|
||||
// run-rustfix
|
||||
|
||||
#![allow(dead_code)]
|
||||
// allow the new lint name here, to test if the new name works
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
#![allow(clippy::new_without_default)]
|
||||
#![allow(clippy::blocks_in_if_conditions)]
|
||||
#![allow(clippy::box_collection)]
|
||||
#![allow(clippy::redundant_static_lifetimes)]
|
||||
#![allow(clippy::cognitive_complexity)]
|
||||
#![allow(clippy::bind_instead_of_map)]
|
||||
#![allow(clippy::box_collection)]
|
||||
#![allow(clippy::blocks_in_if_conditions)]
|
||||
#![allow(clippy::map_unwrap_or)]
|
||||
#![allow(clippy::unwrap_used)]
|
||||
#![allow(clippy::expect_used)]
|
||||
#![allow(clippy::disallowed_methods)]
|
||||
#![allow(clippy::disallowed_types)]
|
||||
#![allow(clippy::for_loops_over_fallibles)]
|
||||
#![allow(clippy::useless_conversion)]
|
||||
#![allow(clippy::invisible_characters)]
|
||||
#![allow(clippy::single_char_add_str)]
|
||||
#![allow(clippy::match_result_ok)]
|
||||
#![allow(clippy::disallowed_types)]
|
||||
#![allow(clippy::disallowed_methods)]
|
||||
#![allow(clippy::new_without_default)]
|
||||
#![allow(clippy::bind_instead_of_map)]
|
||||
#![allow(clippy::expect_used)]
|
||||
#![allow(clippy::map_unwrap_or)]
|
||||
#![allow(clippy::unwrap_used)]
|
||||
#![allow(clippy::needless_borrow)]
|
||||
#![allow(clippy::single_char_add_str)]
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
#![allow(clippy::recursive_format_impl)]
|
||||
// uplifted lints
|
||||
#![allow(invalid_value)]
|
||||
#![allow(array_into_iter)]
|
||||
#![allow(unused_labels)]
|
||||
#![allow(clippy::invisible_characters)]
|
||||
#![allow(drop_bounds)]
|
||||
#![allow(temporary_cstring_as_ptr)]
|
||||
#![allow(non_fmt_panics)]
|
||||
#![allow(unknown_lints)]
|
||||
#![allow(array_into_iter)]
|
||||
#![allow(invalid_atomic_ordering)]
|
||||
#![allow(invalid_value)]
|
||||
#![allow(enum_intrinsics_non_enums)]
|
||||
// warn for the old lint name here, to test if the renaming worked
|
||||
#![warn(clippy::module_name_repetitions)]
|
||||
#![warn(clippy::new_without_default)]
|
||||
#![allow(non_fmt_panics)]
|
||||
#![allow(temporary_cstring_as_ptr)]
|
||||
#![allow(unknown_lints)]
|
||||
#![allow(unused_labels)]
|
||||
#![warn(clippy::blocks_in_if_conditions)]
|
||||
#![warn(clippy::blocks_in_if_conditions)]
|
||||
#![warn(clippy::box_collection)]
|
||||
#![warn(clippy::redundant_static_lifetimes)]
|
||||
#![warn(clippy::cognitive_complexity)]
|
||||
#![warn(clippy::bind_instead_of_map)]
|
||||
#![warn(clippy::box_collection)]
|
||||
#![warn(clippy::blocks_in_if_conditions)]
|
||||
#![warn(clippy::blocks_in_if_conditions)]
|
||||
#![warn(clippy::map_unwrap_or)]
|
||||
#![warn(clippy::map_unwrap_or)]
|
||||
#![warn(clippy::map_unwrap_or)]
|
||||
#![warn(clippy::unwrap_used)]
|
||||
#![warn(clippy::unwrap_used)]
|
||||
#![warn(clippy::expect_used)]
|
||||
#![warn(clippy::expect_used)]
|
||||
#![warn(clippy::disallowed_methods)]
|
||||
#![warn(clippy::disallowed_types)]
|
||||
#![warn(clippy::for_loops_over_fallibles)]
|
||||
#![warn(clippy::for_loops_over_fallibles)]
|
||||
#![warn(clippy::useless_conversion)]
|
||||
#![warn(clippy::invisible_characters)]
|
||||
#![warn(clippy::single_char_add_str)]
|
||||
#![warn(clippy::match_result_ok)]
|
||||
#![warn(clippy::disallowed_types)]
|
||||
#![warn(clippy::disallowed_methods)]
|
||||
#![warn(clippy::new_without_default)]
|
||||
#![warn(clippy::bind_instead_of_map)]
|
||||
#![warn(clippy::expect_used)]
|
||||
#![warn(clippy::map_unwrap_or)]
|
||||
#![warn(clippy::map_unwrap_or)]
|
||||
#![warn(clippy::unwrap_used)]
|
||||
#![warn(clippy::needless_borrow)]
|
||||
#![warn(clippy::expect_used)]
|
||||
#![warn(clippy::map_unwrap_or)]
|
||||
#![warn(clippy::unwrap_used)]
|
||||
#![warn(clippy::single_char_add_str)]
|
||||
#![warn(clippy::module_name_repetitions)]
|
||||
#![warn(clippy::recursive_format_impl)]
|
||||
// uplifted lints
|
||||
#![warn(invalid_value)]
|
||||
#![warn(array_into_iter)]
|
||||
#![warn(unused_labels)]
|
||||
#![warn(clippy::invisible_characters)]
|
||||
#![warn(drop_bounds)]
|
||||
#![warn(temporary_cstring_as_ptr)]
|
||||
#![warn(non_fmt_panics)]
|
||||
#![warn(unknown_lints)]
|
||||
#![warn(array_into_iter)]
|
||||
#![warn(invalid_atomic_ordering)]
|
||||
#![warn(invalid_value)]
|
||||
#![warn(enum_intrinsics_non_enums)]
|
||||
#![warn(non_fmt_panics)]
|
||||
#![warn(temporary_cstring_as_ptr)]
|
||||
#![warn(unknown_lints)]
|
||||
#![warn(unused_labels)]
|
||||
|
||||
fn main() {}
|
||||
|
|
|
@ -1,71 +1,70 @@
|
|||
//! Test for Clippy lint renames.
|
||||
// This file was generated by `cargo dev update_lints`.
|
||||
// Use that command to update this file and do not edit by hand.
|
||||
// Manual edits will be overwritten.
|
||||
|
||||
// run-rustfix
|
||||
|
||||
#![allow(dead_code)]
|
||||
// allow the new lint name here, to test if the new name works
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
#![allow(clippy::new_without_default)]
|
||||
#![allow(clippy::blocks_in_if_conditions)]
|
||||
#![allow(clippy::box_collection)]
|
||||
#![allow(clippy::redundant_static_lifetimes)]
|
||||
#![allow(clippy::cognitive_complexity)]
|
||||
#![allow(clippy::bind_instead_of_map)]
|
||||
#![allow(clippy::box_collection)]
|
||||
#![allow(clippy::blocks_in_if_conditions)]
|
||||
#![allow(clippy::map_unwrap_or)]
|
||||
#![allow(clippy::unwrap_used)]
|
||||
#![allow(clippy::expect_used)]
|
||||
#![allow(clippy::disallowed_methods)]
|
||||
#![allow(clippy::disallowed_types)]
|
||||
#![allow(clippy::for_loops_over_fallibles)]
|
||||
#![allow(clippy::useless_conversion)]
|
||||
#![allow(clippy::invisible_characters)]
|
||||
#![allow(clippy::single_char_add_str)]
|
||||
#![allow(clippy::match_result_ok)]
|
||||
#![allow(clippy::disallowed_types)]
|
||||
#![allow(clippy::disallowed_methods)]
|
||||
#![allow(clippy::new_without_default)]
|
||||
#![allow(clippy::bind_instead_of_map)]
|
||||
#![allow(clippy::expect_used)]
|
||||
#![allow(clippy::map_unwrap_or)]
|
||||
#![allow(clippy::unwrap_used)]
|
||||
#![allow(clippy::needless_borrow)]
|
||||
#![allow(clippy::single_char_add_str)]
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
#![allow(clippy::recursive_format_impl)]
|
||||
// uplifted lints
|
||||
#![allow(invalid_value)]
|
||||
#![allow(array_into_iter)]
|
||||
#![allow(unused_labels)]
|
||||
#![allow(clippy::invisible_characters)]
|
||||
#![allow(drop_bounds)]
|
||||
#![allow(temporary_cstring_as_ptr)]
|
||||
#![allow(non_fmt_panics)]
|
||||
#![allow(unknown_lints)]
|
||||
#![allow(array_into_iter)]
|
||||
#![allow(invalid_atomic_ordering)]
|
||||
#![allow(invalid_value)]
|
||||
#![allow(enum_intrinsics_non_enums)]
|
||||
// warn for the old lint name here, to test if the renaming worked
|
||||
#![warn(clippy::stutter)]
|
||||
#![warn(clippy::new_without_default_derive)]
|
||||
#![warn(clippy::const_static_lifetime)]
|
||||
#![warn(clippy::cyclomatic_complexity)]
|
||||
#![warn(clippy::option_and_then_some)]
|
||||
#![warn(clippy::box_vec)]
|
||||
#![allow(non_fmt_panics)]
|
||||
#![allow(temporary_cstring_as_ptr)]
|
||||
#![allow(unknown_lints)]
|
||||
#![allow(unused_labels)]
|
||||
#![warn(clippy::block_in_if_condition_expr)]
|
||||
#![warn(clippy::block_in_if_condition_stmt)]
|
||||
#![warn(clippy::option_map_unwrap_or)]
|
||||
#![warn(clippy::option_map_unwrap_or_else)]
|
||||
#![warn(clippy::result_map_unwrap_or_else)]
|
||||
#![warn(clippy::option_unwrap_used)]
|
||||
#![warn(clippy::result_unwrap_used)]
|
||||
#![warn(clippy::option_expect_used)]
|
||||
#![warn(clippy::result_expect_used)]
|
||||
#![warn(clippy::box_vec)]
|
||||
#![warn(clippy::const_static_lifetime)]
|
||||
#![warn(clippy::cyclomatic_complexity)]
|
||||
#![warn(clippy::disallowed_method)]
|
||||
#![warn(clippy::disallowed_type)]
|
||||
#![warn(clippy::for_loop_over_option)]
|
||||
#![warn(clippy::for_loop_over_result)]
|
||||
#![warn(clippy::identity_conversion)]
|
||||
#![warn(clippy::zero_width_space)]
|
||||
#![warn(clippy::single_char_push_str)]
|
||||
#![warn(clippy::if_let_some_result)]
|
||||
#![warn(clippy::disallowed_type)]
|
||||
#![warn(clippy::disallowed_method)]
|
||||
#![warn(clippy::new_without_default_derive)]
|
||||
#![warn(clippy::option_and_then_some)]
|
||||
#![warn(clippy::option_expect_used)]
|
||||
#![warn(clippy::option_map_unwrap_or)]
|
||||
#![warn(clippy::option_map_unwrap_or_else)]
|
||||
#![warn(clippy::option_unwrap_used)]
|
||||
#![warn(clippy::ref_in_deref)]
|
||||
#![warn(clippy::result_expect_used)]
|
||||
#![warn(clippy::result_map_unwrap_or_else)]
|
||||
#![warn(clippy::result_unwrap_used)]
|
||||
#![warn(clippy::single_char_push_str)]
|
||||
#![warn(clippy::stutter)]
|
||||
#![warn(clippy::to_string_in_display)]
|
||||
// uplifted lints
|
||||
#![warn(clippy::invalid_ref)]
|
||||
#![warn(clippy::into_iter_on_array)]
|
||||
#![warn(clippy::unused_label)]
|
||||
#![warn(clippy::zero_width_space)]
|
||||
#![warn(clippy::drop_bounds)]
|
||||
#![warn(clippy::temporary_cstring_as_ptr)]
|
||||
#![warn(clippy::panic_params)]
|
||||
#![warn(clippy::unknown_clippy_lints)]
|
||||
#![warn(clippy::into_iter_on_array)]
|
||||
#![warn(clippy::invalid_atomic_ordering)]
|
||||
#![warn(clippy::invalid_ref)]
|
||||
#![warn(clippy::mem_discriminant_non_enum)]
|
||||
#![warn(clippy::panic_params)]
|
||||
#![warn(clippy::temporary_cstring_as_ptr)]
|
||||
#![warn(clippy::unknown_clippy_lints)]
|
||||
#![warn(clippy::unused_label)]
|
||||
|
||||
fn main() {}
|
||||
|
|
|
@ -1,208 +1,208 @@
|
|||
error: lint `clippy::stutter` has been renamed to `clippy::module_name_repetitions`
|
||||
error: lint `clippy::block_in_if_condition_expr` has been renamed to `clippy::blocks_in_if_conditions`
|
||||
--> $DIR/rename.rs:35:9
|
||||
|
|
||||
LL | #![warn(clippy::stutter)]
|
||||
| ^^^^^^^^^^^^^^^ help: use the new name: `clippy::module_name_repetitions`
|
||||
LL | #![warn(clippy::block_in_if_condition_expr)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::blocks_in_if_conditions`
|
||||
|
|
||||
= note: `-D renamed-and-removed-lints` implied by `-D warnings`
|
||||
|
||||
error: lint `clippy::new_without_default_derive` has been renamed to `clippy::new_without_default`
|
||||
error: lint `clippy::block_in_if_condition_stmt` has been renamed to `clippy::blocks_in_if_conditions`
|
||||
--> $DIR/rename.rs:36:9
|
||||
|
|
||||
LL | #![warn(clippy::new_without_default_derive)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::new_without_default`
|
||||
LL | #![warn(clippy::block_in_if_condition_stmt)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::blocks_in_if_conditions`
|
||||
|
||||
error: lint `clippy::box_vec` has been renamed to `clippy::box_collection`
|
||||
--> $DIR/rename.rs:37:9
|
||||
|
|
||||
LL | #![warn(clippy::box_vec)]
|
||||
| ^^^^^^^^^^^^^^^ help: use the new name: `clippy::box_collection`
|
||||
|
||||
error: lint `clippy::const_static_lifetime` has been renamed to `clippy::redundant_static_lifetimes`
|
||||
--> $DIR/rename.rs:37:9
|
||||
--> $DIR/rename.rs:38:9
|
||||
|
|
||||
LL | #![warn(clippy::const_static_lifetime)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::redundant_static_lifetimes`
|
||||
|
||||
error: lint `clippy::cyclomatic_complexity` has been renamed to `clippy::cognitive_complexity`
|
||||
--> $DIR/rename.rs:38:9
|
||||
--> $DIR/rename.rs:39:9
|
||||
|
|
||||
LL | #![warn(clippy::cyclomatic_complexity)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::cognitive_complexity`
|
||||
|
||||
error: lint `clippy::disallowed_method` has been renamed to `clippy::disallowed_methods`
|
||||
--> $DIR/rename.rs:40:9
|
||||
|
|
||||
LL | #![warn(clippy::disallowed_method)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::disallowed_methods`
|
||||
|
||||
error: lint `clippy::disallowed_type` has been renamed to `clippy::disallowed_types`
|
||||
--> $DIR/rename.rs:41:9
|
||||
|
|
||||
LL | #![warn(clippy::disallowed_type)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::disallowed_types`
|
||||
|
||||
error: lint `clippy::for_loop_over_option` has been renamed to `clippy::for_loops_over_fallibles`
|
||||
--> $DIR/rename.rs:42:9
|
||||
|
|
||||
LL | #![warn(clippy::for_loop_over_option)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::for_loops_over_fallibles`
|
||||
|
||||
error: lint `clippy::for_loop_over_result` has been renamed to `clippy::for_loops_over_fallibles`
|
||||
--> $DIR/rename.rs:43:9
|
||||
|
|
||||
LL | #![warn(clippy::for_loop_over_result)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::for_loops_over_fallibles`
|
||||
|
||||
error: lint `clippy::identity_conversion` has been renamed to `clippy::useless_conversion`
|
||||
--> $DIR/rename.rs:44:9
|
||||
|
|
||||
LL | #![warn(clippy::identity_conversion)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::useless_conversion`
|
||||
|
||||
error: lint `clippy::if_let_some_result` has been renamed to `clippy::match_result_ok`
|
||||
--> $DIR/rename.rs:45:9
|
||||
|
|
||||
LL | #![warn(clippy::if_let_some_result)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::match_result_ok`
|
||||
|
||||
error: lint `clippy::new_without_default_derive` has been renamed to `clippy::new_without_default`
|
||||
--> $DIR/rename.rs:46:9
|
||||
|
|
||||
LL | #![warn(clippy::new_without_default_derive)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::new_without_default`
|
||||
|
||||
error: lint `clippy::option_and_then_some` has been renamed to `clippy::bind_instead_of_map`
|
||||
--> $DIR/rename.rs:39:9
|
||||
--> $DIR/rename.rs:47:9
|
||||
|
|
||||
LL | #![warn(clippy::option_and_then_some)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::bind_instead_of_map`
|
||||
|
||||
error: lint `clippy::box_vec` has been renamed to `clippy::box_collection`
|
||||
--> $DIR/rename.rs:40:9
|
||||
|
|
||||
LL | #![warn(clippy::box_vec)]
|
||||
| ^^^^^^^^^^^^^^^ help: use the new name: `clippy::box_collection`
|
||||
|
||||
error: lint `clippy::block_in_if_condition_expr` has been renamed to `clippy::blocks_in_if_conditions`
|
||||
--> $DIR/rename.rs:41:9
|
||||
|
|
||||
LL | #![warn(clippy::block_in_if_condition_expr)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::blocks_in_if_conditions`
|
||||
|
||||
error: lint `clippy::block_in_if_condition_stmt` has been renamed to `clippy::blocks_in_if_conditions`
|
||||
--> $DIR/rename.rs:42:9
|
||||
|
|
||||
LL | #![warn(clippy::block_in_if_condition_stmt)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::blocks_in_if_conditions`
|
||||
|
||||
error: lint `clippy::option_map_unwrap_or` has been renamed to `clippy::map_unwrap_or`
|
||||
--> $DIR/rename.rs:43:9
|
||||
|
|
||||
LL | #![warn(clippy::option_map_unwrap_or)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::map_unwrap_or`
|
||||
|
||||
error: lint `clippy::option_map_unwrap_or_else` has been renamed to `clippy::map_unwrap_or`
|
||||
--> $DIR/rename.rs:44:9
|
||||
|
|
||||
LL | #![warn(clippy::option_map_unwrap_or_else)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::map_unwrap_or`
|
||||
|
||||
error: lint `clippy::result_map_unwrap_or_else` has been renamed to `clippy::map_unwrap_or`
|
||||
--> $DIR/rename.rs:45:9
|
||||
|
|
||||
LL | #![warn(clippy::result_map_unwrap_or_else)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::map_unwrap_or`
|
||||
|
||||
error: lint `clippy::option_unwrap_used` has been renamed to `clippy::unwrap_used`
|
||||
--> $DIR/rename.rs:46:9
|
||||
|
|
||||
LL | #![warn(clippy::option_unwrap_used)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::unwrap_used`
|
||||
|
||||
error: lint `clippy::result_unwrap_used` has been renamed to `clippy::unwrap_used`
|
||||
--> $DIR/rename.rs:47:9
|
||||
|
|
||||
LL | #![warn(clippy::result_unwrap_used)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::unwrap_used`
|
||||
|
||||
error: lint `clippy::option_expect_used` has been renamed to `clippy::expect_used`
|
||||
--> $DIR/rename.rs:48:9
|
||||
|
|
||||
LL | #![warn(clippy::option_expect_used)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::expect_used`
|
||||
|
||||
error: lint `clippy::result_expect_used` has been renamed to `clippy::expect_used`
|
||||
error: lint `clippy::option_map_unwrap_or` has been renamed to `clippy::map_unwrap_or`
|
||||
--> $DIR/rename.rs:49:9
|
||||
|
|
||||
LL | #![warn(clippy::result_expect_used)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::expect_used`
|
||||
LL | #![warn(clippy::option_map_unwrap_or)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::map_unwrap_or`
|
||||
|
||||
error: lint `clippy::for_loop_over_option` has been renamed to `clippy::for_loops_over_fallibles`
|
||||
error: lint `clippy::option_map_unwrap_or_else` has been renamed to `clippy::map_unwrap_or`
|
||||
--> $DIR/rename.rs:50:9
|
||||
|
|
||||
LL | #![warn(clippy::for_loop_over_option)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::for_loops_over_fallibles`
|
||||
LL | #![warn(clippy::option_map_unwrap_or_else)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::map_unwrap_or`
|
||||
|
||||
error: lint `clippy::for_loop_over_result` has been renamed to `clippy::for_loops_over_fallibles`
|
||||
error: lint `clippy::option_unwrap_used` has been renamed to `clippy::unwrap_used`
|
||||
--> $DIR/rename.rs:51:9
|
||||
|
|
||||
LL | #![warn(clippy::for_loop_over_result)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::for_loops_over_fallibles`
|
||||
|
||||
error: lint `clippy::identity_conversion` has been renamed to `clippy::useless_conversion`
|
||||
--> $DIR/rename.rs:52:9
|
||||
|
|
||||
LL | #![warn(clippy::identity_conversion)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::useless_conversion`
|
||||
|
||||
error: lint `clippy::zero_width_space` has been renamed to `clippy::invisible_characters`
|
||||
--> $DIR/rename.rs:53:9
|
||||
|
|
||||
LL | #![warn(clippy::zero_width_space)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::invisible_characters`
|
||||
|
||||
error: lint `clippy::single_char_push_str` has been renamed to `clippy::single_char_add_str`
|
||||
--> $DIR/rename.rs:54:9
|
||||
|
|
||||
LL | #![warn(clippy::single_char_push_str)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::single_char_add_str`
|
||||
|
||||
error: lint `clippy::if_let_some_result` has been renamed to `clippy::match_result_ok`
|
||||
--> $DIR/rename.rs:55:9
|
||||
|
|
||||
LL | #![warn(clippy::if_let_some_result)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::match_result_ok`
|
||||
|
||||
error: lint `clippy::disallowed_type` has been renamed to `clippy::disallowed_types`
|
||||
--> $DIR/rename.rs:56:9
|
||||
|
|
||||
LL | #![warn(clippy::disallowed_type)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::disallowed_types`
|
||||
|
||||
error: lint `clippy::disallowed_method` has been renamed to `clippy::disallowed_methods`
|
||||
--> $DIR/rename.rs:57:9
|
||||
|
|
||||
LL | #![warn(clippy::disallowed_method)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::disallowed_methods`
|
||||
LL | #![warn(clippy::option_unwrap_used)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::unwrap_used`
|
||||
|
||||
error: lint `clippy::ref_in_deref` has been renamed to `clippy::needless_borrow`
|
||||
--> $DIR/rename.rs:58:9
|
||||
--> $DIR/rename.rs:52:9
|
||||
|
|
||||
LL | #![warn(clippy::ref_in_deref)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::needless_borrow`
|
||||
|
||||
error: lint `clippy::result_expect_used` has been renamed to `clippy::expect_used`
|
||||
--> $DIR/rename.rs:53:9
|
||||
|
|
||||
LL | #![warn(clippy::result_expect_used)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::expect_used`
|
||||
|
||||
error: lint `clippy::result_map_unwrap_or_else` has been renamed to `clippy::map_unwrap_or`
|
||||
--> $DIR/rename.rs:54:9
|
||||
|
|
||||
LL | #![warn(clippy::result_map_unwrap_or_else)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::map_unwrap_or`
|
||||
|
||||
error: lint `clippy::result_unwrap_used` has been renamed to `clippy::unwrap_used`
|
||||
--> $DIR/rename.rs:55:9
|
||||
|
|
||||
LL | #![warn(clippy::result_unwrap_used)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::unwrap_used`
|
||||
|
||||
error: lint `clippy::single_char_push_str` has been renamed to `clippy::single_char_add_str`
|
||||
--> $DIR/rename.rs:56:9
|
||||
|
|
||||
LL | #![warn(clippy::single_char_push_str)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::single_char_add_str`
|
||||
|
||||
error: lint `clippy::stutter` has been renamed to `clippy::module_name_repetitions`
|
||||
--> $DIR/rename.rs:57:9
|
||||
|
|
||||
LL | #![warn(clippy::stutter)]
|
||||
| ^^^^^^^^^^^^^^^ help: use the new name: `clippy::module_name_repetitions`
|
||||
|
||||
error: lint `clippy::to_string_in_display` has been renamed to `clippy::recursive_format_impl`
|
||||
--> $DIR/rename.rs:59:9
|
||||
--> $DIR/rename.rs:58:9
|
||||
|
|
||||
LL | #![warn(clippy::to_string_in_display)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::recursive_format_impl`
|
||||
|
||||
error: lint `clippy::invalid_ref` has been renamed to `invalid_value`
|
||||
--> $DIR/rename.rs:61:9
|
||||
error: lint `clippy::zero_width_space` has been renamed to `clippy::invisible_characters`
|
||||
--> $DIR/rename.rs:59:9
|
||||
|
|
||||
LL | #![warn(clippy::invalid_ref)]
|
||||
| ^^^^^^^^^^^^^^^^^^^ help: use the new name: `invalid_value`
|
||||
|
||||
error: lint `clippy::into_iter_on_array` has been renamed to `array_into_iter`
|
||||
--> $DIR/rename.rs:62:9
|
||||
|
|
||||
LL | #![warn(clippy::into_iter_on_array)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `array_into_iter`
|
||||
|
||||
error: lint `clippy::unused_label` has been renamed to `unused_labels`
|
||||
--> $DIR/rename.rs:63:9
|
||||
|
|
||||
LL | #![warn(clippy::unused_label)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^ help: use the new name: `unused_labels`
|
||||
LL | #![warn(clippy::zero_width_space)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::invisible_characters`
|
||||
|
||||
error: lint `clippy::drop_bounds` has been renamed to `drop_bounds`
|
||||
--> $DIR/rename.rs:64:9
|
||||
--> $DIR/rename.rs:60:9
|
||||
|
|
||||
LL | #![warn(clippy::drop_bounds)]
|
||||
| ^^^^^^^^^^^^^^^^^^^ help: use the new name: `drop_bounds`
|
||||
|
||||
error: lint `clippy::temporary_cstring_as_ptr` has been renamed to `temporary_cstring_as_ptr`
|
||||
--> $DIR/rename.rs:65:9
|
||||
error: lint `clippy::into_iter_on_array` has been renamed to `array_into_iter`
|
||||
--> $DIR/rename.rs:61:9
|
||||
|
|
||||
LL | #![warn(clippy::temporary_cstring_as_ptr)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `temporary_cstring_as_ptr`
|
||||
LL | #![warn(clippy::into_iter_on_array)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `array_into_iter`
|
||||
|
||||
error: lint `clippy::invalid_atomic_ordering` has been renamed to `invalid_atomic_ordering`
|
||||
--> $DIR/rename.rs:62:9
|
||||
|
|
||||
LL | #![warn(clippy::invalid_atomic_ordering)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `invalid_atomic_ordering`
|
||||
|
||||
error: lint `clippy::invalid_ref` has been renamed to `invalid_value`
|
||||
--> $DIR/rename.rs:63:9
|
||||
|
|
||||
LL | #![warn(clippy::invalid_ref)]
|
||||
| ^^^^^^^^^^^^^^^^^^^ help: use the new name: `invalid_value`
|
||||
|
||||
error: lint `clippy::mem_discriminant_non_enum` has been renamed to `enum_intrinsics_non_enums`
|
||||
--> $DIR/rename.rs:64:9
|
||||
|
|
||||
LL | #![warn(clippy::mem_discriminant_non_enum)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `enum_intrinsics_non_enums`
|
||||
|
||||
error: lint `clippy::panic_params` has been renamed to `non_fmt_panics`
|
||||
--> $DIR/rename.rs:66:9
|
||||
--> $DIR/rename.rs:65:9
|
||||
|
|
||||
LL | #![warn(clippy::panic_params)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^ help: use the new name: `non_fmt_panics`
|
||||
|
||||
error: lint `clippy::temporary_cstring_as_ptr` has been renamed to `temporary_cstring_as_ptr`
|
||||
--> $DIR/rename.rs:66:9
|
||||
|
|
||||
LL | #![warn(clippy::temporary_cstring_as_ptr)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `temporary_cstring_as_ptr`
|
||||
|
||||
error: lint `clippy::unknown_clippy_lints` has been renamed to `unknown_lints`
|
||||
--> $DIR/rename.rs:67:9
|
||||
|
|
||||
LL | #![warn(clippy::unknown_clippy_lints)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `unknown_lints`
|
||||
|
||||
error: lint `clippy::invalid_atomic_ordering` has been renamed to `invalid_atomic_ordering`
|
||||
error: lint `clippy::unused_label` has been renamed to `unused_labels`
|
||||
--> $DIR/rename.rs:68:9
|
||||
|
|
||||
LL | #![warn(clippy::invalid_atomic_ordering)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `invalid_atomic_ordering`
|
||||
|
||||
error: lint `clippy::mem_discriminant_non_enum` has been renamed to `enum_intrinsics_non_enums`
|
||||
--> $DIR/rename.rs:69:9
|
||||
|
|
||||
LL | #![warn(clippy::mem_discriminant_non_enum)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `enum_intrinsics_non_enums`
|
||||
LL | #![warn(clippy::unused_label)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^ help: use the new name: `unused_labels`
|
||||
|
||||
error: aborting due to 34 previous errors
|
||||
|
||||
|
|
Loading…
Reference in a new issue