| // This tests issue #79683: note in the error message that the trait is |
| // explicitly unimplemented instead of suggesting to implement it. |
| |
| #![feature(negative_impls)] |
| |
| struct Qux; |
| //~^ NOTE method `clone` not found for this |
| //~^^ NOTE method `foo` not found for this |
| |
| impl !Clone for Qux {} |
| |
| trait Bar { |
| fn bar(&self); |
| } |
| |
| impl !Bar for u32 {} |
| |
| trait Foo { |
| fn foo(&self); |
| } |
| //~^^^ NOTE `Foo` defines an item `foo`, perhaps you need to implement it |
| |
| trait FooBar { |
| fn foo(&self); |
| } |
| |
| impl !Foo for Qux {} |
| |
| impl !FooBar for Qux {} |
| |
| impl !FooBar for u32 {} |
| |
| fn main() { |
| Qux.clone(); |
| //~^ ERROR no method named `clone` found for struct `Qux` |
| //~| NOTE method not found in `Qux` |
| //~| NOTE `Clone` defines an item `clone`, but is explicitly unimplemented |
| |
| 0_u32.bar(); |
| //~^ ERROR no method named `bar` found for type `u32` |
| //~| NOTE method not found in `u32` |
| //~| NOTE `Bar` defines an item `bar`, but is explicitly unimplemented |
| |
| Qux.foo(); |
| //~^ ERROR no method named `foo` found for struct `Qux` |
| //~| NOTE method not found in `Qux` |
| //~| NOTE the following traits define an item `foo`, but are explicitly unimplemented |
| |
| 0_u32.foo(); |
| //~^ ERROR no method named `foo` found for type `u32` |
| //~| NOTE method not found in `u32` |
| //~| NOTE `FooBar` defines an item `foo`, but is explicitly unimplemented |
| } |