summaryrefslogtreecommitdiffstats
path: root/tests/ui/regions/regions-implied-bounds-projection-gap-2.rs
blob: a481a9cc5fe8e4f223476ffb4df68e083bbc1202 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Along with the other tests in this series, illustrates the
// "projection gap": in this test, we know that `T: 'x`, and that is
// enough to conclude that `T::Foo: 'x`.

// check-pass
#![allow(dead_code)]
#![allow(unused_variables)]

trait Trait1<'x> {
    type Foo;
}

// calling this fn should trigger a check that the type argument
// supplied is well-formed.
fn wf<T>() { }

fn func<'x, T:Trait1<'x>>(t: &'x T)
{
    wf::<&'x T::Foo>();
}


fn main() { }