diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-02-08 07:13:29 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-08 07:13:29 +0100 |
| commit | fe26182281f3f43e2dd237e9c0335da9059c9959 (patch) | |
| tree | e017a4589900b73b71064ad5a2afdecbac707348 /compiler | |
| parent | 5e467f5dfab45487437bb0455d4f61e6b8d3a5ef (diff) | |
| parent | 6fdfdea8b11bd1c6b66d03869e7ec0bee0b94b4d (diff) | |
| download | rust-fe26182281f3f43e2dd237e9c0335da9059c9959.tar.gz rust-fe26182281f3f43e2dd237e9c0335da9059c9959.zip | |
Rollup merge of #107779 - compiler-errors:issue-107775, r=jackh726
Remove astconv usage in diagnostic Fixes #107775 Location of the test sucks, I know, but I needed to put it somewhere :sweat: The issue here is that the root cause of the issue has nothing to do with what's being tested, so I couldn't really give it a better name. Oh well.
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs b/compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs index 05e97653412..eaad57d8c2e 100644 --- a/compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs +++ b/compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs @@ -1336,16 +1336,17 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { hir::Path { segments: [segment], .. }, )) | hir::ExprKind::Path(QPath::TypeRelative(ty, segment)) => { - let self_ty = self.astconv().ast_ty_to_ty(ty); - if let Ok(pick) = self.probe_for_name( - Mode::Path, - Ident::new(capitalized_name, segment.ident.span), - Some(expected_ty), - IsSuggestion(true), - self_ty, - expr.hir_id, - ProbeScope::TraitsInScope, - ) { + if let Some(self_ty) = self.typeck_results.borrow().node_type_opt(ty.hir_id) + && let Ok(pick) = self.probe_for_name( + Mode::Path, + Ident::new(capitalized_name, segment.ident.span), + Some(expected_ty), + IsSuggestion(true), + self_ty, + expr.hir_id, + ProbeScope::TraitsInScope, + ) + { (pick.item, segment) } else { return false; |
