Fix ICE with explicit late-bound lifetimes

This commit is contained in:
Nathan Corbyn 2020-05-21 19:51:39 +01:00
parent 4512721156
commit fa351eefa0
5 changed files with 242 additions and 132 deletions

View file

@ -0,0 +1,19 @@
// run-pass
#![allow(unused)]
struct S;
impl S {
fn func<'a, U>(&'a self) -> U {
todo!()
}
}
fn dont_crash<'a, U>() -> U {
S.func::<'a, U>()
//~^ WARN cannot specify lifetime arguments explicitly
//~| WARN this was previously accepted
}
fn main() {}

View file

@ -0,0 +1,15 @@
warning: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
--> $DIR/issue-72278.rs:14:14
|
LL | fn func<'a, U>(&'a self) -> U {
| -- the late bound lifetime parameter is introduced here
...
LL | S.func::<'a, U>()
| ^^
|
= note: `#[warn(late_bound_lifetime_arguments)]` on by default
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #42868 <https://github.com/rust-lang/rust/issues/42868>
warning: 1 warning emitted