Document known problems
This commit is contained in:
parent
ece8b8e7d6
commit
0f3dcdc3aa
@ -25,7 +25,13 @@
|
|||||||
/// name
|
/// name
|
||||||
/// feels inconsistent.
|
/// feels inconsistent.
|
||||||
///
|
///
|
||||||
/// **Known problems:** None.
|
/// **Known problems:**
|
||||||
|
/// - Does not trigger within locally defined macros (#2098)
|
||||||
|
/// - False positive when using associated types (#2843)
|
||||||
|
/// - False positives in some situations when using generics (#3410)
|
||||||
|
/// - False positive when type from outer function can't be used (#3463)
|
||||||
|
/// - Does not diagnose tuple structs (#3498)
|
||||||
|
/// - Does not trigger in lifetimed struct
|
||||||
///
|
///
|
||||||
/// **Example:**
|
/// **Example:**
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
@ -51,8 +51,6 @@ fn default() -> Self {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//todo the lint does not handle lifetimed struct
|
|
||||||
//the following module should trigger the lint on the third method only
|
|
||||||
mod lifetimes {
|
mod lifetimes {
|
||||||
struct Foo<'a> {
|
struct Foo<'a> {
|
||||||
foo_str: &'a str,
|
foo_str: &'a str,
|
||||||
@ -69,7 +67,8 @@ fn bar() -> Foo<'static> {
|
|||||||
Foo { foo_str: "foo" }
|
Foo { foo_str: "foo" }
|
||||||
}
|
}
|
||||||
|
|
||||||
// `Self` is applicable here
|
// TODO: the lint does not handle lifetimed struct
|
||||||
|
// `Self` should be applicable here
|
||||||
fn clone(&self) -> Foo<'a> {
|
fn clone(&self) -> Foo<'a> {
|
||||||
Foo { foo_str: self.foo_str }
|
Foo { foo_str: self.foo_str }
|
||||||
}
|
}
|
||||||
|
@ -37,91 +37,91 @@ LL | Foo::new()
|
|||||||
| ^^^^^^^^ help: use the applicable keyword: `Self`
|
| ^^^^^^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:96:22
|
--> $DIR/use_self.rs:95:22
|
||||||
|
|
|
|
||||||
LL | fn refs(p1: &Bad) -> &Bad {
|
LL | fn refs(p1: &Bad) -> &Bad {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:96:31
|
--> $DIR/use_self.rs:95:31
|
||||||
|
|
|
|
||||||
LL | fn refs(p1: &Bad) -> &Bad {
|
LL | fn refs(p1: &Bad) -> &Bad {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:100:37
|
--> $DIR/use_self.rs:99:37
|
||||||
|
|
|
|
||||||
LL | fn ref_refs<'a>(p1: &'a &'a Bad) -> &'a &'a Bad {
|
LL | fn ref_refs<'a>(p1: &'a &'a Bad) -> &'a &'a Bad {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:100:53
|
--> $DIR/use_self.rs:99:53
|
||||||
|
|
|
|
||||||
LL | fn ref_refs<'a>(p1: &'a &'a Bad) -> &'a &'a Bad {
|
LL | fn ref_refs<'a>(p1: &'a &'a Bad) -> &'a &'a Bad {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:104:30
|
--> $DIR/use_self.rs:103:30
|
||||||
|
|
|
|
||||||
LL | fn mut_refs(p1: &mut Bad) -> &mut Bad {
|
LL | fn mut_refs(p1: &mut Bad) -> &mut Bad {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:104:43
|
--> $DIR/use_self.rs:103:43
|
||||||
|
|
|
|
||||||
LL | fn mut_refs(p1: &mut Bad) -> &mut Bad {
|
LL | fn mut_refs(p1: &mut Bad) -> &mut Bad {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:108:28
|
--> $DIR/use_self.rs:107:28
|
||||||
|
|
|
|
||||||
LL | fn nested(_p1: Box<Bad>, _p2: (&u8, &Bad)) {}
|
LL | fn nested(_p1: Box<Bad>, _p2: (&u8, &Bad)) {}
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:108:46
|
--> $DIR/use_self.rs:107:46
|
||||||
|
|
|
|
||||||
LL | fn nested(_p1: Box<Bad>, _p2: (&u8, &Bad)) {}
|
LL | fn nested(_p1: Box<Bad>, _p2: (&u8, &Bad)) {}
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:110:20
|
--> $DIR/use_self.rs:109:20
|
||||||
|
|
|
|
||||||
LL | fn vals(_: Bad) -> Bad {
|
LL | fn vals(_: Bad) -> Bad {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:110:28
|
--> $DIR/use_self.rs:109:28
|
||||||
|
|
|
|
||||||
LL | fn vals(_: Bad) -> Bad {
|
LL | fn vals(_: Bad) -> Bad {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:111:13
|
--> $DIR/use_self.rs:110:13
|
||||||
|
|
|
|
||||||
LL | Bad::default()
|
LL | Bad::default()
|
||||||
| ^^^^^^^^^^^^ help: use the applicable keyword: `Self`
|
| ^^^^^^^^^^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:116:23
|
--> $DIR/use_self.rs:115:23
|
||||||
|
|
|
|
||||||
LL | type Output = Bad;
|
LL | type Output = Bad;
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:118:27
|
--> $DIR/use_self.rs:117:27
|
||||||
|
|
|
|
||||||
LL | fn mul(self, rhs: Bad) -> Bad {
|
LL | fn mul(self, rhs: Bad) -> Bad {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:118:35
|
--> $DIR/use_self.rs:117:35
|
||||||
|
|
|
|
||||||
LL | fn mul(self, rhs: Bad) -> Bad {
|
LL | fn mul(self, rhs: Bad) -> Bad {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:210:56
|
--> $DIR/use_self.rs:209:56
|
||||||
|
|
|
|
||||||
LL | fn bad(foos: &[Self]) -> impl Iterator<Item = &Foo> {
|
LL | fn bad(foos: &[Self]) -> impl Iterator<Item = &Foo> {
|
||||||
| ^^^ help: use the applicable keyword: `Self`
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
Loading…
Reference in New Issue
Block a user