2015-08-07 12:25:23 -05:00
|
|
|
// 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`.
|
|
|
|
|
2020-10-30 09:34:12 -05:00
|
|
|
// check-pass
|
2015-08-07 12:25:23 -05:00
|
|
|
#![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>();
|
|
|
|
}
|
|
|
|
|
2018-10-31 07:08:01 -05:00
|
|
|
|
|
|
|
fn main() { }
|