2019-03-05 03:24:52 +00: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 16:05:31 +00:00
|
|
|
//~^ ERROR no function or associated item named `nonexistent` found
|
2021-07-10 08:00:54 +00:00
|
|
|
//~| WARN trait objects without an explicit `dyn` are deprecated
|
|
|
|
//~| WARN this is accepted in the current edition
|
2019-03-05 03:24:52 +00:00
|
|
|
}
|