just_underscores_and_digits: fix false positive in error recovery scenario (#14168)
Fixes #12302 changelog: [`just_underscores_and_digits`]: fix false positive in error recovery scenario
This commit is contained in:
commit
ffa1caf420
5 changed files with 38 additions and 3 deletions
|
|
@ -290,8 +290,13 @@ fn run_rustfmt(context: &FmtContext) -> Result<(), Error> {
|
|||
.filter_map(|entry| {
|
||||
let entry = entry.expect("failed to find tests");
|
||||
let path = entry.path();
|
||||
|
||||
if path.extension() != Some("rs".as_ref()) || entry.file_name() == "ice-3891.rs" {
|
||||
if path.extension() != Some("rs".as_ref())
|
||||
|| path
|
||||
.components()
|
||||
.nth_back(1)
|
||||
.is_some_and(|c| c.as_os_str() == "syntax-error-recovery")
|
||||
|| entry.file_name() == "ice-3891.rs"
|
||||
{
|
||||
None
|
||||
} else {
|
||||
Some(entry.into_path().into_os_string())
|
||||
|
|
|
|||
|
|
@ -208,7 +208,8 @@ impl SimilarNamesNameVisitor<'_, '_, '_> {
|
|||
|
||||
fn check_ident(&mut self, ident: Ident) {
|
||||
let interned_name = ident.name.as_str();
|
||||
if interned_name.chars().any(char::is_uppercase) {
|
||||
// name can be empty if it comes from recovery
|
||||
if interned_name.chars().any(char::is_uppercase) || interned_name.is_empty() {
|
||||
return;
|
||||
}
|
||||
if interned_name.chars().all(|c| c.is_ascii_digit() || c == '_') {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
// https://github.com/rust-lang/rust-clippy/issues/12302
|
||||
use std::marker::PhantomData;
|
||||
|
||||
pub struct Aa<T>(PhantomData<T>);
|
||||
|
||||
fn aa(a: Aa<String>) {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// https://github.com/rust-lang/rust-clippy/issues/12302
|
||||
use std::marker::PhantomData;
|
||||
|
||||
pub struct Aa<T>(PhantomData<T>);
|
||||
|
||||
fn aa(a: Aa<String) {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
error: expected one of `!`, `(`, `+`, `,`, `::`, `<`, or `>`, found `)`
|
||||
--> tests/ui/syntax-error-recovery/non_expressive_names_error_recovery.rs:6:19
|
||||
|
|
||||
LL | fn aa(a: Aa<String) {
|
||||
| ^ expected one of 7 possible tokens
|
||||
|
|
||||
help: you might have meant to end the type parameters here
|
||||
|
|
||||
LL | fn aa(a: Aa<String>) {
|
||||
| +
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue