26 lines
356 B
Rust
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`
|
||
|
}
|