diff options
| author | bors <bors@rust-lang.org> | 2022-04-17 08:06:53 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-04-17 08:06:53 +0000 |
| commit | cc25cbd24341d9e96c03756c09e841d504f6f4ef (patch) | |
| tree | 594dea171c12bd8eefb7cc9f247e53c2bd8641d9 | |
| parent | 5cf2920ef30457067bc024afa6499f7e15014bba (diff) | |
| parent | 3363a62068a5e8babb0dd9521207ead4bef90cac (diff) | |
| download | rust-cc25cbd24341d9e96c03756c09e841d504f6f4ef.tar.gz rust-cc25cbd24341d9e96c03756c09e841d504f6f4ef.zip | |
Auto merge of #95655 - kckeiks:create-hir-crate-items-query, r=cjgillot
Refactor HIR item-like traversal (part 1) Issue #95004 - Create hir_crate_items query which traverses tcx.hir_crate(()).owners to return a hir::ModuleItems - use tcx.hir_crate_items in tcx.hir().items() to return an iterator of hir::ItemId - use tcx.hir_crate_items to introduce a tcx.hir().par_items(impl Fn(hir::ItemId)) to traverse all items in parallel; Signed-off-by: Miguel Guarniz <mi9uel9@gmail.com> cc `@cjgillot`
| -rw-r--r-- | clippy_lints/src/same_name_method.rs | 7 | ||||
| -rw-r--r-- | tests/ui/same_name_method.stderr | 26 |
2 files changed, 19 insertions, 14 deletions
diff --git a/clippy_lints/src/same_name_method.rs b/clippy_lints/src/same_name_method.rs index 22b45896955..a01e2f2db3a 100644 --- a/clippy_lints/src/same_name_method.rs +++ b/clippy_lints/src/same_name_method.rs @@ -50,7 +50,12 @@ impl<'tcx> LateLintPass<'tcx> for SameNameMethod { fn check_crate_post(&mut self, cx: &LateContext<'tcx>) { let mut map = FxHashMap::<Res, ExistingName>::default(); - for item in cx.tcx.hir().items() { + for id in cx.tcx.hir().items() { + if !matches!(cx.tcx.hir().def_kind(id.def_id), DefKind::Impl) { + continue; + } + + let item = cx.tcx.hir().item(id); if let ItemKind::Impl(Impl { items, of_trait, diff --git a/tests/ui/same_name_method.stderr b/tests/ui/same_name_method.stderr index c32c3dd9880..cf06eb32e0c 100644 --- a/tests/ui/same_name_method.stderr +++ b/tests/ui/same_name_method.stderr @@ -12,6 +12,19 @@ LL | fn foo() {} | ^^^^^^^^^^^ error: method's name is the same as an existing method in a trait + --> $DIR/same_name_method.rs:34:13 + | +LL | fn clone() {} + | ^^^^^^^^^^^^^ + | +note: existing `clone` defined here + --> $DIR/same_name_method.rs:30:18 + | +LL | #[derive(Clone)] + | ^^^^^ + = note: this error originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: method's name is the same as an existing method in a trait --> $DIR/same_name_method.rs:44:13 | LL | fn foo() {} @@ -47,18 +60,5 @@ note: existing `foo` defined here LL | impl T1 for S {} | ^^^^^^^^^^^^^^^^ -error: method's name is the same as an existing method in a trait - --> $DIR/same_name_method.rs:34:13 - | -LL | fn clone() {} - | ^^^^^^^^^^^^^ - | -note: existing `clone` defined here - --> $DIR/same_name_method.rs:30:18 - | -LL | #[derive(Clone)] - | ^^^^^ - = note: this error originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) - error: aborting due to 5 previous errors |
