mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
25 lines
356 B
Rust
25 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`
|
|
}
|