about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authoryukang <moorekang@gmail.com>2022-12-24 02:41:06 +0800
committeryukang <moorekang@gmail.com>2023-01-14 17:11:04 +0800
commit7d99866bfc43f34dbdd84f4bf982c48a51b70a99 (patch)
treec01620bc933dd4f3fc811e87738cdcee2e32e9f1 /compiler
parent44a500c8c187b245638684748f54bd6ec67e0b25 (diff)
downloadrust-7d99866bfc43f34dbdd84f4bf982c48a51b70a99.tar.gz
rust-7d99866bfc43f34dbdd84f4bf982c48a51b70a99.zip
fix #105061, Fix unused_parens issue for higher ranked function pointers
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_lint/src/early.rs6
-rw-r--r--compiler/rustc_lint/src/unused.rs1
2 files changed, 6 insertions, 1 deletions
diff --git a/compiler/rustc_lint/src/early.rs b/compiler/rustc_lint/src/early.rs
index f9b2df49592..3901751c79f 100644
--- a/compiler/rustc_lint/src/early.rs
+++ b/compiler/rustc_lint/src/early.rs
@@ -248,6 +248,12 @@ impl<'a, T: EarlyLintPass> ast_visit::Visitor<'a> for EarlyContextAndPass<'a, T>
     }
 
     fn visit_where_predicate(&mut self, p: &'a ast::WherePredicate) {
+        use rustc_ast::{WhereBoundPredicate, WherePredicate};
+        if let WherePredicate::BoundPredicate(WhereBoundPredicate { bounded_ty, .. }) = p &&
+            let ast::TyKind::BareFn(b) = &bounded_ty.kind &&
+            b.generic_params.len() > 0 {
+                return;
+        }
         ast_visit::walk_where_predicate(self, p);
     }
 
diff --git a/compiler/rustc_lint/src/unused.rs b/compiler/rustc_lint/src/unused.rs
index ac2b32b44e6..94a33138107 100644
--- a/compiler/rustc_lint/src/unused.rs
+++ b/compiler/rustc_lint/src/unused.rs
@@ -1002,7 +1002,6 @@ impl EarlyLintPass for UnusedParens {
         if let ast::TyKind::Paren(r) = &ty.kind {
             match &r.kind {
                 ast::TyKind::TraitObject(..) => {}
-                ast::TyKind::BareFn(b) if b.generic_params.len() > 0 => {}
                 ast::TyKind::ImplTrait(_, bounds) if bounds.len() > 1 => {}
                 ast::TyKind::Array(_, len) => {
                     self.check_unused_delims_expr(