// check-pass pub trait Deserialize<'de>: Sized {} pub trait DeserializeOwned: for<'de> Deserialize<'de> {} pub trait Extensible { type Config; } // The `C` here generates a `C: Sized` candidate pub trait Installer { fn init>(&mut self) -> () where // This clause generates a `for<'de> C: Sized` candidate B::Config: DeserializeOwned, { } } fn main() {}