unerase regions in infer_placeholder_type

This commit is contained in:
Matthew Jasper 2020-04-02 20:31:51 +01:00
parent 235938d1ac
commit a12ebd3027
3 changed files with 19 additions and 4 deletions

View File

@ -655,7 +655,11 @@ fn infer_placeholder_type(
}
}
ty
// Typeck doesn't expect erased regions to be returned from `type_of`.
tcx.fold_regions(&ty, &mut false, |r, _| match r {
ty::ReErased => tcx.lifetimes.re_static,
_ => r,
})
}
fn report_assoc_ty_on_inherent_impl(tcx: TyCtxt<'_>, span: Span) {

View File

@ -35,6 +35,11 @@ const C = 42;
//~| HELP provide a type for the item
//~| SUGGESTION C: i32
const D = &&42;
//~^ ERROR missing type for `const` item
//~| HELP provide a type for the item
//~| SUGGESTION D: &&i32
static S = Vec::<String>::new();
//~^ ERROR missing type for `static` item
//~| HELP provide a type for the item

View File

@ -4,14 +4,20 @@ error: missing type for `const` item
LL | const C = 42;
| ^ help: provide a type for the item: `C: i32`
error: missing type for `const` item
--> $DIR/const-no-type.rs:38:7
|
LL | const D = &&42;
| ^ help: provide a type for the item: `D: &&i32`
error: missing type for `static` item
--> $DIR/const-no-type.rs:38:8
--> $DIR/const-no-type.rs:43:8
|
LL | static S = Vec::<String>::new();
| ^ help: provide a type for the item: `S: std::vec::Vec<std::string::String>`
error: missing type for `static mut` item
--> $DIR/const-no-type.rs:43:12
--> $DIR/const-no-type.rs:48:12
|
LL | static mut SM = "abc";
| ^^ help: provide a type for the item: `SM: &str`
@ -34,5 +40,5 @@ error: missing type for `static mut` item
LL | static mut SM2 = "abc";
| ^^^ help: provide a type for the item: `SM2: <type>`
error: aborting due to 6 previous errors
error: aborting due to 7 previous errors