5b54286640
Remove the "which is required by `{root_obligation}`" post-script in "the trait `X` is not implemented for `Y`" explanation in E0277. This information is already conveyed in the notes explaining requirements, making it redundant while making the text (particularly in labels) harder to read. ``` error[E0277]: the trait bound `NotCopy: Copy` is not satisfied --> $DIR/wf-static-type.rs:10:13 | LL | static FOO: IsCopy<Option<NotCopy>> = IsCopy { t: None }; | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `NotCopy` | = note: required for `Option<NotCopy>` to implement `Copy` note: required by a bound in `IsCopy` --> $DIR/wf-static-type.rs:7:17 | LL | struct IsCopy<T:Copy> { t: T } | ^^^^ required by this bound in `IsCopy` ``` vs the prior ``` error[E0277]: the trait bound `NotCopy: Copy` is not satisfied --> $DIR/wf-static-type.rs:10:13 | LL | static FOO: IsCopy<Option<NotCopy>> = IsCopy { t: None }; | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `NotCopy`, which is required by `Option<NotCopy>: Copy` | = note: required for `Option<NotCopy>` to implement `Copy` note: required by a bound in `IsCopy` --> $DIR/wf-static-type.rs:7:17 | LL | struct IsCopy<T:Copy> { t: T } | ^^^^ required by this bound in `IsCopy` ```
161 lines
7.6 KiB
Plaintext
161 lines
7.6 KiB
Plaintext
error[E0277]: the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:12:13
|
|
|
|
|
LL | nested: &'static Bar<dyn std::fmt::Debug>,
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
|
|
|
|
= help: the trait `Sized` is not implemented for `(dyn Debug + 'static)`
|
|
note: required by an implicit `Sized` bound in `Bar`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:21:12
|
|
|
|
|
LL | struct Bar<T>(T);
|
|
| ^ required by the implicit `Sized` requirement on this type parameter in `Bar`
|
|
help: you could relax the implicit `Sized` bound on `T` if it were used through indirection like `&T` or `Box<T>`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:21:12
|
|
|
|
|
LL | struct Bar<T>(T);
|
|
| ^ - ...if indirection were used here: `Box<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
|
|
|
|
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
|
|
| ^^^^^^^^^^^^
|
|
...
|
|
LL | nested: &'static Bar<dyn std::fmt::Debug>,
|
|
| ----------------------------------------- this field does not implement `ConstParamTy_`
|
|
|
|
|
= note: this error originates in the derive macro `ConstParamTy` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|
|
error[E0204]: the trait `ConstParamTy_` cannot be implemented for this type
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:8:32
|
|
|
|
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
|
|
| ^^^^^^^^^^^^
|
|
...
|
|
LL | nested: &'static Bar<dyn std::fmt::Debug>,
|
|
| ----------------------------------------- this field does not implement `ConstParamTy_`
|
|
|
|
|
note: the `ConstParamTy_` impl for `&'static Bar<(dyn Debug + 'static)>` requires that `(dyn Debug + 'static): Eq`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:12:13
|
|
|
|
|
LL | nested: &'static Bar<dyn std::fmt::Debug>,
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
note: the `ConstParamTy_` impl for `&'static Bar<(dyn Debug + 'static)>` requires that `(dyn Debug + 'static): Sized`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:12:13
|
|
|
|
|
LL | nested: &'static Bar<dyn std::fmt::Debug>,
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
note: the `ConstParamTy_` impl for `&'static Bar<(dyn Debug + 'static)>` requires that `(dyn Debug + 'static): UnsizedConstParamTy`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:12:13
|
|
|
|
|
LL | nested: &'static Bar<dyn std::fmt::Debug>,
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
= note: this error originates in the derive macro `ConstParamTy` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|
|
error[E0277]: the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:12:5
|
|
|
|
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
|
|
| ----- in this derive macro expansion
|
|
...
|
|
LL | nested: &'static Bar<dyn std::fmt::Debug>,
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
|
|
|
|
= help: the trait `Sized` is not implemented for `(dyn Debug + 'static)`
|
|
= help: the trait `Debug` is implemented for `Bar<T>`
|
|
note: required for `Bar<(dyn Debug + 'static)>` to implement `Debug`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:20:10
|
|
|
|
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
|
|
| ^^^^^
|
|
LL | struct Bar<T>(T);
|
|
| - unsatisfied trait bound introduced in this `derive` macro
|
|
= note: 2 redundant requirements hidden
|
|
= note: required for `&&'static Bar<(dyn Debug + 'static)>` to implement `Debug`
|
|
= note: required for the cast from `&&&'static Bar<(dyn Debug + 'static)>` to `&dyn Debug`
|
|
= note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|
|
error[E0369]: binary operation `==` cannot be applied to type `&Bar<dyn Debug>`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:12:5
|
|
|
|
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
|
|
| --------- in this derive macro expansion
|
|
...
|
|
LL | nested: &'static Bar<dyn std::fmt::Debug>,
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
= note: this error originates in the derive macro `PartialEq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|
|
error[E0277]: the trait bound `dyn Debug: Eq` is not satisfied
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:12:5
|
|
|
|
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
|
|
| -- in this derive macro expansion
|
|
...
|
|
LL | nested: &'static Bar<dyn std::fmt::Debug>,
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Eq` is not implemented for `dyn Debug`
|
|
|
|
|
= help: the trait `Eq` is implemented for `Bar<T>`
|
|
note: required for `Bar<dyn Debug>` to implement `Eq`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:20:28
|
|
|
|
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
|
|
| ^^ unsatisfied trait bound introduced in this `derive` macro
|
|
= note: 1 redundant requirement hidden
|
|
= note: required for `&'static Bar<dyn Debug>` to implement `Eq`
|
|
note: required by a bound in `AssertParamIsEq`
|
|
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
|
= note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|
|
error[E0277]: the size for values of type `dyn Debug` cannot be known at compilation time
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:12:5
|
|
|
|
|
LL | #[derive(Debug, PartialEq, Eq, ConstParamTy)]
|
|
| -- in this derive macro expansion
|
|
...
|
|
LL | nested: &'static Bar<dyn std::fmt::Debug>,
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
|
|
|
|
= help: the trait `Sized` is not implemented for `dyn Debug`
|
|
note: required by an implicit `Sized` bound in `Bar`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:21:12
|
|
|
|
|
LL | struct Bar<T>(T);
|
|
| ^ required by the implicit `Sized` requirement on this type parameter in `Bar`
|
|
help: you could relax the implicit `Sized` bound on `T` if it were used through indirection like `&T` or `Box<T>`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:21:12
|
|
|
|
|
LL | struct Bar<T>(T);
|
|
| ^ - ...if indirection were used here: `Box<T>`
|
|
| |
|
|
| this could be changed to `T: ?Sized`...
|
|
= note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|
|
error[E0277]: the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:26:33
|
|
|
|
|
LL | let x: Test<{ Foo { nested: &Bar(4) } }> = Test;
|
|
| ^^^^^^^ doesn't have a size known at compile-time
|
|
|
|
|
= help: the trait `Sized` is not implemented for `(dyn Debug + 'static)`
|
|
note: required by an implicit `Sized` bound in `Bar`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:21:12
|
|
|
|
|
LL | struct Bar<T>(T);
|
|
| ^ required by the implicit `Sized` requirement on this type parameter in `Bar`
|
|
help: you could relax the implicit `Sized` bound on `T` if it were used through indirection like `&T` or `Box<T>`
|
|
--> $DIR/unsizing-wfcheck-issue-126272.rs:21:12
|
|
|
|
|
LL | struct Bar<T>(T);
|
|
| ^ - ...if indirection were used here: `Box<T>`
|
|
| |
|
|
| this could be changed to `T: ?Sized`...
|
|
|
|
error: aborting due to 8 previous errors
|
|
|
|
Some errors have detailed explanations: E0204, E0277, E0369.
|
|
For more information about an error, try `rustc --explain E0204`.
|