// check-pass pub trait Foo { type Error: Error; fn foo(&self, stream: &::Span); } pub struct Wrapper(Inner); impl Foo for Wrapper where Inner: Foo, { type Error = E; fn foo(&self, stream: &::Span) { todo!() } } pub trait Error { type Span; } fn main() {}