//@ 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` | |
} |