]> git.lizzy.rs Git - rust.git/blob - src/test/ui/traits/alias/import.rs
Rollup merge of #100953 - joshtriplett:write-docs, r=Mark-Simulacrum
[rust.git] / src / test / ui / traits / alias / import.rs
1 // run-pass
2
3 #![feature(trait_alias)]
4
5 mod inner {
6     pub trait Foo {
7         fn foo(&self);
8     }
9
10     pub struct Qux;
11
12     impl Foo for Qux {
13         fn foo(&self) {}
14     }
15
16     pub trait Bar = Foo;
17 }
18
19 mod two {
20     pub trait A {
21         fn foo();
22     }
23
24     impl A for u8 {
25         fn foo() {}
26     }
27 }
28
29 // Import only the alias, not the `Foo` trait.
30 use inner::{Bar, Qux};
31
32 // Declaring an alias also brings in aliased methods.
33 trait Two = two::A;
34
35 fn main() {
36     let q = Qux;
37     q.foo(); // From Bar.
38
39     u8::foo(); // From A.
40 }