diff options
| author | bors <bors@rust-lang.org> | 2024-05-09 08:34:14 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-05-09 08:34:14 +0000 |
| commit | cb93c24bf36b3367714516fc2308cf6856916eeb (patch) | |
| tree | f0f6f12d69a3c7c50ac033892aacd75ae8fcd151 /tests/rustdoc/private-non-local-fields.rs | |
| parent | 5f8c17dcc04a2981268df89874203e9bfea50597 (diff) | |
| parent | c2a0ef65da366c7e5235b8f9781278d62ff2f8e1 (diff) | |
| download | rust-cb93c24bf36b3367714516fc2308cf6856916eeb.tar.gz rust-cb93c24bf36b3367714516fc2308cf6856916eeb.zip | |
Auto merge of #124157 - wutchzone:partial_eq, r=estebank
Do not add leading asterisk in the `PartialEq`
I think we should address this issue, however I am not exactly sure, if this is the right way to do it. It is related to the #123056.
Imagine the simplified code:
```rust
trait MyTrait {}
impl PartialEq for dyn MyTrait {
fn eq(&self, _other: &Self) -> bool {
true
}
}
#[derive(PartialEq)]
enum Bar {
Foo(Box<dyn MyTrait>),
}
```
On the nightly compiler, the `derive` produces invalid code with the weird error message:
```
error[E0507]: cannot move out of `*__arg1_0` which is behind a shared reference
--> src/main.rs:11:9
|
9 | #[derive(PartialEq)]
| --------- in this derive macro expansion
10 | enum Things {
11 | Foo(Box<dyn MyTrait>),
| ^^^^^^^^^^^^^^^^ move occurs because `*__arg1_0` has type `Box<dyn MyTrait>`, which does not implement the `Copy` trait
|
= note: this error originates in the derive macro `PartialEq` (in Nightly builds, run with -Z macro-backtrace for more info)
```
It may be related to the perfect derive problem, although requiring the _type_ to be `Copy` seems unfortunate because it is not necessary. Besides, we are adding the extra dereference only for the diagnostics?
Diffstat (limited to 'tests/rustdoc/private-non-local-fields.rs')
0 files changed, 0 insertions, 0 deletions
