about summary refs log tree commit diff
path: root/clippy_lints/src
diff options
context:
space:
mode:
authory21 <30553356+y21@users.noreply.github.com>2024-12-21 21:09:40 +0100
committery21 <30553356+y21@users.noreply.github.com>2024-12-21 21:09:40 +0100
commit15ab2ff55adbacb263190f74aba8735c129db420 (patch)
tree0f4b9679e961237cc8eeb8257aea35fe0769658d /clippy_lints/src
parentb8e569e9c006100be58155d037735561fe600faf (diff)
downloadrust-15ab2ff55adbacb263190f74aba8735c129db420.tar.gz
rust-15ab2ff55adbacb263190f74aba8735c129db420.zip
use the correct `ParamEnv` when checking future's return type in `missing_errors_doc`
Diffstat (limited to 'clippy_lints/src')
-rw-r--r--clippy_lints/src/doc/missing_headers.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/clippy_lints/src/doc/missing_headers.rs b/clippy_lints/src/doc/missing_headers.rs
index 40377dd841e..3e2b7055de4 100644
--- a/clippy_lints/src/doc/missing_headers.rs
+++ b/clippy_lints/src/doc/missing_headers.rs
@@ -1,6 +1,6 @@
 use super::{DocHeaders, MISSING_ERRORS_DOC, MISSING_PANICS_DOC, MISSING_SAFETY_DOC, UNNECESSARY_SAFETY_DOC};
 use clippy_utils::diagnostics::{span_lint, span_lint_and_note};
-use clippy_utils::ty::{implements_trait, is_type_diagnostic_item};
+use clippy_utils::ty::{implements_trait_with_env, is_type_diagnostic_item};
 use clippy_utils::{is_doc_hidden, return_ty};
 use rustc_hir::{BodyId, FnSig, OwnerId, Safety};
 use rustc_lint::LateContext;
@@ -70,7 +70,14 @@ pub fn check(
             && let typeck = cx.tcx.typeck_body(body_id)
             && let body = cx.tcx.hir().body(body_id)
             && let ret_ty = typeck.expr_ty(body.value)
-            && implements_trait(cx, ret_ty, future, &[])
+            && implements_trait_with_env(
+                cx.tcx,
+                ty::TypingEnv::non_body_analysis(cx.tcx, owner_id.def_id),
+                ret_ty,
+                future,
+                Some(owner_id.def_id.to_def_id()),
+                &[],
+            )
             && let ty::Coroutine(_, subs) = ret_ty.kind()
             && is_type_diagnostic_item(cx, subs.as_coroutine().return_ty(), sym::Result)
         {