about summary refs log tree commit diff
path: root/compiler/rustc_lint/src/async_fn_in_trait.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-10-05 06:19:35 +0000
committerbors <bors@rust-lang.org>2024-10-05 06:19:35 +0000
commit5a4ee43c387110736440cecc375cb5aedc441dbc (patch)
tree71f8bfc5b77e7d01efafb70c7d6e298d6c42b9f4 /compiler/rustc_lint/src/async_fn_in_trait.rs
parentd30c3924a4ef6ab4f331134562c145d5cec0179a (diff)
parentef17eb79bbc5c7f5b303e203c1095e2eb216f84b (diff)
downloadrust-5a4ee43c387110736440cecc375cb5aedc441dbc.tar.gz
rust-5a4ee43c387110736440cecc375cb5aedc441dbc.zip
Auto merge of #129244 - cjgillot:opaque-hir, r=compiler-errors
Make opaque types regular HIR nodes

Having opaque types as HIR owner introduces all sorts of complications. This PR proposes to make them regular HIR nodes instead.

I haven't gone through all the test changes yet, so there may be a few surprises.

Many thanks to `@camelid` for the first draft.
Fixes https://github.com/rust-lang/rust/issues/129023

Fixes #129099
Fixes #125843
Fixes #119716
Fixes #121422
Diffstat (limited to 'compiler/rustc_lint/src/async_fn_in_trait.rs')
-rw-r--r--compiler/rustc_lint/src/async_fn_in_trait.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/rustc_lint/src/async_fn_in_trait.rs b/compiler/rustc_lint/src/async_fn_in_trait.rs
index d9040207300..63a8a949e96 100644
--- a/compiler/rustc_lint/src/async_fn_in_trait.rs
+++ b/compiler/rustc_lint/src/async_fn_in_trait.rs
@@ -104,8 +104,9 @@ impl<'tcx> LateLintPass<'tcx> for AsyncFnInTrait {
                 return;
             }
 
-            let hir::FnRetTy::Return(hir::Ty { kind: hir::TyKind::OpaqueDef(def, ..), .. }) =
-                sig.decl.output
+            let hir::FnRetTy::Return(hir::Ty {
+                kind: hir::TyKind::OpaqueDef(opaq_def, ..), ..
+            }) = sig.decl.output
             else {
                 // This should never happen, but let's not ICE.
                 return;
@@ -114,7 +115,7 @@ impl<'tcx> LateLintPass<'tcx> for AsyncFnInTrait {
                 cx.tcx,
                 sig,
                 body,
-                def.owner_id.def_id,
+                opaq_def.def_id,
                 " + Send",
             );
             cx.tcx.emit_node_span_lint(