mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-24 12:54:00 +00:00
Fix FP in wrong_self_convention
lint
This commit is contained in:
parent
f7c2c44e76
commit
3ce6f0d022
@ -102,6 +102,14 @@ pub(super) fn check<'tcx>(
|
||||
.iter()
|
||||
.all(|conv| conv.check(cx, self_ty, item_name, implements_trait, is_trait_item))
|
||||
}) {
|
||||
// don't lint if it implements a trait but not willing to check `Copy` types conventions (see #7032)
|
||||
if implements_trait
|
||||
&& !conventions
|
||||
.iter()
|
||||
.any(|conv| matches!(conv, Convention::IsSelfTypeCopy(_)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if !self_kinds.iter().any(|k| k.matches(cx, self_ty, first_arg_ty)) {
|
||||
let suggestion = {
|
||||
if conventions.len() > 1 {
|
||||
|
@ -30,3 +30,15 @@ mod issue6983 {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mod issue7032 {
|
||||
trait Foo {
|
||||
fn from_usize(x: usize) -> Self;
|
||||
}
|
||||
// don't trigger
|
||||
impl Foo for usize {
|
||||
fn from_usize(x: usize) -> Self {
|
||||
x
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user