24 lines
571 B
Rust
24 lines
571 B
Rust
|
// check-fail
|
||
|
|
||
|
#![feature(auto_traits)]
|
||
|
#![deny(where_clauses_object_safety)]
|
||
|
|
||
|
auto trait AutoTrait {}
|
||
|
|
||
|
trait Trait {
|
||
|
fn static_lifetime_bound(&self) where Self: 'static {}
|
||
|
|
||
|
fn arg_lifetime_bound<'a>(&self, _arg: &'a ()) where Self: 'a {}
|
||
|
|
||
|
fn autotrait_bound(&self) where Self: AutoTrait {}
|
||
|
}
|
||
|
|
||
|
impl Trait for () {}
|
||
|
|
||
|
fn main() {
|
||
|
let trait_object = &() as &dyn Trait;
|
||
|
trait_object.static_lifetime_bound();
|
||
|
trait_object.arg_lifetime_bound(&());
|
||
|
trait_object.autotrait_bound(); //~ ERROR: the trait bound `dyn Trait: AutoTrait` is not satisfied
|
||
|
}
|