rust/tests/ui/moves
Matthias Krüger 8de487fdbd
Rollup merge of #124599 - estebank:issue-41708, r=wesleywiser
Suggest borrowing on fn argument that is `impl AsRef`

When encountering a move conflict, on an expression that is `!Copy` passed as an argument to an `fn` that is `impl AsRef`, suggest borrowing the expression.

```
error[E0382]: use of moved value: `bar`
  --> f204.rs:14:15
   |
12 |     let bar = Bar;
   |         --- move occurs because `bar` has type `Bar`, which does not implement the `Copy` trait
13 |     foo(bar);
   |         --- value moved here
14 |     let baa = bar;
   |               ^^^ value used here after move
   |
help: borrow the value to avoid moving it
   |
13 |     foo(&bar);
   |         +
```

Fix #41708
2024-07-11 17:01:36 +02:00
..
assignment-of-clone-call-on-ref-due-to-missing-bound.fixed
assignment-of-clone-call-on-ref-due-to-missing-bound.rs
assignment-of-clone-call-on-ref-due-to-missing-bound.stderr
borrow-closures-instead-of-move.rs
borrow-closures-instead-of-move.stderr
issue-22536-copy-mustnt-zero.rs
issue-22536-copy-mustnt-zero.stderr
issue-34721.fixed
issue-34721.rs
issue-34721.stderr
issue-46099-move-in-macro.rs
issue-46099-move-in-macro.stderr
issue-72649-uninit-in-loop.rs
issue-72649-uninit-in-loop.stderr
issue-75904-move-closure-loop.rs
issue-75904-move-closure-loop.stderr
issue-99470-move-out-of-some.rs
issue-99470-move-out-of-some.stderr
move-1-unique.rs
move-2-unique.rs
move-2.rs
move-3-unique.rs
move-4-unique.rs
move-4.rs
move-arg-2-unique.rs
move-arg-2.rs
move-arg.rs
move-deref-coercion.rs
move-deref-coercion.stderr
move-fn-self-receiver.rs
move-fn-self-receiver.stderr
move-guard-same-consts.rs
move-guard-same-consts.stderr
move-in-guard-1.rs
move-in-guard-1.stderr
move-in-guard-2.rs
move-in-guard-2.stderr
move-into-dead-array-1.rs
move-into-dead-array-1.stderr
move-into-dead-array-2.rs
move-into-dead-array-2.stderr
move-nullary-fn.rs
move-of-addr-of-mut.rs
move-of-addr-of-mut.stderr
move-out-of-array-1.rs
move-out-of-array-1.stderr
move-out-of-array-ref.rs
move-out-of-array-ref.stderr
move-out-of-field.rs
move-out-of-slice-1.rs
move-out-of-slice-1.stderr
move-out-of-slice-2.rs
move-out-of-slice-2.stderr
move-out-of-tuple-field.rs
move-out-of-tuple-field.stderr
move-scalar.rs
moved-value-on-as-ref-arg.fixed
moved-value-on-as-ref-arg.rs
moved-value-on-as-ref-arg.stderr
moves-based-on-type-access-to-field.rs
moves-based-on-type-access-to-field.stderr
moves-based-on-type-block-bad.rs
moves-based-on-type-block-bad.stderr
moves-based-on-type-capture-clause-bad.rs
moves-based-on-type-capture-clause-bad.stderr
moves-based-on-type-capture-clause.rs
moves-based-on-type-cyclic-types-issue-4821.rs
moves-based-on-type-cyclic-types-issue-4821.stderr
moves-based-on-type-distribute-copy-over-paren.rs
moves-based-on-type-distribute-copy-over-paren.stderr
moves-based-on-type-exprs.rs
moves-based-on-type-exprs.stderr
moves-based-on-type-match-bindings.rs
moves-based-on-type-match-bindings.stderr
moves-based-on-type-move-out-of-closure-env-issue-1965.rs
moves-based-on-type-move-out-of-closure-env-issue-1965.stderr
moves-based-on-type-no-recursive-stack-closure.rs
moves-based-on-type-no-recursive-stack-closure.stderr
moves-based-on-type-tuple.rs
moves-based-on-type-tuple.stderr
moves-sru-moved-field.rs
moves-sru-moved-field.stderr
needs-clone-through-deref.fixed
needs-clone-through-deref.rs
needs-clone-through-deref.stderr
nested-loop-moved-value-wrong-continue.rs
nested-loop-moved-value-wrong-continue.stderr
pin-mut-reborrow-infer-var-issue-107419.fixed
pin-mut-reborrow-infer-var-issue-107419.rs
pin-mut-reborrow-infer-var-issue-107419.stderr
pin-mut-reborrow.fixed
pin-mut-reborrow.rs
pin-mut-reborrow.stderr
recreating-value-in-loop-condition.rs
recreating-value-in-loop-condition.stderr
suggest-clone-when-some-obligation-is-unmet.fixed
suggest-clone-when-some-obligation-is-unmet.rs
suggest-clone-when-some-obligation-is-unmet.stderr
suggest-clone.fixed
suggest-clone.rs
suggest-clone.stderr
use_of_moved_value_clone_suggestions.rs
use_of_moved_value_clone_suggestions.stderr
use_of_moved_value_copy_suggestions.fixed
use_of_moved_value_copy_suggestions.rs
use_of_moved_value_copy_suggestions.stderr