rust/tests/ui/derives
bors cb93c24bf3 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?
2024-05-09 08:34:14 +00:00
..
auxiliary
clone-debug-dead-code-in-the-same-struct.rs
clone-debug-dead-code-in-the-same-struct.stderr
clone-debug-dead-code.rs
clone-debug-dead-code.stderr
derive-assoc-type-not-impl.rs
derive-assoc-type-not-impl.stderr
derive-deadlock.rs
derive-deadlock.stderr
derive-Debug-use-ufcs-struct.rs
derive-Debug-use-ufcs-tuple.rs
derive-hygiene.rs
derive-macro-const-default.rs
derive-marker-tricky.rs
derive-multiple-with-packed.rs
derive-on-trait-item-or-impl-item.rs
derive-on-trait-item-or-impl-item.stderr
derive-partial-ord.rs
derive-renamed.rs
derives-span-Clone-enum-struct-variant.rs
derives-span-Clone-enum-struct-variant.stderr
derives-span-Clone-enum.rs
derives-span-Clone-enum.stderr
derives-span-Clone-struct.rs
derives-span-Clone-struct.stderr
derives-span-Clone-tuple-struct.rs
derives-span-Clone-tuple-struct.stderr
derives-span-Debug-enum-struct-variant.rs
derives-span-Debug-enum-struct-variant.stderr
derives-span-Debug-enum.rs
derives-span-Debug-enum.stderr
derives-span-Debug-struct.rs
derives-span-Debug-struct.stderr
derives-span-Debug-tuple-struct.rs
derives-span-Debug-tuple-struct.stderr
derives-span-Default-struct.rs
derives-span-Default-struct.stderr
derives-span-Default-tuple-struct.rs
derives-span-Default-tuple-struct.stderr
derives-span-Eq-enum-struct-variant.rs
derives-span-Eq-enum-struct-variant.stderr
derives-span-Eq-enum.rs
derives-span-Eq-enum.stderr
derives-span-Eq-struct.rs
derives-span-Eq-struct.stderr
derives-span-Eq-tuple-struct.rs
derives-span-Eq-tuple-struct.stderr
derives-span-Hash-enum-struct-variant.rs
derives-span-Hash-enum-struct-variant.stderr
derives-span-Hash-enum.rs
derives-span-Hash-enum.stderr
derives-span-Hash-struct.rs
derives-span-Hash-struct.stderr
derives-span-Hash-tuple-struct.rs
derives-span-Hash-tuple-struct.stderr
derives-span-Ord-enum-struct-variant.rs
derives-span-Ord-enum-struct-variant.stderr
derives-span-Ord-enum.rs
derives-span-Ord-enum.stderr
derives-span-Ord-struct.rs
derives-span-Ord-struct.stderr
derives-span-Ord-tuple-struct.rs
derives-span-Ord-tuple-struct.stderr
derives-span-PartialEq-enum-struct-variant.rs
derives-span-PartialEq-enum-struct-variant.stderr
derives-span-PartialEq-enum.rs
derives-span-PartialEq-enum.stderr
derives-span-PartialEq-struct.rs
derives-span-PartialEq-struct.stderr
derives-span-PartialEq-tuple-struct.rs
derives-span-PartialEq-tuple-struct.stderr
derives-span-PartialOrd-enum-struct-variant.rs
derives-span-PartialOrd-enum-struct-variant.stderr
derives-span-PartialOrd-enum.rs
derives-span-PartialOrd-enum.stderr
derives-span-PartialOrd-struct.rs
derives-span-PartialOrd-struct.stderr
derives-span-PartialOrd-tuple-struct.rs
derives-span-PartialOrd-tuple-struct.stderr
deriving-bounds.rs
deriving-bounds.stderr
deriving-copyclone.rs
deriving-copyclone.stderr
deriving-meta-empty-trait-list.rs
deriving-meta-unknown-trait.rs
deriving-meta-unknown-trait.stderr
deriving-no-inner-impl-error-message.rs
deriving-no-inner-impl-error-message.stderr
deriving-non-type.rs
deriving-non-type.stderr
deriving-primitive.rs
deriving-primitive.stderr
deriving-with-repr-packed-2.rs
deriving-with-repr-packed-2.stderr
deriving-with-repr-packed-move-errors.rs
deriving-with-repr-packed-move-errors.stderr
deriving-with-repr-packed.rs
deriving-with-repr-packed.stderr
issue-36617.rs
issue-36617.stderr
issue-43023.rs
issue-43023.stderr
issue-91492.rs
issue-91492.stderr
issue-91550.rs
issue-91550.stderr
issue-97343.rs
issue-97343.stderr
rustc-decodable-issue-123156.rs
rustc-decodable-issue-123156.stderr