Skip to content

Commit

Permalink
unerase regions in infer_placeholder_type
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewjasper committed Apr 2, 2020
1 parent 235938d commit a12ebd3
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 4 deletions.
6 changes: 5 additions & 1 deletion src/librustc_typeck/collect/type_of.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
5 changes: 5 additions & 0 deletions src/test/ui/suggestions/const-no-type.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 9 additions & 3 deletions src/test/ui/suggestions/const-no-type.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand All @@ -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

0 comments on commit a12ebd3

Please sign in to comment.