2022-04-19 12:56:18 +02:00
|
|
|
// revisions: base nll
|
|
|
|
|
// ignore-compare-mode-nll
|
|
|
|
|
//[nll] compile-flags: -Z borrowck=mir
|
|
|
|
|
|
2015-07-06 20:40:12 +03:00
|
|
|
fn static_id<'a,'b>(t: &'a ()) -> &'static ()
|
|
|
|
|
where 'a: 'static { t }
|
2022-03-14 15:56:37 +01:00
|
|
|
//~^ WARN unnecessary lifetime parameter `'a`
|
|
|
|
|
|
2015-07-06 20:40:12 +03:00
|
|
|
fn static_id_indirect<'a,'b>(t: &'a ()) -> &'static ()
|
|
|
|
|
where 'a: 'b, 'b: 'static { t }
|
2022-03-14 15:56:37 +01:00
|
|
|
//~^ WARN unnecessary lifetime parameter `'b`
|
|
|
|
|
|
2015-07-06 20:40:12 +03:00
|
|
|
fn static_id_wrong_way<'a>(t: &'a ()) -> &'static () where 'static: 'a {
|
2022-04-19 12:56:18 +02:00
|
|
|
t
|
|
|
|
|
//[base]~^ ERROR E0312
|
|
|
|
|
//[nll]~^^ ERROR lifetime may not live long enough
|
2015-07-06 20:40:12 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn error(u: &(), v: &()) {
|
2022-04-19 12:56:18 +02:00
|
|
|
static_id(&u);
|
|
|
|
|
//[base]~^ ERROR `u` has an anonymous lifetime `'_` but it needs to satisfy a `'static` lifetime requirement [E0759]
|
|
|
|
|
//[nll]~^^ ERROR borrowed data escapes outside of function [E0521]
|
|
|
|
|
static_id_indirect(&v);
|
|
|
|
|
//[base]~^ ERROR `v` has an anonymous lifetime `'_` but it needs to satisfy a `'static` lifetime requirement [E0759]
|
|
|
|
|
//[nll]~^^ ERROR borrowed data escapes outside of function [E0521]
|
2015-07-06 20:40:12 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn main() {}
|