`non_local_bounds` would only find non local bounds that strictly bound a given region, but it's possible that a local region is equated to 'static when showing a type referencing a locally bound lifetime, such as `dyn Any + 'a` in the tests added, is well-formed. In this case we should return 'static.
12 lines
258 B
Rust
12 lines
258 B
Rust
// Regression test for #139004
|
|
use std::any::Any;
|
|
|
|
type B = Box<dyn for<'a> Fn(&(dyn Any + 'a)) -> Box<dyn Any + 'a>>;
|
|
|
|
fn foo<E>() -> B {
|
|
Box::new(|e| Box::new(e.is::<E>()))
|
|
//~^ ERROR the parameter type `E` may not live long enough
|
|
}
|
|
|
|
fn main() {}
|