rust/tests/ui/consts/associated_const_generic.rs

26 lines
356 B
Rust

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