Make the structural_match
error diagnostic for const generics clearer
This commit is contained in:
parent
8d67f576b5
commit
3eea7b31ee
@ -346,7 +346,9 @@ pub(super) fn type_of(tcx: TyCtxt<'_>, def_id: DefId) -> Ty<'_> {
|
||||
tcx.sess,
|
||||
hir_ty.span,
|
||||
E0741,
|
||||
"the types of const generic parameters must derive `PartialEq` and `Eq`",
|
||||
"`{}` must be annotated with `#[derive(PartialEq, Eq)]` to be used as the \
|
||||
type of a const parameter",
|
||||
ty,
|
||||
)
|
||||
.span_label(
|
||||
hir_ty.span,
|
||||
|
@ -1,6 +1,6 @@
|
||||
use std::marker::PhantomData;
|
||||
|
||||
struct B<T, const N: T>(PhantomData<[T; N]>); //~ ERROR const generics are unstable
|
||||
//~^ ERROR the types of const generic parameters must derive `PartialEq` and `Eq`
|
||||
//~^ ERROR `T` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
|
||||
fn main() {}
|
||||
|
@ -7,7 +7,7 @@ LL | struct B<T, const N: T>(PhantomData<[T; N]>);
|
||||
= note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information
|
||||
= help: add `#![feature(const_generics)]` to the crate attributes to enable
|
||||
|
||||
error[E0741]: the types of const generic parameters must derive `PartialEq` and `Eq`
|
||||
error[E0741]: `T` must be annotated with `#[derive(PartialEq, Eq)]` to be used as the type of a const parameter
|
||||
--> $DIR/const-param-type-depends-on-type-param-ungated.rs:3:22
|
||||
|
|
||||
LL | struct B<T, const N: T>(PhantomData<[T; N]>);
|
||||
|
@ -7,6 +7,6 @@
|
||||
// details.
|
||||
|
||||
pub struct Dependent<T, const X: T>([(); X]);
|
||||
//~^ ERROR the types of const generic parameters must derive `PartialEq` and `Eq`
|
||||
//~^ ERROR `T` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
|
||||
fn main() {}
|
||||
|
@ -6,7 +6,7 @@ LL | #![feature(const_generics)]
|
||||
|
|
||||
= note: `#[warn(incomplete_features)]` on by default
|
||||
|
||||
error[E0741]: the types of const generic parameters must derive `PartialEq` and `Eq`
|
||||
error[E0741]: `T` must be annotated with `#[derive(PartialEq, Eq)]` to be used as the type of a const parameter
|
||||
--> $DIR/const-param-type-depends-on-type-param.rs:9:34
|
||||
|
|
||||
LL | pub struct Dependent<T, const X: T>([(); X]);
|
||||
|
@ -8,6 +8,6 @@ struct B<const X: A>; // ok
|
||||
|
||||
struct C;
|
||||
|
||||
struct D<const X: C>; //~ ERROR the types of const generic parameters must derive
|
||||
struct D<const X: C>; //~ ERROR `C` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
|
||||
fn main() {}
|
||||
|
@ -6,7 +6,7 @@ LL | #![feature(const_generics)]
|
||||
|
|
||||
= note: `#[warn(incomplete_features)]` on by default
|
||||
|
||||
error[E0741]: the types of const generic parameters must derive `PartialEq` and `Eq`
|
||||
error[E0741]: `C` must be annotated with `#[derive(PartialEq, Eq)]` to be used as the type of a const parameter
|
||||
--> $DIR/forbid-non-structural_match-types.rs:11:19
|
||||
|
|
||||
LL | struct D<const X: C>;
|
||||
|
Loading…
x
Reference in New Issue
Block a user