about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSosthène Guédon <sosthene@guedon.gdn>2022-11-02 19:02:46 +0100
committerSosthène Guédon <sosthene@guedon.gdn>2022-11-20 13:45:12 +0100
commita867c17ab36926a575a57e24a03e99db672055f2 (patch)
treef5605219f90fe84ec3af0b7b4bdbbb68a3dd6030
parent3428da6e00c025b3b3141a9fe7c65ee5008e07f3 (diff)
downloadrust-a867c17ab36926a575a57e24a03e99db672055f2.tar.gz
rust-a867c17ab36926a575a57e24a03e99db672055f2.zip
Improve code
-rw-r--r--clippy_lints/src/functions/misnamed_getters.rs13
-rw-r--r--tests/ui/misnamed_getters.rs23
2 files changed, 30 insertions, 6 deletions
diff --git a/clippy_lints/src/functions/misnamed_getters.rs b/clippy_lints/src/functions/misnamed_getters.rs
index 3859c7a62ea..0d50ec37989 100644
--- a/clippy_lints/src/functions/misnamed_getters.rs
+++ b/clippy_lints/src/functions/misnamed_getters.rs
@@ -16,7 +16,7 @@ pub fn check_fn(
     span: Span,
     _hir_id: HirId,
 ) {
-    let FnKind::Method(ref ident, sig) = kind else {
+    let FnKind::Method(ref ident, _) = kind else {
             return;
         };
 
@@ -27,7 +27,7 @@ pub fn check_fn(
 
     let name = ident.name.as_str();
 
-    let name = match sig.decl.implicit_self {
+    let name = match decl.implicit_self {
         ImplicitSelfKind::MutRef => {
             let Some(name) = name.strip_suffix("_mut") else {
                     return;
@@ -53,11 +53,12 @@ pub fn check_fn(
     };
     let expr_span = block_expr.span;
 
-    let mut expr = block_expr;
     // Accept &<expr>, &mut <expr> and <expr>
-    if let ExprKind::AddrOf(_, _, tmp) = expr.kind {
-        expr = tmp;
-    }
+    let expr = if let ExprKind::AddrOf(_, _, tmp) = block_expr.kind {
+        tmp
+    } else {
+        block_expr
+    };
     let (self_data, used_ident) = if_chain! {
         if let ExprKind::Field(self_data, ident) = expr.kind;
         if ident.name.as_str() != name;
diff --git a/tests/ui/misnamed_getters.rs b/tests/ui/misnamed_getters.rs
index 7d490f4b143..6f161818251 100644
--- a/tests/ui/misnamed_getters.rs
+++ b/tests/ui/misnamed_getters.rs
@@ -60,6 +60,29 @@ impl B {
     unsafe fn c_mut(&mut self) -> &mut u8 {
         &mut self.a
     }
+
+    unsafe fn a_unchecked(&self) -> &u8 {
+        &self.b
+    }
+    unsafe fn a_unchecked_mut(&mut self) -> &mut u8 {
+        &mut self.b
+    }
+
+    unsafe fn b_unchecked(self) -> u8 {
+        self.a
+    }
+
+    unsafe fn b_unchecked_mut(&mut self) -> &mut u8 {
+        &mut self.a
+    }
+
+    unsafe fn c_unchecked(&self) -> &u8 {
+        &self.b
+    }
+
+    unsafe fn c_unchecked_mut(&mut self) -> &mut u8 {
+        &mut self.a
+    }
 }
 
 fn main() {