rust/tests/ui/union
Esteban Küber 11061831f7 Mention type that could be Clone but isn't in more cases
When encountering a moved value of a type that isn't `Clone` because of unmet obligations, but where all the unmet predicates reference crate-local types, mention them and suggest cloning, as we do in other cases already:

```
error[E0507]: cannot move out of `foo`, a captured variable in an `Fn` closure
  --> f111.rs:14:25
   |
13 | fn do_stuff(foo: Option<Foo>) {
   |             --- captured outer variable
14 |     require_fn_trait(|| async {
   |                      -- ^^^^^ `foo` is moved here
   |                      |
   |                      captured by this `Fn` closure
15 |         if foo.map_or(false, |f| f.foo()) {
   |            ---
   |            |
   |            variable moved due to use in coroutine
   |            move occurs because `foo` has type `Option<Foo>`, which does not implement the `Copy` trait
   |
note: if `Foo` implemented `Clone`, you could clone the value
  --> f111.rs:4:1
   |
4  | struct Foo;
   | ^^^^^^^^^^ consider implementing `Clone` for this type
...
15 |         if foo.map_or(false, |f| f.foo()) {
   |            --- you could clone this value
```
2025-07-25 18:34:10 +00:00
..
auxiliary Move /src/test to /tests 2023-01-11 09:32:08 +00:00
field_checks.rs Tweak E0740 2023-03-08 01:58:15 +00:00
field_checks.stderr Tweak E0740 2023-03-08 01:58:15 +00:00
issue-41073.rs Tweak E0740 2023-03-08 01:58:15 +00:00
issue-41073.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-81199.rs raw pointer metadata API: data address -> data pointer 2024-01-29 07:56:38 +01:00
issue-81199.stderr Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
issue-99375.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
projection-as-union-type-error-2.rs Add failing test for invalid projection as union field type 2023-01-17 14:00:55 +01:00
projection-as-union-type-error-2.stderr Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
projection-as-union-type-error.rs Add failing test for invalid projection as union field type 2023-01-17 14:00:55 +01:00
projection-as-union-type-error.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
projection-as-union-type.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-align.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-backcomp.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-basic.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-borrow-move-parent-sibling.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-borrow-move-parent-sibling.stderr Mention type that could be Clone but isn't in more cases 2025-07-25 18:34:10 +00:00
union-const-codegen.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-const-eval-field.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-const-eval.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-const-pat.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
union-const-pat.stderr Tweak output of some const pattern errors 2024-12-04 20:29:36 +00:00
union-copy.rs may not => cannot 2023-03-08 00:00:18 +00:00
union-copy.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
union-deref.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-deref.stderr Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-derive-clone.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-derive-clone.stderr Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
union-derive-eq.current.stderr Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
union-derive-eq.next.stderr Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
union-derive-eq.rs Don't pick T: FnPtr nested goals 2025-01-22 06:55:38 +00:00
union-derive-rpass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-derive.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
union-derive.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
union-drop-assign.rs Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
union-drop.rs Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
union-empty.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
union-empty.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
union-fields-1.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-fields-1.stderr Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-fields-2.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-fields-2.stderr Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-generic-rpass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-generic.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-generic.stderr Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-inherent-method.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-lint-dead-code.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-lint-dead-code.stderr Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-macro.rs Allow unused fields in some tests 2024-03-12 10:59:41 +01:00
union-manuallydrop-rpass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-move.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-move.stderr Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
union-nodrop.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-nonrepresentable.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
union-nonrepresentable.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
union-nonzero.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-overwrite.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-packed.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-pat-refutability.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-repr-c.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
union-repr-c.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
union-sized-field.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
union-sized-field.stderr change std::marker::Sized to just Sized 2023-06-15 12:01:38 +02:00
union-suggest-field.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-suggest-field.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
union-trait-impl.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-transmute.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
union-unsafe.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-unsafe.stderr Stabilize THIR unsafeck 2024-01-05 10:00:59 +00:00
union-unsized.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-unsized.stderr Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
union-with-drop-fields.rs Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
union-with-drop-fields.stderr Remove revisions for THIR unsafeck 2024-01-05 09:30:27 +00:00
unresolved-field-isnt-copy.rs Don't report E0740 for type error 2023-03-08 01:55:32 +00:00
unresolved-field-isnt-copy.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00