Rollup merge of #105400 - BoxyUwU:braced_param_evaluatability, r=oli-obk
normalize before handling simple checks for evaluatability of `ty::Const` `{{{{{{{ N }}}}}}}` is desugared into a `ConstKind::Unevaluated` for an anonymous `const` item so when calling `is_const_evaluatable` on it we skip the `ConstKind::Param(_) => Ok(())` arm which is incorrect.
This commit is contained in:
commit
b23419b03d
@ -30,7 +30,7 @@ pub fn is_const_evaluatable<'tcx>(
|
||||
span: Span,
|
||||
) -> Result<(), NotConstEvaluatable> {
|
||||
let tcx = infcx.tcx;
|
||||
match unexpanded_ct.kind() {
|
||||
match tcx.expand_abstract_consts(unexpanded_ct).kind() {
|
||||
ty::ConstKind::Unevaluated(_) | ty::ConstKind::Expr(_) => (),
|
||||
ty::ConstKind::Param(_)
|
||||
| ty::ConstKind::Bound(_, _)
|
||||
|
@ -0,0 +1,12 @@
|
||||
// check-pass
|
||||
#![feature(generic_const_exprs)]
|
||||
#![allow(incomplete_features, unused_braces)]
|
||||
|
||||
#[rustfmt::skip]
|
||||
fn foo<const N: usize>() {
|
||||
bar::<{{{{{{ N }}}}}}>();
|
||||
}
|
||||
|
||||
fn bar<const N: usize>() {}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user