summaryrefslogtreecommitdiffstats
path: root/tests/ui/traits/non_lifetime_binders/placeholders-dont-outlive-static.rs
blob: ae6866511e277a7a5f7fc7ca2aad068e292180b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// revisions: good bad

//[good] known-bug: unknown
// `for<T> T: 'static` doesn't imply itself when processing outlives obligations

#![feature(non_lifetime_binders)]
//[bad]~^ WARN the feature `non_lifetime_binders` is incomplete

fn foo() where for<T> T: 'static {}

#[cfg(bad)]
fn bad() {
    foo();
    //[bad]~^ ERROR the placeholder type `!1_"T"` may not live long enough
}

#[cfg(good)]
fn good() where for<T> T: 'static {
    foo();
}

fn main() {}