diff options
| author | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2022-09-27 13:02:44 +0000 |
|---|---|---|
| committer | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2022-10-07 19:43:46 +0000 |
| commit | 70d39abbc294ef54a9c900a5d0075f3973c91ece (patch) | |
| tree | 9febd7587e7882ba0871a74894bbe40cf8360c28 /compiler/rustc_hir_analysis/src/check/writeback.rs | |
| parent | 9eb69e82e0e4bcbedb4f21f392210204ad8588ab (diff) | |
| download | rust-70d39abbc294ef54a9c900a5d0075f3973c91ece.tar.gz rust-70d39abbc294ef54a9c900a5d0075f3973c91ece.zip | |
Remap hidden types from typeck before storing them in the TypeckResult
Diffstat (limited to 'compiler/rustc_hir_analysis/src/check/writeback.rs')
| -rw-r--r-- | compiler/rustc_hir_analysis/src/check/writeback.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler/rustc_hir_analysis/src/check/writeback.rs b/compiler/rustc_hir_analysis/src/check/writeback.rs index f789978ae7e..9aeee091fdd 100644 --- a/compiler/rustc_hir_analysis/src/check/writeback.rs +++ b/compiler/rustc_hir_analysis/src/check/writeback.rs @@ -536,7 +536,8 @@ impl<'cx, 'tcx> WritebackCx<'cx, 'tcx> { let opaque_types = self.fcx.infcx.inner.borrow_mut().opaque_type_storage.take_opaque_types(); for (opaque_type_key, decl) in opaque_types { - let hidden_type = self.resolve(decl.hidden_type.ty, &decl.hidden_type.span); + let hidden_type = self.resolve(decl.hidden_type, &decl.hidden_type.span); + let opaque_type_key = self.resolve(opaque_type_key, &decl.hidden_type.span); struct RecursionChecker { def_id: LocalDefId, @@ -559,6 +560,14 @@ impl<'cx, 'tcx> WritebackCx<'cx, 'tcx> { continue; } + let hidden_type = hidden_type + .remap_generic_params_to_declaration_params( + opaque_type_key, + self.fcx.infcx.tcx, + true, + ) + .ty; + self.typeck_results.concrete_opaque_types.insert(opaque_type_key.def_id, hidden_type); } } |
