diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2021-02-28 22:20:15 +0900 |
|---|---|---|
| committer | Yuki Okushi <huyuumi.dev@gmail.com> | 2021-02-28 22:20:15 +0900 |
| commit | 9adb462e6c859cf2adf5948f9e32d706200b7b54 (patch) | |
| tree | b47f4d86bfd024d18042413db6a5dfabb3a727a0 /compiler | |
| parent | 6e2801c44eadc5cd05532a19fe1093ef6f041abe (diff) | |
| download | rust-9adb462e6c859cf2adf5948f9e32d706200b7b54.tar.gz rust-9adb462e6c859cf2adf5948f9e32d706200b7b54.zip | |
Erase late bound regions to avoid ICE
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_typeck/src/check/fn_ctxt/suggestions.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_typeck/src/check/fn_ctxt/suggestions.rs b/compiler/rustc_typeck/src/check/fn_ctxt/suggestions.rs index 1f50ad5779e..9f15993e471 100644 --- a/compiler/rustc_typeck/src/check/fn_ctxt/suggestions.rs +++ b/compiler/rustc_typeck/src/check/fn_ctxt/suggestions.rs @@ -11,7 +11,7 @@ use rustc_hir::lang_items::LangItem; use rustc_hir::{ExprKind, ItemKind, Node}; use rustc_infer::infer; use rustc_middle::lint::in_external_macro; -use rustc_middle::ty::{self, Ty}; +use rustc_middle::ty::{self, Binder, Ty}; use rustc_span::symbol::kw; use std::iter; @@ -487,6 +487,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { let found = self.resolve_vars_with_obligations(found); if let hir::FnRetTy::Return(ty) = fn_decl.output { let ty = AstConv::ast_ty_to_ty(self, ty); + let ty = self.tcx.erase_late_bound_regions(Binder::bind(ty)); let ty = self.normalize_associated_types_in(expr.span, ty); if self.can_coerce(found, ty) { err.multipart_suggestion( |
