//@ known-bug: rust-lang/rust#126696 | |
#![feature(generic_const_exprs)] | |
#![allow(incomplete_features)] | |
fn can_double<const N: usize>(x: [(); N]) | |
where | |
[(); N * 2]:, | |
{ | |
x[0]; | |
unimplemented!() | |
} | |
fn foo<const N: usize>() | |
where | |
[(); (N + 1) * 2]:, | |
{ | |
can_double([(); { N + 1 }]); | |
// Adding an explicit constant generic causes the ICE to go away | |
// can_double::<{N + 1}>([(); { N + 1 }]); | |
} | |
fn main() { | |
foo::<1>(); | |
} |