| // Issue #3902. We are (at least currently) unable to infer `Self` | |
| // based on `T`, even though there is only a single impl, because of | |
| // the possibility of associated types and other things (basically: no | |
| // constraints on `Self` here at all). | |
| mod base { | |
| pub trait HasNew<T> { | |
| fn new() -> T; | |
| fn dummy(&self) { } | |
| } | |
| pub struct Foo { | |
| dummy: (), | |
| } | |
| impl HasNew<Foo> for Foo { | |
| fn new() -> Foo { | |
| Foo { dummy: () } | |
| } | |
| } | |
| } | |
| pub fn foo() { | |
| let _f: base::Foo = base::HasNew::new(); | |
| //~^ ERROR E0790 | |
| } | |
| fn main() { } |