//@ check-pass
#![feature(associated_type_defaults)]
pub struct Foo;
pub trait Bar: From<<Self as Bar>::Input> {
type Input = Self;
}
impl Bar for Foo {
// Will compile with explicit type:
// type Input = Self;
fn main() {}