about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2021-02-28 22:20:15 +0900
committerYuki Okushi <huyuumi.dev@gmail.com>2021-02-28 22:20:15 +0900
commit9adb462e6c859cf2adf5948f9e32d706200b7b54 (patch)
treeb47f4d86bfd024d18042413db6a5dfabb3a727a0 /compiler
parent6e2801c44eadc5cd05532a19fe1093ef6f041abe (diff)
downloadrust-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.rs3
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(