4c2d6de70e
Aka trait_upcasting feature. And also adjust the `deref_into_dyn_supertrait` lint.
33 lines
390 B
Rust
33 lines
390 B
Rust
// known-bug: #104800
|
|
|
|
#![feature(dyn_star)]
|
|
|
|
trait Foo: Bar {
|
|
fn hello(&self);
|
|
}
|
|
|
|
trait Bar {
|
|
fn world(&self);
|
|
}
|
|
|
|
struct W(usize);
|
|
|
|
impl Foo for W {
|
|
fn hello(&self) {
|
|
println!("hello!");
|
|
}
|
|
}
|
|
|
|
impl Bar for W {
|
|
fn world(&self) {
|
|
println!("world!");
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let w: dyn* Foo = W(0);
|
|
w.hello();
|
|
let w: dyn* Bar = w;
|
|
w.world();
|
|
}
|