-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-false-negativeIssue: The lint should have been triggered on code, but wasn'tIssue: The lint should have been triggered on code, but wasn't
Description
Summary
use_self
doesn't trigger for struct or tuple enum variants, only empty variants.
There are false negatives mentioned in the documention for use_self but I couldn't find an issue tracking them. I don't know if these are the same known false negatives or not.
Lint Name
use_self
Reproducer
I tried this code:
#![warn(clippy::use_self)]
#![allow(unused)]
pub enum Something {
Empty,
Num(u8),
TupleNums(u8, u8),
StructNums { one: u8, two: u8 },
}
impl Something {
const fn get_value(&self) -> u8 {
match self {
Something::Empty => 0,
Something::Num(n) => *n,
Something::TupleNums(n, _m) => *n,
Something::StructNums { one, two: _ } => *one,
}
}
}
I expected to see this happen:
I should get a warning for all four uses of Something
in get_value.
Instead, this happened:
I only get a warning for Something::Empty
. Once I update it to Self::Empty
I get no more warnings.
Version
rustc 1.61.0 (fe5b13d68 2022-05-18)
binary: rustc
commit-hash: fe5b13d681f25ee6474be29d748c65adcd91f69e
commit-date: 2022-05-18
host: x86_64-unknown-linux-gnu
release: 1.61.0
LLVM version: 14.0.0
Metadata
Metadata
Assignees
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-false-negativeIssue: The lint should have been triggered on code, but wasn'tIssue: The lint should have been triggered on code, but wasn't