Skip to content

Commit 72aa180

Browse files
committed
use rustc's criteria for a temporary
1 parent d272540 commit 72aa180

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

clippy_lints/src/casts/borrow_as_ptr.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
use std::ops::ControlFlow;
2-
1+
use clippy_utils::diagnostics::span_lint_and_sugg;
32
use clippy_utils::is_no_std_crate;
43
use clippy_utils::source::snippet_with_context;
5-
use clippy_utils::{diagnostics::span_lint_and_sugg, visitors::for_each_unconsumed_temporary};
64
use rustc_errors::Applicability;
75
use rustc_hir::{BorrowKind, Expr, ExprKind, Mutability, Ty, TyKind};
86
use rustc_lint::LateContext;
7+
use rustc_middle::ty::adjustment::Adjust;
98

109
use super::BORROW_AS_PTR;
1110

@@ -26,7 +25,12 @@ pub(super) fn check<'tcx>(
2625
let mut app = Applicability::MachineApplicable;
2726
let snip = snippet_with_context(cx, e.span, cast_expr.span.ctxt(), "..", &mut app).0;
2827
// Fix #9884
29-
if for_each_unconsumed_temporary(cx, expr, |_| ControlFlow::Break(true)).is_break() {
28+
if !e.is_place_expr(|base| {
29+
cx.typeck_results()
30+
.adjustments()
31+
.get(base.hir_id)
32+
.is_some_and(|x| x.iter().any(|adj| matches!(adj.kind, Adjust::Deref(_))))
33+
}) {
3034
return;
3135
}
3236

0 commit comments

Comments
 (0)