1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
// check-pass trait AsBufferView { type Device; } trait Error { type Span; } trait Foo { type Error: Error; fn foo(&self) -> &<Self::Error as Error>::Span; } impl<D: Error, VBuf0> Foo for VBuf0 where VBuf0: AsBufferView<Device = D>, { type Error = D; fn foo(&self) -> &<Self::Error as Error>::Span { todo!() } } fn main() {}