//@ 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<C> { | |
fn init<B: Extensible<Config = C>>(&mut self) -> () | |
where | |
// This clause generates a `for<'de> C: Sized` candidate | |
B::Config: DeserializeOwned, | |
{ | |
} | |
} | |
fn main() {} |