about summary refs log tree commit diff
diff options
context:
space:
mode:
authorQuentin Santos <qsantos@qsantos.fr>2025-01-09 18:35:00 +0100
committerQuentin Santos <qsantos@qsantos.fr>2025-01-09 18:40:33 +0100
commite42e354f653f711fa4e69d73c1b25dc5a5c051c9 (patch)
tree12a5aeb7550936daa0e8da0420037d42848bdfc4
parent19e305bb57a7595f2a8d81f521c0dd8bf854e739 (diff)
downloadrust-e42e354f653f711fa4e69d73c1b25dc5a5c051c9.tar.gz
rust-e42e354f653f711fa4e69d73c1b25dc5a5c051c9.zip
Remove needless check of returned type
We are checking that we are calling the `as_bytes()` method of `String`
or `str`. Checking that it returns a `slice()` does not add anything.
-rw-r--r--clippy_lints/src/methods/mod.rs4
-rw-r--r--clippy_lints/src/methods/needless_as_bytes.rs8
2 files changed, 5 insertions, 7 deletions
diff --git a/clippy_lints/src/methods/mod.rs b/clippy_lints/src/methods/mod.rs
index 51351f6b7cd..fa44bda83ee 100644
--- a/clippy_lints/src/methods/mod.rs
+++ b/clippy_lints/src/methods/mod.rs
@@ -4925,7 +4925,7 @@ impl Methods {
                 ("is_empty", []) => {
                     match method_call(recv) {
                         Some(("as_bytes", prev_recv, [], _, _)) => {
-                            needless_as_bytes::check(cx, "is_empty", recv, prev_recv, expr.span);
+                            needless_as_bytes::check(cx, "is_empty", prev_recv, expr.span);
                         },
                         Some(("as_str", recv, [], as_str_span, _)) => {
                             redundant_as_str::check(cx, expr, recv, as_str_span, span);
@@ -4963,7 +4963,7 @@ impl Methods {
                 },
                 ("len", []) => {
                     if let Some(("as_bytes", prev_recv, [], _, _)) = method_call(recv) {
-                        needless_as_bytes::check(cx, "len", recv, prev_recv, expr.span);
+                        needless_as_bytes::check(cx, "len", prev_recv, expr.span);
                     }
                 },
                 ("lock", []) => {
diff --git a/clippy_lints/src/methods/needless_as_bytes.rs b/clippy_lints/src/methods/needless_as_bytes.rs
index 75e9f317230..451c7f74694 100644
--- a/clippy_lints/src/methods/needless_as_bytes.rs
+++ b/clippy_lints/src/methods/needless_as_bytes.rs
@@ -8,11 +8,9 @@ use rustc_span::Span;
 
 use super::NEEDLESS_AS_BYTES;
 
-pub fn check(cx: &LateContext<'_>, method: &str, recv: &Expr<'_>, prev_recv: &Expr<'_>, span: Span) {
-    if cx.typeck_results().expr_ty_adjusted(recv).peel_refs().is_slice()
-        && let ty1 = cx.typeck_results().expr_ty_adjusted(prev_recv).peel_refs()
-        && (is_type_lang_item(cx, ty1, LangItem::String) || ty1.is_str())
-    {
+pub fn check(cx: &LateContext<'_>, method: &str, prev_recv: &Expr<'_>, span: Span) {
+    let ty1 = cx.typeck_results().expr_ty_adjusted(prev_recv).peel_refs();
+    if is_type_lang_item(cx, ty1, LangItem::String) || ty1.is_str() {
         let mut app = Applicability::MachineApplicable;
         let sugg = Sugg::hir_with_context(cx, prev_recv, span.ctxt(), "..", &mut app);
         span_lint_and_sugg(