// Test that the variance computation considers types/regions that // appear in projections to be invariant. #![feature(rustc_attrs)] trait Trait<'a> { type Type; fn method(&'a self) { } } #[rustc_variance] struct Foo<'a, T : Trait<'a>> { //~ ERROR [+, +] field: (T, &'a ()) } #[rustc_variance] struct Bar<'a, T : Trait<'a>> { //~ ERROR [o, o] field: >::Type } fn main() { }