// 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() {} |