diff --git a/compiler/rustc_builtin_macros/src/deriving/generic/mod.rs b/compiler/rustc_builtin_macros/src/deriving/generic/mod.rs
index 665e0ddab194..bc86cdbc9f7e 100644
--- a/compiler/rustc_builtin_macros/src/deriving/generic/mod.rs
+++ b/compiler/rustc_builtin_macros/src/deriving/generic/mod.rs
@@ -791,7 +791,8 @@ fn create_derived_impl(
.collect();
// Create the type of `self`.
- let path = cx.path_all(self.span, false, vec![type_ident], self_params);
+ let path =
+ cx.path_all(type_ident.span.with_ctxt(ctxt), false, vec![type_ident], self_params);
let self_type = cx.ty_path(path);
let rustc_const_unstable =
cx.path_ident(self.span, Ident::new(sym::rustc_const_unstable, self.span));
diff --git a/tests/ui/associated-types/issue-38821.rs b/tests/ui/associated-types/issue-38821.rs
index 5212bc886f0d..35c371235e64 100644
--- a/tests/ui/associated-types/issue-38821.rs
+++ b/tests/ui/associated-types/issue-38821.rs
@@ -34,11 +34,11 @@ pub trait Column: Expression {}
//~| ERROR the trait bound `
::SqlType: NotNull` is not satisfied
//~| ERROR the trait bound `::SqlType: NotNull` is not satisfied
//~| ERROR the trait bound `::SqlType: NotNull` is not satisfied
-//~| ERROR the trait bound `::SqlType: NotNull` is not satisfied
-//~| ERROR the trait bound `::SqlType: NotNull` is not satisfied
-//~| ERROR the trait bound `::SqlType: NotNull` is not satisfied
pub enum ColumnInsertValue where
//~^ ERROR the trait bound `::SqlType: NotNull` is not satisfied
+//~| ERROR the trait bound `::SqlType: NotNull` is not satisfied
+//~| ERROR the trait bound `::SqlType: NotNull` is not satisfied
+//~| ERROR the trait bound `::SqlType: NotNull` is not satisfied
Col: Column,
Expr: Expression::Nullable>,
//~^ ERROR the trait bound `::SqlType: IntoNullable` is not satisfied
diff --git a/tests/ui/associated-types/issue-38821.stderr b/tests/ui/associated-types/issue-38821.stderr
index 11d0c9d514ff..58d06860fe30 100644
--- a/tests/ui/associated-types/issue-38821.stderr
+++ b/tests/ui/associated-types/issue-38821.stderr
@@ -1,5 +1,5 @@
error[E0277]: the trait bound `::SqlType: NotNull` is not satisfied
- --> $DIR/issue-38821.rs:40:1
+ --> $DIR/issue-38821.rs:37:1
|
LL | pub enum ColumnInsertValue where
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `NotNull` is not implemented for `::SqlType`
@@ -82,10 +82,13 @@ LL | impl IntoNullable for T {
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: the trait bound `::SqlType: NotNull` is not satisfied
- --> $DIR/issue-38821.rs:23:10
+ --> $DIR/issue-38821.rs:37:10
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^^ the trait `NotNull` is not implemented for `::SqlType`
+ | ----- in this derive macro expansion
+...
+LL | pub enum ColumnInsertValue where
+ | ^^^^^^^^^^^^^^^^^ the trait `NotNull` is not implemented for `::SqlType`
|
note: required for `::SqlType` to implement `IntoNullable`
--> $DIR/issue-38821.rs:9:18
@@ -98,7 +101,13 @@ note: required for `ColumnInsertValue` to implement `Debug`
--> $DIR/issue-38821.rs:23:10
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
+...
+LL | pub enum ColumnInsertValue where
+ | ^^^^^^^^^^^^^^^^^
...
LL | Expr: Expression::Nullable>,
| ------------------------------------------------
@@ -127,10 +136,13 @@ LL | Expr: Expression::Nullable>, ::SqlType: NotNull` is not satisfied
- --> $DIR/issue-38821.rs:23:17
+ --> $DIR/issue-38821.rs:37:10
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^ the trait `NotNull` is not implemented for `::SqlType`
+ | ---- in this derive macro expansion
+...
+LL | pub enum ColumnInsertValue where
+ | ^^^^^^^^^^^^^^^^^ the trait `NotNull` is not implemented for `::SqlType`
|
note: required for `::SqlType` to implement `IntoNullable`
--> $DIR/issue-38821.rs:9:18
@@ -143,7 +155,13 @@ note: required for `ColumnInsertValue` to implement `Copy`
--> $DIR/issue-38821.rs:23:17
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
+...
+LL | pub enum ColumnInsertValue where
+ | ^^^^^^^^^^^^^^^^^
...
LL | Expr: Expression::Nullable>,
| ------------------------------------------------
@@ -201,10 +219,13 @@ LL | impl IntoNullable for T {
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0277]: the trait bound `::SqlType: NotNull` is not satisfied
- --> $DIR/issue-38821.rs:23:23
+ --> $DIR/issue-38821.rs:37:10
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^^ the trait `NotNull` is not implemented for `::SqlType`
+ | ----- in this derive macro expansion
+...
+LL | pub enum ColumnInsertValue where
+ | ^^^^^^^^^^^^^^^^^ the trait `NotNull` is not implemented for `::SqlType`
|
note: required for `::SqlType` to implement `IntoNullable`
--> $DIR/issue-38821.rs:9:18
@@ -217,7 +238,13 @@ note: required for `ColumnInsertValue` to implement `Clone`
--> $DIR/issue-38821.rs:23:23
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
+...
+LL | pub enum ColumnInsertValue where
+ | ^^^^^^^^^^^^^^^^^
...
LL | Expr: Expression::Nullable>,
| ------------------------------------------------
diff --git a/tests/ui/const-generics/adt_const_params/const_param_ty_impl_bad_field.rs b/tests/ui/const-generics/adt_const_params/const_param_ty_impl_bad_field.rs
index 0614ea97b1ad..1900931b3f35 100644
--- a/tests/ui/const-generics/adt_const_params/const_param_ty_impl_bad_field.rs
+++ b/tests/ui/const-generics/adt_const_params/const_param_ty_impl_bad_field.rs
@@ -8,10 +8,10 @@
struct CantParam(NotParam);
impl std::marker::ConstParamTy_ for CantParam {}
-//~^ error: the trait `ConstParamTy_` cannot be implemented for this type
+//~^ ERROR: the trait `ConstParamTy_` cannot be implemented for this type
#[derive(std::marker::ConstParamTy, Eq, PartialEq)]
-//~^ error: the trait `ConstParamTy_` cannot be implemented for this type
struct CantParamDerive(NotParam);
+//~^ ERROR: the trait `ConstParamTy_` cannot be implemented for this type
fn main() {}
diff --git a/tests/ui/const-generics/adt_const_params/const_param_ty_impl_bad_field.stderr b/tests/ui/const-generics/adt_const_params/const_param_ty_impl_bad_field.stderr
index fd1836802c4a..084c64d27335 100644
--- a/tests/ui/const-generics/adt_const_params/const_param_ty_impl_bad_field.stderr
+++ b/tests/ui/const-generics/adt_const_params/const_param_ty_impl_bad_field.stderr
@@ -8,13 +8,12 @@ LL | impl std::marker::ConstParamTy_ for CantParam {}
| ^^^^^^^^^
error[E0204]: the trait `ConstParamTy_` cannot be implemented for this type
- --> $DIR/const_param_ty_impl_bad_field.rs:13:10
+ --> $DIR/const_param_ty_impl_bad_field.rs:14:8
|
LL | #[derive(std::marker::ConstParamTy, Eq, PartialEq)]
- | ^^^^^^^^^^^^^^^^^^^^^^^^^
-LL |
+ | ------------------------- in this derive macro expansion
LL | struct CantParamDerive(NotParam);
- | -------- this field does not implement `ConstParamTy_`
+ | ^^^^^^^^^^^^^^^ -------- this field does not implement `ConstParamTy_`
error: aborting due to 2 previous errors
diff --git a/tests/ui/const-generics/adt_const_params/const_param_ty_impl_no_structural_eq.rs b/tests/ui/const-generics/adt_const_params/const_param_ty_impl_no_structural_eq.rs
index a1c8eccfb095..a8f190609c04 100644
--- a/tests/ui/const-generics/adt_const_params/const_param_ty_impl_no_structural_eq.rs
+++ b/tests/ui/const-generics/adt_const_params/const_param_ty_impl_no_structural_eq.rs
@@ -8,13 +8,13 @@ impl std::marker::ConstParamTy_ for ImplementsConstParamTy {}
struct CantParam(ImplementsConstParamTy);
impl std::marker::ConstParamTy_ for CantParam {}
-//~^ error: the type `CantParam` does not `#[derive(PartialEq)]`
-//~| ERROR the trait bound `CantParam: Eq` is not satisfied
+//~^ ERROR: the type `CantParam` does not `#[derive(PartialEq)]`
+//~| ERROR: the trait bound `CantParam: Eq` is not satisfied
#[derive(std::marker::ConstParamTy)]
-//~^ error: the type `CantParamDerive` does not `#[derive(PartialEq)]`
-//~| ERROR the trait bound `CantParamDerive: Eq` is not satisfied
struct CantParamDerive(ImplementsConstParamTy);
+//~^ ERROR: the type `CantParamDerive` does not `#[derive(PartialEq)]`
+//~| ERROR: the trait bound `CantParamDerive: Eq` is not satisfied
fn check() {}
diff --git a/tests/ui/const-generics/adt_const_params/const_param_ty_impl_no_structural_eq.stderr b/tests/ui/const-generics/adt_const_params/const_param_ty_impl_no_structural_eq.stderr
index ca2a693d48ce..1219d5f04380 100644
--- a/tests/ui/const-generics/adt_const_params/const_param_ty_impl_no_structural_eq.stderr
+++ b/tests/ui/const-generics/adt_const_params/const_param_ty_impl_no_structural_eq.stderr
@@ -27,10 +27,12 @@ note: required by a bound in `ConstParamTy_`
--> $SRC_DIR/core/src/marker.rs:LL:COL
error[E0277]: the trait bound `CantParamDerive: Eq` is not satisfied
- --> $DIR/const_param_ty_impl_no_structural_eq.rs:14:10
+ --> $DIR/const_param_ty_impl_no_structural_eq.rs:15:8
|
LL | #[derive(std::marker::ConstParamTy)]
- | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Eq` is not implemented for `CantParamDerive`
+ | ------------------------- in this derive macro expansion
+LL | struct CantParamDerive(ImplementsConstParamTy);
+ | ^^^^^^^^^^^^^^^ the trait `Eq` is not implemented for `CantParamDerive`
|
note: required by a bound in `ConstParamTy_`
--> $SRC_DIR/core/src/marker.rs:LL:COL
@@ -41,13 +43,15 @@ LL | struct CantParamDerive(ImplementsConstParamTy);
|
error[E0277]: the type `CantParamDerive` does not `#[derive(PartialEq)]`
- --> $DIR/const_param_ty_impl_no_structural_eq.rs:14:10
+ --> $DIR/const_param_ty_impl_no_structural_eq.rs:15:8
|
LL | #[derive(std::marker::ConstParamTy)]
- | ^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
+ | ------------------------- in this derive macro expansion
+LL | struct CantParamDerive(ImplementsConstParamTy);
+ | ^^^^^^^^^^^^^^^ unsatisfied trait bound
|
help: the nightly-only, unstable trait `StructuralPartialEq` is not implemented for `CantParamDerive`
- --> $DIR/const_param_ty_impl_no_structural_eq.rs:17:1
+ --> $DIR/const_param_ty_impl_no_structural_eq.rs:15:1
|
LL | struct CantParamDerive(ImplementsConstParamTy);
| ^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/const-generics/adt_const_params/nested_bad_const_param_ty.rs b/tests/ui/const-generics/adt_const_params/nested_bad_const_param_ty.rs
index d42ef90e1b18..e8a16be2197b 100644
--- a/tests/ui/const-generics/adt_const_params/nested_bad_const_param_ty.rs
+++ b/tests/ui/const-generics/adt_const_params/nested_bad_const_param_ty.rs
@@ -4,15 +4,15 @@
use std::marker::ConstParamTy;
#[derive(ConstParamTy)]
-//~^ ERROR the trait `ConstParamTy_` cannot be implemented for this ty
struct Foo([*const u8; 1]);
+//~^ ERROR the trait `ConstParamTy_` cannot be implemented for this ty
#[derive(ConstParamTy)]
-//~^ ERROR the trait `ConstParamTy_` cannot be implemented for this ty
struct Foo2([*mut u8; 1]);
+//~^ ERROR the trait `ConstParamTy_` cannot be implemented for this ty
#[derive(ConstParamTy)]
-//~^ ERROR the trait `ConstParamTy_` cannot be implemented for this ty
struct Foo3([fn(); 1]);
+//~^ ERROR the trait `ConstParamTy_` cannot be implemented for this ty
fn main() {}
diff --git a/tests/ui/const-generics/adt_const_params/nested_bad_const_param_ty.stderr b/tests/ui/const-generics/adt_const_params/nested_bad_const_param_ty.stderr
index 442ec6b96cef..6c8a506d1f40 100644
--- a/tests/ui/const-generics/adt_const_params/nested_bad_const_param_ty.stderr
+++ b/tests/ui/const-generics/adt_const_params/nested_bad_const_param_ty.stderr
@@ -1,44 +1,41 @@
error[E0204]: the trait `ConstParamTy_` cannot be implemented for this type
- --> $DIR/nested_bad_const_param_ty.rs:6:10
+ --> $DIR/nested_bad_const_param_ty.rs:7:8
|
LL | #[derive(ConstParamTy)]
- | ^^^^^^^^^^^^
-LL |
+ | ------------ in this derive macro expansion
LL | struct Foo([*const u8; 1]);
- | -------------- this field does not implement `ConstParamTy_`
+ | ^^^ -------------- this field does not implement `ConstParamTy_`
|
note: the `ConstParamTy_` impl for `[*const u8; 1]` requires that `*const u8: ConstParamTy_`
- --> $DIR/nested_bad_const_param_ty.rs:8:12
+ --> $DIR/nested_bad_const_param_ty.rs:7:12
|
LL | struct Foo([*const u8; 1]);
| ^^^^^^^^^^^^^^
error[E0204]: the trait `ConstParamTy_` cannot be implemented for this type
- --> $DIR/nested_bad_const_param_ty.rs:10:10
+ --> $DIR/nested_bad_const_param_ty.rs:11:8
|
LL | #[derive(ConstParamTy)]
- | ^^^^^^^^^^^^
-LL |
+ | ------------ in this derive macro expansion
LL | struct Foo2([*mut u8; 1]);
- | ------------ this field does not implement `ConstParamTy_`
+ | ^^^^ ------------ this field does not implement `ConstParamTy_`
|
note: the `ConstParamTy_` impl for `[*mut u8; 1]` requires that `*mut u8: ConstParamTy_`
- --> $DIR/nested_bad_const_param_ty.rs:12:13
+ --> $DIR/nested_bad_const_param_ty.rs:11:13
|
LL | struct Foo2([*mut u8; 1]);
| ^^^^^^^^^^^^
error[E0204]: the trait `ConstParamTy_` cannot be implemented for this type
- --> $DIR/nested_bad_const_param_ty.rs:14:10
+ --> $DIR/nested_bad_const_param_ty.rs:15:8
|
LL | #[derive(ConstParamTy)]
- | ^^^^^^^^^^^^
-LL |
+ | ------------ in this derive macro expansion
LL | struct Foo3([fn(); 1]);
- | --------- this field does not implement `ConstParamTy_`
+ | ^^^^ --------- this field does not implement `ConstParamTy_`
|
note: the `ConstParamTy_` impl for `[fn(); 1]` requires that `fn(): ConstParamTy_`
- --> $DIR/nested_bad_const_param_ty.rs:16:13
+ --> $DIR/nested_bad_const_param_ty.rs:15:13
|
LL | struct Foo3([fn(); 1]);
| ^^^^^^^^^
diff --git a/tests/ui/const-generics/adt_const_params/unsized_field-1.rs b/tests/ui/const-generics/adt_const_params/unsized_field-1.rs
index 5db031cb900f..f2d972612dc6 100644
--- a/tests/ui/const-generics/adt_const_params/unsized_field-1.rs
+++ b/tests/ui/const-generics/adt_const_params/unsized_field-1.rs
@@ -6,18 +6,18 @@
use std::marker::ConstParamTy;
#[derive(ConstParamTy, Eq, PartialEq)]
-//~^ ERROR: the trait `ConstParamTy_` cannot be implemented for this type
struct A([u8]);
+//~^ ERROR: the trait `ConstParamTy_` cannot be implemented for this type
#[derive(ConstParamTy, Eq, PartialEq)]
-//~^ ERROR: the trait `ConstParamTy_` cannot be implemented for this type
struct B(&'static [u8]);
+//~^ ERROR: the trait `ConstParamTy_` cannot be implemented for this type
#[derive(ConstParamTy, Eq, PartialEq)]
struct C(unsized_const_param::Foo);
#[derive(std::marker::ConstParamTy, Eq, PartialEq)]
-//~^ ERROR: the trait `ConstParamTy_` cannot be implemented for this type
struct D(unsized_const_param::GenericNotUnsizedParam<&'static [u8]>);
+//~^ ERROR: the trait `ConstParamTy_` cannot be implemented for this type
fn main() {}
diff --git a/tests/ui/const-generics/adt_const_params/unsized_field-1.stderr b/tests/ui/const-generics/adt_const_params/unsized_field-1.stderr
index 134dbba0d63a..2538b811618b 100644
--- a/tests/ui/const-generics/adt_const_params/unsized_field-1.stderr
+++ b/tests/ui/const-generics/adt_const_params/unsized_field-1.stderr
@@ -1,44 +1,41 @@
error[E0204]: the trait `ConstParamTy_` cannot be implemented for this type
- --> $DIR/unsized_field-1.rs:8:10
+ --> $DIR/unsized_field-1.rs:9:8
|
LL | #[derive(ConstParamTy, Eq, PartialEq)]
- | ^^^^^^^^^^^^
-LL |
+ | ------------ in this derive macro expansion
LL | struct A([u8]);
- | ---- this field does not implement `ConstParamTy_`
+ | ^ ---- this field does not implement `ConstParamTy_`
|
note: the `ConstParamTy_` impl for `[u8]` requires that `feature(unsized_const_params) is enabled`
- --> $DIR/unsized_field-1.rs:10:10
+ --> $DIR/unsized_field-1.rs:9:10
|
LL | struct A([u8]);
| ^^^^
error[E0204]: the trait `ConstParamTy_` cannot be implemented for this type
- --> $DIR/unsized_field-1.rs:12:10
+ --> $DIR/unsized_field-1.rs:13:8
|
LL | #[derive(ConstParamTy, Eq, PartialEq)]
- | ^^^^^^^^^^^^
-LL |
+ | ------------ in this derive macro expansion
LL | struct B(&'static [u8]);
- | ------------- this field does not implement `ConstParamTy_`
+ | ^ ------------- this field does not implement `ConstParamTy_`
|
note: the `ConstParamTy_` impl for `&'static [u8]` requires that `feature(unsized_const_params) is enabled`
- --> $DIR/unsized_field-1.rs:14:10
+ --> $DIR/unsized_field-1.rs:13:10
|
LL | struct B(&'static [u8]);
| ^^^^^^^^^^^^^
error[E0204]: the trait `ConstParamTy_` cannot be implemented for this type
- --> $DIR/unsized_field-1.rs:19:10
+ --> $DIR/unsized_field-1.rs:20:8
|
LL | #[derive(std::marker::ConstParamTy, Eq, PartialEq)]
- | ^^^^^^^^^^^^^^^^^^^^^^^^^
-LL |
+ | ------------------------- in this derive macro expansion
LL | struct D(unsized_const_param::GenericNotUnsizedParam<&'static [u8]>);
- | ---------------------------------------------------------- this field does not implement `ConstParamTy_`
+ | ^ ---------------------------------------------------------- this field does not implement `ConstParamTy_`
|
note: the `ConstParamTy_` impl for `GenericNotUnsizedParam<&'static [u8]>` requires that `feature(unsized_const_params) is enabled`
- --> $DIR/unsized_field-1.rs:21:10
+ --> $DIR/unsized_field-1.rs:20:10
|
LL | struct D(unsized_const_param::GenericNotUnsizedParam<&'static [u8]>);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/const-generics/adt_const_params/unsizing-wfcheck-issue-126272.rs b/tests/ui/const-generics/adt_const_params/unsizing-wfcheck-issue-126272.rs
index 500e8e22b0e3..71ac662cf580 100644
--- a/tests/ui/const-generics/adt_const_params/unsizing-wfcheck-issue-126272.rs
+++ b/tests/ui/const-generics/adt_const_params/unsizing-wfcheck-issue-126272.rs
@@ -6,8 +6,8 @@
use std::marker::ConstParamTy;
#[derive(Debug, PartialEq, Eq, ConstParamTy)]
-//~^ ERROR the trait `ConstParamTy_`
struct Foo {
+//~^ ERROR the trait `ConstParamTy_`
nested: &'static Bar,
//~^ ERROR the size for values
//~| ERROR the size for values
diff --git a/tests/ui/const-generics/adt_const_params/unsizing-wfcheck-issue-126272.stderr b/tests/ui/const-generics/adt_const_params/unsizing-wfcheck-issue-126272.stderr
index 1aaa7591a7be..f90f0b45d967 100644
--- a/tests/ui/const-generics/adt_const_params/unsizing-wfcheck-issue-126272.stderr
+++ b/tests/ui/const-generics/adt_const_params/unsizing-wfcheck-issue-126272.stderr
@@ -19,11 +19,13 @@ LL | struct Bar(T);
| this could be changed to `T: ?Sized`...
error[E0204]: the trait `ConstParamTy_` cannot be implemented for this type
- --> $DIR/unsizing-wfcheck-issue-126272.rs:8:32
+ --> $DIR/unsizing-wfcheck-issue-126272.rs:9:8
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
- | ^^^^^^^^^^^^
-...
+ | ------------ in this derive macro expansion
+LL | struct Foo {
+ | ^^^
+LL |
LL | nested: &'static Bar,
| ----------------------------------------- this field does not implement `ConstParamTy_`
|
@@ -62,9 +64,12 @@ note: required for `Bar<(dyn Debug + 'static)>` to implement `Debug`
--> $DIR/unsizing-wfcheck-issue-126272.rs:19:10
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
- | ^^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | struct Bar(T);
- | -
+ | ^^^ -
= help: consider manually implementing `Debug` to avoid undesired bounds
= note: 2 redundant requirements hidden
= note: required for `&&'static Bar<(dyn Debug + 'static)>` to implement `Debug`
@@ -97,9 +102,12 @@ note: required for `Bar` to implement `Eq`
--> $DIR/unsizing-wfcheck-issue-126272.rs:19:28
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
- | ^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | struct Bar(T);
- | - would need to be `Eq`
+ | ^^^ - would need to be `Eq`
= help: consider manually implementing `Eq` to avoid undesired bounds
= note: 1 redundant requirement hidden
= note: required for `&'static Bar` to implement `Eq`
diff --git a/tests/ui/consts/const-blocks/trait-error.stderr b/tests/ui/consts/const-blocks/trait-error.stderr
index 991a48917efb..aa9177d2b017 100644
--- a/tests/ui/consts/const-blocks/trait-error.stderr
+++ b/tests/ui/consts/const-blocks/trait-error.stderr
@@ -8,9 +8,12 @@ note: required for `Foo` to implement `Copy`
--> $DIR/trait-error.rs:1:10
|
LL | #[derive(Copy, Clone)]
- | ^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | struct Foo(T);
- | - would need to be `Copy`
+ | ^^^ - would need to be `Copy`
= help: consider manually implementing `Copy` to avoid undesired bounds
= note: the `Copy` trait is required because this value will be copied for each element of the array
help: create an inline `const` block
diff --git a/tests/ui/derives/copy-drop-mutually-exclusive.rs b/tests/ui/derives/copy-drop-mutually-exclusive.rs
index 5147605910d7..64cd5bf594b0 100644
--- a/tests/ui/derives/copy-drop-mutually-exclusive.rs
+++ b/tests/ui/derives/copy-drop-mutually-exclusive.rs
@@ -1,14 +1,14 @@
//! Regression test for issue #20126: Copy and Drop traits are mutually exclusive
-#[derive(Copy, Clone)] //~ ERROR the trait `Copy` cannot be implemented
-struct Foo;
+#[derive(Copy, Clone)]
+struct Foo; //~ ERROR the trait `Copy` cannot be implemented
impl Drop for Foo {
fn drop(&mut self) {}
}
-#[derive(Copy, Clone)] //~ ERROR the trait `Copy` cannot be implemented
-struct Bar(::std::marker::PhantomData);
+#[derive(Copy, Clone)]
+struct Bar(::std::marker::PhantomData); //~ ERROR the trait `Copy` cannot be implemented
impl Drop for Bar {
fn drop(&mut self) {}
diff --git a/tests/ui/derives/copy-drop-mutually-exclusive.stderr b/tests/ui/derives/copy-drop-mutually-exclusive.stderr
index 771bbc925695..f17d33ffbfed 100644
--- a/tests/ui/derives/copy-drop-mutually-exclusive.stderr
+++ b/tests/ui/derives/copy-drop-mutually-exclusive.stderr
@@ -1,14 +1,18 @@
error[E0184]: the trait `Copy` cannot be implemented for this type; the type has a destructor
- --> $DIR/copy-drop-mutually-exclusive.rs:3:10
+ --> $DIR/copy-drop-mutually-exclusive.rs:4:8
|
LL | #[derive(Copy, Clone)]
- | ^^^^ `Copy` not allowed on types with destructors
+ | ---- in this derive macro expansion
+LL | struct Foo;
+ | ^^^ `Copy` not allowed on types with destructors
error[E0184]: the trait `Copy` cannot be implemented for this type; the type has a destructor
- --> $DIR/copy-drop-mutually-exclusive.rs:10:10
+ --> $DIR/copy-drop-mutually-exclusive.rs:11:8
|
LL | #[derive(Copy, Clone)]
- | ^^^^ `Copy` not allowed on types with destructors
+ | ---- in this derive macro expansion
+LL | struct Bar(::std::marker::PhantomData);
+ | ^^^ `Copy` not allowed on types with destructors
error: aborting due to 2 previous errors
diff --git a/tests/ui/derives/deriving-copyclone.stderr b/tests/ui/derives/deriving-copyclone.stderr
index 1baacf85f6a2..226163474482 100644
--- a/tests/ui/derives/deriving-copyclone.stderr
+++ b/tests/ui/derives/deriving-copyclone.stderr
@@ -10,9 +10,12 @@ note: required for `B` to implement `Copy`
--> $DIR/deriving-copyclone.rs:9:10
|
LL | #[derive(Copy, Clone)]
- | ^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | struct B {
- | - would need to be `Copy`
+ | ^ - would need to be `Copy`
= help: consider manually implementing `Copy` to avoid undesired bounds
note: required by a bound in `is_copy`
--> $DIR/deriving-copyclone.rs:18:15
@@ -36,9 +39,12 @@ note: required for `B` to implement `Clone`
--> $DIR/deriving-copyclone.rs:9:16
|
LL | #[derive(Copy, Clone)]
- | ^^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | struct B {
- | - would need to be `Clone`
+ | ^ - would need to be `Clone`
= help: consider manually implementing `Clone` to avoid undesired bounds
note: required by a bound in `is_clone`
--> $DIR/deriving-copyclone.rs:19:16
@@ -62,9 +68,12 @@ note: required for `B` to implement `Copy`
--> $DIR/deriving-copyclone.rs:9:10
|
LL | #[derive(Copy, Clone)]
- | ^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | struct B {
- | - would need to be `Copy`
+ | ^ - would need to be `Copy`
= help: consider manually implementing `Copy` to avoid undesired bounds
note: required by a bound in `is_copy`
--> $DIR/deriving-copyclone.rs:18:15
diff --git a/tests/ui/derives/issue-97343.stderr b/tests/ui/derives/issue-97343.stderr
index 27691f571884..c033a3d227c1 100644
--- a/tests/ui/derives/issue-97343.stderr
+++ b/tests/ui/derives/issue-97343.stderr
@@ -2,12 +2,11 @@ error[E0109]: type arguments are not allowed on type parameter `Irrelevant`
--> $DIR/issue-97343.rs:4:23
|
LL | #[derive(Debug)]
- | -----
- | |
- | not allowed on type parameter `Irrelevant`
- | in this derive macro expansion
+ | ----- in this derive macro expansion
LL | pub struct Irrelevant {
- | ^^^^^^^^^^ type argument not allowed
+ | ---------- ^^^^^^^^^^ type argument not allowed
+ | |
+ | not allowed on type parameter `Irrelevant`
|
note: type parameter `Irrelevant` defined here
--> $DIR/issue-97343.rs:4:23
diff --git a/tests/ui/duplicate/multiple-types-with-same-name-and-derive-default-133965.rs b/tests/ui/duplicate/multiple-types-with-same-name-and-derive-default-133965.rs
index 8e5cd4248f14..f4193f18352d 100644
--- a/tests/ui/duplicate/multiple-types-with-same-name-and-derive-default-133965.rs
+++ b/tests/ui/duplicate/multiple-types-with-same-name-and-derive-default-133965.rs
@@ -3,12 +3,12 @@
struct NonGeneric {}
#[derive(Default)]
-//~^ ERROR struct takes 0 lifetime arguments but 1 lifetime argument was supplied
-//~^^ ERROR struct takes 0 lifetime arguments but 1 lifetime argument was supplied
-//~^^^ ERROR struct takes 0 generic arguments but 1 generic argument was supplied
-//~^^^^ ERROR struct takes 0 generic arguments but 1 generic argument was supplied
+//~^ ERROR: struct takes 0 lifetime arguments but 1 lifetime argument was supplied
+//~| ERROR: struct takes 0 generic arguments but 1 generic argument was supplied
struct NonGeneric<'a, const N: usize> {}
-//~^ ERROR lifetime parameter `'a` is never used
-//~^^ ERROR the name `NonGeneric` is defined multiple times
+//~^ ERROR: struct takes 0 lifetime arguments but 1 lifetime argument was supplied
+//~| ERROR: struct takes 0 generic arguments but 1 generic argument was supplied
+//~| ERROR: lifetime parameter `'a` is never used
+//~| ERROR: the name `NonGeneric` is defined multiple times
pub fn main() {}
diff --git a/tests/ui/duplicate/multiple-types-with-same-name-and-derive-default-133965.stderr b/tests/ui/duplicate/multiple-types-with-same-name-and-derive-default-133965.stderr
index cf9c0d0ad3be..0d6aaaf5186d 100644
--- a/tests/ui/duplicate/multiple-types-with-same-name-and-derive-default-133965.stderr
+++ b/tests/ui/duplicate/multiple-types-with-same-name-and-derive-default-133965.stderr
@@ -1,5 +1,5 @@
error[E0428]: the name `NonGeneric` is defined multiple times
- --> $DIR/multiple-types-with-same-name-and-derive-default-133965.rs:10:1
+ --> $DIR/multiple-types-with-same-name-and-derive-default-133965.rs:8:1
|
LL | struct NonGeneric {}
| ----------------- previous definition of the type `NonGeneric` here
@@ -37,7 +37,7 @@ LL | struct NonGeneric {}
| ^^^^^^^^^^
error[E0392]: lifetime parameter `'a` is never used
- --> $DIR/multiple-types-with-same-name-and-derive-default-133965.rs:10:19
+ --> $DIR/multiple-types-with-same-name-and-derive-default-133965.rs:8:19
|
LL | struct NonGeneric<'a, const N: usize> {}
| ^^ unused lifetime parameter
@@ -45,29 +45,26 @@ LL | struct NonGeneric<'a, const N: usize> {}
= help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`
error[E0107]: struct takes 0 lifetime arguments but 1 lifetime argument was supplied
- --> $DIR/multiple-types-with-same-name-and-derive-default-133965.rs:5:10
+ --> $DIR/multiple-types-with-same-name-and-derive-default-133965.rs:8:8
|
-LL | #[derive(Default)]
- | ^^^^^^^ expected 0 lifetime arguments
-...
LL | struct NonGeneric<'a, const N: usize> {}
- | -- help: remove the lifetime argument
+ | ^^^^^^^^^^ -- help: remove the lifetime argument
+ | |
+ | expected 0 lifetime arguments
|
note: struct defined here, with 0 lifetime parameters
--> $DIR/multiple-types-with-same-name-and-derive-default-133965.rs:3:8
|
LL | struct NonGeneric {}
| ^^^^^^^^^^
- = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0107]: struct takes 0 generic arguments but 1 generic argument was supplied
- --> $DIR/multiple-types-with-same-name-and-derive-default-133965.rs:5:10
+ --> $DIR/multiple-types-with-same-name-and-derive-default-133965.rs:8:8
|
-LL | #[derive(Default)]
- | ^^^^^^^ expected 0 generic arguments
-...
LL | struct NonGeneric<'a, const N: usize> {}
- | - help: remove the unnecessary generic argument
+ | ^^^^^^^^^^ - help: remove the unnecessary generic argument
+ | |
+ | expected 0 generic arguments
|
note: struct defined here, with 0 generic parameters
--> $DIR/multiple-types-with-same-name-and-derive-default-133965.rs:3:8
diff --git a/tests/ui/duplicate/multiple-types-with-same-name-and-derive.rs b/tests/ui/duplicate/multiple-types-with-same-name-and-derive.rs
index f3bf299aa65f..e946c0c5350e 100644
--- a/tests/ui/duplicate/multiple-types-with-same-name-and-derive.rs
+++ b/tests/ui/duplicate/multiple-types-with-same-name-and-derive.rs
@@ -8,12 +8,12 @@
struct NotSM;
#[derive(PartialEq, Eq)]
-//~^ ERROR struct takes 0 generic arguments
-//~| ERROR struct takes 0 generic arguments
-//~| ERROR struct takes 0 generic arguments
-//~| ERROR struct takes 0 generic arguments
+//~^ ERROR: struct takes 0 generic arguments
struct NotSM(T);
-//~^ ERROR the name `NotSM` is defined multiple times
-//~| ERROR no field `0`
+//~^ ERROR: struct takes 0 generic arguments
+//~| ERROR: struct takes 0 generic arguments
+//~| ERROR: struct takes 0 generic arguments
+//~| ERROR: the name `NotSM` is defined multiple times
+//~| ERROR: no field `0`
fn main() {}
diff --git a/tests/ui/duplicate/multiple-types-with-same-name-and-derive.stderr b/tests/ui/duplicate/multiple-types-with-same-name-and-derive.stderr
index 32c3cf440316..e80cf35d81e1 100644
--- a/tests/ui/duplicate/multiple-types-with-same-name-and-derive.stderr
+++ b/tests/ui/duplicate/multiple-types-with-same-name-and-derive.stderr
@@ -1,5 +1,5 @@
error[E0428]: the name `NotSM` is defined multiple times
- --> $DIR/multiple-types-with-same-name-and-derive.rs:15:1
+ --> $DIR/multiple-types-with-same-name-and-derive.rs:12:1
|
LL | struct NotSM;
| ------------- previous definition of the type `NotSM` here
@@ -10,10 +10,10 @@ LL | struct NotSM(T);
= note: `NotSM` must be defined only once in the type namespace of this module
error[E0107]: struct takes 0 generic arguments but 1 generic argument was supplied
- --> $DIR/multiple-types-with-same-name-and-derive.rs:10:10
+ --> $DIR/multiple-types-with-same-name-and-derive.rs:12:8
|
-LL | #[derive(PartialEq, Eq)]
- | ^^^^^^^^^ expected 0 generic arguments
+LL | struct NotSM(T);
+ | ^^^^^ expected 0 generic arguments
|
note: struct defined here, with 0 generic parameters
--> $DIR/multiple-types-with-same-name-and-derive.rs:8:8
@@ -30,27 +30,27 @@ LL | #[derive(PartialEq, Eq)]
note: struct defined here, with 0 generic parameters
--> $DIR/multiple-types-with-same-name-and-derive.rs:8:8
|
+LL | struct NotSM;
+ | ^^^^^
+
+error[E0107]: struct takes 0 generic arguments but 1 generic argument was supplied
+ --> $DIR/multiple-types-with-same-name-and-derive.rs:12:8
+ |
+LL | struct NotSM(T);
+ | ^^^^^ expected 0 generic arguments
+ |
+note: struct defined here, with 0 generic parameters
+ --> $DIR/multiple-types-with-same-name-and-derive.rs:8:8
+ |
LL | struct NotSM;
| ^^^^^
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0107]: struct takes 0 generic arguments but 1 generic argument was supplied
- --> $DIR/multiple-types-with-same-name-and-derive.rs:10:21
+ --> $DIR/multiple-types-with-same-name-and-derive.rs:12:8
|
-LL | #[derive(PartialEq, Eq)]
- | ^^ expected 0 generic arguments
- |
-note: struct defined here, with 0 generic parameters
- --> $DIR/multiple-types-with-same-name-and-derive.rs:8:8
- |
-LL | struct NotSM;
- | ^^^^^
-
-error[E0107]: struct takes 0 generic arguments but 1 generic argument was supplied
- --> $DIR/multiple-types-with-same-name-and-derive.rs:10:10
- |
-LL | #[derive(PartialEq, Eq)]
- | ^^^^^^^^^ expected 0 generic arguments
+LL | struct NotSM(T);
+ | ^^^^^ expected 0 generic arguments
|
note: struct defined here, with 0 generic parameters
--> $DIR/multiple-types-with-same-name-and-derive.rs:8:8
@@ -60,7 +60,7 @@ LL | struct NotSM;
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error[E0609]: no field `0` on type `&NotSM`
- --> $DIR/multiple-types-with-same-name-and-derive.rs:15:17
+ --> $DIR/multiple-types-with-same-name-and-derive.rs:12:17
|
LL | struct NotSM(T);
| ^ unknown field
diff --git a/tests/ui/error-codes/E0184.rs b/tests/ui/error-codes/E0184.rs
index 0c448e4ad8bc..64cc1f0d1538 100644
--- a/tests/ui/error-codes/E0184.rs
+++ b/tests/ui/error-codes/E0184.rs
@@ -1,5 +1,5 @@
-#[derive(Copy)] //~ ERROR E0184
-struct Foo;
+#[derive(Copy)]
+struct Foo; //~ ERROR E0184
impl Drop for Foo {
fn drop(&mut self) {
diff --git a/tests/ui/error-codes/E0184.stderr b/tests/ui/error-codes/E0184.stderr
index 1a7df9ac095a..98b5305ad0dc 100644
--- a/tests/ui/error-codes/E0184.stderr
+++ b/tests/ui/error-codes/E0184.stderr
@@ -1,8 +1,10 @@
error[E0184]: the trait `Copy` cannot be implemented for this type; the type has a destructor
- --> $DIR/E0184.rs:1:10
+ --> $DIR/E0184.rs:2:8
|
LL | #[derive(Copy)]
- | ^^^^ `Copy` not allowed on types with destructors
+ | ---- in this derive macro expansion
+LL | struct Foo;
+ | ^^^ `Copy` not allowed on types with destructors
error: aborting due to 1 previous error
diff --git a/tests/ui/generic-associated-types/impl_bounds.stderr b/tests/ui/generic-associated-types/impl_bounds.stderr
index fd7dd774cf08..d918bd62c2d7 100644
--- a/tests/ui/generic-associated-types/impl_bounds.stderr
+++ b/tests/ui/generic-associated-types/impl_bounds.stderr
@@ -32,9 +32,12 @@ note: required for `Fooy` to implement `Copy`
--> $DIR/impl_bounds.rs:10:10
|
LL | #[derive(Copy, Clone)]
- | ^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | struct Fooy(T);
- | - would need to be `Copy`
+ | ^^^^ - would need to be `Copy`
= help: consider manually implementing `Copy` to avoid undesired bounds
note: the requirement `Fooy: Copy` appears on the `impl`'s associated type `C` but not on the corresponding trait's associated type
--> $DIR/impl_bounds.rs:6:10
@@ -59,9 +62,12 @@ note: required for `Fooy` to implement `Copy`
--> $DIR/impl_bounds.rs:10:10
|
LL | #[derive(Copy, Clone)]
- | ^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | struct Fooy(T);
- | - would need to be `Copy`
+ | ^^^^ - would need to be `Copy`
= help: consider manually implementing `Copy` to avoid undesired bounds
note: the requirement `Fooy: Copy` appears on the `impl`'s associated function `d` but not on the corresponding trait's associated function
--> $DIR/impl_bounds.rs:7:8
diff --git a/tests/ui/issues/issue-27340.rs b/tests/ui/issues/issue-27340.rs
index 53ca2bc973ff..9966c24a7441 100644
--- a/tests/ui/issues/issue-27340.rs
+++ b/tests/ui/issues/issue-27340.rs
@@ -1,7 +1,7 @@
struct Foo;
#[derive(Copy, Clone)]
-//~^ ERROR the trait `Copy` cannot be implemented for this type
struct Bar(Foo);
-//~^ ERROR `Foo: Clone` is not satisfied
+//~^ ERROR: the trait `Copy` cannot be implemented for this type
+//~| ERROR: `Foo: Clone` is not satisfied
fn main() {}
diff --git a/tests/ui/issues/issue-27340.stderr b/tests/ui/issues/issue-27340.stderr
index 7cde901ffd95..3b4ad58b1f08 100644
--- a/tests/ui/issues/issue-27340.stderr
+++ b/tests/ui/issues/issue-27340.stderr
@@ -1,18 +1,16 @@
error[E0204]: the trait `Copy` cannot be implemented for this type
- --> $DIR/issue-27340.rs:2:10
+ --> $DIR/issue-27340.rs:3:8
|
LL | #[derive(Copy, Clone)]
- | ^^^^
-LL |
+ | ---- in this derive macro expansion
LL | struct Bar(Foo);
- | --- this field does not implement `Copy`
+ | ^^^ --- this field does not implement `Copy`
error[E0277]: the trait bound `Foo: Clone` is not satisfied
- --> $DIR/issue-27340.rs:4:12
+ --> $DIR/issue-27340.rs:3:12
|
LL | #[derive(Copy, Clone)]
| ----- in this derive macro expansion
-LL |
LL | struct Bar(Foo);
| ^^^ the trait `Clone` is not implemented for `Foo`
|
diff --git a/tests/ui/malformed/malformed-derive-entry.rs b/tests/ui/malformed/malformed-derive-entry.rs
index 77fa2f566a8f..f9dc98d9d270 100644
--- a/tests/ui/malformed/malformed-derive-entry.rs
+++ b/tests/ui/malformed/malformed-derive-entry.rs
@@ -1,14 +1,14 @@
#[derive(Copy(Bad))]
-//~^ ERROR traits in `#[derive(...)]` don't accept arguments
-//~| ERROR the trait bound
+//~^ ERROR: traits in `#[derive(...)]` don't accept arguments
struct Test1;
+//~^ ERROR: the trait bound
#[derive(Copy="bad")]
-//~^ ERROR traits in `#[derive(...)]` don't accept values
-//~| ERROR the trait bound
+//~^ ERROR: traits in `#[derive(...)]` don't accept values
struct Test2;
+//~^ ERROR: the trait bound
-#[derive] //~ ERROR malformed `derive` attribute input
+#[derive] //~ ERROR: malformed `derive` attribute input
struct Test4;
fn main() {}
diff --git a/tests/ui/malformed/malformed-derive-entry.stderr b/tests/ui/malformed/malformed-derive-entry.stderr
index 02036e8d4c90..a5d7c3a4f8aa 100644
--- a/tests/ui/malformed/malformed-derive-entry.stderr
+++ b/tests/ui/malformed/malformed-derive-entry.stderr
@@ -17,10 +17,13 @@ LL | #[derive]
| ^^^^^^^^^ help: must be of the form: `#[derive(Trait1, Trait2, ...)]`
error[E0277]: the trait bound `Test1: Clone` is not satisfied
- --> $DIR/malformed-derive-entry.rs:1:10
+ --> $DIR/malformed-derive-entry.rs:3:8
|
LL | #[derive(Copy(Bad))]
- | ^^^^ the trait `Clone` is not implemented for `Test1`
+ | ---- in this derive macro expansion
+LL |
+LL | struct Test1;
+ | ^^^^^ the trait `Clone` is not implemented for `Test1`
|
note: required by a bound in `Copy`
--> $SRC_DIR/core/src/marker.rs:LL:COL
@@ -31,10 +34,13 @@ LL | struct Test1;
|
error[E0277]: the trait bound `Test2: Clone` is not satisfied
- --> $DIR/malformed-derive-entry.rs:6:10
+ --> $DIR/malformed-derive-entry.rs:8:8
|
LL | #[derive(Copy="bad")]
- | ^^^^ the trait `Clone` is not implemented for `Test2`
+ | ---- in this derive macro expansion
+LL |
+LL | struct Test2;
+ | ^^^^^ the trait `Clone` is not implemented for `Test2`
|
note: required by a bound in `Copy`
--> $SRC_DIR/core/src/marker.rs:LL:COL
diff --git a/tests/ui/proc-macro/issue-104884-trait-impl-sugg-err.rs b/tests/ui/proc-macro/issue-104884-trait-impl-sugg-err.rs
index d420f2641daf..0c66b47b3941 100644
--- a/tests/ui/proc-macro/issue-104884-trait-impl-sugg-err.rs
+++ b/tests/ui/proc-macro/issue-104884-trait-impl-sugg-err.rs
@@ -12,12 +12,11 @@ struct PriorityQueueEntry {
}
#[derive(PartialOrd, AddImpl)]
-//~^ ERROR can't compare `PriorityQueue` with `PriorityQueue`
-//~| ERROR the trait bound `PriorityQueue: Eq` is not satisfied
-//~| ERROR can't compare `T` with `T`
-//~| ERROR no method named `cmp` found for struct `BinaryHeap>`
-//~| ERROR no field `height` on type `&PriorityQueue`
-
+//~^ ERROR: the trait bound `PriorityQueue: Eq` is not satisfied
+//~| ERROR: can't compare `T` with `T`
+//~| ERROR: no method named `cmp` found for struct `BinaryHeap>`
+//~| ERROR: no field `height` on type `&PriorityQueue`
struct PriorityQueue(BinaryHeap>);
-//~^ ERROR can't compare `BinaryHeap>` with `_`
+//~^ ERROR: can't compare `PriorityQueue` with `PriorityQueue`
+//~| ERROR: can't compare `BinaryHeap>` with `_`
fn main() {}
diff --git a/tests/ui/proc-macro/issue-104884-trait-impl-sugg-err.stderr b/tests/ui/proc-macro/issue-104884-trait-impl-sugg-err.stderr
index c3513e19981f..e49cf6256cb2 100644
--- a/tests/ui/proc-macro/issue-104884-trait-impl-sugg-err.stderr
+++ b/tests/ui/proc-macro/issue-104884-trait-impl-sugg-err.stderr
@@ -1,11 +1,14 @@
error[E0277]: can't compare `PriorityQueue` with `PriorityQueue`
- --> $DIR/issue-104884-trait-impl-sugg-err.rs:14:10
+ --> $DIR/issue-104884-trait-impl-sugg-err.rs:19:8
|
LL | #[derive(PartialOrd, AddImpl)]
- | ^^^^^^^^^^ no implementation for `PriorityQueue == PriorityQueue`
+ | ---------- in this derive macro expansion
+...
+LL | struct PriorityQueue(BinaryHeap>);
+ | ^^^^^^^^^^^^^ no implementation for `PriorityQueue == PriorityQueue`
|
help: the trait `PartialEq` is not implemented for `PriorityQueue`
- --> $DIR/issue-104884-trait-impl-sugg-err.rs:21:1
+ --> $DIR/issue-104884-trait-impl-sugg-err.rs:19:1
|
LL | struct PriorityQueue(BinaryHeap>);
| ^^^^^^^^^^^^^^^^^^^^^^^
@@ -19,7 +22,7 @@ LL | #[derive(PartialOrd, AddImpl)]
| ^^^^^^^ unsatisfied trait bound
|
help: the trait `Eq` is not implemented for `PriorityQueue`
- --> $DIR/issue-104884-trait-impl-sugg-err.rs:21:1
+ --> $DIR/issue-104884-trait-impl-sugg-err.rs:19:1
|
LL | struct PriorityQueue(BinaryHeap>);
| ^^^^^^^^^^^^^^^^^^^^^^^
@@ -37,16 +40,19 @@ note: required for `PriorityQueue` to implement `PartialOrd`
--> $DIR/issue-104884-trait-impl-sugg-err.rs:14:10
|
LL | #[derive(PartialOrd, AddImpl)]
- | ^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^^^^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
...
LL | struct PriorityQueue(BinaryHeap>);
- | - would need to be `PartialOrd`
+ | ^^^^^^^^^^^^^ - would need to be `PartialOrd`
= help: consider manually implementing `PartialOrd` to avoid undesired bounds
note: required by a bound in `Ord`
--> $SRC_DIR/core/src/cmp.rs:LL:COL
error[E0277]: can't compare `BinaryHeap>` with `_`
- --> $DIR/issue-104884-trait-impl-sugg-err.rs:21:25
+ --> $DIR/issue-104884-trait-impl-sugg-err.rs:19:25
|
LL | #[derive(PartialOrd, AddImpl)]
| ---------- in this derive macro expansion
diff --git a/tests/ui/range/range_traits-2.rs b/tests/ui/range/range_traits-2.rs
index 234d7a64dc8b..7dd91243082c 100644
--- a/tests/ui/range/range_traits-2.rs
+++ b/tests/ui/range/range_traits-2.rs
@@ -1,6 +1,6 @@
use std::ops::*;
-#[derive(Copy, Clone)] //~ ERROR Copy
-struct R(Range);
+#[derive(Copy, Clone)]
+struct R(Range); //~ ERROR Copy
fn main() {}
diff --git a/tests/ui/range/range_traits-2.stderr b/tests/ui/range/range_traits-2.stderr
index 2001c85c4348..f38539cc648c 100644
--- a/tests/ui/range/range_traits-2.stderr
+++ b/tests/ui/range/range_traits-2.stderr
@@ -1,10 +1,10 @@
error[E0204]: the trait `Copy` cannot be implemented for this type
- --> $DIR/range_traits-2.rs:3:10
+ --> $DIR/range_traits-2.rs:4:8
|
LL | #[derive(Copy, Clone)]
- | ^^^^
+ | ---- in this derive macro expansion
LL | struct R(Range);
- | ------------ this field does not implement `Copy`
+ | ^ ------------ this field does not implement `Copy`
error: aborting due to 1 previous error
diff --git a/tests/ui/range/range_traits-3.rs b/tests/ui/range/range_traits-3.rs
index 2d597cce5ad5..79ba1842f62f 100644
--- a/tests/ui/range/range_traits-3.rs
+++ b/tests/ui/range/range_traits-3.rs
@@ -1,6 +1,6 @@
use std::ops::*;
-#[derive(Copy, Clone)] //~ ERROR Copy
-struct R(RangeFrom);
+#[derive(Copy, Clone)]
+struct R(RangeFrom); //~ ERROR Copy
fn main() {}
diff --git a/tests/ui/range/range_traits-3.stderr b/tests/ui/range/range_traits-3.stderr
index 71210379c79c..1f3768ad8d84 100644
--- a/tests/ui/range/range_traits-3.stderr
+++ b/tests/ui/range/range_traits-3.stderr
@@ -1,10 +1,10 @@
error[E0204]: the trait `Copy` cannot be implemented for this type
- --> $DIR/range_traits-3.rs:3:10
+ --> $DIR/range_traits-3.rs:4:8
|
LL | #[derive(Copy, Clone)]
- | ^^^^
+ | ---- in this derive macro expansion
LL | struct R(RangeFrom);
- | ---------------- this field does not implement `Copy`
+ | ^ ---------------- this field does not implement `Copy`
error: aborting due to 1 previous error
diff --git a/tests/ui/range/range_traits-6.rs b/tests/ui/range/range_traits-6.rs
index bce106bbfe79..72c6cecc88d6 100644
--- a/tests/ui/range/range_traits-6.rs
+++ b/tests/ui/range/range_traits-6.rs
@@ -1,6 +1,6 @@
use std::ops::*;
-#[derive(Copy, Clone)] //~ ERROR Copy
-struct R(RangeInclusive);
+#[derive(Copy, Clone)]
+struct R(RangeInclusive); //~ ERROR Copy
fn main() {}
diff --git a/tests/ui/range/range_traits-6.stderr b/tests/ui/range/range_traits-6.stderr
index a58022ef7e4f..53fe2fed0a61 100644
--- a/tests/ui/range/range_traits-6.stderr
+++ b/tests/ui/range/range_traits-6.stderr
@@ -1,10 +1,10 @@
error[E0204]: the trait `Copy` cannot be implemented for this type
- --> $DIR/range_traits-6.rs:3:10
+ --> $DIR/range_traits-6.rs:4:8
|
LL | #[derive(Copy, Clone)]
- | ^^^^
+ | ---- in this derive macro expansion
LL | struct R(RangeInclusive);
- | --------------------- this field does not implement `Copy`
+ | ^ --------------------- this field does not implement `Copy`
error: aborting due to 1 previous error
diff --git a/tests/ui/span/E0204.rs b/tests/ui/span/E0204.rs
index 8793a05c8a85..841bd5e32b8a 100644
--- a/tests/ui/span/E0204.rs
+++ b/tests/ui/span/E0204.rs
@@ -4,8 +4,8 @@ struct Foo {
impl Copy for Foo { } //~ ERROR cannot be implemented for this type
-#[derive(Copy)] //~ ERROR cannot be implemented for this type
-struct Foo2<'a> {
+#[derive(Copy)]
+struct Foo2<'a> { //~ ERROR cannot be implemented for this type
ty: &'a mut bool,
}
@@ -16,8 +16,8 @@ enum EFoo {
impl Copy for EFoo { } //~ ERROR cannot be implemented for this type
-#[derive(Copy)] //~ ERROR cannot be implemented for this type
-enum EFoo2<'a> {
+#[derive(Copy)]
+enum EFoo2<'a> { //~ ERROR cannot be implemented for this type
Bar(&'a mut bool),
Baz,
}
diff --git a/tests/ui/span/E0204.stderr b/tests/ui/span/E0204.stderr
index fe375b94781b..a0b51be17863 100644
--- a/tests/ui/span/E0204.stderr
+++ b/tests/ui/span/E0204.stderr
@@ -8,11 +8,12 @@ LL | impl Copy for Foo { }
| ^^^
error[E0204]: the trait `Copy` cannot be implemented for this type
- --> $DIR/E0204.rs:7:10
+ --> $DIR/E0204.rs:8:8
|
LL | #[derive(Copy)]
- | ^^^^
+ | ---- in this derive macro expansion
LL | struct Foo2<'a> {
+ | ^^^^
LL | ty: &'a mut bool,
| ---------------- this field does not implement `Copy`
@@ -26,11 +27,12 @@ LL | impl Copy for EFoo { }
| ^^^^
error[E0204]: the trait `Copy` cannot be implemented for this type
- --> $DIR/E0204.rs:19:10
+ --> $DIR/E0204.rs:20:6
|
LL | #[derive(Copy)]
- | ^^^^
+ | ---- in this derive macro expansion
LL | enum EFoo2<'a> {
+ | ^^^^^
LL | Bar(&'a mut bool),
| ------------ this field does not implement `Copy`
diff --git a/tests/ui/suggestions/derive-clone-for-eq.fixed b/tests/ui/suggestions/derive-clone-for-eq.fixed
index 4dc362f94787..17259dd687c6 100644
--- a/tests/ui/suggestions/derive-clone-for-eq.fixed
+++ b/tests/ui/suggestions/derive-clone-for-eq.fixed
@@ -1,8 +1,8 @@
//@ run-rustfix
// https://github.com/rust-lang/rust/issues/79076
-#[derive(Clone, Eq)] //~ ERROR [E0277]
-pub struct Struct(T);
+#[derive(Clone, Eq)]
+pub struct Struct(T); //~ ERROR [E0277]
impl PartialEq for Struct
where
diff --git a/tests/ui/suggestions/derive-clone-for-eq.rs b/tests/ui/suggestions/derive-clone-for-eq.rs
index b3635000f165..3e4331745be8 100644
--- a/tests/ui/suggestions/derive-clone-for-eq.rs
+++ b/tests/ui/suggestions/derive-clone-for-eq.rs
@@ -1,8 +1,8 @@
//@ run-rustfix
// https://github.com/rust-lang/rust/issues/79076
-#[derive(Clone, Eq)] //~ ERROR [E0277]
-pub struct Struct(T);
+#[derive(Clone, Eq)]
+pub struct Struct(T); //~ ERROR [E0277]
impl PartialEq for Struct
where
diff --git a/tests/ui/suggestions/derive-clone-for-eq.stderr b/tests/ui/suggestions/derive-clone-for-eq.stderr
index eb0355853daa..bed5ff90c194 100644
--- a/tests/ui/suggestions/derive-clone-for-eq.stderr
+++ b/tests/ui/suggestions/derive-clone-for-eq.stderr
@@ -1,8 +1,10 @@
error[E0277]: the trait bound `T: Clone` is not satisfied
- --> $DIR/derive-clone-for-eq.rs:4:17
+ --> $DIR/derive-clone-for-eq.rs:5:12
|
LL | #[derive(Clone, Eq)]
- | ^^ the trait `Clone` is not implemented for `T`
+ | -- in this derive macro expansion
+LL | pub struct Struct(T);
+ | ^^^^^^ the trait `Clone` is not implemented for `T`
|
note: required for `Struct` to implement `PartialEq`
--> $DIR/derive-clone-for-eq.rs:7:19
diff --git a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-2.stderr b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-2.stderr
index 800f07054af7..872ce7105ce8 100644
--- a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-2.stderr
+++ b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-2.stderr
@@ -27,9 +27,12 @@ note: required for `Vector2` to implement `Debug`
--> $DIR/missing-bound-in-derive-copy-impl-2.rs:4:10
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | pub struct Vector2 {
- | ----
+ | ^^^^^^^ ----
= help: consider manually implementing `Debug` to avoid undesired bounds
= note: required for the cast from `&Vector2` to `&dyn Debug`
help: consider further restricting type parameter `K` with trait `Copy`
@@ -69,9 +72,12 @@ note: required for `Vector2` to implement `Clone`
--> $DIR/missing-bound-in-derive-copy-impl-2.rs:4:23
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | pub struct Vector2 {
- | ----
+ | ^^^^^^^ ----
= help: consider manually implementing `Clone` to avoid undesired bounds
help: consider further restricting type parameter `K` with trait `Copy`
|
diff --git a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.fixed b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.fixed
index 74df1d7c7cfd..bd1785e35112 100644
--- a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.fixed
+++ b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.fixed
@@ -7,8 +7,8 @@ pub struct Vector2{
pub y: T
}
-#[derive(Debug, Copy, Clone)] //~ ERROR the trait `Copy` cannot be implemented for this type
-pub struct AABB{
+#[derive(Debug, Copy, Clone)]
+pub struct AABB { //~ ERROR the trait `Copy` cannot be implemented for this type
pub loc: Vector2, //~ ERROR `K` doesn't implement `Debug`
//~^ ERROR `K` doesn't implement `Debug`
pub size: Vector2 //~ ERROR `K` doesn't implement `Debug`
diff --git a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.rs b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.rs
index 8550a4d72476..36502044bd46 100644
--- a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.rs
+++ b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.rs
@@ -7,8 +7,8 @@ pub struct Vector2{
pub y: T
}
-#[derive(Debug, Copy, Clone)] //~ ERROR the trait `Copy` cannot be implemented for this type
-pub struct AABB{
+#[derive(Debug, Copy, Clone)]
+pub struct AABB { //~ ERROR the trait `Copy` cannot be implemented for this type
pub loc: Vector2, //~ ERROR `K` doesn't implement `Debug`
//~^ ERROR `K` doesn't implement `Debug`
pub size: Vector2 //~ ERROR `K` doesn't implement `Debug`
diff --git a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.stderr b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.stderr
index e3375b67c86d..cc80e7297e48 100644
--- a/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.stderr
+++ b/tests/ui/suggestions/missing-bound-in-derive-copy-impl-3.stderr
@@ -1,9 +1,10 @@
error[E0204]: the trait `Copy` cannot be implemented for this type
- --> $DIR/missing-bound-in-derive-copy-impl-3.rs:10:17
+ --> $DIR/missing-bound-in-derive-copy-impl-3.rs:11:12
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^
-LL | pub struct AABB{
+ | ---- in this derive macro expansion
+LL | pub struct AABB {
+ | ^^^^
LL | pub loc: Vector2,
| ------------------- this field does not implement `Copy`
|
@@ -14,7 +15,7 @@ LL | pub loc: Vector2,
| ^^^^^^^^^^
help: consider further restricting type parameter `K` with trait `Debug`
|
-LL | pub struct AABB{
+LL | pub struct AABB {
| +++++++
error[E0277]: `K` doesn't implement `Debug`
@@ -30,7 +31,7 @@ LL | pub struct Vector2{
| ^^^^^ required by this bound in `Vector2`
help: consider further restricting type parameter `K` with trait `Debug`
|
-LL | pub struct AABB{
+LL | pub struct AABB {
| +++++++++++++++++
error[E0277]: `K` doesn't implement `Debug`
@@ -38,13 +39,13 @@ error[E0277]: `K` doesn't implement `Debug`
|
LL | #[derive(Debug, Copy, Clone)]
| ----- in this derive macro expansion
-LL | pub struct AABB{
+LL | pub struct AABB {
LL | pub loc: Vector2,
| ^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `K`
|
help: consider further restricting type parameter `K` with trait `Debug`
|
-LL | pub struct AABB{
+LL | pub struct AABB {
| +++++++++++++++++
error[E0277]: `K` doesn't implement `Debug`
@@ -58,7 +59,7 @@ LL | pub size: Vector2
|
help: consider further restricting type parameter `K` with trait `Debug`
|
-LL | pub struct AABB{
+LL | pub struct AABB {
| +++++++++++++++++
error: aborting due to 4 previous errors
diff --git a/tests/ui/suggestions/missing-bound-in-derive-copy-impl.rs b/tests/ui/suggestions/missing-bound-in-derive-copy-impl.rs
index 0ffc1b8f7a25..60a9074e5c0d 100644
--- a/tests/ui/suggestions/missing-bound-in-derive-copy-impl.rs
+++ b/tests/ui/suggestions/missing-bound-in-derive-copy-impl.rs
@@ -6,8 +6,8 @@ pub struct Vector2 {
pub y: T,
}
-#[derive(Debug, Copy, Clone)] //~ ERROR the trait `Copy` cannot be implemented for this type
-pub struct AABB {
+#[derive(Debug, Copy, Clone)]
+pub struct AABB { //~ ERROR the trait `Copy` cannot be implemented for this type
pub loc: Vector2,
//~^ ERROR doesn't implement `Debug`
//~| ERROR `K: Copy` is not satisfied
diff --git a/tests/ui/suggestions/missing-bound-in-derive-copy-impl.stderr b/tests/ui/suggestions/missing-bound-in-derive-copy-impl.stderr
index 3f889f31484b..f843fb0d6d7e 100644
--- a/tests/ui/suggestions/missing-bound-in-derive-copy-impl.stderr
+++ b/tests/ui/suggestions/missing-bound-in-derive-copy-impl.stderr
@@ -1,9 +1,10 @@
error[E0204]: the trait `Copy` cannot be implemented for this type
- --> $DIR/missing-bound-in-derive-copy-impl.rs:9:17
+ --> $DIR/missing-bound-in-derive-copy-impl.rs:10:12
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^
+ | ---- in this derive macro expansion
LL | pub struct AABB {
+ | ^^^^
LL | pub loc: Vector2,
| ------------------- this field does not implement `Copy`
|
@@ -62,9 +63,12 @@ note: required for `Vector2` to implement `Debug`
--> $DIR/missing-bound-in-derive-copy-impl.rs:3:10
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | pub struct Vector2 {
- | ----
+ | ^^^^^^^ ----
= help: consider manually implementing `Debug` to avoid undesired bounds
= note: required for the cast from `&Vector2` to `&dyn Debug`
help: consider restricting type parameter `K` with trait `Copy`
@@ -132,9 +136,12 @@ note: required for `Vector2` to implement `Clone`
--> $DIR/missing-bound-in-derive-copy-impl.rs:3:23
|
LL | #[derive(Debug, Copy, Clone)]
- | ^^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | pub struct Vector2 {
- | ----
+ | ^^^^^^^ ----
= help: consider manually implementing `Clone` to avoid undesired bounds
help: consider restricting type parameter `K` with trait `Copy`
|
diff --git a/tests/ui/traits/derive-implicit-bound.stderr b/tests/ui/traits/derive-implicit-bound.stderr
index 275cef7a94fd..02c7fe9e689e 100644
--- a/tests/ui/traits/derive-implicit-bound.stderr
+++ b/tests/ui/traits/derive-implicit-bound.stderr
@@ -11,9 +11,12 @@ note: required for `Id` to implement `PartialEq`
--> $DIR/derive-implicit-bound.rs:5:10
|
LL | #[derive(PartialEq, Eq)]
- | ^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
+ | ^^^^^^^^^
+ | |
+ | unsatisfied trait bound introduced in this `derive` macro
+ | in this derive macro expansion
LL | pub struct Id(PhantomData);
- | - would need to be `PartialEq`
+ | ^^ - would need to be `PartialEq`
= help: consider manually implementing `PartialEq` to avoid undesired bounds
note: required by a bound in `accept_eq`
--> $DIR/derive-implicit-bound.rs:17:23
diff --git a/tests/ui/traits/issue-106072.rs b/tests/ui/traits/issue-106072.rs
index d45668312218..6b04004621d8 100644
--- a/tests/ui/traits/issue-106072.rs
+++ b/tests/ui/traits/issue-106072.rs
@@ -1,6 +1,4 @@
-#[derive(Clone)]
-//~^ ERROR expected a type, found a trait
-//~| ERROR expected a type, found a trait
-struct Foo;
-trait Foo {} //~ ERROR the name `Foo` is defined multiple times
+#[derive(Clone)] //~ ERROR: expected a type, found a trait
+struct Foo; //~ ERROR: expected a type, found a trait
+trait Foo {} //~ ERROR: the name `Foo` is defined multiple times
fn main() {}
diff --git a/tests/ui/traits/issue-106072.stderr b/tests/ui/traits/issue-106072.stderr
index 815787c3bfec..ebb22cb9cd74 100644
--- a/tests/ui/traits/issue-106072.stderr
+++ b/tests/ui/traits/issue-106072.stderr
@@ -1,5 +1,5 @@
error[E0428]: the name `Foo` is defined multiple times
- --> $DIR/issue-106072.rs:5:1
+ --> $DIR/issue-106072.rs:3:1
|
LL | struct Foo;
| ----------- previous definition of the type `Foo` here
@@ -9,18 +9,23 @@ LL | trait Foo {}
= note: `Foo` must be defined only once in the type namespace of this module
error[E0782]: expected a type, found a trait
- --> $DIR/issue-106072.rs:1:10
+ --> $DIR/issue-106072.rs:2:8
|
LL | #[derive(Clone)]
- | ^^^^^
+ | ----- in this derive macro expansion
+LL | struct Foo;
+ | ^^^
+ |
+help: you can add the `dyn` keyword if you want a trait object
+ |
+LL | struct dyn Foo;
+ | +++
error[E0782]: expected a type, found a trait
--> $DIR/issue-106072.rs:1:10
|
LL | #[derive(Clone)]
| ^^^^^
- |
- = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
error: aborting due to 3 previous errors
diff --git a/tests/ui/traits/issue-50480.rs b/tests/ui/traits/issue-50480.rs
index ccd35a850f2d..2f62906e9df3 100644
--- a/tests/ui/traits/issue-50480.rs
+++ b/tests/ui/traits/issue-50480.rs
@@ -1,18 +1,17 @@
#[derive(Clone, Copy)]
-//~^ ERROR the trait `Copy` cannot be implemented for this type
struct Foo(N, NotDefined, ::Item, Vec, String);
-//~^ ERROR cannot find type `NotDefined` in this scope
+//~^ ERROR the trait `Copy` cannot be implemented for this type
+//~| ERROR cannot find type `NotDefined` in this scope
//~| ERROR cannot find type `NotDefined` in this scope
//~| ERROR cannot find type `N` in this scope
//~| ERROR cannot find type `N` in this scope
//~| ERROR `i32` is not an iterator
//~| ERROR `i32` is not an iterator
-#[derive(Clone, Copy)]
-//~^ ERROR the trait `Copy` cannot be implemented for this type
-//~| ERROR `i32` is not an iterator
+#[derive(Clone, Copy)] //~ ERROR `i32` is not an iterator
struct Bar(T, N, NotDefined, ::Item, Vec, String);
-//~^ ERROR cannot find type `NotDefined` in this scope
+//~^ ERROR the trait `Copy` cannot be implemented for this type
+//~| ERROR cannot find type `NotDefined` in this scope
//~| ERROR cannot find type `N` in this scope
//~| ERROR `i32` is not an iterator
//~| ERROR `i32` is not an iterator
diff --git a/tests/ui/traits/issue-50480.stderr b/tests/ui/traits/issue-50480.stderr
index 32c8b2cf3ac1..1fb5e8b00783 100644
--- a/tests/ui/traits/issue-50480.stderr
+++ b/tests/ui/traits/issue-50480.stderr
@@ -1,5 +1,5 @@
error[E0425]: cannot find type `N` in this scope
- --> $DIR/issue-50480.rs:3:12
+ --> $DIR/issue-50480.rs:2:12
|
LL | struct Foo(N, NotDefined, ::Item, Vec, String);
| ^ not found in this scope
@@ -10,13 +10,13 @@ LL | struct Foo(N, NotDefined, ::Item, Vec, String);
| +++
error[E0425]: cannot find type `NotDefined` in this scope
- --> $DIR/issue-50480.rs:3:15
+ --> $DIR/issue-50480.rs:2:15
|
LL | struct Foo(N, NotDefined, ::Item, Vec, String);
| ^^^^^^^^^^ not found in this scope
error[E0425]: cannot find type `N` in this scope
- --> $DIR/issue-50480.rs:3:12
+ --> $DIR/issue-50480.rs:2:12
|
LL | struct Foo(N, NotDefined, ::Item, Vec, String);
| ^ not found in this scope
@@ -27,7 +27,7 @@ LL | struct Foo(N, NotDefined, ::Item, Vec, String);
| +++
error[E0425]: cannot find type `NotDefined` in this scope
- --> $DIR/issue-50480.rs:3:15
+ --> $DIR/issue-50480.rs:2:15
|
LL | struct Foo(N, NotDefined, ::Item, Vec, String);
| ^^^^^^^^^^ not found in this scope
@@ -38,7 +38,7 @@ LL | struct Foo(N, NotDefined, ::Item, Vec, St
| ++++++++++++
error[E0425]: cannot find type `N` in this scope
- --> $DIR/issue-50480.rs:14:18
+ --> $DIR/issue-50480.rs:12:18
|
LL | struct Bar(T, N, NotDefined, ::Item, Vec, String);
| - ^
@@ -56,13 +56,13 @@ LL | struct Bar(T, N, NotDefined, ::Item, Vec, Strin
| +++
error[E0425]: cannot find type `NotDefined` in this scope
- --> $DIR/issue-50480.rs:14:21
+ --> $DIR/issue-50480.rs:12:21
|
LL | struct Bar(T, N, NotDefined, ::Item, Vec, String);
| ^^^^^^^^^^ not found in this scope
error[E0277]: `i32` is not an iterator
- --> $DIR/issue-50480.rs:3:27
+ --> $DIR/issue-50480.rs:2:27
|
LL | struct Foo(N, NotDefined, ::Item, Vec, String);
| ^^^^^^^^^^^^^^^^^^^^^^^ `i32` is not an iterator
@@ -70,29 +70,27 @@ LL | struct Foo(N, NotDefined, ::Item, Vec, String);
= help: the trait `Iterator` is not implemented for `i32`
error[E0204]: the trait `Copy` cannot be implemented for this type
- --> $DIR/issue-50480.rs:1:17
+ --> $DIR/issue-50480.rs:2:8
|
LL | #[derive(Clone, Copy)]
- | ^^^^
-LL |
+ | ---- in this derive macro expansion
LL | struct Foo(N, NotDefined, ::Item, Vec, String);
- | -------- ------ this field does not implement `Copy`
+ | ^^^ -------- ------ this field does not implement `Copy`
| |
| this field does not implement `Copy`
error[E0204]: the trait `Copy` cannot be implemented for this type
- --> $DIR/issue-50480.rs:11:17
+ --> $DIR/issue-50480.rs:12:8
|
LL | #[derive(Clone, Copy)]
- | ^^^^
-...
+ | ---- in this derive macro expansion
LL | struct Bar(T, N, NotDefined, ::Item, Vec, String);
- | -------- ------ this field does not implement `Copy`
+ | ^^^ -------- ------ this field does not implement `Copy`
| |
| this field does not implement `Copy`
error[E0277]: `i32` is not an iterator
- --> $DIR/issue-50480.rs:14:33
+ --> $DIR/issue-50480.rs:12:33
|
LL | struct Bar(T, N, NotDefined, ::Item, Vec, String);
| ^^^^^^^^^^^^^^^^^^^^^^^ `i32` is not an iterator
@@ -100,7 +98,7 @@ LL | struct Bar(T, N, NotDefined, ::Item, Vec, String);
= help: the trait `Iterator` is not implemented for `i32`
error[E0277]: `i32` is not an iterator
- --> $DIR/issue-50480.rs:3:28
+ --> $DIR/issue-50480.rs:2:28
|
LL | struct Foo(N, NotDefined, ::Item, Vec, String);
| ^^^ `i32` is not an iterator
@@ -116,11 +114,10 @@ LL | #[derive(Clone, Copy)]
= help: the trait `Iterator` is not implemented for `i32`
error[E0277]: `i32` is not an iterator
- --> $DIR/issue-50480.rs:14:33
+ --> $DIR/issue-50480.rs:12:33
|
LL | #[derive(Clone, Copy)]
| ----- in this derive macro expansion
-...
LL | struct Bar(T, N, NotDefined, ::Item, Vec, String);
| ^^^^^^^^^^^^^^^^^^^^^^^ `i32` is not an iterator
|
diff --git a/tests/ui/traits/next-solver/global-cache-and-parallel-frontend.rs b/tests/ui/traits/next-solver/global-cache-and-parallel-frontend.rs
index 2b4f7ba9fa29..ceef87d76abb 100644
--- a/tests/ui/traits/next-solver/global-cache-and-parallel-frontend.rs
+++ b/tests/ui/traits/next-solver/global-cache-and-parallel-frontend.rs
@@ -12,8 +12,8 @@
// we already face this difficulty, probably. If we need to fix this by reducing the error margin,
// we should improve compiletest.
-#[derive(Clone, Eq)] //~ ERROR [E0277]
-pub struct Struct(T);
+#[derive(Clone, Eq)]
+pub struct Struct(T); //~ ERROR [E0277]
impl PartialEq for Struct
where
diff --git a/tests/ui/traits/next-solver/global-cache-and-parallel-frontend.stderr b/tests/ui/traits/next-solver/global-cache-and-parallel-frontend.stderr
index 290b1df1665d..912286a48faf 100644
--- a/tests/ui/traits/next-solver/global-cache-and-parallel-frontend.stderr
+++ b/tests/ui/traits/next-solver/global-cache-and-parallel-frontend.stderr
@@ -1,8 +1,10 @@
error[E0277]: the trait bound `T: Clone` is not satisfied
- --> $DIR/global-cache-and-parallel-frontend.rs:15:17
+ --> $DIR/global-cache-and-parallel-frontend.rs:16:12
|
LL | #[derive(Clone, Eq)]
- | ^^ the trait `Clone` is not implemented for `T`
+ | -- in this derive macro expansion
+LL | pub struct Struct(T);
+ | ^^^^^^ the trait `Clone` is not implemented for `T`
|
note: required for `Struct` to implement `PartialEq`
--> $DIR/global-cache-and-parallel-frontend.rs:18:19