mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-08 09:38:26 +03:00
Const parameters can not be inferred with _
Small improvement. Thanks varkor Co-authored-by: varkor <github@varkor.com> Bless
This commit is contained in:
@@ -44,6 +44,13 @@ fn generic_arg_mismatch_err(
|
||||
// the match is non-exhaustive.
|
||||
_ => bug!("invalid generic parameter kind {}", kind),
|
||||
};
|
||||
|
||||
if let ParamKindOrd::Const { .. } = kind_ord {
|
||||
if let GenericArg::Type(hir::Ty { kind: hir::TyKind::Infer, .. }) = arg {
|
||||
err.help("const arguments cannot yet be inferred with `_`");
|
||||
}
|
||||
}
|
||||
|
||||
let arg_ord = match arg {
|
||||
GenericArg::Lifetime(_) => ParamKindOrd::Lifetime,
|
||||
GenericArg::Type(_) => ParamKindOrd::Type,
|
||||
|
||||
@@ -9,6 +9,8 @@ error[E0747]: type provided when a constant was expected
|
||||
|
|
||||
LL | foo::<_, {[1]}>();
|
||||
| ^
|
||||
|
|
||||
= help: const arguments cannot yet be inferred with `_`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-62878.rs:11:15
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#![feature(min_const_generics)]
|
||||
fn foo<const N: usize, const K: usize>(data: [u32; N]) -> [u32; K] {
|
||||
[0; K]
|
||||
}
|
||||
fn main() {
|
||||
let a = foo::<_, 2>([0, 1, 2]);
|
||||
//~^ ERROR type provided when a constant was expected
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
error[E0747]: type provided when a constant was expected
|
||||
--> $DIR/inferred_const.rs:6:19
|
||||
|
|
||||
LL | let a = foo::<_, 2>([0, 1, 2]);
|
||||
| ^
|
||||
|
|
||||
= help: const arguments cannot yet be inferred with `_`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0747`.
|
||||
Reference in New Issue
Block a user