2019-03-04 21:24:52 -06:00
|
|
|
trait Trait {
|
|
|
|
fn exists(self) -> ();
|
|
|
|
|
|
|
|
fn not_object_safe() -> Self;
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Trait for () {
|
|
|
|
fn exists(self) -> () {
|
|
|
|
}
|
|
|
|
|
|
|
|
fn not_object_safe() -> Self {
|
|
|
|
()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
// object-safe or not, this call is OK
|
|
|
|
Trait::exists(());
|
|
|
|
// no object safety error
|
|
|
|
Trait::nonexistent(());
|
2020-01-08 10:05:31 -06:00
|
|
|
//~^ ERROR no function or associated item named `nonexistent` found
|
2021-07-10 03:00:54 -05:00
|
|
|
//~| WARN trait objects without an explicit `dyn` are deprecated
|
|
|
|
//~| WARN this is accepted in the current edition
|
2019-03-04 21:24:52 -06:00
|
|
|
}
|