| // Tests that methods that implement a trait cannot be invoked | |
| // unless the trait is imported. | |
| mod Lib { | |
| pub trait TheTrait { | |
| fn the_fn(&self); | |
| } | |
| pub struct TheStruct; | |
| impl TheTrait for TheStruct { | |
| fn the_fn(&self) {} | |
| } | |
| } | |
| mod Import { | |
| // Trait is in scope here: | |
| use Lib::TheStruct; | |
| use Lib::TheTrait; | |
| fn call_the_fn(s: &TheStruct) { | |
| s.the_fn(); | |
| } | |
| } | |
| mod NoImport { | |
| // Trait is not in scope here: | |
| use Lib::TheStruct; | |
| fn call_the_fn(s: &TheStruct) { | |
| s.the_fn(); | |
| //~^ ERROR E0599 | |
| } | |
| } | |
| fn main() {} |