| //@ check-pass | |
| trait TraitA { | |
| const VALUE: usize; | |
| } | |
| struct A; | |
| impl TraitA for A { | |
| const VALUE: usize = 1; | |
| } | |
| trait TraitB { | |
| type MyA: TraitA; | |
| const VALUE: usize = Self::MyA::VALUE; | |
| } | |
| struct B; | |
| impl TraitB for B { | |
| type MyA = A; | |
| } | |
| fn main() { | |
| let _ = [0; A::VALUE]; | |
| let _ = [0; B::VALUE]; // Indirectly refers to `A::VALUE` | |
| } |