| trait T1 {} |
| trait T2 {} |
| trait T3 {} |
| trait T4 {} |
| |
| impl<B: T2> T1 for Wrapper<B> {} |
| |
| impl T2 for i32 {} |
| impl T3 for i32 {} |
| |
| impl<A: T3> T2 for Burrito<A> {} |
| |
| struct Wrapper<W> { |
| value: W, |
| } |
| |
| struct Burrito<F> { |
| filling: F, |
| } |
| |
| impl<It: Iterator> T1 for Option<It> {} |
| |
| impl<'a, A: T1> T1 for &'a A {} |
| |
| fn want<V: T1>(_x: V) {} |
| |
| enum ExampleTuple<T> { |
| ExampleTupleVariant(T), |
| } |
| use ExampleDifferentTupleVariantName as ExampleYetAnotherTupleVariantName; |
| use ExampleTuple as ExampleOtherTuple; |
| use ExampleTuple::ExampleTupleVariant as ExampleDifferentTupleVariantName; |
| use ExampleTuple::*; |
| |
| impl<A> T1 for ExampleTuple<A> where A: T3 {} |
| |
| enum ExampleStruct<T> { |
| ExampleStructVariant { field: T }, |
| } |
| use ExampleDifferentStructVariantName as ExampleYetAnotherStructVariantName; |
| use ExampleStruct as ExampleOtherStruct; |
| use ExampleStruct::ExampleStructVariant as ExampleDifferentStructVariantName; |
| use ExampleStruct::*; |
| |
| impl<A> T1 for ExampleStruct<A> where A: T3 {} |
| |
| struct ExampleActuallyTupleStruct<T>(T, i32); |
| use ExampleActuallyTupleStruct as ExampleActuallyTupleStructOther; |
| |
| impl<A> T1 for ExampleActuallyTupleStruct<A> where A: T3 {} |
| |
| fn example<Q>(q: Q) { |
| want(Wrapper { value: Burrito { filling: q } }); |
| //~^ ERROR the trait bound `Q: T3` is not satisfied [E0277] |
| |
| want(Some(())); |
| //~^ ERROR `()` is not an iterator [E0277] |
| |
| want(Some(q)); |
| //~^ ERROR `Q` is not an iterator [E0277] |
| |
| want(&Some(q)); |
| //~^ ERROR `Q` is not an iterator [E0277] |
| |
| want(&ExampleTuple::ExampleTupleVariant(q)); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleTupleVariant(q)); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleOtherTuple::ExampleTupleVariant(q)); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleDifferentTupleVariantName(q)); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleYetAnotherTupleVariantName(q)); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleStruct::ExampleStructVariant { field: q }); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleStructVariant { field: q }); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleOtherStruct::ExampleStructVariant { field: q }); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleDifferentStructVariantName { field: q }); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleYetAnotherStructVariantName { field: q }); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleActuallyTupleStruct(q, 0)); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| |
| want(&ExampleActuallyTupleStructOther(q, 0)); |
| //~^ ERROR `Q: T3` is not satisfied [E0277] |
| } |
| |
| fn main() {} |