1
Fork 0
rust/src/test/ui/traits/object/supertrait-lifetime-bound.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

20 lines
503 B
Rust
Raw Normal View History

// ignore-compare-mode-nll
// revisions: base nll
// [nll]compile-flags: -Zborrowck=mir
2022-01-31 19:11:23 -08:00
trait Foo: 'static { }
2022-01-31 19:11:23 -08:00
trait Bar<T>: Foo { }
2022-01-31 19:11:23 -08:00
fn test1<T: ?Sized + Bar<S>, S>() { }
2022-01-31 19:11:23 -08:00
fn test2<'a>() {
// Here: the type `dyn Bar<&'a u32>` references `'a`,
// and so it does not outlive `'static`.
test1::<dyn Bar<&'a u32>, _>();
//[base]~^ ERROR the type `(dyn Bar<&'a u32> + 'static)` does not fulfill the required lifetime
//[nll]~^^ ERROR lifetime may not live long enough
}
2022-01-31 19:11:23 -08:00
fn main() { }