// Taken from https://github.com/rust-lang/rust/issues/44454#issue-256435333 | |
trait Animal<X>: 'static {} | |
fn foo<Y, X>() | |
where | |
Y: Animal<X> + ?Sized, | |
{ | |
// `Y` implements `Animal<X>` so `Y` is 'static. | |
baz::<Y>() | |
} | |
fn bar<'a>(_arg: &'a i32) { | |
foo::<dyn Animal<&'a i32>, &'a i32>() //~ ERROR: lifetime may not live long enough | |
} | |
fn baz<T: 'static + ?Sized>() {} | |
fn main() { | |
let a = 5; | |
bar(&a); | |
} |