| //@ run-pass | |
| // #24947 ICE using a trait-associated const in an array size | |
| struct Foo; | |
| impl Foo { | |
| const SIZE: usize = 8; | |
| } | |
| trait Bar { | |
| const BAR_SIZE: usize; | |
| } | |
| impl Bar for Foo { | |
| const BAR_SIZE: usize = 12; | |
| } | |
| #[allow(unused_variables)] | |
| fn main() { | |
| let w: [u8; 12] = [0u8; <Foo as Bar>::BAR_SIZE]; | |
| let x: [u8; 12] = [0u8; <Foo>::BAR_SIZE]; | |
| let y: [u8; 8] = [0u8; <Foo>::SIZE]; | |
| let z: [u8; 8] = [0u8; Foo::SIZE]; | |
| } |