#![feature(generic_const_exprs, generic_arg_infer)] #![allow(incomplete_features)] // minimized repro for #105205 // // the `foo::<_, L>` call results in a `WellFormed(_)` obligation and a // `ConstEvaluatable(Unevaluated(_ + 1 + L))` obligation. Attempting to fulfill the latter // unifies the `_` with `Expr(L - 1)` from the paramenv which turns the `WellFormed` // obligation into `WellFormed(Expr(L - 1))` fn foo(_: [(); N + 1 + M]) {} fn ice() where [(); (L - 1) + 1 + L]:, { foo::<_, L>([(); L + 1 + L]); //~^ ERROR: mismatched types //~^^ ERROR: unconstrained generic constant } fn main() {}