struct A {} fn main() { let _a = A {}; _a.new(1); //~^ ERROR no method named `new` found for struct `A` in the current scope } trait M { fn new(_a: i32); } impl M for A { fn new(_a: i32) {} } trait N { fn new(_a: Self, _b: i32); } impl N for A { fn new(_a: Self, _b: i32) {} } trait O { fn new(_a: Self, _b: i32); } impl O for A { fn new(_a: A, _b: i32) {} } struct S; trait TraitA { fn f(self); } trait TraitB { fn f(self); } impl TraitA for T { fn f(self) {} } impl TraitB for T { fn f(self) {} } fn test() { S.f(); //~^ multiple applicable items in scope }