blob: daef95a425c92b564e6a202bca3be4b3d5a80193 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
#![feature(lint_reasons)]
#![warn(clippy::same_name_method)]
#![allow(dead_code, non_camel_case_types)]
trait T1 {
fn foo() {}
}
trait T2 {
fn foo() {}
}
mod should_lint {
mod test_basic_case {
use crate::T1;
struct S;
impl S {
fn foo() {}
}
impl T1 for S {
fn foo() {}
}
}
mod test_derive {
#[derive(Clone)]
struct S;
impl S {
fn clone() {}
}
}
mod with_generic {
use crate::T1;
struct S<U>(U);
impl<U> S<U> {
fn foo() {}
}
impl<U: Copy> T1 for S<U> {
fn foo() {}
}
}
mod default_method {
use crate::T1;
struct S;
impl S {
fn foo() {}
}
impl T1 for S {}
}
mod multiply_conflicit_trait {
use crate::{T1, T2};
struct S;
impl S {
fn foo() {}
}
impl T1 for S {}
impl T2 for S {}
}
}
mod should_not_lint {
mod not_lint_two_trait_method {
use crate::{T1, T2};
struct S;
impl T1 for S {
fn foo() {}
}
impl T2 for S {
fn foo() {}
}
}
mod only_lint_on_method {
trait T3 {
type foo;
}
struct S;
impl S {
fn foo() {}
}
impl T3 for S {
type foo = usize;
}
}
}
mod check_expect_suppression {
use crate::T1;
struct S;
impl S {
#[expect(clippy::same_name_method)]
fn foo() {}
}
impl T1 for S {
fn foo() {}
}
}
fn main() {}
|