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,
|
span: Span,
|
||||||
) -> Result<(), NotConstEvaluatable> {
|
) -> Result<(), NotConstEvaluatable> {
|
||||||
let tcx = infcx.tcx;
|
let tcx = infcx.tcx;
|
||||||
match unexpanded_ct.kind() {
|
match tcx.expand_abstract_consts(unexpanded_ct).kind() {
|
||||||
ty::ConstKind::Unevaluated(_) | ty::ConstKind::Expr(_) => (),
|
ty::ConstKind::Unevaluated(_) | ty::ConstKind::Expr(_) => (),
|
||||||
ty::ConstKind::Param(_)
|
ty::ConstKind::Param(_)
|
||||||
| ty::ConstKind::Bound(_, _)
|
| 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