mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 07:00:55 +00:00
Fix use_self
false positive on nested functions
This commit is contained in:
parent
1cdac4a9c7
commit
187ce4c5ab
4 changed files with 38 additions and 5 deletions
|
@ -248,7 +248,8 @@ impl<'a, 'tcx> Visitor<'tcx> for UseSelfVisitor<'a, 'tcx> {
|
||||||
| ItemKind::Enum(..)
|
| ItemKind::Enum(..)
|
||||||
| ItemKind::Struct(..)
|
| ItemKind::Struct(..)
|
||||||
| ItemKind::Union(..)
|
| ItemKind::Union(..)
|
||||||
| ItemKind::Impl(..) => {
|
| ItemKind::Impl(..)
|
||||||
|
| ItemKind::Fn(..) => {
|
||||||
// Don't check statements that shadow `Self` or where `Self` can't be used
|
// Don't check statements that shadow `Self` or where `Self` can't be used
|
||||||
},
|
},
|
||||||
_ => walk_item(self, item),
|
_ => walk_item(self, item),
|
||||||
|
|
|
@ -249,6 +249,16 @@ mod nesting {
|
||||||
Self { foo: Foo {} }
|
Self { foo: Foo {} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Can't use Self here
|
||||||
|
fn baz() -> Foo {
|
||||||
|
Foo {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Should lint here
|
||||||
|
fn baz() -> Self {
|
||||||
|
Self {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -249,6 +249,16 @@ mod nesting {
|
||||||
Bar { foo: Foo {} }
|
Bar { foo: Foo {} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Can't use Self here
|
||||||
|
fn baz() -> Foo {
|
||||||
|
Foo {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Should lint here
|
||||||
|
fn baz() -> Foo {
|
||||||
|
Foo {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -150,6 +150,18 @@ LL | Foo {}
|
||||||
LL | use_self_expand!(); // Should lint in local macros
|
LL | use_self_expand!(); // Should lint in local macros
|
||||||
| ------------------- in this macro invocation
|
| ------------------- in this macro invocation
|
||||||
|
|
||||||
|
error: unnecessary structure name repetition
|
||||||
|
--> $DIR/use_self.rs:260:21
|
||||||
|
|
|
||||||
|
LL | fn baz() -> Foo {
|
||||||
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
|
error: unnecessary structure name repetition
|
||||||
|
--> $DIR/use_self.rs:261:13
|
||||||
|
|
|
||||||
|
LL | Foo {}
|
||||||
|
| ^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: unnecessary structure name repetition
|
error: unnecessary structure name repetition
|
||||||
--> $DIR/use_self.rs:248:29
|
--> $DIR/use_self.rs:248:29
|
||||||
|
|
|
|
||||||
|
@ -163,22 +175,22 @@ LL | Bar { foo: Foo {} }
|
||||||
| ^^^ 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:293:13
|
--> $DIR/use_self.rs:303:13
|
||||||
|
|
|
|
||||||
LL | nested::A::fun_1();
|
LL | nested::A::fun_1();
|
||||||
| ^^^^^^^^^ 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:294:13
|
--> $DIR/use_self.rs:304:13
|
||||||
|
|
|
|
||||||
LL | nested::A::A;
|
LL | nested::A::A;
|
||||||
| ^^^^^^^^^ 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:296:13
|
--> $DIR/use_self.rs:306:13
|
||||||
|
|
|
|
||||||
LL | nested::A {};
|
LL | nested::A {};
|
||||||
| ^^^^^^^^^ help: use the applicable keyword: `Self`
|
| ^^^^^^^^^ help: use the applicable keyword: `Self`
|
||||||
|
|
||||||
error: aborting due to 29 previous errors
|
error: aborting due to 31 previous errors
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue