| //@ known-bug: unknown |
| |
| // If we want this to compile, then we'd need to do something like RPITs do, |
| // where nested associated constants have early-bound versions of their captured |
| // late-bound vars inserted into their generics. This gives us substitutable |
| // lifetimes to actually use when borrow-checking the associated const, which is |
| // lowered as a totally separate body from its parent. Since this doesn't exist, |
| // we should just error rather than resolving this late-bound var with no |
| // binder to actually attach it to, or worse, as a free region that can't even be |
| // substituted correctly, and ICEing. - @compiler-errors |
| |
| #![feature(generic_const_exprs)] |
| #![allow(incomplete_features)] |
| |
| const fn inner<'a>() -> usize where &'a (): Sized { |
| 3 |
| } |
| |
| fn test<'a>() { |
| let _: [u8; inner::<'a>()]; |
| let _ = [0; inner::<'a>()]; |
| } |
| |
| fn main() { |
| test(); |
| } |