dea8a16af5
Fixes #76267 When there is a single applicable method candidate, but its trait bounds are not satisfied, we avoid saying that the method is "not found". Insted, we update the error message to directly mention which bounds are not satisfied, rather than mentioning them in a note.
38 lines
1.3 KiB
Plaintext
38 lines
1.3 KiB
Plaintext
error[E0599]: the method `clone` exists for struct `Box<dyn Foo>`, but its trait bounds were not satisfied
|
|
--> $DIR/unique-object-noncopyable.rs:24:16
|
|
|
|
|
LL | trait Foo {
|
|
| ---------
|
|
| |
|
|
| doesn't satisfy `dyn Foo: Clone`
|
|
| doesn't satisfy `dyn Foo: Sized`
|
|
...
|
|
LL | let _z = y.clone();
|
|
| ^^^^^ method cannot be called on `Box<dyn Foo>` due to unsatisfied trait bounds
|
|
|
|
|
::: $SRC_DIR/core/src/clone.rs:LL:COL
|
|
|
|
|
LL | fn clone(&self) -> Self;
|
|
| -----
|
|
| |
|
|
| the method is available for `Arc<Box<dyn Foo>>` here
|
|
| the method is available for `Rc<Box<dyn Foo>>` here
|
|
|
|
|
::: $SRC_DIR/alloc/src/boxed.rs:LL:COL
|
|
|
|
|
LL | / pub struct Box<
|
|
LL | | T: ?Sized,
|
|
LL | | #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global,
|
|
LL | | >(Unique<T>, A);
|
|
| |________________- doesn't satisfy `Box<dyn Foo>: Clone`
|
|
|
|
|
= note: the following trait bounds were not satisfied:
|
|
`dyn Foo: Sized`
|
|
which is required by `Box<dyn Foo>: Clone`
|
|
`dyn Foo: Clone`
|
|
which is required by `Box<dyn Foo>: Clone`
|
|
|
|
error: aborting due to previous error
|
|
|
|
For more information about this error, try `rustc --explain E0599`.
|