summaryrefslogtreecommitdiffstats
path: root/tests/ui/borrowck
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/ui/borrowck/access-mode-in-closures.rs (renamed from src/test/ui/borrowck/access-mode-in-closures.rs)0
-rw-r--r--tests/ui/borrowck/access-mode-in-closures.stderr18
-rw-r--r--tests/ui/borrowck/anonymous-region-in-apit.rs (renamed from src/test/ui/borrowck/anonymous-region-in-apit.rs)0
-rw-r--r--tests/ui/borrowck/anonymous-region-in-apit.stderr (renamed from src/test/ui/borrowck/anonymous-region-in-apit.stderr)0
-rw-r--r--tests/ui/borrowck/assign-never-type.rs (renamed from src/test/ui/borrowck/assign-never-type.rs)0
-rw-r--r--tests/ui/borrowck/assign_mutable_fields.rs (renamed from src/test/ui/borrowck/assign_mutable_fields.rs)0
-rw-r--r--tests/ui/borrowck/assign_mutable_fields.stderr (renamed from src/test/ui/borrowck/assign_mutable_fields.stderr)0
-rw-r--r--tests/ui/borrowck/async-reference-generality.rs (renamed from src/test/ui/borrowck/async-reference-generality.rs)0
-rw-r--r--tests/ui/borrowck/async-reference-generality.stderr (renamed from src/test/ui/borrowck/async-reference-generality.stderr)0
-rw-r--r--tests/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.rs (renamed from src/test/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.rs)0
-rw-r--r--tests/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.stderr (renamed from src/test/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.stderr)0
-rw-r--r--tests/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.rs (renamed from src/test/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.rs)0
-rw-r--r--tests/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.stderr (renamed from src/test/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.stderr)0
-rw-r--r--tests/ui/borrowck/borrow-immutable-upvar-mutation.rs (renamed from src/test/ui/borrowck/borrow-immutable-upvar-mutation.rs)0
-rw-r--r--tests/ui/borrowck/borrow-immutable-upvar-mutation.stderr (renamed from src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr)0
-rw-r--r--tests/ui/borrowck/borrow-raw-address-of-borrowed.rs (renamed from src/test/ui/borrowck/borrow-raw-address-of-borrowed.rs)0
-rw-r--r--tests/ui/borrowck/borrow-raw-address-of-borrowed.stderr (renamed from src/test/ui/borrowck/borrow-raw-address-of-borrowed.stderr)0
-rw-r--r--tests/ui/borrowck/borrow-raw-address-of-deref-mutability-ok.rs (renamed from src/test/ui/borrowck/borrow-raw-address-of-deref-mutability-ok.rs)0
-rw-r--r--tests/ui/borrowck/borrow-raw-address-of-deref-mutability.rs (renamed from src/test/ui/borrowck/borrow-raw-address-of-deref-mutability.rs)0
-rw-r--r--tests/ui/borrowck/borrow-raw-address-of-deref-mutability.stderr25
-rw-r--r--tests/ui/borrowck/borrow-raw-address-of-mutability-ok.rs (renamed from src/test/ui/borrowck/borrow-raw-address-of-mutability-ok.rs)0
-rw-r--r--tests/ui/borrowck/borrow-raw-address-of-mutability.rs (renamed from src/test/ui/borrowck/borrow-raw-address-of-mutability.rs)0
-rw-r--r--tests/ui/borrowck/borrow-raw-address-of-mutability.stderr (renamed from src/test/ui/borrowck/borrow-raw-address-of-mutability.stderr)14
-rw-r--r--tests/ui/borrowck/borrow-tuple-fields.rs (renamed from src/test/ui/borrowck/borrow-tuple-fields.rs)0
-rw-r--r--tests/ui/borrowck/borrow-tuple-fields.stderr (renamed from src/test/ui/borrowck/borrow-tuple-fields.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-access-permissions.rs (renamed from src/test/ui/borrowck/borrowck-access-permissions.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-access-permissions.stderr64
-rw-r--r--tests/ui/borrowck/borrowck-and-init.rs (renamed from src/test/ui/borrowck/borrowck-and-init.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-and-init.stderr (renamed from src/test/ui/borrowck/borrowck-and-init.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-anon-fields-struct.rs (renamed from src/test/ui/borrowck/borrowck-anon-fields-struct.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-anon-fields-struct.stderr (renamed from src/test/ui/borrowck/borrowck-anon-fields-struct.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-anon-fields-tuple.rs (renamed from src/test/ui/borrowck/borrowck-anon-fields-tuple.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-anon-fields-tuple.stderr (renamed from src/test/ui/borrowck/borrowck-anon-fields-tuple.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-anon-fields-variant.rs (renamed from src/test/ui/borrowck/borrowck-anon-fields-variant.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-anon-fields-variant.stderr (renamed from src/test/ui/borrowck/borrowck-anon-fields-variant.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-argument.rs (renamed from src/test/ui/borrowck/borrowck-argument.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-argument.stderr47
-rw-r--r--tests/ui/borrowck/borrowck-assign-comp-idx.rs (renamed from src/test/ui/borrowck/borrowck-assign-comp-idx.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-assign-comp-idx.stderr (renamed from src/test/ui/borrowck/borrowck-assign-comp-idx.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-assign-comp.rs (renamed from src/test/ui/borrowck/borrowck-assign-comp.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-assign-comp.stderr (renamed from src/test/ui/borrowck/borrowck-assign-comp.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.rs (renamed from src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.stderr25
-rw-r--r--tests/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.rs (renamed from src/test/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.stderr (renamed from src/test/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-assign-to-constants.rs (renamed from src/test/ui/borrowck/borrowck-assign-to-constants.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-assign-to-constants.stderr (renamed from src/test/ui/borrowck/borrowck-assign-to-constants.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-assign-to-subfield.rs (renamed from src/test/ui/borrowck/borrowck-assign-to-subfield.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-assignment-to-static-mut.rs (renamed from src/test/ui/borrowck/borrowck-assignment-to-static-mut.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-auto-mut-ref-to-immut-var.rs (renamed from src/test/ui/borrowck/borrowck-auto-mut-ref-to-immut-var.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-auto-mut-ref-to-immut-var.stderr14
-rw-r--r--tests/ui/borrowck/borrowck-autoref-3261.rs (renamed from src/test/ui/borrowck/borrowck-autoref-3261.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-autoref-3261.stderr (renamed from src/test/ui/borrowck/borrowck-autoref-3261.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-bad-nested-calls-free.rs (renamed from src/test/ui/borrowck/borrowck-bad-nested-calls-free.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-bad-nested-calls-free.stderr (renamed from src/test/ui/borrowck/borrowck-bad-nested-calls-free.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-bad-nested-calls-move.rs (renamed from src/test/ui/borrowck/borrowck-bad-nested-calls-move.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-bad-nested-calls-move.stderr (renamed from src/test/ui/borrowck/borrowck-bad-nested-calls-move.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-binding-mutbl.rs (renamed from src/test/ui/borrowck/borrowck-binding-mutbl.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-block-unint.rs (renamed from src/test/ui/borrowck/borrowck-block-unint.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-block-unint.stderr (renamed from src/test/ui/borrowck/borrowck-block-unint.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-from-expr-block.rs (renamed from src/test/ui/borrowck/borrowck-borrow-from-expr-block.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-from-owned-ptr.rs (renamed from src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-from-owned-ptr.stderr (renamed from src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.stderr)7
-rw-r--r--tests/ui/borrowck/borrowck-borrow-from-stack-variable.rs (renamed from src/test/ui/borrowck/borrowck-borrow-from-stack-variable.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-from-stack-variable.stderr (renamed from src/test/ui/borrowck/borrowck-borrow-from-stack-variable.stderr)7
-rw-r--r--tests/ui/borrowck/borrowck-borrow-from-temporary.rs (renamed from src/test/ui/borrowck/borrowck-borrow-from-temporary.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-from-temporary.stderr (renamed from src/test/ui/borrowck/borrowck-borrow-from-temporary.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-immut-deref-of-box-as-mut.rs (renamed from src/test/ui/borrowck/borrowck-borrow-immut-deref-of-box-as-mut.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-immut-deref-of-box-as-mut.stderr14
-rw-r--r--tests/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs (renamed from src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr (renamed from src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr)7
-rw-r--r--tests/ui/borrowck/borrowck-borrow-mut-object-twice.rs (renamed from src/test/ui/borrowck/borrowck-borrow-mut-object-twice.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-mut-object-twice.stderr (renamed from src/test/ui/borrowck/borrowck-borrow-mut-object-twice.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs (renamed from src/test/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-overloaded-auto-deref.rs (renamed from src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr (renamed from src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-overloaded-deref.rs (renamed from src/test/ui/borrowck/borrowck-borrow-overloaded-deref.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrow-overloaded-deref.stderr (renamed from src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.rs (renamed from src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.stderr (renamed from src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-borrowed-uniq-rvalue.fixed (renamed from src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.fixed)0
-rw-r--r--tests/ui/borrowck/borrowck-borrowed-uniq-rvalue.rs (renamed from src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-borrowed-uniq-rvalue.stderr (renamed from src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-box-sensitivity.rs (renamed from src/test/ui/borrowck/borrowck-box-sensitivity.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-break-uninit-2.rs (renamed from src/test/ui/borrowck/borrowck-break-uninit-2.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-break-uninit-2.stderr (renamed from src/test/ui/borrowck/borrowck-break-uninit-2.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-break-uninit.rs (renamed from src/test/ui/borrowck/borrowck-break-uninit.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-break-uninit.stderr (renamed from src/test/ui/borrowck/borrowck-break-uninit.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-mut-and-imm.rs (renamed from src/test/ui/borrowck/borrowck-closures-mut-and-imm.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-mut-and-imm.stderr (renamed from src/test/ui/borrowck/borrowck-closures-mut-and-imm.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-mut-of-imm.rs (renamed from src/test/ui/borrowck/borrowck-closures-mut-of-imm.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-mut-of-imm.stderr (renamed from src/test/ui/borrowck/borrowck-closures-mut-of-imm.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-mut-of-mut.rs (renamed from src/test/ui/borrowck/borrowck-closures-mut-of-mut.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-mut-of-mut.stderr (renamed from src/test/ui/borrowck/borrowck-closures-mut-of-mut.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-slice-patterns-ok.rs (renamed from src/test/ui/borrowck/borrowck-closures-slice-patterns-ok.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-slice-patterns.rs (renamed from src/test/ui/borrowck/borrowck-closures-slice-patterns.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-slice-patterns.stderr (renamed from src/test/ui/borrowck/borrowck-closures-slice-patterns.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-two-imm.rs (renamed from src/test/ui/borrowck/borrowck-closures-two-imm.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-two-mut-fail.rs (renamed from src/test/ui/borrowck/borrowck-closures-two-mut-fail.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-two-mut-fail.stderr (renamed from src/test/ui/borrowck/borrowck-closures-two-mut-fail.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-two-mut.rs (renamed from src/test/ui/borrowck/borrowck-closures-two-mut.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-two-mut.stderr (renamed from src/test/ui/borrowck/borrowck-closures-two-mut.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-unique-imm.rs (renamed from src/test/ui/borrowck/borrowck-closures-unique-imm.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-unique-imm.stderr (renamed from src/test/ui/borrowck/borrowck-closures-unique-imm.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-unique.rs (renamed from src/test/ui/borrowck/borrowck-closures-unique.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-unique.stderr (renamed from src/test/ui/borrowck/borrowck-closures-unique.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-use-after-free.rs (renamed from src/test/ui/borrowck/borrowck-closures-use-after-free.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-closures-use-after-free.stderr (renamed from src/test/ui/borrowck/borrowck-closures-use-after-free.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-consume-unsize-vec.rs (renamed from src/test/ui/borrowck/borrowck-consume-unsize-vec.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-consume-unsize-vec.stderr (renamed from src/test/ui/borrowck/borrowck-consume-unsize-vec.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-consume-upcast-box.rs (renamed from src/test/ui/borrowck/borrowck-consume-upcast-box.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-consume-upcast-box.stderr (renamed from src/test/ui/borrowck/borrowck-consume-upcast-box.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-describe-lvalue.rs (renamed from src/test/ui/borrowck/borrowck-describe-lvalue.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-describe-lvalue.stderr (renamed from src/test/ui/borrowck/borrowck-describe-lvalue.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-drop-from-guard.rs20
-rw-r--r--tests/ui/borrowck/borrowck-drop-from-guard.stderr37
-rw-r--r--tests/ui/borrowck/borrowck-escaping-closure-error-1.rs (renamed from src/test/ui/borrowck/borrowck-escaping-closure-error-1.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-escaping-closure-error-1.stderr (renamed from src/test/ui/borrowck/borrowck-escaping-closure-error-1.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-escaping-closure-error-2.rs (renamed from src/test/ui/borrowck/borrowck-escaping-closure-error-2.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-escaping-closure-error-2.stderr (renamed from src/test/ui/borrowck/borrowck-escaping-closure-error-2.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-field-sensitivity-rpass.rs (renamed from src/test/ui/borrowck/borrowck-field-sensitivity-rpass.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-field-sensitivity.rs (renamed from src/test/ui/borrowck/borrowck-field-sensitivity.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-field-sensitivity.stderr (renamed from src/test/ui/borrowck/borrowck-field-sensitivity.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-fixed-length-vecs.rs (renamed from src/test/ui/borrowck/borrowck-fixed-length-vecs.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-fn-in-const-a.rs (renamed from src/test/ui/borrowck/borrowck-fn-in-const-a.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-fn-in-const-a.stderr (renamed from src/test/ui/borrowck/borrowck-fn-in-const-a.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-fn-in-const-c.rs (renamed from src/test/ui/borrowck/borrowck-fn-in-const-c.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-fn-in-const-c.stderr (renamed from src/test/ui/borrowck/borrowck-fn-in-const-c.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-for-loop-correct-cmt-for-pattern.rs (renamed from src/test/ui/borrowck/borrowck-for-loop-correct-cmt-for-pattern.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-for-loop-correct-cmt-for-pattern.stderr48
-rw-r--r--tests/ui/borrowck/borrowck-for-loop-head-linkage.rs (renamed from src/test/ui/borrowck/borrowck-for-loop-head-linkage.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-for-loop-head-linkage.stderr (renamed from src/test/ui/borrowck/borrowck-for-loop-head-linkage.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-for-loop-uninitialized-binding.rs (renamed from src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-for-loop-uninitialized-binding.stderr (renamed from src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-freeze-frozen-mut.rs (renamed from src/test/ui/borrowck/borrowck-freeze-frozen-mut.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-if-no-else.rs (renamed from src/test/ui/borrowck/borrowck-if-no-else.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-if-no-else.stderr (renamed from src/test/ui/borrowck/borrowck-if-no-else.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-if-with-else.rs (renamed from src/test/ui/borrowck/borrowck-if-with-else.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-if-with-else.stderr (renamed from src/test/ui/borrowck/borrowck-if-with-else.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.rs (renamed from src/test/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.stderr (renamed from src/test/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-in-static.rs (renamed from src/test/ui/borrowck/borrowck-in-static.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-in-static.stderr (renamed from src/test/ui/borrowck/borrowck-in-static.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-init-in-called-fn-expr.rs (renamed from src/test/ui/borrowck/borrowck-init-in-called-fn-expr.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-init-in-called-fn-expr.stderr (renamed from src/test/ui/borrowck/borrowck-init-in-called-fn-expr.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-init-in-fn-expr.rs (renamed from src/test/ui/borrowck/borrowck-init-in-fn-expr.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-init-in-fn-expr.stderr (renamed from src/test/ui/borrowck/borrowck-init-in-fn-expr.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-init-in-fru.rs (renamed from src/test/ui/borrowck/borrowck-init-in-fru.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-init-in-fru.stderr (renamed from src/test/ui/borrowck/borrowck-init-in-fru.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-init-op-equal.rs (renamed from src/test/ui/borrowck/borrowck-init-op-equal.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-init-op-equal.stderr (renamed from src/test/ui/borrowck/borrowck-init-op-equal.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-init-plus-equal.rs (renamed from src/test/ui/borrowck/borrowck-init-plus-equal.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-init-plus-equal.stderr (renamed from src/test/ui/borrowck/borrowck-init-plus-equal.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-insert-during-each.rs (renamed from src/test/ui/borrowck/borrowck-insert-during-each.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-insert-during-each.stderr (renamed from src/test/ui/borrowck/borrowck-insert-during-each.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-issue-14498.rs (renamed from src/test/ui/borrowck/borrowck-issue-14498.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-issue-14498.stderr (renamed from src/test/ui/borrowck/borrowck-issue-14498.stderr)7
-rw-r--r--tests/ui/borrowck/borrowck-issue-2657-1.rs (renamed from src/test/ui/borrowck/borrowck-issue-2657-1.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-issue-2657-1.stderr (renamed from src/test/ui/borrowck/borrowck-issue-2657-1.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-issue-2657-2.fixed12
-rw-r--r--tests/ui/borrowck/borrowck-issue-2657-2.rs (renamed from src/test/ui/borrowck/borrowck-issue-2657-2.rs)1
-rw-r--r--tests/ui/borrowck/borrowck-issue-2657-2.stderr15
-rw-r--r--tests/ui/borrowck/borrowck-issue-48962.rs (renamed from src/test/ui/borrowck/borrowck-issue-48962.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-issue-48962.stderr (renamed from src/test/ui/borrowck/borrowck-issue-48962.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-lend-args.rs (renamed from src/test/ui/borrowck/borrowck-lend-args.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-lend-flow-if.rs (renamed from src/test/ui/borrowck/borrowck-lend-flow-if.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-lend-flow-if.stderr (renamed from src/test/ui/borrowck/borrowck-lend-flow-if.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-lend-flow-loop.rs (renamed from src/test/ui/borrowck/borrowck-lend-flow-loop.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-lend-flow-loop.stderr (renamed from src/test/ui/borrowck/borrowck-lend-flow-loop.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-lend-flow-match.rs (renamed from src/test/ui/borrowck/borrowck-lend-flow-match.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-lend-flow-match.stderr (renamed from src/test/ui/borrowck/borrowck-lend-flow-match.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-lend-flow.rs (renamed from src/test/ui/borrowck/borrowck-lend-flow.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-lend-flow.stderr (renamed from src/test/ui/borrowck/borrowck-lend-flow.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-blocks-move-cc.rs (renamed from src/test/ui/borrowck/borrowck-loan-blocks-move-cc.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-blocks-move-cc.stderr (renamed from src/test/ui/borrowck/borrowck-loan-blocks-move-cc.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-blocks-move.rs (renamed from src/test/ui/borrowck/borrowck-loan-blocks-move.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-blocks-move.stderr (renamed from src/test/ui/borrowck/borrowck-loan-blocks-move.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-blocks-mut-uniq.rs (renamed from src/test/ui/borrowck/borrowck-loan-blocks-mut-uniq.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-blocks-mut-uniq.stderr (renamed from src/test/ui/borrowck/borrowck-loan-blocks-mut-uniq.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-in-overloaded-op.rs (renamed from src/test/ui/borrowck/borrowck-loan-in-overloaded-op.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-in-overloaded-op.stderr (renamed from src/test/ui/borrowck/borrowck-loan-in-overloaded-op.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-of-static-data-issue-27616.rs (renamed from src/test/ui/borrowck/borrowck-loan-of-static-data-issue-27616.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-of-static-data-issue-27616.stderr (renamed from src/test/ui/borrowck/borrowck-loan-of-static-data-issue-27616.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-rcvr-overloaded-op.rs (renamed from src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-rcvr-overloaded-op.stderr (renamed from src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-rcvr.rs (renamed from src/test/ui/borrowck/borrowck-loan-rcvr.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-rcvr.stderr (renamed from src/test/ui/borrowck/borrowck-loan-rcvr.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-vec-content.rs (renamed from src/test/ui/borrowck/borrowck-loan-vec-content.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-loan-vec-content.stderr (renamed from src/test/ui/borrowck/borrowck-loan-vec-content.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-local-borrow-outlives-fn.rs (renamed from src/test/ui/borrowck/borrowck-local-borrow-outlives-fn.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-local-borrow-outlives-fn.stderr (renamed from src/test/ui/borrowck/borrowck-local-borrow-outlives-fn.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.rs (renamed from src/test/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.stderr (renamed from src/test/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-local-borrow.rs (renamed from src/test/ui/borrowck/borrowck-local-borrow.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-macro-interaction-issue-6304.rs (renamed from src/test/ui/borrowck/borrowck-macro-interaction-issue-6304.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-match-already-borrowed.rs (renamed from src/test/ui/borrowck/borrowck-match-already-borrowed.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-match-already-borrowed.stderr (renamed from src/test/ui/borrowck/borrowck-match-already-borrowed.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-match-binding-is-assignment.rs (renamed from src/test/ui/borrowck/borrowck-match-binding-is-assignment.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-match-binding-is-assignment.stderr (renamed from src/test/ui/borrowck/borrowck-match-binding-is-assignment.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-by-capture-ok.rs (renamed from src/test/ui/borrowck/borrowck-move-by-capture-ok.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-by-capture.rs (renamed from src/test/ui/borrowck/borrowck-move-by-capture.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-by-capture.stderr (renamed from src/test/ui/borrowck/borrowck-move-by-capture.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-error-with-note.fixed56
-rw-r--r--tests/ui/borrowck/borrowck-move-error-with-note.rs (renamed from src/test/ui/borrowck/borrowck-move-error-with-note.rs)2
-rw-r--r--tests/ui/borrowck/borrowck-move-error-with-note.stderr60
-rw-r--r--tests/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.rs (renamed from src/test/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.stderr (renamed from src/test/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-from-unsafe-ptr.rs (renamed from src/test/ui/borrowck/borrowck-move-from-unsafe-ptr.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-from-unsafe-ptr.stderr15
-rw-r--r--tests/ui/borrowck/borrowck-move-in-irrefut-pat.rs (renamed from src/test/ui/borrowck/borrowck-move-in-irrefut-pat.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-in-irrefut-pat.stderr48
-rw-r--r--tests/ui/borrowck/borrowck-move-moved-value-into-closure.rs (renamed from src/test/ui/borrowck/borrowck-move-moved-value-into-closure.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-moved-value-into-closure.stderr (renamed from src/test/ui/borrowck/borrowck-move-moved-value-into-closure.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-mut-base-ptr.rs (renamed from src/test/ui/borrowck/borrowck-move-mut-base-ptr.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-mut-base-ptr.stderr (renamed from src/test/ui/borrowck/borrowck-move-mut-base-ptr.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-match.rs (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-match.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-match.stderr (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-match.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.rs (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.stderr (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-no-overlap.rs (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-no-overlap.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-use-match.rs (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-use-match.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-use-match.stderr (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-use-match.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.rs (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.stderr (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-use-no-overlap.rs (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-use-no-overlap.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-use.rs (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-use.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-use.stderr (renamed from src/test/ui/borrowck/borrowck-move-out-from-array-use.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array.rs (renamed from src/test/ui/borrowck/borrowck-move-out-from-array.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array.stderr (renamed from src/test/ui/borrowck/borrowck-move-out-from-array.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-overloaded-auto-deref.rs (renamed from src/test/ui/borrowck/borrowck-move-out-of-overloaded-auto-deref.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-overloaded-auto-deref.stderr19
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-overloaded-deref.rs (renamed from src/test/ui/borrowck/borrowck-move-out-of-overloaded-deref.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-overloaded-deref.stderr15
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-static-item.rs (renamed from src/test/ui/borrowck/borrowck-move-out-of-static-item.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-static-item.stderr (renamed from src/test/ui/borrowck/borrowck-move-out-of-static-item.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.fixed24
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.rs (renamed from src/test/ui/borrowck/borrowck-move-out-of-struct-with-dtor.rs)2
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.stderr49
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.fixed24
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.rs (renamed from src/test/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.rs)2
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.stderr49
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-vec-tail.rs (renamed from src/test/ui/borrowck/borrowck-move-out-of-vec-tail.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-out-of-vec-tail.stderr (renamed from src/test/ui/borrowck/borrowck-move-out-of-vec-tail.stderr)6
-rw-r--r--tests/ui/borrowck/borrowck-move-subcomponent.rs (renamed from src/test/ui/borrowck/borrowck-move-subcomponent.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-move-subcomponent.stderr (renamed from src/test/ui/borrowck/borrowck-move-subcomponent.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-multiple-borrows-interior-boxes.rs (renamed from src/test/ui/borrowck/borrowck-multiple-borrows-interior-boxes.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-multiple-captures.rs (renamed from src/test/ui/borrowck/borrowck-multiple-captures.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-multiple-captures.stderr (renamed from src/test/ui/borrowck/borrowck-multiple-captures.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-mut-addr-of-imm-var.rs (renamed from src/test/ui/borrowck/borrowck-mut-addr-of-imm-var.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-mut-addr-of-imm-var.stderr (renamed from src/test/ui/borrowck/borrowck-mut-addr-of-imm-var.stderr)7
-rw-r--r--tests/ui/borrowck/borrowck-mut-borrow-linear-errors.rs (renamed from src/test/ui/borrowck/borrowck-mut-borrow-linear-errors.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-mut-borrow-linear-errors.stderr (renamed from src/test/ui/borrowck/borrowck-mut-borrow-linear-errors.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.rs (renamed from src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.stderr (renamed from src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-mut-slice-of-imm-vec.rs (renamed from src/test/ui/borrowck/borrowck-mut-slice-of-imm-vec.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-mut-slice-of-imm-vec.stderr14
-rw-r--r--tests/ui/borrowck/borrowck-mut-uniq.rs (renamed from src/test/ui/borrowck/borrowck-mut-uniq.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-mut-vec-as-imm-slice.rs (renamed from src/test/ui/borrowck/borrowck-mut-vec-as-imm-slice.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-mutate-in-guard.rs34
-rw-r--r--tests/ui/borrowck/borrowck-mutate-in-guard.stderr37
-rw-r--r--tests/ui/borrowck/borrowck-no-cycle-in-exchange-heap.rs (renamed from src/test/ui/borrowck/borrowck-no-cycle-in-exchange-heap.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-no-cycle-in-exchange-heap.stderr (renamed from src/test/ui/borrowck/borrowck-no-cycle-in-exchange-heap.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-object-lifetime.rs (renamed from src/test/ui/borrowck/borrowck-object-lifetime.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-object-lifetime.stderr (renamed from src/test/ui/borrowck/borrowck-object-lifetime.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-or-init.rs (renamed from src/test/ui/borrowck/borrowck-or-init.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-or-init.stderr (renamed from src/test/ui/borrowck/borrowck-or-init.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-call.rs (renamed from src/test/ui/borrowck/borrowck-overloaded-call.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-call.stderr (renamed from src/test/ui/borrowck/borrowck-overloaded-call.stderr)8
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.rs (renamed from src/test/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.stderr (renamed from src/test/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-index-autoderef.rs (renamed from src/test/ui/borrowck/borrowck-overloaded-index-autoderef.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-index-autoderef.stderr (renamed from src/test/ui/borrowck/borrowck-overloaded-index-autoderef.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-index-move-from-vec.rs (renamed from src/test/ui/borrowck/borrowck-overloaded-index-move-from-vec.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-index-move-from-vec.stderr14
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-index-move-index.rs (renamed from src/test/ui/borrowck/borrowck-overloaded-index-move-index.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-index-move-index.stderr (renamed from src/test/ui/borrowck/borrowck-overloaded-index-move-index.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-index-ref-index.rs (renamed from src/test/ui/borrowck/borrowck-overloaded-index-ref-index.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-overloaded-index-ref-index.stderr (renamed from src/test/ui/borrowck/borrowck-overloaded-index-ref-index.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-partial-reinit-1.rs (renamed from src/test/ui/borrowck/borrowck-partial-reinit-1.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-partial-reinit-1.stderr (renamed from src/test/ui/borrowck/borrowck-partial-reinit-1.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-partial-reinit-2.rs (renamed from src/test/ui/borrowck/borrowck-partial-reinit-2.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-partial-reinit-2.stderr (renamed from src/test/ui/borrowck/borrowck-partial-reinit-2.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-partial-reinit-3.rs (renamed from src/test/ui/borrowck/borrowck-partial-reinit-3.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-partial-reinit-3.stderr (renamed from src/test/ui/borrowck/borrowck-partial-reinit-3.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-partial-reinit-4.rs (renamed from src/test/ui/borrowck/borrowck-partial-reinit-4.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-partial-reinit-4.stderr (renamed from src/test/ui/borrowck/borrowck-partial-reinit-4.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-pat-enum.rs (renamed from src/test/ui/borrowck/borrowck-pat-enum.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-pat-reassign-binding.rs (renamed from src/test/ui/borrowck/borrowck-pat-reassign-binding.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-pat-reassign-binding.stderr (renamed from src/test/ui/borrowck/borrowck-pat-reassign-binding.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-pat-reassign-no-binding.rs (renamed from src/test/ui/borrowck/borrowck-pat-reassign-no-binding.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-reborrow-from-mut.rs (renamed from src/test/ui/borrowck/borrowck-reborrow-from-mut.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-reborrow-from-mut.stderr (renamed from src/test/ui/borrowck/borrowck-reborrow-from-mut.stderr)7
-rw-r--r--tests/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.rs (renamed from src/test/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.stderr (renamed from src/test/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-ref-mut-of-imm.rs (renamed from src/test/ui/borrowck/borrowck-ref-mut-of-imm.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-ref-mut-of-imm.stderr14
-rw-r--r--tests/ui/borrowck/borrowck-reinit.rs (renamed from src/test/ui/borrowck/borrowck-reinit.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-reinit.stderr (renamed from src/test/ui/borrowck/borrowck-reinit.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-report-with-custom-diagnostic.rs (renamed from src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr (renamed from src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs (renamed from src/test/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.stderr (renamed from src/test/ui/borrowck/borrowck-return-variable-on-stack-via-clone.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-return.rs (renamed from src/test/ui/borrowck/borrowck-return.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-return.stderr (renamed from src/test/ui/borrowck/borrowck-return.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-rvalues-mutable.rs (renamed from src/test/ui/borrowck/borrowck-rvalues-mutable.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-scope-of-deref-issue-4666.rs (renamed from src/test/ui/borrowck/borrowck-scope-of-deref-issue-4666.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-slice-pattern-element-loan-array-no-overlap.rs (renamed from src/test/ui/borrowck/borrowck-slice-pattern-element-loan-array-no-overlap.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-slice-pattern-element-loan-array.rs (renamed from src/test/ui/borrowck/borrowck-slice-pattern-element-loan-array.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-slice-pattern-element-loan-array.stderr (renamed from src/test/ui/borrowck/borrowck-slice-pattern-element-loan-array.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-slice-pattern-element-loan-rpass.rs (renamed from src/test/ui/borrowck/borrowck-slice-pattern-element-loan-rpass.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-slice-pattern-element-loan-slice-no-overlap.rs (renamed from src/test/ui/borrowck/borrowck-slice-pattern-element-loan-slice-no-overlap.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-slice-pattern-element-loan-slice.rs (renamed from src/test/ui/borrowck/borrowck-slice-pattern-element-loan-slice.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-slice-pattern-element-loan-slice.stderr (renamed from src/test/ui/borrowck/borrowck-slice-pattern-element-loan-slice.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-static-item-in-fn.rs (renamed from src/test/ui/borrowck/borrowck-static-item-in-fn.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-storage-dead.rs (renamed from src/test/ui/borrowck/borrowck-storage-dead.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-storage-dead.stderr (renamed from src/test/ui/borrowck/borrowck-storage-dead.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-struct-update-with-dtor.rs (renamed from src/test/ui/borrowck/borrowck-struct-update-with-dtor.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-struct-update-with-dtor.stderr (renamed from src/test/ui/borrowck/borrowck-struct-update-with-dtor.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-swap-mut-base-ptr.rs (renamed from src/test/ui/borrowck/borrowck-swap-mut-base-ptr.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-swap-mut-base-ptr.stderr (renamed from src/test/ui/borrowck/borrowck-swap-mut-base-ptr.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.rs (renamed from src/test/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.stderr (renamed from src/test/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-trait-lifetime.rs (renamed from src/test/ui/borrowck/borrowck-trait-lifetime.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-unary-move.rs (renamed from src/test/ui/borrowck/borrowck-unary-move.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-unary-move.stderr (renamed from src/test/ui/borrowck/borrowck-unary-move.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-unboxed-closures.rs (renamed from src/test/ui/borrowck/borrowck-unboxed-closures.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-unboxed-closures.stderr (renamed from src/test/ui/borrowck/borrowck-unboxed-closures.stderr)7
-rw-r--r--tests/ui/borrowck/borrowck-uninit-after-item.rs (renamed from src/test/ui/borrowck/borrowck-uninit-after-item.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-uninit-after-item.stderr (renamed from src/test/ui/borrowck/borrowck-uninit-after-item.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-uninit-field-access.rs (renamed from src/test/ui/borrowck/borrowck-uninit-field-access.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-uninit-field-access.stderr (renamed from src/test/ui/borrowck/borrowck-uninit-field-access.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-uninit-in-assignop.rs (renamed from src/test/ui/borrowck/borrowck-uninit-in-assignop.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-uninit-in-assignop.stderr (renamed from src/test/ui/borrowck/borrowck-uninit-in-assignop.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-uninit-ref-chain.rs (renamed from src/test/ui/borrowck/borrowck-uninit-ref-chain.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-uninit-ref-chain.stderr (renamed from src/test/ui/borrowck/borrowck-uninit-ref-chain.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-uninit.rs (renamed from src/test/ui/borrowck/borrowck-uninit.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-uninit.stderr (renamed from src/test/ui/borrowck/borrowck-uninit.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-union-borrow-nested.rs (renamed from src/test/ui/borrowck/borrowck-union-borrow-nested.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-union-borrow-nested.stderr (renamed from src/test/ui/borrowck/borrowck-union-borrow-nested.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-union-borrow.rs (renamed from src/test/ui/borrowck/borrowck-union-borrow.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-union-borrow.stderr (renamed from src/test/ui/borrowck/borrowck-union-borrow.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-union-move-assign.rs (renamed from src/test/ui/borrowck/borrowck-union-move-assign.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-union-move-assign.stderr (renamed from src/test/ui/borrowck/borrowck-union-move-assign.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-union-move.rs (renamed from src/test/ui/borrowck/borrowck-union-move.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-union-move.stderr (renamed from src/test/ui/borrowck/borrowck-union-move.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-union-uninitialized.rs (renamed from src/test/ui/borrowck/borrowck-union-uninitialized.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-union-uninitialized.stderr (renamed from src/test/ui/borrowck/borrowck-union-uninitialized.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-uniq-via-lend.rs (renamed from src/test/ui/borrowck/borrowck-uniq-via-lend.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-uniq-via-lend.stderr (renamed from src/test/ui/borrowck/borrowck-uniq-via-lend.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-uniq-via-ref.rs (renamed from src/test/ui/borrowck/borrowck-uniq-via-ref.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-univariant-enum.rs (renamed from src/test/ui/borrowck/borrowck-univariant-enum.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-unsafe-static-mutable-borrows.rs (renamed from src/test/ui/borrowck/borrowck-unsafe-static-mutable-borrows.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-unused-mut-locals.rs (renamed from src/test/ui/borrowck/borrowck-unused-mut-locals.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-use-in-index-lvalue.rs (renamed from src/test/ui/borrowck/borrowck-use-in-index-lvalue.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-use-in-index-lvalue.stderr (renamed from src/test/ui/borrowck/borrowck-use-in-index-lvalue.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-use-mut-borrow-rpass.rs (renamed from src/test/ui/borrowck/borrowck-use-mut-borrow-rpass.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-use-mut-borrow.rs (renamed from src/test/ui/borrowck/borrowck-use-mut-borrow.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-use-mut-borrow.stderr (renamed from src/test/ui/borrowck/borrowck-use-mut-borrow.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.rs (renamed from src/test/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.stderr (renamed from src/test/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-use-uninitialized-in-cast.rs (renamed from src/test/ui/borrowck/borrowck-use-uninitialized-in-cast.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-use-uninitialized-in-cast.stderr (renamed from src/test/ui/borrowck/borrowck-use-uninitialized-in-cast.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-element-loan.rs (renamed from src/test/ui/borrowck/borrowck-vec-pattern-element-loan.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-element-loan.stderr (renamed from src/test/ui/borrowck/borrowck-vec-pattern-element-loan.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-loan-from-mut.rs (renamed from src/test/ui/borrowck/borrowck-vec-pattern-loan-from-mut.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-loan-from-mut.stderr (renamed from src/test/ui/borrowck/borrowck-vec-pattern-loan-from-mut.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-move-tail.rs (renamed from src/test/ui/borrowck/borrowck-vec-pattern-move-tail.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-move-tail.stderr (renamed from src/test/ui/borrowck/borrowck-vec-pattern-move-tail.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-nesting.rs (renamed from src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs)6
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr (renamed from src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr)50
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-tail-element-loan.rs (renamed from src/test/ui/borrowck/borrowck-vec-pattern-tail-element-loan.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-tail-element-loan.stderr (renamed from src/test/ui/borrowck/borrowck-vec-pattern-tail-element-loan.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-while-break.rs (renamed from src/test/ui/borrowck/borrowck-while-break.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-while-break.stderr (renamed from src/test/ui/borrowck/borrowck-while-break.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-while-cond.rs (renamed from src/test/ui/borrowck/borrowck-while-cond.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-while-cond.stderr (renamed from src/test/ui/borrowck/borrowck-while-cond.stderr)0
-rw-r--r--tests/ui/borrowck/borrowck-while.rs (renamed from src/test/ui/borrowck/borrowck-while.rs)0
-rw-r--r--tests/ui/borrowck/borrowck-while.stderr (renamed from src/test/ui/borrowck/borrowck-while.stderr)0
-rw-r--r--tests/ui/borrowck/copy-suggestion-region-vid.rs (renamed from src/test/ui/borrowck/copy-suggestion-region-vid.rs)0
-rw-r--r--tests/ui/borrowck/copy-suggestion-region-vid.stderr (renamed from src/test/ui/borrowck/copy-suggestion-region-vid.stderr)0
-rw-r--r--tests/ui/borrowck/disallow-possibly-uninitialized.rs (renamed from src/test/ui/borrowck/disallow-possibly-uninitialized.rs)0
-rw-r--r--tests/ui/borrowck/disallow-possibly-uninitialized.stderr (renamed from src/test/ui/borrowck/disallow-possibly-uninitialized.stderr)0
-rw-r--r--tests/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.rs (renamed from src/test/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.rs)0
-rw-r--r--tests/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.stderr (renamed from src/test/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.stderr)0
-rw-r--r--tests/ui/borrowck/fsu-moves-and-copies.rs (renamed from src/test/ui/borrowck/fsu-moves-and-copies.rs)0
-rw-r--r--tests/ui/borrowck/immut-function-arguments.rs (renamed from src/test/ui/borrowck/immut-function-arguments.rs)0
-rw-r--r--tests/ui/borrowck/immut-function-arguments.stderr25
-rw-r--r--tests/ui/borrowck/immutable-arg.rs (renamed from src/test/ui/borrowck/immutable-arg.rs)0
-rw-r--r--tests/ui/borrowck/immutable-arg.stderr (renamed from src/test/ui/borrowck/immutable-arg.stderr)0
-rw-r--r--tests/ui/borrowck/index-mut-help-with-impl.rs (renamed from src/test/ui/borrowck/index-mut-help-with-impl.rs)0
-rw-r--r--tests/ui/borrowck/index-mut-help-with-impl.stderr (renamed from src/test/ui/borrowck/index-mut-help-with-impl.stderr)0
-rw-r--r--tests/ui/borrowck/index-mut-help.rs (renamed from src/test/ui/borrowck/index-mut-help.rs)0
-rw-r--r--tests/ui/borrowck/index-mut-help.stderr (renamed from src/test/ui/borrowck/index-mut-help.stderr)0
-rw-r--r--tests/ui/borrowck/issue-101119.rs (renamed from src/test/ui/borrowck/issue-101119.rs)0
-rw-r--r--tests/ui/borrowck/issue-101119.stderr (renamed from src/test/ui/borrowck/issue-101119.stderr)0
-rw-r--r--tests/ui/borrowck/issue-102209.rs (renamed from src/test/ui/borrowck/issue-102209.rs)0
-rw-r--r--tests/ui/borrowck/issue-102209.stderr (renamed from src/test/ui/borrowck/issue-102209.stderr)0
-rw-r--r--tests/ui/borrowck/issue-103095.rs30
-rw-r--r--tests/ui/borrowck/issue-103250.rs (renamed from src/test/ui/borrowck/issue-103250.rs)0
-rw-r--r--tests/ui/borrowck/issue-103250.stderr (renamed from src/test/ui/borrowck/issue-103250.stderr)0
-rw-r--r--tests/ui/borrowck/issue-103624.rs (renamed from src/test/ui/borrowck/issue-103624.rs)0
-rw-r--r--tests/ui/borrowck/issue-103624.stderr (renamed from src/test/ui/borrowck/issue-103624.stderr)0
-rw-r--r--tests/ui/borrowck/issue-104639-lifetime-order.rs10
-rw-r--r--tests/ui/borrowck/issue-10876.rs (renamed from src/test/ui/borrowck/issue-10876.rs)0
-rw-r--r--tests/ui/borrowck/issue-11493.fixed (renamed from src/test/ui/borrowck/issue-11493.fixed)0
-rw-r--r--tests/ui/borrowck/issue-11493.rs (renamed from src/test/ui/borrowck/issue-11493.rs)0
-rw-r--r--tests/ui/borrowck/issue-11493.stderr (renamed from src/test/ui/borrowck/issue-11493.stderr)0
-rw-r--r--tests/ui/borrowck/issue-17263.rs (renamed from src/test/ui/borrowck/issue-17263.rs)0
-rw-r--r--tests/ui/borrowck/issue-17545.rs (renamed from src/test/ui/borrowck/issue-17545.rs)0
-rw-r--r--tests/ui/borrowck/issue-17545.stderr (renamed from src/test/ui/borrowck/issue-17545.stderr)0
-rw-r--r--tests/ui/borrowck/issue-17718-static-move.rs (renamed from src/test/ui/borrowck/issue-17718-static-move.rs)0
-rw-r--r--tests/ui/borrowck/issue-17718-static-move.stderr14
-rw-r--r--tests/ui/borrowck/issue-20801.rs (renamed from src/test/ui/borrowck/issue-20801.rs)0
-rw-r--r--tests/ui/borrowck/issue-20801.stderr51
-rw-r--r--tests/ui/borrowck/issue-23338-params-outlive-temps-of-body.rs (renamed from src/test/ui/borrowck/issue-23338-params-outlive-temps-of-body.rs)0
-rw-r--r--tests/ui/borrowck/issue-24267-flow-exit.rs (renamed from src/test/ui/borrowck/issue-24267-flow-exit.rs)0
-rw-r--r--tests/ui/borrowck/issue-24267-flow-exit.stderr (renamed from src/test/ui/borrowck/issue-24267-flow-exit.stderr)0
-rw-r--r--tests/ui/borrowck/issue-25793.rs (renamed from src/test/ui/borrowck/issue-25793.rs)0
-rw-r--r--tests/ui/borrowck/issue-25793.stderr (renamed from src/test/ui/borrowck/issue-25793.stderr)0
-rw-r--r--tests/ui/borrowck/issue-28934.rs (renamed from src/test/ui/borrowck/issue-28934.rs)0
-rw-r--r--tests/ui/borrowck/issue-29166.rs (renamed from src/test/ui/issues/issue-29166.rs)0
-rw-r--r--tests/ui/borrowck/issue-31287-drop-in-guard.rs15
-rw-r--r--tests/ui/borrowck/issue-31287-drop-in-guard.stderr35
-rw-r--r--tests/ui/borrowck/issue-33819.rs (renamed from src/test/ui/borrowck/issue-33819.rs)0
-rw-r--r--tests/ui/borrowck/issue-33819.stderr (renamed from src/test/ui/borrowck/issue-33819.stderr)0
-rw-r--r--tests/ui/borrowck/issue-36082.fixed (renamed from src/test/ui/borrowck/issue-36082.fixed)0
-rw-r--r--tests/ui/borrowck/issue-36082.rs (renamed from src/test/ui/borrowck/issue-36082.rs)0
-rw-r--r--tests/ui/borrowck/issue-36082.stderr (renamed from src/test/ui/borrowck/issue-36082.stderr)0
-rw-r--r--tests/ui/borrowck/issue-41962.rs (renamed from src/test/ui/borrowck/issue-41962.rs)0
-rw-r--r--tests/ui/borrowck/issue-41962.stderr (renamed from src/test/ui/borrowck/issue-41962.stderr)0
-rw-r--r--tests/ui/borrowck/issue-42344.rs (renamed from src/test/ui/borrowck/issue-42344.rs)0
-rw-r--r--tests/ui/borrowck/issue-42344.stderr (renamed from src/test/ui/borrowck/issue-42344.stderr)0
-rw-r--r--tests/ui/borrowck/issue-45199.rs (renamed from src/test/ui/borrowck/issue-45199.rs)0
-rw-r--r--tests/ui/borrowck/issue-45199.stderr (renamed from src/test/ui/borrowck/issue-45199.stderr)0
-rw-r--r--tests/ui/borrowck/issue-45983.rs (renamed from src/test/ui/borrowck/issue-45983.rs)0
-rw-r--r--tests/ui/borrowck/issue-45983.stderr (renamed from src/test/ui/borrowck/issue-45983.stderr)0
-rw-r--r--tests/ui/borrowck/issue-46095.rs (renamed from src/test/ui/borrowck/issue-46095.rs)0
-rw-r--r--tests/ui/borrowck/issue-46471.rs (renamed from src/test/ui/borrowck/issue-46471.rs)0
-rw-r--r--tests/ui/borrowck/issue-46471.stderr (renamed from src/test/ui/borrowck/issue-46471.stderr)0
-rw-r--r--tests/ui/borrowck/issue-47215-ice-from-drop-elab.rs (renamed from src/test/ui/borrowck/issue-47215-ice-from-drop-elab.rs)0
-rw-r--r--tests/ui/borrowck/issue-47215-ice-from-drop-elab.stderr14
-rw-r--r--tests/ui/borrowck/issue-51117.rs (renamed from src/test/ui/borrowck/issue-51117.rs)0
-rw-r--r--tests/ui/borrowck/issue-51117.stderr (renamed from src/test/ui/borrowck/issue-51117.stderr)0
-rw-r--r--tests/ui/borrowck/issue-51301.rs (renamed from src/test/ui/issues/issue-51301.rs)0
-rw-r--r--tests/ui/borrowck/issue-51301.stderr (renamed from src/test/ui/issues/issue-51301.stderr)5
-rw-r--r--tests/ui/borrowck/issue-51348-multi-ref-mut-in-guard.rs (renamed from src/test/ui/borrowck/issue-51348-multi-ref-mut-in-guard.rs)0
-rw-r--r--tests/ui/borrowck/issue-51415.fixed12
-rw-r--r--tests/ui/borrowck/issue-51415.rs (renamed from src/test/ui/borrowck/issue-51415.rs)1
-rw-r--r--tests/ui/borrowck/issue-51415.stderr17
-rw-r--r--tests/ui/borrowck/issue-52713-bug.rs (renamed from src/test/ui/borrowck/issue-52713-bug.rs)0
-rw-r--r--tests/ui/borrowck/issue-52713-bug.stderr (renamed from src/test/ui/borrowck/issue-52713-bug.stderr)0
-rw-r--r--tests/ui/borrowck/issue-52967-edition-2018-needs-two-phase-borrows.rs (renamed from src/test/ui/borrowck/issue-52967-edition-2018-needs-two-phase-borrows.rs)0
-rw-r--r--tests/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.rs (renamed from src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.rs)0
-rw-r--r--tests/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.stderr (renamed from src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.stderr)0
-rw-r--r--tests/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.rs (renamed from src/test/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.rs)0
-rw-r--r--tests/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.stderr (renamed from src/test/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.stderr)0
-rw-r--r--tests/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.rs (renamed from src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.rs)0
-rw-r--r--tests/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.stderr (renamed from src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.stderr)0
-rw-r--r--tests/ui/borrowck/issue-54499-field-mutation-of-moved-out.rs (renamed from src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.rs)0
-rw-r--r--tests/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr (renamed from src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr)48
-rw-r--r--tests/ui/borrowck/issue-54499-field-mutation-of-never-init.rs (renamed from src/test/ui/borrowck/issue-54499-field-mutation-of-never-init.rs)0
-rw-r--r--tests/ui/borrowck/issue-54499-field-mutation-of-never-init.stderr (renamed from src/test/ui/borrowck/issue-54499-field-mutation-of-never-init.stderr)0
-rw-r--r--tests/ui/borrowck/issue-54597-reject-move-out-of-borrow-via-pat.rs (renamed from src/test/ui/borrowck/issue-54597-reject-move-out-of-borrow-via-pat.rs)0
-rw-r--r--tests/ui/borrowck/issue-54597-reject-move-out-of-borrow-via-pat.stderr15
-rw-r--r--tests/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.rs (renamed from src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.rs)0
-rw-r--r--tests/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.stderr (renamed from src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.stderr)0
-rw-r--r--tests/ui/borrowck/issue-55552-ascribe-wildcard-to-structured-pattern.rs (renamed from src/test/ui/borrowck/issue-55552-ascribe-wildcard-to-structured-pattern.rs)0
-rw-r--r--tests/ui/borrowck/issue-58776-borrowck-scans-children.rs (renamed from src/test/ui/borrowck/issue-58776-borrowck-scans-children.rs)0
-rw-r--r--tests/ui/borrowck/issue-58776-borrowck-scans-children.stderr (renamed from src/test/ui/borrowck/issue-58776-borrowck-scans-children.stderr)0
-rw-r--r--tests/ui/borrowck/issue-62007-assign-box.rs (renamed from src/test/ui/borrowck/issue-62007-assign-box.rs)0
-rw-r--r--tests/ui/borrowck/issue-62007-assign-field.rs (renamed from src/test/ui/borrowck/issue-62007-assign-field.rs)0
-rw-r--r--tests/ui/borrowck/issue-62107-match-arm-scopes.rs (renamed from src/test/ui/borrowck/issue-62107-match-arm-scopes.rs)0
-rw-r--r--tests/ui/borrowck/issue-62107-match-arm-scopes.stderr (renamed from src/test/ui/borrowck/issue-62107-match-arm-scopes.stderr)0
-rw-r--r--tests/ui/borrowck/issue-64453.rs (renamed from src/test/ui/borrowck/issue-64453.rs)0
-rw-r--r--tests/ui/borrowck/issue-64453.stderr (renamed from src/test/ui/borrowck/issue-64453.stderr)0
-rw-r--r--tests/ui/borrowck/issue-69789-iterator-mut-suggestion.rs (renamed from src/test/ui/borrowck/issue-69789-iterator-mut-suggestion.rs)0
-rw-r--r--tests/ui/borrowck/issue-69789-iterator-mut-suggestion.stderr (renamed from src/test/ui/borrowck/issue-69789-iterator-mut-suggestion.stderr)0
-rw-r--r--tests/ui/borrowck/issue-71546.rs (renamed from src/test/ui/borrowck/issue-71546.rs)0
-rw-r--r--tests/ui/borrowck/issue-7573.rs (renamed from src/test/ui/borrowck/issue-7573.rs)0
-rw-r--r--tests/ui/borrowck/issue-7573.stderr (renamed from src/test/ui/borrowck/issue-7573.stderr)0
-rw-r--r--tests/ui/borrowck/issue-80772.rs (renamed from src/test/ui/borrowck/issue-80772.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-1.rs (renamed from src/test/ui/borrowck/issue-81365-1.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-1.stderr (renamed from src/test/ui/borrowck/issue-81365-1.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81365-10.rs (renamed from src/test/ui/borrowck/issue-81365-10.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-10.stderr (renamed from src/test/ui/borrowck/issue-81365-10.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81365-11.rs (renamed from src/test/ui/borrowck/issue-81365-11.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-11.stderr (renamed from src/test/ui/borrowck/issue-81365-11.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81365-2.rs (renamed from src/test/ui/borrowck/issue-81365-2.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-2.stderr (renamed from src/test/ui/borrowck/issue-81365-2.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81365-3.rs (renamed from src/test/ui/borrowck/issue-81365-3.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-3.stderr (renamed from src/test/ui/borrowck/issue-81365-3.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81365-4.rs (renamed from src/test/ui/borrowck/issue-81365-4.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-4.stderr (renamed from src/test/ui/borrowck/issue-81365-4.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81365-5.rs (renamed from src/test/ui/borrowck/issue-81365-5.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-5.stderr (renamed from src/test/ui/borrowck/issue-81365-5.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81365-6.rs (renamed from src/test/ui/borrowck/issue-81365-6.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-6.stderr (renamed from src/test/ui/borrowck/issue-81365-6.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81365-7.rs (renamed from src/test/ui/borrowck/issue-81365-7.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-7.stderr (renamed from src/test/ui/borrowck/issue-81365-7.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81365-8.rs (renamed from src/test/ui/borrowck/issue-81365-8.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-8.stderr (renamed from src/test/ui/borrowck/issue-81365-8.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81365-9.rs (renamed from src/test/ui/borrowck/issue-81365-9.rs)0
-rw-r--r--tests/ui/borrowck/issue-81365-9.stderr (renamed from src/test/ui/borrowck/issue-81365-9.stderr)0
-rw-r--r--tests/ui/borrowck/issue-81899.rs (renamed from src/test/ui/borrowck/issue-81899.rs)0
-rw-r--r--tests/ui/borrowck/issue-81899.stderr (renamed from src/test/ui/borrowck/issue-81899.stderr)0
-rw-r--r--tests/ui/borrowck/issue-82032.rs (renamed from src/test/ui/borrowck/issue-82032.rs)0
-rw-r--r--tests/ui/borrowck/issue-82032.stderr (renamed from src/test/ui/borrowck/issue-82032.stderr)0
-rw-r--r--tests/ui/borrowck/issue-82126-mismatched-subst-and-hir.rs (renamed from src/test/ui/borrowck/issue-82126-mismatched-subst-and-hir.rs)0
-rw-r--r--tests/ui/borrowck/issue-82126-mismatched-subst-and-hir.stderr (renamed from src/test/ui/borrowck/issue-82126-mismatched-subst-and-hir.stderr)0
-rw-r--r--tests/ui/borrowck/issue-82462.rs (renamed from src/test/ui/borrowck/issue-82462.rs)0
-rw-r--r--tests/ui/borrowck/issue-82462.stderr (renamed from src/test/ui/borrowck/issue-82462.stderr)0
-rw-r--r--tests/ui/borrowck/issue-83309-ice-immut-in-for-loop.rs (renamed from src/test/ui/borrowck/issue-83309-ice-immut-in-for-loop.rs)0
-rw-r--r--tests/ui/borrowck/issue-83309-ice-immut-in-for-loop.stderr (renamed from src/test/ui/borrowck/issue-83309-ice-immut-in-for-loop.stderr)0
-rw-r--r--tests/ui/borrowck/issue-83760.rs (renamed from src/test/ui/borrowck/issue-83760.rs)0
-rw-r--r--tests/ui/borrowck/issue-83760.stderr (renamed from src/test/ui/borrowck/issue-83760.stderr)10
-rw-r--r--tests/ui/borrowck/issue-85581.rs (renamed from src/test/ui/borrowck/issue-85581.rs)0
-rw-r--r--tests/ui/borrowck/issue-85581.stderr (renamed from src/test/ui/borrowck/issue-85581.stderr)0
-rw-r--r--tests/ui/borrowck/issue-85765.rs (renamed from src/test/ui/borrowck/issue-85765.rs)0
-rw-r--r--tests/ui/borrowck/issue-85765.stderr (renamed from src/test/ui/borrowck/issue-85765.stderr)8
-rw-r--r--tests/ui/borrowck/issue-87456-point-to-closure.rs (renamed from src/test/ui/borrowck/issue-87456-point-to-closure.rs)0
-rw-r--r--tests/ui/borrowck/issue-87456-point-to-closure.stderr20
-rw-r--r--tests/ui/borrowck/issue-88434-minimal-example.rs (renamed from src/test/ui/borrowck/issue-88434-minimal-example.rs)0
-rw-r--r--tests/ui/borrowck/issue-88434-minimal-example.stderr (renamed from src/test/ui/borrowck/issue-88434-minimal-example.stderr)0
-rw-r--r--tests/ui/borrowck/issue-88434-removal-index-should-be-less.rs (renamed from src/test/ui/borrowck/issue-88434-removal-index-should-be-less.rs)0
-rw-r--r--tests/ui/borrowck/issue-88434-removal-index-should-be-less.stderr (renamed from src/test/ui/borrowck/issue-88434-removal-index-should-be-less.stderr)0
-rw-r--r--tests/ui/borrowck/issue-91206.rs (renamed from src/test/ui/borrowck/issue-91206.rs)0
-rw-r--r--tests/ui/borrowck/issue-91206.stderr (renamed from src/test/ui/borrowck/issue-91206.stderr)0
-rw-r--r--tests/ui/borrowck/issue-92015.rs (renamed from src/test/ui/borrowck/issue-92015.rs)0
-rw-r--r--tests/ui/borrowck/issue-92015.stderr (renamed from src/test/ui/borrowck/issue-92015.stderr)0
-rw-r--r--tests/ui/borrowck/issue-92157.rs40
-rw-r--r--tests/ui/borrowck/issue-92157.stderr11
-rw-r--r--tests/ui/borrowck/issue-93078.rs15
-rw-r--r--tests/ui/borrowck/issue-93078.stderr12
-rw-r--r--tests/ui/borrowck/issue-93093.rs (renamed from src/test/ui/borrowck/issue-93093.rs)0
-rw-r--r--tests/ui/borrowck/issue-93093.stderr14
-rw-r--r--tests/ui/borrowck/issue-95079-missing-move-in-nested-closure.rs (renamed from src/test/ui/borrowck/issue-95079-missing-move-in-nested-closure.rs)0
-rw-r--r--tests/ui/borrowck/issue-95079-missing-move-in-nested-closure.stderr (renamed from src/test/ui/borrowck/issue-95079-missing-move-in-nested-closure.stderr)0
-rw-r--r--tests/ui/borrowck/kindck-implicit-close-over-mut-var.rs (renamed from src/test/ui/borrowck/kindck-implicit-close-over-mut-var.rs)0
-rw-r--r--tests/ui/borrowck/lazy-init.rs (renamed from src/test/ui/borrowck/lazy-init.rs)0
-rw-r--r--tests/ui/borrowck/many-mutable-borrows.rs18
-rw-r--r--tests/ui/borrowck/many-mutable-borrows.stderr33
-rw-r--r--tests/ui/borrowck/move-error-in-promoted-2.rs (renamed from src/test/ui/borrowck/move-error-in-promoted-2.rs)0
-rw-r--r--tests/ui/borrowck/move-error-in-promoted-2.stderr (renamed from src/test/ui/borrowck/move-error-in-promoted-2.stderr)0
-rw-r--r--tests/ui/borrowck/move-error-in-promoted.rs (renamed from src/test/ui/borrowck/move-error-in-promoted.rs)0
-rw-r--r--tests/ui/borrowck/move-error-in-promoted.stderr (renamed from src/test/ui/borrowck/move-error-in-promoted.stderr)0
-rw-r--r--tests/ui/borrowck/move-error-snippets-ext.rs (renamed from src/test/ui/borrowck/move-error-snippets-ext.rs)0
-rw-r--r--tests/ui/borrowck/move-error-snippets.rs (renamed from src/test/ui/borrowck/move-error-snippets.rs)0
-rw-r--r--tests/ui/borrowck/move-error-snippets.stderr20
-rw-r--r--tests/ui/borrowck/move-from-union-field-issue-66500.rs (renamed from src/test/ui/borrowck/move-from-union-field-issue-66500.rs)0
-rw-r--r--tests/ui/borrowck/move-from-union-field-issue-66500.stderr (renamed from src/test/ui/borrowck/move-from-union-field-issue-66500.stderr)0
-rw-r--r--tests/ui/borrowck/move-in-pattern-mut-in-loop.rs (renamed from src/test/ui/borrowck/move-in-pattern-mut-in-loop.rs)0
-rw-r--r--tests/ui/borrowck/move-in-pattern-mut-in-loop.stderr (renamed from src/test/ui/borrowck/move-in-pattern-mut-in-loop.stderr)0
-rw-r--r--tests/ui/borrowck/move-in-pattern-mut.rs (renamed from src/test/ui/borrowck/move-in-pattern-mut.rs)0
-rw-r--r--tests/ui/borrowck/move-in-pattern-mut.stderr (renamed from src/test/ui/borrowck/move-in-pattern-mut.stderr)0
-rw-r--r--tests/ui/borrowck/move-in-pattern.fixed (renamed from src/test/ui/borrowck/move-in-pattern.fixed)0
-rw-r--r--tests/ui/borrowck/move-in-pattern.rs (renamed from src/test/ui/borrowck/move-in-pattern.rs)0
-rw-r--r--tests/ui/borrowck/move-in-pattern.stderr (renamed from src/test/ui/borrowck/move-in-pattern.stderr)0
-rw-r--r--tests/ui/borrowck/move-in-static-initializer-issue-38520.rs (renamed from src/test/ui/borrowck/move-in-static-initializer-issue-38520.rs)0
-rw-r--r--tests/ui/borrowck/move-in-static-initializer-issue-38520.stderr (renamed from src/test/ui/borrowck/move-in-static-initializer-issue-38520.stderr)0
-rw-r--r--tests/ui/borrowck/mut-borrow-in-loop-2.fixed (renamed from src/test/ui/borrowck/mut-borrow-in-loop-2.fixed)0
-rw-r--r--tests/ui/borrowck/mut-borrow-in-loop-2.rs (renamed from src/test/ui/borrowck/mut-borrow-in-loop-2.rs)0
-rw-r--r--tests/ui/borrowck/mut-borrow-in-loop-2.stderr (renamed from src/test/ui/borrowck/mut-borrow-in-loop-2.stderr)0
-rw-r--r--tests/ui/borrowck/mut-borrow-in-loop.rs (renamed from src/test/ui/borrowck/mut-borrow-in-loop.rs)0
-rw-r--r--tests/ui/borrowck/mut-borrow-in-loop.stderr (renamed from src/test/ui/borrowck/mut-borrow-in-loop.stderr)0
-rw-r--r--tests/ui/borrowck/mut-borrow-of-mut-ref.rs (renamed from src/test/ui/borrowck/mut-borrow-of-mut-ref.rs)9
-rw-r--r--tests/ui/borrowck/mut-borrow-of-mut-ref.stderr59
-rw-r--r--tests/ui/borrowck/mut-borrow-outside-loop.rs (renamed from src/test/ui/borrowck/mut-borrow-outside-loop.rs)0
-rw-r--r--tests/ui/borrowck/mut-borrow-outside-loop.stderr (renamed from src/test/ui/borrowck/mut-borrow-outside-loop.stderr)0
-rw-r--r--tests/ui/borrowck/mutability-errors.rs (renamed from src/test/ui/borrowck/mutability-errors.rs)6
-rw-r--r--tests/ui/borrowck/mutability-errors.stderr (renamed from src/test/ui/borrowck/mutability-errors.stderr)84
-rw-r--r--tests/ui/borrowck/or-patterns.rs (renamed from src/test/ui/borrowck/or-patterns.rs)0
-rw-r--r--tests/ui/borrowck/or-patterns.stderr (renamed from src/test/ui/borrowck/or-patterns.stderr)0
-rw-r--r--tests/ui/borrowck/promote-ref-mut-in-let-issue-46557.rs (renamed from src/test/ui/borrowck/promote-ref-mut-in-let-issue-46557.rs)0
-rw-r--r--tests/ui/borrowck/promote-ref-mut-in-let-issue-46557.stderr (renamed from src/test/ui/borrowck/promote-ref-mut-in-let-issue-46557.stderr)0
-rw-r--r--tests/ui/borrowck/reassignment_immutable_fields.rs (renamed from src/test/ui/borrowck/reassignment_immutable_fields.rs)0
-rw-r--r--tests/ui/borrowck/reassignment_immutable_fields.stderr (renamed from src/test/ui/borrowck/reassignment_immutable_fields.stderr)0
-rw-r--r--tests/ui/borrowck/reassignment_immutable_fields_overlapping.rs (renamed from src/test/ui/borrowck/reassignment_immutable_fields_overlapping.rs)0
-rw-r--r--tests/ui/borrowck/reassignment_immutable_fields_overlapping.stderr (renamed from src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr)8
-rw-r--r--tests/ui/borrowck/reassignment_immutable_fields_twice.rs (renamed from src/test/ui/borrowck/reassignment_immutable_fields_twice.rs)0
-rw-r--r--tests/ui/borrowck/reassignment_immutable_fields_twice.stderr (renamed from src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr)8
-rw-r--r--tests/ui/borrowck/reborrow-sugg-move-then-borrow.rs (renamed from src/test/ui/borrowck/reborrow-sugg-move-then-borrow.rs)0
-rw-r--r--tests/ui/borrowck/reborrow-sugg-move-then-borrow.stderr (renamed from src/test/ui/borrowck/reborrow-sugg-move-then-borrow.stderr)5
-rw-r--r--tests/ui/borrowck/regions-bound-missing-bound-in-impl.rs (renamed from src/test/ui/borrowck/regions-bound-missing-bound-in-impl.rs)0
-rw-r--r--tests/ui/borrowck/regions-bound-missing-bound-in-impl.stderr (renamed from src/test/ui/borrowck/regions-bound-missing-bound-in-impl.stderr)8
-rw-r--r--tests/ui/borrowck/regions-escape-bound-fn-2.rs (renamed from src/test/ui/borrowck/regions-escape-bound-fn-2.rs)0
-rw-r--r--tests/ui/borrowck/regions-escape-bound-fn-2.stderr (renamed from src/test/ui/borrowck/regions-escape-bound-fn-2.stderr)0
-rw-r--r--tests/ui/borrowck/regions-escape-bound-fn.rs (renamed from src/test/ui/borrowck/regions-escape-bound-fn.rs)0
-rw-r--r--tests/ui/borrowck/regions-escape-bound-fn.stderr (renamed from src/test/ui/borrowck/regions-escape-bound-fn.stderr)0
-rw-r--r--tests/ui/borrowck/regions-escape-unboxed-closure.rs (renamed from src/test/ui/borrowck/regions-escape-unboxed-closure.rs)0
-rw-r--r--tests/ui/borrowck/regions-escape-unboxed-closure.stderr (renamed from src/test/ui/borrowck/regions-escape-unboxed-closure.stderr)0
-rw-r--r--tests/ui/borrowck/return-local-binding-from-desugaring.rs (renamed from src/test/ui/borrowck/return-local-binding-from-desugaring.rs)0
-rw-r--r--tests/ui/borrowck/return-local-binding-from-desugaring.stderr (renamed from src/test/ui/borrowck/return-local-binding-from-desugaring.stderr)0
-rw-r--r--tests/ui/borrowck/slice-index-bounds-check-invalidation.rs (renamed from src/test/ui/borrowck/slice-index-bounds-check-invalidation.rs)0
-rw-r--r--tests/ui/borrowck/slice-index-bounds-check-invalidation.stderr (renamed from src/test/ui/borrowck/slice-index-bounds-check-invalidation.stderr)0
-rw-r--r--tests/ui/borrowck/suggest-as-ref-on-mut-closure.rs (renamed from src/test/ui/borrowck/suggest-as-ref-on-mut-closure.rs)0
-rw-r--r--tests/ui/borrowck/suggest-as-ref-on-mut-closure.stderr (renamed from src/test/ui/borrowck/suggest-as-ref-on-mut-closure.stderr)5
-rw-r--r--tests/ui/borrowck/suggest-assign-rvalue.rs (renamed from src/test/ui/borrowck/suggest-assign-rvalue.rs)0
-rw-r--r--tests/ui/borrowck/suggest-assign-rvalue.stderr (renamed from src/test/ui/borrowck/suggest-assign-rvalue.stderr)0
-rw-r--r--tests/ui/borrowck/suggest-local-var-double-mut.rs (renamed from src/test/ui/borrowck/suggest-local-var-double-mut.rs)0
-rw-r--r--tests/ui/borrowck/suggest-local-var-double-mut.stderr (renamed from src/test/ui/borrowck/suggest-local-var-double-mut.stderr)0
-rw-r--r--tests/ui/borrowck/suggest-local-var-for-vector.rs (renamed from src/test/ui/borrowck/suggest-local-var-for-vector.rs)0
-rw-r--r--tests/ui/borrowck/suggest-local-var-for-vector.stderr (renamed from src/test/ui/borrowck/suggest-local-var-for-vector.stderr)0
-rw-r--r--tests/ui/borrowck/suggest-local-var-imm-and-mut.rs (renamed from src/test/ui/borrowck/suggest-local-var-imm-and-mut.rs)0
-rw-r--r--tests/ui/borrowck/suggest-local-var-imm-and-mut.stderr (renamed from src/test/ui/borrowck/suggest-local-var-imm-and-mut.stderr)0
-rw-r--r--tests/ui/borrowck/suggest-storing-local-var-for-vector.rs (renamed from src/test/ui/borrowck/suggest-storing-local-var-for-vector.rs)0
-rw-r--r--tests/ui/borrowck/suggest-storing-local-var-for-vector.stderr (renamed from src/test/ui/borrowck/suggest-storing-local-var-for-vector.stderr)0
-rw-r--r--tests/ui/borrowck/two-phase-across-loop.rs (renamed from src/test/ui/borrowck/two-phase-across-loop.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-across-loop.stderr (renamed from src/test/ui/borrowck/two-phase-across-loop.stderr)0
-rw-r--r--tests/ui/borrowck/two-phase-activation-sharing-interference.nll_target.stderr (renamed from src/test/ui/borrowck/two-phase-activation-sharing-interference.nll_target.stderr)0
-rw-r--r--tests/ui/borrowck/two-phase-activation-sharing-interference.rs (renamed from src/test/ui/borrowck/two-phase-activation-sharing-interference.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-allow-access-during-reservation.nll_target.stderr (renamed from src/test/ui/borrowck/two-phase-allow-access-during-reservation.nll_target.stderr)0
-rw-r--r--tests/ui/borrowck/two-phase-allow-access-during-reservation.rs (renamed from src/test/ui/borrowck/two-phase-allow-access-during-reservation.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-baseline.rs (renamed from src/test/ui/borrowck/two-phase-baseline.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-bin-ops.rs (renamed from src/test/ui/borrowck/two-phase-bin-ops.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-cannot-nest-mut-self-calls.rs (renamed from src/test/ui/borrowck/two-phase-cannot-nest-mut-self-calls.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-cannot-nest-mut-self-calls.stderr (renamed from src/test/ui/borrowck/two-phase-cannot-nest-mut-self-calls.stderr)0
-rw-r--r--tests/ui/borrowck/two-phase-control-flow-split-before-activation.rs (renamed from src/test/ui/borrowck/two-phase-control-flow-split-before-activation.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-method-receivers.rs (renamed from src/test/ui/borrowck/two-phase-method-receivers.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-multi-mut.rs (renamed from src/test/ui/borrowck/two-phase-multi-mut.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-multi-mut.stderr (renamed from src/test/ui/borrowck/two-phase-multi-mut.stderr)0
-rw-r--r--tests/ui/borrowck/two-phase-multiple-activations.rs (renamed from src/test/ui/borrowck/two-phase-multiple-activations.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-nonrecv-autoref.base.stderr (renamed from src/test/ui/borrowck/two-phase-nonrecv-autoref.base.stderr)0
-rw-r--r--tests/ui/borrowck/two-phase-nonrecv-autoref.rs (renamed from src/test/ui/borrowck/two-phase-nonrecv-autoref.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-reservation-sharing-interference-2.rs (renamed from src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-reservation-sharing-interference-2.stderr (renamed from src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.stderr)0
-rw-r--r--tests/ui/borrowck/two-phase-reservation-sharing-interference.nll_target.stderr (renamed from src/test/ui/borrowck/two-phase-reservation-sharing-interference.nll_target.stderr)0
-rw-r--r--tests/ui/borrowck/two-phase-reservation-sharing-interference.rs (renamed from src/test/ui/borrowck/two-phase-reservation-sharing-interference.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-sneaky.rs (renamed from src/test/ui/borrowck/two-phase-sneaky.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-sneaky.stderr (renamed from src/test/ui/borrowck/two-phase-sneaky.stderr)0
-rw-r--r--tests/ui/borrowck/two-phase-surprise-no-conflict.rs (renamed from src/test/ui/borrowck/two-phase-surprise-no-conflict.rs)0
-rw-r--r--tests/ui/borrowck/two-phase-surprise-no-conflict.stderr (renamed from src/test/ui/borrowck/two-phase-surprise-no-conflict.stderr)0
-rw-r--r--tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.fixed15
-rw-r--r--tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs (renamed from src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs)1
-rw-r--r--tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr22
634 files changed, 1538 insertions, 136 deletions
diff --git a/src/test/ui/borrowck/access-mode-in-closures.rs b/tests/ui/borrowck/access-mode-in-closures.rs
index 9bd90e70a..9bd90e70a 100644
--- a/src/test/ui/borrowck/access-mode-in-closures.rs
+++ b/tests/ui/borrowck/access-mode-in-closures.rs
diff --git a/tests/ui/borrowck/access-mode-in-closures.stderr b/tests/ui/borrowck/access-mode-in-closures.stderr
new file mode 100644
index 000000000..abee72ba8
--- /dev/null
+++ b/tests/ui/borrowck/access-mode-in-closures.stderr
@@ -0,0 +1,18 @@
+error[E0507]: cannot move out of `s` which is behind a shared reference
+ --> $DIR/access-mode-in-closures.rs:8:15
+ |
+LL | match *s { S(v) => v }
+ | ^^ -
+ | |
+ | data moved here
+ | move occurs because `v` has type `Vec<isize>`, which does not implement the `Copy` trait
+ |
+help: consider removing the dereference here
+ |
+LL - match *s { S(v) => v }
+LL + match s { S(v) => v }
+ |
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/anonymous-region-in-apit.rs b/tests/ui/borrowck/anonymous-region-in-apit.rs
index 7799a7cb1..7799a7cb1 100644
--- a/src/test/ui/borrowck/anonymous-region-in-apit.rs
+++ b/tests/ui/borrowck/anonymous-region-in-apit.rs
diff --git a/src/test/ui/borrowck/anonymous-region-in-apit.stderr b/tests/ui/borrowck/anonymous-region-in-apit.stderr
index 9e100f8ac..9e100f8ac 100644
--- a/src/test/ui/borrowck/anonymous-region-in-apit.stderr
+++ b/tests/ui/borrowck/anonymous-region-in-apit.stderr
diff --git a/src/test/ui/borrowck/assign-never-type.rs b/tests/ui/borrowck/assign-never-type.rs
index 4f30ea146..4f30ea146 100644
--- a/src/test/ui/borrowck/assign-never-type.rs
+++ b/tests/ui/borrowck/assign-never-type.rs
diff --git a/src/test/ui/borrowck/assign_mutable_fields.rs b/tests/ui/borrowck/assign_mutable_fields.rs
index b60726d0c..b60726d0c 100644
--- a/src/test/ui/borrowck/assign_mutable_fields.rs
+++ b/tests/ui/borrowck/assign_mutable_fields.rs
diff --git a/src/test/ui/borrowck/assign_mutable_fields.stderr b/tests/ui/borrowck/assign_mutable_fields.stderr
index 1ed92865d..1ed92865d 100644
--- a/src/test/ui/borrowck/assign_mutable_fields.stderr
+++ b/tests/ui/borrowck/assign_mutable_fields.stderr
diff --git a/src/test/ui/borrowck/async-reference-generality.rs b/tests/ui/borrowck/async-reference-generality.rs
index 487d1ac81..487d1ac81 100644
--- a/src/test/ui/borrowck/async-reference-generality.rs
+++ b/tests/ui/borrowck/async-reference-generality.rs
diff --git a/src/test/ui/borrowck/async-reference-generality.stderr b/tests/ui/borrowck/async-reference-generality.stderr
index af720ad29..af720ad29 100644
--- a/src/test/ui/borrowck/async-reference-generality.stderr
+++ b/tests/ui/borrowck/async-reference-generality.stderr
diff --git a/src/test/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.rs b/tests/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.rs
index baf31bd89..baf31bd89 100644
--- a/src/test/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.rs
+++ b/tests/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.rs
diff --git a/src/test/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.stderr b/tests/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.stderr
index 50eee1049..50eee1049 100644
--- a/src/test/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.stderr
+++ b/tests/ui/borrowck/bindings-after-at-or-patterns-slice-patterns-box-patterns.stderr
diff --git a/src/test/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.rs b/tests/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.rs
index 57198cb95..57198cb95 100644
--- a/src/test/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.rs
+++ b/tests/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.rs
diff --git a/src/test/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.stderr b/tests/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.stderr
index 6235e0db0..6235e0db0 100644
--- a/src/test/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.stderr
+++ b/tests/ui/borrowck/borrow-immutable-upvar-mutation-impl-trait.stderr
diff --git a/src/test/ui/borrowck/borrow-immutable-upvar-mutation.rs b/tests/ui/borrowck/borrow-immutable-upvar-mutation.rs
index a3350024e..a3350024e 100644
--- a/src/test/ui/borrowck/borrow-immutable-upvar-mutation.rs
+++ b/tests/ui/borrowck/borrow-immutable-upvar-mutation.rs
diff --git a/src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr b/tests/ui/borrowck/borrow-immutable-upvar-mutation.stderr
index a0eaf1f16..a0eaf1f16 100644
--- a/src/test/ui/borrowck/borrow-immutable-upvar-mutation.stderr
+++ b/tests/ui/borrowck/borrow-immutable-upvar-mutation.stderr
diff --git a/src/test/ui/borrowck/borrow-raw-address-of-borrowed.rs b/tests/ui/borrowck/borrow-raw-address-of-borrowed.rs
index f25fd7f66..f25fd7f66 100644
--- a/src/test/ui/borrowck/borrow-raw-address-of-borrowed.rs
+++ b/tests/ui/borrowck/borrow-raw-address-of-borrowed.rs
diff --git a/src/test/ui/borrowck/borrow-raw-address-of-borrowed.stderr b/tests/ui/borrowck/borrow-raw-address-of-borrowed.stderr
index 6f7b7e080..6f7b7e080 100644
--- a/src/test/ui/borrowck/borrow-raw-address-of-borrowed.stderr
+++ b/tests/ui/borrowck/borrow-raw-address-of-borrowed.stderr
diff --git a/src/test/ui/borrowck/borrow-raw-address-of-deref-mutability-ok.rs b/tests/ui/borrowck/borrow-raw-address-of-deref-mutability-ok.rs
index e381384fe..e381384fe 100644
--- a/src/test/ui/borrowck/borrow-raw-address-of-deref-mutability-ok.rs
+++ b/tests/ui/borrowck/borrow-raw-address-of-deref-mutability-ok.rs
diff --git a/src/test/ui/borrowck/borrow-raw-address-of-deref-mutability.rs b/tests/ui/borrowck/borrow-raw-address-of-deref-mutability.rs
index 712873528..712873528 100644
--- a/src/test/ui/borrowck/borrow-raw-address-of-deref-mutability.rs
+++ b/tests/ui/borrowck/borrow-raw-address-of-deref-mutability.rs
diff --git a/tests/ui/borrowck/borrow-raw-address-of-deref-mutability.stderr b/tests/ui/borrowck/borrow-raw-address-of-deref-mutability.stderr
new file mode 100644
index 000000000..4cc1d821d
--- /dev/null
+++ b/tests/ui/borrowck/borrow-raw-address-of-deref-mutability.stderr
@@ -0,0 +1,25 @@
+error[E0596]: cannot borrow `*x` as mutable, as it is behind a `&` reference
+ --> $DIR/borrow-raw-address-of-deref-mutability.rs:8:13
+ |
+LL | let q = &raw mut *x;
+ | ^^^^^^^^^^^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | let x = &mut 0;
+ | ~~~~~~
+
+error[E0596]: cannot borrow `*x` as mutable, as it is behind a `*const` pointer
+ --> $DIR/borrow-raw-address-of-deref-mutability.rs:14:13
+ |
+LL | let q = &raw mut *x;
+ | ^^^^^^^^^^^ `x` is a `*const` pointer, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable pointer
+ |
+LL | let x = &mut 0 as *const i32;
+ | ~~~~~~
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrow-raw-address-of-mutability-ok.rs b/tests/ui/borrowck/borrow-raw-address-of-mutability-ok.rs
index e1cf2dc53..e1cf2dc53 100644
--- a/src/test/ui/borrowck/borrow-raw-address-of-mutability-ok.rs
+++ b/tests/ui/borrowck/borrow-raw-address-of-mutability-ok.rs
diff --git a/src/test/ui/borrowck/borrow-raw-address-of-mutability.rs b/tests/ui/borrowck/borrow-raw-address-of-mutability.rs
index 320c54b80..320c54b80 100644
--- a/src/test/ui/borrowck/borrow-raw-address-of-mutability.rs
+++ b/tests/ui/borrowck/borrow-raw-address-of-mutability.rs
diff --git a/src/test/ui/borrowck/borrow-raw-address-of-mutability.stderr b/tests/ui/borrowck/borrow-raw-address-of-mutability.stderr
index 869375cb2..a77482091 100644
--- a/src/test/ui/borrowck/borrow-raw-address-of-mutability.stderr
+++ b/tests/ui/borrowck/borrow-raw-address-of-mutability.stderr
@@ -1,10 +1,13 @@
error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
--> $DIR/borrow-raw-address-of-mutability.rs:5:13
|
-LL | let x = 0;
- | - help: consider changing this to be mutable: `mut x`
LL | let y = &raw mut x;
| ^^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut x = 0;
+ | +++
error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
--> $DIR/borrow-raw-address-of-mutability.rs:11:17
@@ -18,13 +21,16 @@ LL | let y = &raw mut x;
error[E0596]: cannot borrow `f` as mutable, as it is not declared as mutable
--> $DIR/borrow-raw-address-of-mutability.rs:21:5
|
-LL | let f = || {
- | - help: consider changing this to be mutable: `mut f`
LL | let y = &raw mut x;
| - calling `f` requires mutable binding due to mutable borrow of `x`
LL | };
LL | f();
| ^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut f = || {
+ | +++
error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure
--> $DIR/borrow-raw-address-of-mutability.rs:29:17
diff --git a/src/test/ui/borrowck/borrow-tuple-fields.rs b/tests/ui/borrowck/borrow-tuple-fields.rs
index c628fa49e..c628fa49e 100644
--- a/src/test/ui/borrowck/borrow-tuple-fields.rs
+++ b/tests/ui/borrowck/borrow-tuple-fields.rs
diff --git a/src/test/ui/borrowck/borrow-tuple-fields.stderr b/tests/ui/borrowck/borrow-tuple-fields.stderr
index befa751a6..befa751a6 100644
--- a/src/test/ui/borrowck/borrow-tuple-fields.stderr
+++ b/tests/ui/borrowck/borrow-tuple-fields.stderr
diff --git a/src/test/ui/borrowck/borrowck-access-permissions.rs b/tests/ui/borrowck/borrowck-access-permissions.rs
index 469ad508b..469ad508b 100644
--- a/src/test/ui/borrowck/borrowck-access-permissions.rs
+++ b/tests/ui/borrowck/borrowck-access-permissions.rs
diff --git a/tests/ui/borrowck/borrowck-access-permissions.stderr b/tests/ui/borrowck/borrowck-access-permissions.stderr
new file mode 100644
index 000000000..26f3e2bbd
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-access-permissions.stderr
@@ -0,0 +1,64 @@
+error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
+ --> $DIR/borrowck-access-permissions.rs:9:19
+ |
+LL | let _y1 = &mut x;
+ | ^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut x = 1;
+ | +++
+
+error[E0596]: cannot borrow immutable static item `static_x` as mutable
+ --> $DIR/borrowck-access-permissions.rs:14:19
+ |
+LL | let _y1 = &mut static_x;
+ | ^^^^^^^^^^^^^ cannot borrow as mutable
+
+error[E0596]: cannot borrow `*box_x` as mutable, as `box_x` is not declared as mutable
+ --> $DIR/borrowck-access-permissions.rs:22:19
+ |
+LL | let _y1 = &mut *box_x;
+ | ^^^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut box_x = Box::new(1);
+ | +++
+
+error[E0596]: cannot borrow `*ref_x` as mutable, as it is behind a `&` reference
+ --> $DIR/borrowck-access-permissions.rs:30:19
+ |
+LL | let _y1 = &mut *ref_x;
+ | ^^^^^^^^^^^ `ref_x` is a `&` reference, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | let ref_x = &mut x;
+ | ~~~~~~
+
+error[E0596]: cannot borrow `*ptr_x` as mutable, as it is behind a `*const` pointer
+ --> $DIR/borrowck-access-permissions.rs:39:23
+ |
+LL | let _y1 = &mut *ptr_x;
+ | ^^^^^^^^^^^ `ptr_x` is a `*const` pointer, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable pointer
+ |
+LL | let ptr_x : *const _ = &mut x;
+ | ~~~~~~
+
+error[E0596]: cannot borrow `*foo_ref.f` as mutable, as it is behind a `&` reference
+ --> $DIR/borrowck-access-permissions.rs:48:18
+ |
+LL | let _y = &mut *foo_ref.f;
+ | ^^^^^^^^^^^^^^^ `foo_ref` is a `&` reference, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | let foo_ref = &mut foo;
+ | ~~~~~~~~
+
+error: aborting due to 6 previous errors
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-and-init.rs b/tests/ui/borrowck/borrowck-and-init.rs
index eeb4f05d6..eeb4f05d6 100644
--- a/src/test/ui/borrowck/borrowck-and-init.rs
+++ b/tests/ui/borrowck/borrowck-and-init.rs
diff --git a/src/test/ui/borrowck/borrowck-and-init.stderr b/tests/ui/borrowck/borrowck-and-init.stderr
index 5abf07a31..5abf07a31 100644
--- a/src/test/ui/borrowck/borrowck-and-init.stderr
+++ b/tests/ui/borrowck/borrowck-and-init.stderr
diff --git a/src/test/ui/borrowck/borrowck-anon-fields-struct.rs b/tests/ui/borrowck/borrowck-anon-fields-struct.rs
index a05dfe62b..a05dfe62b 100644
--- a/src/test/ui/borrowck/borrowck-anon-fields-struct.rs
+++ b/tests/ui/borrowck/borrowck-anon-fields-struct.rs
diff --git a/src/test/ui/borrowck/borrowck-anon-fields-struct.stderr b/tests/ui/borrowck/borrowck-anon-fields-struct.stderr
index 7a959fb6e..7a959fb6e 100644
--- a/src/test/ui/borrowck/borrowck-anon-fields-struct.stderr
+++ b/tests/ui/borrowck/borrowck-anon-fields-struct.stderr
diff --git a/src/test/ui/borrowck/borrowck-anon-fields-tuple.rs b/tests/ui/borrowck/borrowck-anon-fields-tuple.rs
index de2a8d832..de2a8d832 100644
--- a/src/test/ui/borrowck/borrowck-anon-fields-tuple.rs
+++ b/tests/ui/borrowck/borrowck-anon-fields-tuple.rs
diff --git a/src/test/ui/borrowck/borrowck-anon-fields-tuple.stderr b/tests/ui/borrowck/borrowck-anon-fields-tuple.stderr
index 88a8867f5..88a8867f5 100644
--- a/src/test/ui/borrowck/borrowck-anon-fields-tuple.stderr
+++ b/tests/ui/borrowck/borrowck-anon-fields-tuple.stderr
diff --git a/src/test/ui/borrowck/borrowck-anon-fields-variant.rs b/tests/ui/borrowck/borrowck-anon-fields-variant.rs
index 6e63de913..6e63de913 100644
--- a/src/test/ui/borrowck/borrowck-anon-fields-variant.rs
+++ b/tests/ui/borrowck/borrowck-anon-fields-variant.rs
diff --git a/src/test/ui/borrowck/borrowck-anon-fields-variant.stderr b/tests/ui/borrowck/borrowck-anon-fields-variant.stderr
index 98f6f00a7..98f6f00a7 100644
--- a/src/test/ui/borrowck/borrowck-anon-fields-variant.stderr
+++ b/tests/ui/borrowck/borrowck-anon-fields-variant.stderr
diff --git a/src/test/ui/borrowck/borrowck-argument.rs b/tests/ui/borrowck/borrowck-argument.rs
index 5d776d4fc..5d776d4fc 100644
--- a/src/test/ui/borrowck/borrowck-argument.rs
+++ b/tests/ui/borrowck/borrowck-argument.rs
diff --git a/tests/ui/borrowck/borrowck-argument.stderr b/tests/ui/borrowck/borrowck-argument.stderr
new file mode 100644
index 000000000..1c992dfcc
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-argument.stderr
@@ -0,0 +1,47 @@
+error[E0596]: cannot borrow `arg` as mutable, as it is not declared as mutable
+ --> $DIR/borrowck-argument.rs:10:5
+ |
+LL | arg.mutate();
+ | ^^^^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | fn func(mut arg: S) {
+ | +++
+
+error[E0596]: cannot borrow `arg` as mutable, as it is not declared as mutable
+ --> $DIR/borrowck-argument.rs:15:9
+ |
+LL | arg.mutate();
+ | ^^^^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | fn method(&self, mut arg: S) {
+ | +++
+
+error[E0596]: cannot borrow `arg` as mutable, as it is not declared as mutable
+ --> $DIR/borrowck-argument.rs:21:9
+ |
+LL | arg.mutate();
+ | ^^^^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | fn default(&self, mut arg: S) {
+ | +++
+
+error[E0596]: cannot borrow `arg` as mutable, as it is not declared as mutable
+ --> $DIR/borrowck-argument.rs:32:17
+ |
+LL | (|arg: S| { arg.mutate() })(s);
+ | ^^^^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | (|mut arg: S| { arg.mutate() })(s);
+ | +++
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-assign-comp-idx.rs b/tests/ui/borrowck/borrowck-assign-comp-idx.rs
index f4dffeb8c..f4dffeb8c 100644
--- a/src/test/ui/borrowck/borrowck-assign-comp-idx.rs
+++ b/tests/ui/borrowck/borrowck-assign-comp-idx.rs
diff --git a/src/test/ui/borrowck/borrowck-assign-comp-idx.stderr b/tests/ui/borrowck/borrowck-assign-comp-idx.stderr
index b80174ae6..b80174ae6 100644
--- a/src/test/ui/borrowck/borrowck-assign-comp-idx.stderr
+++ b/tests/ui/borrowck/borrowck-assign-comp-idx.stderr
diff --git a/src/test/ui/borrowck/borrowck-assign-comp.rs b/tests/ui/borrowck/borrowck-assign-comp.rs
index 98bb2d85a..98bb2d85a 100644
--- a/src/test/ui/borrowck/borrowck-assign-comp.rs
+++ b/tests/ui/borrowck/borrowck-assign-comp.rs
diff --git a/src/test/ui/borrowck/borrowck-assign-comp.stderr b/tests/ui/borrowck/borrowck-assign-comp.stderr
index 2b7cef7b3..2b7cef7b3 100644
--- a/src/test/ui/borrowck/borrowck-assign-comp.stderr
+++ b/tests/ui/borrowck/borrowck-assign-comp.stderr
diff --git a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.rs b/tests/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.rs
index 879c03791..879c03791 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.rs
+++ b/tests/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.rs
diff --git a/tests/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.stderr b/tests/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.stderr
new file mode 100644
index 000000000..cbacc87a0
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-assign-to-andmut-in-aliasable-loc.stderr
@@ -0,0 +1,25 @@
+error[E0594]: cannot assign to `*s.pointer`, which is behind a `&` reference
+ --> $DIR/borrowck-assign-to-andmut-in-aliasable-loc.rs:9:5
+ |
+LL | *s.pointer += 1;
+ | ^^^^^^^^^^^^^^^ `s` is a `&` reference, so the data it refers to cannot be written
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | fn a(s: &mut S<'_>) {
+ | ~~~~~~~~~~
+
+error[E0594]: cannot assign to `*s.pointer`, which is behind a `&` reference
+ --> $DIR/borrowck-assign-to-andmut-in-aliasable-loc.rs:17:5
+ |
+LL | *s.pointer += 1;
+ | ^^^^^^^^^^^^^^^ `s` is a `&` reference, so the data it refers to cannot be written
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | fn c(s: &mut &mut S<'_>) {
+ | ~~~~~~~~~~~~~~~
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.rs b/tests/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.rs
index f7aee2b8a..f7aee2b8a 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.rs
+++ b/tests/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.rs
diff --git a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.stderr b/tests/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.stderr
index 0b21d113f..0b21d113f 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.stderr
+++ b/tests/ui/borrowck/borrowck-assign-to-andmut-in-borrowed-loc.stderr
diff --git a/src/test/ui/borrowck/borrowck-assign-to-constants.rs b/tests/ui/borrowck/borrowck-assign-to-constants.rs
index 5881dccf6..5881dccf6 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-constants.rs
+++ b/tests/ui/borrowck/borrowck-assign-to-constants.rs
diff --git a/src/test/ui/borrowck/borrowck-assign-to-constants.stderr b/tests/ui/borrowck/borrowck-assign-to-constants.stderr
index 864d933da..864d933da 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-constants.stderr
+++ b/tests/ui/borrowck/borrowck-assign-to-constants.stderr
diff --git a/src/test/ui/borrowck/borrowck-assign-to-subfield.rs b/tests/ui/borrowck/borrowck-assign-to-subfield.rs
index 050d702b6..050d702b6 100644
--- a/src/test/ui/borrowck/borrowck-assign-to-subfield.rs
+++ b/tests/ui/borrowck/borrowck-assign-to-subfield.rs
diff --git a/src/test/ui/borrowck/borrowck-assignment-to-static-mut.rs b/tests/ui/borrowck/borrowck-assignment-to-static-mut.rs
index 72bf43da9..72bf43da9 100644
--- a/src/test/ui/borrowck/borrowck-assignment-to-static-mut.rs
+++ b/tests/ui/borrowck/borrowck-assignment-to-static-mut.rs
diff --git a/src/test/ui/borrowck/borrowck-auto-mut-ref-to-immut-var.rs b/tests/ui/borrowck/borrowck-auto-mut-ref-to-immut-var.rs
index 247e3da18..247e3da18 100644
--- a/src/test/ui/borrowck/borrowck-auto-mut-ref-to-immut-var.rs
+++ b/tests/ui/borrowck/borrowck-auto-mut-ref-to-immut-var.rs
diff --git a/tests/ui/borrowck/borrowck-auto-mut-ref-to-immut-var.stderr b/tests/ui/borrowck/borrowck-auto-mut-ref-to-immut-var.stderr
new file mode 100644
index 000000000..19ef0301a
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-auto-mut-ref-to-immut-var.stderr
@@ -0,0 +1,14 @@
+error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
+ --> $DIR/borrowck-auto-mut-ref-to-immut-var.rs:15:5
+ |
+LL | x.printme();
+ | ^^^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut x = Foo { x: 3 };
+ | +++
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-autoref-3261.rs b/tests/ui/borrowck/borrowck-autoref-3261.rs
index 2ff3d5bd3..2ff3d5bd3 100644
--- a/src/test/ui/borrowck/borrowck-autoref-3261.rs
+++ b/tests/ui/borrowck/borrowck-autoref-3261.rs
diff --git a/src/test/ui/borrowck/borrowck-autoref-3261.stderr b/tests/ui/borrowck/borrowck-autoref-3261.stderr
index c2dfb687e..c2dfb687e 100644
--- a/src/test/ui/borrowck/borrowck-autoref-3261.stderr
+++ b/tests/ui/borrowck/borrowck-autoref-3261.stderr
diff --git a/src/test/ui/borrowck/borrowck-bad-nested-calls-free.rs b/tests/ui/borrowck/borrowck-bad-nested-calls-free.rs
index b0bb9a035..b0bb9a035 100644
--- a/src/test/ui/borrowck/borrowck-bad-nested-calls-free.rs
+++ b/tests/ui/borrowck/borrowck-bad-nested-calls-free.rs
diff --git a/src/test/ui/borrowck/borrowck-bad-nested-calls-free.stderr b/tests/ui/borrowck/borrowck-bad-nested-calls-free.stderr
index e273a778f..e273a778f 100644
--- a/src/test/ui/borrowck/borrowck-bad-nested-calls-free.stderr
+++ b/tests/ui/borrowck/borrowck-bad-nested-calls-free.stderr
diff --git a/src/test/ui/borrowck/borrowck-bad-nested-calls-move.rs b/tests/ui/borrowck/borrowck-bad-nested-calls-move.rs
index b2afb6391..b2afb6391 100644
--- a/src/test/ui/borrowck/borrowck-bad-nested-calls-move.rs
+++ b/tests/ui/borrowck/borrowck-bad-nested-calls-move.rs
diff --git a/src/test/ui/borrowck/borrowck-bad-nested-calls-move.stderr b/tests/ui/borrowck/borrowck-bad-nested-calls-move.stderr
index 371bcf2b6..371bcf2b6 100644
--- a/src/test/ui/borrowck/borrowck-bad-nested-calls-move.stderr
+++ b/tests/ui/borrowck/borrowck-bad-nested-calls-move.stderr
diff --git a/src/test/ui/borrowck/borrowck-binding-mutbl.rs b/tests/ui/borrowck/borrowck-binding-mutbl.rs
index c2d2e02ec..c2d2e02ec 100644
--- a/src/test/ui/borrowck/borrowck-binding-mutbl.rs
+++ b/tests/ui/borrowck/borrowck-binding-mutbl.rs
diff --git a/src/test/ui/borrowck/borrowck-block-unint.rs b/tests/ui/borrowck/borrowck-block-unint.rs
index 8d13b25a3..8d13b25a3 100644
--- a/src/test/ui/borrowck/borrowck-block-unint.rs
+++ b/tests/ui/borrowck/borrowck-block-unint.rs
diff --git a/src/test/ui/borrowck/borrowck-block-unint.stderr b/tests/ui/borrowck/borrowck-block-unint.stderr
index f47921a97..f47921a97 100644
--- a/src/test/ui/borrowck/borrowck-block-unint.stderr
+++ b/tests/ui/borrowck/borrowck-block-unint.stderr
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-expr-block.rs b/tests/ui/borrowck/borrowck-borrow-from-expr-block.rs
index 24efadc30..24efadc30 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-expr-block.rs
+++ b/tests/ui/borrowck/borrowck-borrow-from-expr-block.rs
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.rs b/tests/ui/borrowck/borrowck-borrow-from-owned-ptr.rs
index 353e4e9f7..353e4e9f7 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.rs
+++ b/tests/ui/borrowck/borrowck-borrow-from-owned-ptr.rs
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.stderr b/tests/ui/borrowck/borrowck-borrow-from-owned-ptr.stderr
index e00d69f89..c2351aacd 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-owned-ptr.stderr
+++ b/tests/ui/borrowck/borrowck-borrow-from-owned-ptr.stderr
@@ -105,10 +105,13 @@ LL | *bar1;
error[E0596]: cannot borrow `foo.bar1` as mutable, as `foo` is not declared as mutable
--> $DIR/borrowck-borrow-from-owned-ptr.rs:122:16
|
-LL | let foo = make_foo();
- | --- help: consider changing this to be mutable: `mut foo`
LL | let bar1 = &mut foo.bar1;
| ^^^^^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut foo = make_foo();
+ | +++
error: aborting due to 11 previous errors
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.rs b/tests/ui/borrowck/borrowck-borrow-from-stack-variable.rs
index 231f6beab..231f6beab 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.rs
+++ b/tests/ui/borrowck/borrowck-borrow-from-stack-variable.rs
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.stderr b/tests/ui/borrowck/borrowck-borrow-from-stack-variable.stderr
index ce5ce56de..8fcaaa883 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-stack-variable.stderr
+++ b/tests/ui/borrowck/borrowck-borrow-from-stack-variable.stderr
@@ -105,10 +105,13 @@ LL | *bar1;
error[E0596]: cannot borrow `foo.bar1` as mutable, as `foo` is not declared as mutable
--> $DIR/borrowck-borrow-from-stack-variable.rs:120:16
|
-LL | let foo = make_foo();
- | --- help: consider changing this to be mutable: `mut foo`
LL | let bar1 = &mut foo.bar1;
| ^^^^^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut foo = make_foo();
+ | +++
error: aborting due to 11 previous errors
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-temporary.rs b/tests/ui/borrowck/borrowck-borrow-from-temporary.rs
index 92f3ffd57..92f3ffd57 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-temporary.rs
+++ b/tests/ui/borrowck/borrowck-borrow-from-temporary.rs
diff --git a/src/test/ui/borrowck/borrowck-borrow-from-temporary.stderr b/tests/ui/borrowck/borrowck-borrow-from-temporary.stderr
index 71bf052c9..71bf052c9 100644
--- a/src/test/ui/borrowck/borrowck-borrow-from-temporary.stderr
+++ b/tests/ui/borrowck/borrowck-borrow-from-temporary.stderr
diff --git a/src/test/ui/borrowck/borrowck-borrow-immut-deref-of-box-as-mut.rs b/tests/ui/borrowck/borrowck-borrow-immut-deref-of-box-as-mut.rs
index 6b5544a8a..6b5544a8a 100644
--- a/src/test/ui/borrowck/borrowck-borrow-immut-deref-of-box-as-mut.rs
+++ b/tests/ui/borrowck/borrowck-borrow-immut-deref-of-box-as-mut.rs
diff --git a/tests/ui/borrowck/borrowck-borrow-immut-deref-of-box-as-mut.stderr b/tests/ui/borrowck/borrowck-borrow-immut-deref-of-box-as-mut.stderr
new file mode 100644
index 000000000..3c28ff56e
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-borrow-immut-deref-of-box-as-mut.stderr
@@ -0,0 +1,14 @@
+error[E0596]: cannot borrow `*a` as mutable, as `a` is not declared as mutable
+ --> $DIR/borrowck-borrow-immut-deref-of-box-as-mut.rs:12:5
+ |
+LL | a.foo();
+ | ^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut a: Box<_> = Box::new(A);
+ | +++
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs b/tests/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
index 7a88c3df2..7a88c3df2 100644
--- a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
+++ b/tests/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
diff --git a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr b/tests/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr
index c99c0f779..ce9f7aa05 100644
--- a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr
+++ b/tests/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr
@@ -20,10 +20,13 @@ LL | **t1 = 22;
error[E0596]: cannot borrow `**t0` as mutable, as it is behind a `&` reference
--> $DIR/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs:19:26
|
-LL | fn foo4(t0: & &mut isize) {
- | ------------ help: consider changing this to be a mutable reference: `&mut &mut isize`
LL | let x: &mut isize = &mut **t0;
| ^^^^^^^^^ `t0` is a `&` reference, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | fn foo4(t0: &mut &mut isize) {
+ | ~~~~~~~~~~~~~~~
error: aborting due to 3 previous errors
diff --git a/src/test/ui/borrowck/borrowck-borrow-mut-object-twice.rs b/tests/ui/borrowck/borrowck-borrow-mut-object-twice.rs
index b4d85b60c..b4d85b60c 100644
--- a/src/test/ui/borrowck/borrowck-borrow-mut-object-twice.rs
+++ b/tests/ui/borrowck/borrowck-borrow-mut-object-twice.rs
diff --git a/src/test/ui/borrowck/borrowck-borrow-mut-object-twice.stderr b/tests/ui/borrowck/borrowck-borrow-mut-object-twice.stderr
index 42b6c34cd..42b6c34cd 100644
--- a/src/test/ui/borrowck/borrowck-borrow-mut-object-twice.stderr
+++ b/tests/ui/borrowck/borrowck-borrow-mut-object-twice.stderr
diff --git a/src/test/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs b/tests/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs
index 5ef282c0c..5ef282c0c 100644
--- a/src/test/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs
+++ b/tests/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs
diff --git a/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.rs b/tests/ui/borrowck/borrowck-borrow-overloaded-auto-deref.rs
index 83eab7fde..83eab7fde 100644
--- a/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.rs
+++ b/tests/ui/borrowck/borrowck-borrow-overloaded-auto-deref.rs
diff --git a/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr b/tests/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr
index fdf6568d8..fdf6568d8 100644
--- a/src/test/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr
+++ b/tests/ui/borrowck/borrowck-borrow-overloaded-auto-deref.stderr
diff --git a/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.rs b/tests/ui/borrowck/borrowck-borrow-overloaded-deref.rs
index 2b98a7b94..2b98a7b94 100644
--- a/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.rs
+++ b/tests/ui/borrowck/borrowck-borrow-overloaded-deref.rs
diff --git a/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr b/tests/ui/borrowck/borrowck-borrow-overloaded-deref.stderr
index 9ed9d2924..9ed9d2924 100644
--- a/src/test/ui/borrowck/borrowck-borrow-overloaded-deref.stderr
+++ b/tests/ui/borrowck/borrowck-borrow-overloaded-deref.stderr
diff --git a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.rs b/tests/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.rs
index e384aacb7..e384aacb7 100644
--- a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.rs
+++ b/tests/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.rs
diff --git a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.stderr b/tests/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.stderr
index 4eeec09b9..4eeec09b9 100644
--- a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.stderr
+++ b/tests/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.stderr
diff --git a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.fixed b/tests/ui/borrowck/borrowck-borrowed-uniq-rvalue.fixed
index 8bf6a2f6d..8bf6a2f6d 100644
--- a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.fixed
+++ b/tests/ui/borrowck/borrowck-borrowed-uniq-rvalue.fixed
diff --git a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.rs b/tests/ui/borrowck/borrowck-borrowed-uniq-rvalue.rs
index 85481336a..85481336a 100644
--- a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.rs
+++ b/tests/ui/borrowck/borrowck-borrowed-uniq-rvalue.rs
diff --git a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.stderr b/tests/ui/borrowck/borrowck-borrowed-uniq-rvalue.stderr
index c62d5f903..c62d5f903 100644
--- a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.stderr
+++ b/tests/ui/borrowck/borrowck-borrowed-uniq-rvalue.stderr
diff --git a/src/test/ui/borrowck/borrowck-box-sensitivity.rs b/tests/ui/borrowck/borrowck-box-sensitivity.rs
index e880f876f..e880f876f 100644
--- a/src/test/ui/borrowck/borrowck-box-sensitivity.rs
+++ b/tests/ui/borrowck/borrowck-box-sensitivity.rs
diff --git a/src/test/ui/borrowck/borrowck-break-uninit-2.rs b/tests/ui/borrowck/borrowck-break-uninit-2.rs
index 3abca33a8..3abca33a8 100644
--- a/src/test/ui/borrowck/borrowck-break-uninit-2.rs
+++ b/tests/ui/borrowck/borrowck-break-uninit-2.rs
diff --git a/src/test/ui/borrowck/borrowck-break-uninit-2.stderr b/tests/ui/borrowck/borrowck-break-uninit-2.stderr
index ea93a8f40..ea93a8f40 100644
--- a/src/test/ui/borrowck/borrowck-break-uninit-2.stderr
+++ b/tests/ui/borrowck/borrowck-break-uninit-2.stderr
diff --git a/src/test/ui/borrowck/borrowck-break-uninit.rs b/tests/ui/borrowck/borrowck-break-uninit.rs
index 824f91dbc..824f91dbc 100644
--- a/src/test/ui/borrowck/borrowck-break-uninit.rs
+++ b/tests/ui/borrowck/borrowck-break-uninit.rs
diff --git a/src/test/ui/borrowck/borrowck-break-uninit.stderr b/tests/ui/borrowck/borrowck-break-uninit.stderr
index a7a8fc2ff..a7a8fc2ff 100644
--- a/src/test/ui/borrowck/borrowck-break-uninit.stderr
+++ b/tests/ui/borrowck/borrowck-break-uninit.stderr
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-and-imm.rs b/tests/ui/borrowck/borrowck-closures-mut-and-imm.rs
index a8225f2fa..a8225f2fa 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-and-imm.rs
+++ b/tests/ui/borrowck/borrowck-closures-mut-and-imm.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-and-imm.stderr b/tests/ui/borrowck/borrowck-closures-mut-and-imm.stderr
index fadcd11a5..fadcd11a5 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-and-imm.stderr
+++ b/tests/ui/borrowck/borrowck-closures-mut-and-imm.stderr
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-of-imm.rs b/tests/ui/borrowck/borrowck-closures-mut-of-imm.rs
index d7e187a2b..d7e187a2b 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-of-imm.rs
+++ b/tests/ui/borrowck/borrowck-closures-mut-of-imm.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-of-imm.stderr b/tests/ui/borrowck/borrowck-closures-mut-of-imm.stderr
index 537ec9895..537ec9895 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-of-imm.stderr
+++ b/tests/ui/borrowck/borrowck-closures-mut-of-imm.stderr
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-of-mut.rs b/tests/ui/borrowck/borrowck-closures-mut-of-mut.rs
index 50c6f2c58..50c6f2c58 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-of-mut.rs
+++ b/tests/ui/borrowck/borrowck-closures-mut-of-mut.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-mut-of-mut.stderr b/tests/ui/borrowck/borrowck-closures-mut-of-mut.stderr
index e5ee5a401..e5ee5a401 100644
--- a/src/test/ui/borrowck/borrowck-closures-mut-of-mut.stderr
+++ b/tests/ui/borrowck/borrowck-closures-mut-of-mut.stderr
diff --git a/src/test/ui/borrowck/borrowck-closures-slice-patterns-ok.rs b/tests/ui/borrowck/borrowck-closures-slice-patterns-ok.rs
index 0229ca37a..0229ca37a 100644
--- a/src/test/ui/borrowck/borrowck-closures-slice-patterns-ok.rs
+++ b/tests/ui/borrowck/borrowck-closures-slice-patterns-ok.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-slice-patterns.rs b/tests/ui/borrowck/borrowck-closures-slice-patterns.rs
index 32057d5c1..32057d5c1 100644
--- a/src/test/ui/borrowck/borrowck-closures-slice-patterns.rs
+++ b/tests/ui/borrowck/borrowck-closures-slice-patterns.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-slice-patterns.stderr b/tests/ui/borrowck/borrowck-closures-slice-patterns.stderr
index 411d85b8e..411d85b8e 100644
--- a/src/test/ui/borrowck/borrowck-closures-slice-patterns.stderr
+++ b/tests/ui/borrowck/borrowck-closures-slice-patterns.stderr
diff --git a/src/test/ui/borrowck/borrowck-closures-two-imm.rs b/tests/ui/borrowck/borrowck-closures-two-imm.rs
index ab135194a..ab135194a 100644
--- a/src/test/ui/borrowck/borrowck-closures-two-imm.rs
+++ b/tests/ui/borrowck/borrowck-closures-two-imm.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-two-mut-fail.rs b/tests/ui/borrowck/borrowck-closures-two-mut-fail.rs
index 63a75cdff..63a75cdff 100644
--- a/src/test/ui/borrowck/borrowck-closures-two-mut-fail.rs
+++ b/tests/ui/borrowck/borrowck-closures-two-mut-fail.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-two-mut-fail.stderr b/tests/ui/borrowck/borrowck-closures-two-mut-fail.stderr
index fe8e7a29e..fe8e7a29e 100644
--- a/src/test/ui/borrowck/borrowck-closures-two-mut-fail.stderr
+++ b/tests/ui/borrowck/borrowck-closures-two-mut-fail.stderr
diff --git a/src/test/ui/borrowck/borrowck-closures-two-mut.rs b/tests/ui/borrowck/borrowck-closures-two-mut.rs
index cdff8f9e8..cdff8f9e8 100644
--- a/src/test/ui/borrowck/borrowck-closures-two-mut.rs
+++ b/tests/ui/borrowck/borrowck-closures-two-mut.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-two-mut.stderr b/tests/ui/borrowck/borrowck-closures-two-mut.stderr
index 21e329f43..21e329f43 100644
--- a/src/test/ui/borrowck/borrowck-closures-two-mut.stderr
+++ b/tests/ui/borrowck/borrowck-closures-two-mut.stderr
diff --git a/src/test/ui/borrowck/borrowck-closures-unique-imm.rs b/tests/ui/borrowck/borrowck-closures-unique-imm.rs
index 0dd004769..0dd004769 100644
--- a/src/test/ui/borrowck/borrowck-closures-unique-imm.rs
+++ b/tests/ui/borrowck/borrowck-closures-unique-imm.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-unique-imm.stderr b/tests/ui/borrowck/borrowck-closures-unique-imm.stderr
index 0c5fd39b7..0c5fd39b7 100644
--- a/src/test/ui/borrowck/borrowck-closures-unique-imm.stderr
+++ b/tests/ui/borrowck/borrowck-closures-unique-imm.stderr
diff --git a/src/test/ui/borrowck/borrowck-closures-unique.rs b/tests/ui/borrowck/borrowck-closures-unique.rs
index 67f91dfa8..67f91dfa8 100644
--- a/src/test/ui/borrowck/borrowck-closures-unique.rs
+++ b/tests/ui/borrowck/borrowck-closures-unique.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-unique.stderr b/tests/ui/borrowck/borrowck-closures-unique.stderr
index 23d3cc0e7..23d3cc0e7 100644
--- a/src/test/ui/borrowck/borrowck-closures-unique.stderr
+++ b/tests/ui/borrowck/borrowck-closures-unique.stderr
diff --git a/src/test/ui/borrowck/borrowck-closures-use-after-free.rs b/tests/ui/borrowck/borrowck-closures-use-after-free.rs
index be5f1f873..be5f1f873 100644
--- a/src/test/ui/borrowck/borrowck-closures-use-after-free.rs
+++ b/tests/ui/borrowck/borrowck-closures-use-after-free.rs
diff --git a/src/test/ui/borrowck/borrowck-closures-use-after-free.stderr b/tests/ui/borrowck/borrowck-closures-use-after-free.stderr
index 30900a3b6..30900a3b6 100644
--- a/src/test/ui/borrowck/borrowck-closures-use-after-free.stderr
+++ b/tests/ui/borrowck/borrowck-closures-use-after-free.stderr
diff --git a/src/test/ui/borrowck/borrowck-consume-unsize-vec.rs b/tests/ui/borrowck/borrowck-consume-unsize-vec.rs
index 347f0212c..347f0212c 100644
--- a/src/test/ui/borrowck/borrowck-consume-unsize-vec.rs
+++ b/tests/ui/borrowck/borrowck-consume-unsize-vec.rs
diff --git a/src/test/ui/borrowck/borrowck-consume-unsize-vec.stderr b/tests/ui/borrowck/borrowck-consume-unsize-vec.stderr
index d2e9497d0..d2e9497d0 100644
--- a/src/test/ui/borrowck/borrowck-consume-unsize-vec.stderr
+++ b/tests/ui/borrowck/borrowck-consume-unsize-vec.stderr
diff --git a/src/test/ui/borrowck/borrowck-consume-upcast-box.rs b/tests/ui/borrowck/borrowck-consume-upcast-box.rs
index 6b32d185b..6b32d185b 100644
--- a/src/test/ui/borrowck/borrowck-consume-upcast-box.rs
+++ b/tests/ui/borrowck/borrowck-consume-upcast-box.rs
diff --git a/src/test/ui/borrowck/borrowck-consume-upcast-box.stderr b/tests/ui/borrowck/borrowck-consume-upcast-box.stderr
index ed7e883ca..ed7e883ca 100644
--- a/src/test/ui/borrowck/borrowck-consume-upcast-box.stderr
+++ b/tests/ui/borrowck/borrowck-consume-upcast-box.stderr
diff --git a/src/test/ui/borrowck/borrowck-describe-lvalue.rs b/tests/ui/borrowck/borrowck-describe-lvalue.rs
index cdcff69d6..cdcff69d6 100644
--- a/src/test/ui/borrowck/borrowck-describe-lvalue.rs
+++ b/tests/ui/borrowck/borrowck-describe-lvalue.rs
diff --git a/src/test/ui/borrowck/borrowck-describe-lvalue.stderr b/tests/ui/borrowck/borrowck-describe-lvalue.stderr
index 2c1b9c10d..2c1b9c10d 100644
--- a/src/test/ui/borrowck/borrowck-describe-lvalue.stderr
+++ b/tests/ui/borrowck/borrowck-describe-lvalue.stderr
diff --git a/tests/ui/borrowck/borrowck-drop-from-guard.rs b/tests/ui/borrowck/borrowck-drop-from-guard.rs
new file mode 100644
index 000000000..0f320af26
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-drop-from-guard.rs
@@ -0,0 +1,20 @@
+#![feature(if_let_guard)]
+
+fn foo(_:String) {}
+
+fn main()
+{
+ let my_str = "hello".to_owned();
+ match Some(42) {
+ Some(_) if { drop(my_str); false } => {}
+ Some(_) => {}
+ None => { foo(my_str); } //~ ERROR [E0382]
+ }
+
+ let my_str = "hello".to_owned();
+ match Some(42) {
+ Some(_) if let Some(()) = { drop(my_str); None } => {}
+ Some(_) => {}
+ None => { foo(my_str); } //~ ERROR [E0382]
+ }
+}
diff --git a/tests/ui/borrowck/borrowck-drop-from-guard.stderr b/tests/ui/borrowck/borrowck-drop-from-guard.stderr
new file mode 100644
index 000000000..9fa28efd8
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-drop-from-guard.stderr
@@ -0,0 +1,37 @@
+error[E0382]: use of moved value: `my_str`
+ --> $DIR/borrowck-drop-from-guard.rs:11:23
+ |
+LL | let my_str = "hello".to_owned();
+ | ------ move occurs because `my_str` has type `String`, which does not implement the `Copy` trait
+LL | match Some(42) {
+LL | Some(_) if { drop(my_str); false } => {}
+ | ------ value moved here
+LL | Some(_) => {}
+LL | None => { foo(my_str); }
+ | ^^^^^^ value used here after move
+ |
+help: consider cloning the value if the performance cost is acceptable
+ |
+LL | Some(_) if { drop(my_str.clone()); false } => {}
+ | ++++++++
+
+error[E0382]: use of moved value: `my_str`
+ --> $DIR/borrowck-drop-from-guard.rs:18:23
+ |
+LL | let my_str = "hello".to_owned();
+ | ------ move occurs because `my_str` has type `String`, which does not implement the `Copy` trait
+LL | match Some(42) {
+LL | Some(_) if let Some(()) = { drop(my_str); None } => {}
+ | ------ value moved here
+LL | Some(_) => {}
+LL | None => { foo(my_str); }
+ | ^^^^^^ value used here after move
+ |
+help: consider cloning the value if the performance cost is acceptable
+ |
+LL | Some(_) if let Some(()) = { drop(my_str.clone()); None } => {}
+ | ++++++++
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-escaping-closure-error-1.rs b/tests/ui/borrowck/borrowck-escaping-closure-error-1.rs
index 11c0610aa..11c0610aa 100644
--- a/src/test/ui/borrowck/borrowck-escaping-closure-error-1.rs
+++ b/tests/ui/borrowck/borrowck-escaping-closure-error-1.rs
diff --git a/src/test/ui/borrowck/borrowck-escaping-closure-error-1.stderr b/tests/ui/borrowck/borrowck-escaping-closure-error-1.stderr
index acf6b37b7..acf6b37b7 100644
--- a/src/test/ui/borrowck/borrowck-escaping-closure-error-1.stderr
+++ b/tests/ui/borrowck/borrowck-escaping-closure-error-1.stderr
diff --git a/src/test/ui/borrowck/borrowck-escaping-closure-error-2.rs b/tests/ui/borrowck/borrowck-escaping-closure-error-2.rs
index b50d45563..b50d45563 100644
--- a/src/test/ui/borrowck/borrowck-escaping-closure-error-2.rs
+++ b/tests/ui/borrowck/borrowck-escaping-closure-error-2.rs
diff --git a/src/test/ui/borrowck/borrowck-escaping-closure-error-2.stderr b/tests/ui/borrowck/borrowck-escaping-closure-error-2.stderr
index 814042539..814042539 100644
--- a/src/test/ui/borrowck/borrowck-escaping-closure-error-2.stderr
+++ b/tests/ui/borrowck/borrowck-escaping-closure-error-2.stderr
diff --git a/src/test/ui/borrowck/borrowck-field-sensitivity-rpass.rs b/tests/ui/borrowck/borrowck-field-sensitivity-rpass.rs
index dd6708582..dd6708582 100644
--- a/src/test/ui/borrowck/borrowck-field-sensitivity-rpass.rs
+++ b/tests/ui/borrowck/borrowck-field-sensitivity-rpass.rs
diff --git a/src/test/ui/borrowck/borrowck-field-sensitivity.rs b/tests/ui/borrowck/borrowck-field-sensitivity.rs
index 03edf445e..03edf445e 100644
--- a/src/test/ui/borrowck/borrowck-field-sensitivity.rs
+++ b/tests/ui/borrowck/borrowck-field-sensitivity.rs
diff --git a/src/test/ui/borrowck/borrowck-field-sensitivity.stderr b/tests/ui/borrowck/borrowck-field-sensitivity.stderr
index e009f5913..e009f5913 100644
--- a/src/test/ui/borrowck/borrowck-field-sensitivity.stderr
+++ b/tests/ui/borrowck/borrowck-field-sensitivity.stderr
diff --git a/src/test/ui/borrowck/borrowck-fixed-length-vecs.rs b/tests/ui/borrowck/borrowck-fixed-length-vecs.rs
index 126323d8d..126323d8d 100644
--- a/src/test/ui/borrowck/borrowck-fixed-length-vecs.rs
+++ b/tests/ui/borrowck/borrowck-fixed-length-vecs.rs
diff --git a/src/test/ui/borrowck/borrowck-fn-in-const-a.rs b/tests/ui/borrowck/borrowck-fn-in-const-a.rs
index d4ceae296..d4ceae296 100644
--- a/src/test/ui/borrowck/borrowck-fn-in-const-a.rs
+++ b/tests/ui/borrowck/borrowck-fn-in-const-a.rs
diff --git a/src/test/ui/borrowck/borrowck-fn-in-const-a.stderr b/tests/ui/borrowck/borrowck-fn-in-const-a.stderr
index e7491afda..e7491afda 100644
--- a/src/test/ui/borrowck/borrowck-fn-in-const-a.stderr
+++ b/tests/ui/borrowck/borrowck-fn-in-const-a.stderr
diff --git a/src/test/ui/borrowck/borrowck-fn-in-const-c.rs b/tests/ui/borrowck/borrowck-fn-in-const-c.rs
index c638cd08b..c638cd08b 100644
--- a/src/test/ui/borrowck/borrowck-fn-in-const-c.rs
+++ b/tests/ui/borrowck/borrowck-fn-in-const-c.rs
diff --git a/src/test/ui/borrowck/borrowck-fn-in-const-c.stderr b/tests/ui/borrowck/borrowck-fn-in-const-c.stderr
index d48866dce..d48866dce 100644
--- a/src/test/ui/borrowck/borrowck-fn-in-const-c.stderr
+++ b/tests/ui/borrowck/borrowck-fn-in-const-c.stderr
diff --git a/src/test/ui/borrowck/borrowck-for-loop-correct-cmt-for-pattern.rs b/tests/ui/borrowck/borrowck-for-loop-correct-cmt-for-pattern.rs
index 389b8a43c..389b8a43c 100644
--- a/src/test/ui/borrowck/borrowck-for-loop-correct-cmt-for-pattern.rs
+++ b/tests/ui/borrowck/borrowck-for-loop-correct-cmt-for-pattern.rs
diff --git a/tests/ui/borrowck/borrowck-for-loop-correct-cmt-for-pattern.stderr b/tests/ui/borrowck/borrowck-for-loop-correct-cmt-for-pattern.stderr
new file mode 100644
index 000000000..f9ced03e0
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-for-loop-correct-cmt-for-pattern.stderr
@@ -0,0 +1,48 @@
+error[E0507]: cannot move out of a shared reference
+ --> $DIR/borrowck-for-loop-correct-cmt-for-pattern.rs:12:15
+ |
+LL | for &a in x.iter() {
+ | - ^^^^^^^^
+ | |
+ | data moved here
+ | move occurs because `a` has type `&mut i32`, which does not implement the `Copy` trait
+ |
+help: consider removing the borrow
+ |
+LL - for &a in x.iter() {
+LL + for a in x.iter() {
+ |
+
+error[E0507]: cannot move out of a shared reference
+ --> $DIR/borrowck-for-loop-correct-cmt-for-pattern.rs:18:15
+ |
+LL | for &a in &f.a {
+ | - ^^^^
+ | |
+ | data moved here
+ | move occurs because `a` has type `Box<isize>`, which does not implement the `Copy` trait
+ |
+help: consider removing the borrow
+ |
+LL - for &a in &f.a {
+LL + for a in &f.a {
+ |
+
+error[E0507]: cannot move out of a shared reference
+ --> $DIR/borrowck-for-loop-correct-cmt-for-pattern.rs:22:15
+ |
+LL | for &a in x.iter() {
+ | - ^^^^^^^^
+ | |
+ | data moved here
+ | move occurs because `a` has type `Box<i32>`, which does not implement the `Copy` trait
+ |
+help: consider removing the borrow
+ |
+LL - for &a in x.iter() {
+LL + for a in x.iter() {
+ |
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/borrowck-for-loop-head-linkage.rs b/tests/ui/borrowck/borrowck-for-loop-head-linkage.rs
index a84b695aa..a84b695aa 100644
--- a/src/test/ui/borrowck/borrowck-for-loop-head-linkage.rs
+++ b/tests/ui/borrowck/borrowck-for-loop-head-linkage.rs
diff --git a/src/test/ui/borrowck/borrowck-for-loop-head-linkage.stderr b/tests/ui/borrowck/borrowck-for-loop-head-linkage.stderr
index f47dce453..f47dce453 100644
--- a/src/test/ui/borrowck/borrowck-for-loop-head-linkage.stderr
+++ b/tests/ui/borrowck/borrowck-for-loop-head-linkage.stderr
diff --git a/src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.rs b/tests/ui/borrowck/borrowck-for-loop-uninitialized-binding.rs
index f619c045b..f619c045b 100644
--- a/src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.rs
+++ b/tests/ui/borrowck/borrowck-for-loop-uninitialized-binding.rs
diff --git a/src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.stderr b/tests/ui/borrowck/borrowck-for-loop-uninitialized-binding.stderr
index fc1a44c3c..fc1a44c3c 100644
--- a/src/test/ui/borrowck/borrowck-for-loop-uninitialized-binding.stderr
+++ b/tests/ui/borrowck/borrowck-for-loop-uninitialized-binding.stderr
diff --git a/src/test/ui/borrowck/borrowck-freeze-frozen-mut.rs b/tests/ui/borrowck/borrowck-freeze-frozen-mut.rs
index 199931d6d..199931d6d 100644
--- a/src/test/ui/borrowck/borrowck-freeze-frozen-mut.rs
+++ b/tests/ui/borrowck/borrowck-freeze-frozen-mut.rs
diff --git a/src/test/ui/borrowck/borrowck-if-no-else.rs b/tests/ui/borrowck/borrowck-if-no-else.rs
index 534d771be..534d771be 100644
--- a/src/test/ui/borrowck/borrowck-if-no-else.rs
+++ b/tests/ui/borrowck/borrowck-if-no-else.rs
diff --git a/src/test/ui/borrowck/borrowck-if-no-else.stderr b/tests/ui/borrowck/borrowck-if-no-else.stderr
index 9eafc2c2a..9eafc2c2a 100644
--- a/src/test/ui/borrowck/borrowck-if-no-else.stderr
+++ b/tests/ui/borrowck/borrowck-if-no-else.stderr
diff --git a/src/test/ui/borrowck/borrowck-if-with-else.rs b/tests/ui/borrowck/borrowck-if-with-else.rs
index 69d450c59..69d450c59 100644
--- a/src/test/ui/borrowck/borrowck-if-with-else.rs
+++ b/tests/ui/borrowck/borrowck-if-with-else.rs
diff --git a/src/test/ui/borrowck/borrowck-if-with-else.stderr b/tests/ui/borrowck/borrowck-if-with-else.stderr
index 3f0fe291c..3f0fe291c 100644
--- a/src/test/ui/borrowck/borrowck-if-with-else.stderr
+++ b/tests/ui/borrowck/borrowck-if-with-else.stderr
diff --git a/src/test/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.rs b/tests/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.rs
index 97107c2e3..97107c2e3 100644
--- a/src/test/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.rs
+++ b/tests/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.rs
diff --git a/src/test/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.stderr b/tests/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.stderr
index a66db05cc..a66db05cc 100644
--- a/src/test/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.stderr
+++ b/tests/ui/borrowck/borrowck-imm-ref-to-mut-rec-field-issue-3162-c.stderr
diff --git a/src/test/ui/borrowck/borrowck-in-static.rs b/tests/ui/borrowck/borrowck-in-static.rs
index a45f7b18e..a45f7b18e 100644
--- a/src/test/ui/borrowck/borrowck-in-static.rs
+++ b/tests/ui/borrowck/borrowck-in-static.rs
diff --git a/src/test/ui/borrowck/borrowck-in-static.stderr b/tests/ui/borrowck/borrowck-in-static.stderr
index 2033e4a57..2033e4a57 100644
--- a/src/test/ui/borrowck/borrowck-in-static.stderr
+++ b/tests/ui/borrowck/borrowck-in-static.stderr
diff --git a/src/test/ui/borrowck/borrowck-init-in-called-fn-expr.rs b/tests/ui/borrowck/borrowck-init-in-called-fn-expr.rs
index e6476b9c1..e6476b9c1 100644
--- a/src/test/ui/borrowck/borrowck-init-in-called-fn-expr.rs
+++ b/tests/ui/borrowck/borrowck-init-in-called-fn-expr.rs
diff --git a/src/test/ui/borrowck/borrowck-init-in-called-fn-expr.stderr b/tests/ui/borrowck/borrowck-init-in-called-fn-expr.stderr
index 1a22b5f09..1a22b5f09 100644
--- a/src/test/ui/borrowck/borrowck-init-in-called-fn-expr.stderr
+++ b/tests/ui/borrowck/borrowck-init-in-called-fn-expr.stderr
diff --git a/src/test/ui/borrowck/borrowck-init-in-fn-expr.rs b/tests/ui/borrowck/borrowck-init-in-fn-expr.rs
index 7eb204a0d..7eb204a0d 100644
--- a/src/test/ui/borrowck/borrowck-init-in-fn-expr.rs
+++ b/tests/ui/borrowck/borrowck-init-in-fn-expr.rs
diff --git a/src/test/ui/borrowck/borrowck-init-in-fn-expr.stderr b/tests/ui/borrowck/borrowck-init-in-fn-expr.stderr
index f1b9b9aa7..f1b9b9aa7 100644
--- a/src/test/ui/borrowck/borrowck-init-in-fn-expr.stderr
+++ b/tests/ui/borrowck/borrowck-init-in-fn-expr.stderr
diff --git a/src/test/ui/borrowck/borrowck-init-in-fru.rs b/tests/ui/borrowck/borrowck-init-in-fru.rs
index c07957ab1..c07957ab1 100644
--- a/src/test/ui/borrowck/borrowck-init-in-fru.rs
+++ b/tests/ui/borrowck/borrowck-init-in-fru.rs
diff --git a/src/test/ui/borrowck/borrowck-init-in-fru.stderr b/tests/ui/borrowck/borrowck-init-in-fru.stderr
index 39b28811a..39b28811a 100644
--- a/src/test/ui/borrowck/borrowck-init-in-fru.stderr
+++ b/tests/ui/borrowck/borrowck-init-in-fru.stderr
diff --git a/src/test/ui/borrowck/borrowck-init-op-equal.rs b/tests/ui/borrowck/borrowck-init-op-equal.rs
index 3d08c1b81..3d08c1b81 100644
--- a/src/test/ui/borrowck/borrowck-init-op-equal.rs
+++ b/tests/ui/borrowck/borrowck-init-op-equal.rs
diff --git a/src/test/ui/borrowck/borrowck-init-op-equal.stderr b/tests/ui/borrowck/borrowck-init-op-equal.stderr
index ef0fa6df4..ef0fa6df4 100644
--- a/src/test/ui/borrowck/borrowck-init-op-equal.stderr
+++ b/tests/ui/borrowck/borrowck-init-op-equal.stderr
diff --git a/src/test/ui/borrowck/borrowck-init-plus-equal.rs b/tests/ui/borrowck/borrowck-init-plus-equal.rs
index 2a52a3f4e..2a52a3f4e 100644
--- a/src/test/ui/borrowck/borrowck-init-plus-equal.rs
+++ b/tests/ui/borrowck/borrowck-init-plus-equal.rs
diff --git a/src/test/ui/borrowck/borrowck-init-plus-equal.stderr b/tests/ui/borrowck/borrowck-init-plus-equal.stderr
index cec053318..cec053318 100644
--- a/src/test/ui/borrowck/borrowck-init-plus-equal.stderr
+++ b/tests/ui/borrowck/borrowck-init-plus-equal.stderr
diff --git a/src/test/ui/borrowck/borrowck-insert-during-each.rs b/tests/ui/borrowck/borrowck-insert-during-each.rs
index df967e611..df967e611 100644
--- a/src/test/ui/borrowck/borrowck-insert-during-each.rs
+++ b/tests/ui/borrowck/borrowck-insert-during-each.rs
diff --git a/src/test/ui/borrowck/borrowck-insert-during-each.stderr b/tests/ui/borrowck/borrowck-insert-during-each.stderr
index 99d08e905..99d08e905 100644
--- a/src/test/ui/borrowck/borrowck-insert-during-each.stderr
+++ b/tests/ui/borrowck/borrowck-insert-during-each.stderr
diff --git a/src/test/ui/borrowck/borrowck-issue-14498.rs b/tests/ui/borrowck/borrowck-issue-14498.rs
index 003533a51..003533a51 100644
--- a/src/test/ui/borrowck/borrowck-issue-14498.rs
+++ b/tests/ui/borrowck/borrowck-issue-14498.rs
diff --git a/src/test/ui/borrowck/borrowck-issue-14498.stderr b/tests/ui/borrowck/borrowck-issue-14498.stderr
index 4c0e46d45..42a55b7a8 100644
--- a/src/test/ui/borrowck/borrowck-issue-14498.stderr
+++ b/tests/ui/borrowck/borrowck-issue-14498.stderr
@@ -1,10 +1,13 @@
error[E0594]: cannot assign to `***p`, which is behind a `&` reference
--> $DIR/borrowck-issue-14498.rs:16:5
|
-LL | let p = &y;
- | -- help: consider changing this to be a mutable reference: `&mut y`
LL | ***p = 2;
| ^^^^^^^^ `p` is a `&` reference, so the data it refers to cannot be written
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | let p = &mut y;
+ | ~~~~~~
error[E0506]: cannot assign to `**y` because it is borrowed
--> $DIR/borrowck-issue-14498.rs:25:5
diff --git a/src/test/ui/borrowck/borrowck-issue-2657-1.rs b/tests/ui/borrowck/borrowck-issue-2657-1.rs
index 0fb2267b9..0fb2267b9 100644
--- a/src/test/ui/borrowck/borrowck-issue-2657-1.rs
+++ b/tests/ui/borrowck/borrowck-issue-2657-1.rs
diff --git a/src/test/ui/borrowck/borrowck-issue-2657-1.stderr b/tests/ui/borrowck/borrowck-issue-2657-1.stderr
index 390bb9384..390bb9384 100644
--- a/src/test/ui/borrowck/borrowck-issue-2657-1.stderr
+++ b/tests/ui/borrowck/borrowck-issue-2657-1.stderr
diff --git a/tests/ui/borrowck/borrowck-issue-2657-2.fixed b/tests/ui/borrowck/borrowck-issue-2657-2.fixed
new file mode 100644
index 000000000..625e7c3ca
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-issue-2657-2.fixed
@@ -0,0 +1,12 @@
+// run-rustfix
+fn main() {
+
+ let x: Option<Box<_>> = Some(Box::new(1));
+
+ match x {
+ Some(ref y) => {
+ let _b = y; //~ ERROR cannot move out
+ }
+ _ => {}
+ }
+}
diff --git a/src/test/ui/borrowck/borrowck-issue-2657-2.rs b/tests/ui/borrowck/borrowck-issue-2657-2.rs
index 7dbac0215..f79a846e7 100644
--- a/src/test/ui/borrowck/borrowck-issue-2657-2.rs
+++ b/tests/ui/borrowck/borrowck-issue-2657-2.rs
@@ -1,3 +1,4 @@
+// run-rustfix
fn main() {
let x: Option<Box<_>> = Some(Box::new(1));
diff --git a/tests/ui/borrowck/borrowck-issue-2657-2.stderr b/tests/ui/borrowck/borrowck-issue-2657-2.stderr
new file mode 100644
index 000000000..850bb9ae3
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-issue-2657-2.stderr
@@ -0,0 +1,15 @@
+error[E0507]: cannot move out of `*y` which is behind a shared reference
+ --> $DIR/borrowck-issue-2657-2.rs:8:18
+ |
+LL | let _b = *y;
+ | ^^ move occurs because `*y` has type `Box<i32>`, which does not implement the `Copy` trait
+ |
+help: consider removing the dereference here
+ |
+LL - let _b = *y;
+LL + let _b = y;
+ |
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/borrowck-issue-48962.rs b/tests/ui/borrowck/borrowck-issue-48962.rs
index 86061c8cd..86061c8cd 100644
--- a/src/test/ui/borrowck/borrowck-issue-48962.rs
+++ b/tests/ui/borrowck/borrowck-issue-48962.rs
diff --git a/src/test/ui/borrowck/borrowck-issue-48962.stderr b/tests/ui/borrowck/borrowck-issue-48962.stderr
index ee174f673..ee174f673 100644
--- a/src/test/ui/borrowck/borrowck-issue-48962.stderr
+++ b/tests/ui/borrowck/borrowck-issue-48962.stderr
diff --git a/src/test/ui/borrowck/borrowck-lend-args.rs b/tests/ui/borrowck/borrowck-lend-args.rs
index d0ef2dcdd..d0ef2dcdd 100644
--- a/src/test/ui/borrowck/borrowck-lend-args.rs
+++ b/tests/ui/borrowck/borrowck-lend-args.rs
diff --git a/src/test/ui/borrowck/borrowck-lend-flow-if.rs b/tests/ui/borrowck/borrowck-lend-flow-if.rs
index 19a0dd0c6..19a0dd0c6 100644
--- a/src/test/ui/borrowck/borrowck-lend-flow-if.rs
+++ b/tests/ui/borrowck/borrowck-lend-flow-if.rs
diff --git a/src/test/ui/borrowck/borrowck-lend-flow-if.stderr b/tests/ui/borrowck/borrowck-lend-flow-if.stderr
index e47efc0e0..e47efc0e0 100644
--- a/src/test/ui/borrowck/borrowck-lend-flow-if.stderr
+++ b/tests/ui/borrowck/borrowck-lend-flow-if.stderr
diff --git a/src/test/ui/borrowck/borrowck-lend-flow-loop.rs b/tests/ui/borrowck/borrowck-lend-flow-loop.rs
index 548ffbd51..548ffbd51 100644
--- a/src/test/ui/borrowck/borrowck-lend-flow-loop.rs
+++ b/tests/ui/borrowck/borrowck-lend-flow-loop.rs
diff --git a/src/test/ui/borrowck/borrowck-lend-flow-loop.stderr b/tests/ui/borrowck/borrowck-lend-flow-loop.stderr
index df7c86b85..df7c86b85 100644
--- a/src/test/ui/borrowck/borrowck-lend-flow-loop.stderr
+++ b/tests/ui/borrowck/borrowck-lend-flow-loop.stderr
diff --git a/src/test/ui/borrowck/borrowck-lend-flow-match.rs b/tests/ui/borrowck/borrowck-lend-flow-match.rs
index 9737bc769..9737bc769 100644
--- a/src/test/ui/borrowck/borrowck-lend-flow-match.rs
+++ b/tests/ui/borrowck/borrowck-lend-flow-match.rs
diff --git a/src/test/ui/borrowck/borrowck-lend-flow-match.stderr b/tests/ui/borrowck/borrowck-lend-flow-match.stderr
index 66f1cd9bd..66f1cd9bd 100644
--- a/src/test/ui/borrowck/borrowck-lend-flow-match.stderr
+++ b/tests/ui/borrowck/borrowck-lend-flow-match.stderr
diff --git a/src/test/ui/borrowck/borrowck-lend-flow.rs b/tests/ui/borrowck/borrowck-lend-flow.rs
index 564c57044..564c57044 100644
--- a/src/test/ui/borrowck/borrowck-lend-flow.rs
+++ b/tests/ui/borrowck/borrowck-lend-flow.rs
diff --git a/src/test/ui/borrowck/borrowck-lend-flow.stderr b/tests/ui/borrowck/borrowck-lend-flow.stderr
index 40c14f54c..40c14f54c 100644
--- a/src/test/ui/borrowck/borrowck-lend-flow.stderr
+++ b/tests/ui/borrowck/borrowck-lend-flow.stderr
diff --git a/src/test/ui/borrowck/borrowck-loan-blocks-move-cc.rs b/tests/ui/borrowck/borrowck-loan-blocks-move-cc.rs
index e536d4040..e536d4040 100644
--- a/src/test/ui/borrowck/borrowck-loan-blocks-move-cc.rs
+++ b/tests/ui/borrowck/borrowck-loan-blocks-move-cc.rs
diff --git a/src/test/ui/borrowck/borrowck-loan-blocks-move-cc.stderr b/tests/ui/borrowck/borrowck-loan-blocks-move-cc.stderr
index 3548da35b..3548da35b 100644
--- a/src/test/ui/borrowck/borrowck-loan-blocks-move-cc.stderr
+++ b/tests/ui/borrowck/borrowck-loan-blocks-move-cc.stderr
diff --git a/src/test/ui/borrowck/borrowck-loan-blocks-move.rs b/tests/ui/borrowck/borrowck-loan-blocks-move.rs
index f3f443721..f3f443721 100644
--- a/src/test/ui/borrowck/borrowck-loan-blocks-move.rs
+++ b/tests/ui/borrowck/borrowck-loan-blocks-move.rs
diff --git a/src/test/ui/borrowck/borrowck-loan-blocks-move.stderr b/tests/ui/borrowck/borrowck-loan-blocks-move.stderr
index b5c6b101f..b5c6b101f 100644
--- a/src/test/ui/borrowck/borrowck-loan-blocks-move.stderr
+++ b/tests/ui/borrowck/borrowck-loan-blocks-move.stderr
diff --git a/src/test/ui/borrowck/borrowck-loan-blocks-mut-uniq.rs b/tests/ui/borrowck/borrowck-loan-blocks-mut-uniq.rs
index 33d6af303..33d6af303 100644
--- a/src/test/ui/borrowck/borrowck-loan-blocks-mut-uniq.rs
+++ b/tests/ui/borrowck/borrowck-loan-blocks-mut-uniq.rs
diff --git a/src/test/ui/borrowck/borrowck-loan-blocks-mut-uniq.stderr b/tests/ui/borrowck/borrowck-loan-blocks-mut-uniq.stderr
index fa5308c29..fa5308c29 100644
--- a/src/test/ui/borrowck/borrowck-loan-blocks-mut-uniq.stderr
+++ b/tests/ui/borrowck/borrowck-loan-blocks-mut-uniq.stderr
diff --git a/src/test/ui/borrowck/borrowck-loan-in-overloaded-op.rs b/tests/ui/borrowck/borrowck-loan-in-overloaded-op.rs
index b8f1650fc..b8f1650fc 100644
--- a/src/test/ui/borrowck/borrowck-loan-in-overloaded-op.rs
+++ b/tests/ui/borrowck/borrowck-loan-in-overloaded-op.rs
diff --git a/src/test/ui/borrowck/borrowck-loan-in-overloaded-op.stderr b/tests/ui/borrowck/borrowck-loan-in-overloaded-op.stderr
index e1b991620..e1b991620 100644
--- a/src/test/ui/borrowck/borrowck-loan-in-overloaded-op.stderr
+++ b/tests/ui/borrowck/borrowck-loan-in-overloaded-op.stderr
diff --git a/src/test/ui/borrowck/borrowck-loan-of-static-data-issue-27616.rs b/tests/ui/borrowck/borrowck-loan-of-static-data-issue-27616.rs
index cb801ef1b..cb801ef1b 100644
--- a/src/test/ui/borrowck/borrowck-loan-of-static-data-issue-27616.rs
+++ b/tests/ui/borrowck/borrowck-loan-of-static-data-issue-27616.rs
diff --git a/src/test/ui/borrowck/borrowck-loan-of-static-data-issue-27616.stderr b/tests/ui/borrowck/borrowck-loan-of-static-data-issue-27616.stderr
index 6994c837d..6994c837d 100644
--- a/src/test/ui/borrowck/borrowck-loan-of-static-data-issue-27616.stderr
+++ b/tests/ui/borrowck/borrowck-loan-of-static-data-issue-27616.stderr
diff --git a/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.rs b/tests/ui/borrowck/borrowck-loan-rcvr-overloaded-op.rs
index 4da10fd44..4da10fd44 100644
--- a/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.rs
+++ b/tests/ui/borrowck/borrowck-loan-rcvr-overloaded-op.rs
diff --git a/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.stderr b/tests/ui/borrowck/borrowck-loan-rcvr-overloaded-op.stderr
index 24cc4933e..24cc4933e 100644
--- a/src/test/ui/borrowck/borrowck-loan-rcvr-overloaded-op.stderr
+++ b/tests/ui/borrowck/borrowck-loan-rcvr-overloaded-op.stderr
diff --git a/src/test/ui/borrowck/borrowck-loan-rcvr.rs b/tests/ui/borrowck/borrowck-loan-rcvr.rs
index d2234e17a..d2234e17a 100644
--- a/src/test/ui/borrowck/borrowck-loan-rcvr.rs
+++ b/tests/ui/borrowck/borrowck-loan-rcvr.rs
diff --git a/src/test/ui/borrowck/borrowck-loan-rcvr.stderr b/tests/ui/borrowck/borrowck-loan-rcvr.stderr
index 1d6bd4e2e..1d6bd4e2e 100644
--- a/src/test/ui/borrowck/borrowck-loan-rcvr.stderr
+++ b/tests/ui/borrowck/borrowck-loan-rcvr.stderr
diff --git a/src/test/ui/borrowck/borrowck-loan-vec-content.rs b/tests/ui/borrowck/borrowck-loan-vec-content.rs
index 300ec88c5..300ec88c5 100644
--- a/src/test/ui/borrowck/borrowck-loan-vec-content.rs
+++ b/tests/ui/borrowck/borrowck-loan-vec-content.rs
diff --git a/src/test/ui/borrowck/borrowck-loan-vec-content.stderr b/tests/ui/borrowck/borrowck-loan-vec-content.stderr
index 6691a2396..6691a2396 100644
--- a/src/test/ui/borrowck/borrowck-loan-vec-content.stderr
+++ b/tests/ui/borrowck/borrowck-loan-vec-content.stderr
diff --git a/src/test/ui/borrowck/borrowck-local-borrow-outlives-fn.rs b/tests/ui/borrowck/borrowck-local-borrow-outlives-fn.rs
index b6eebd4e3..b6eebd4e3 100644
--- a/src/test/ui/borrowck/borrowck-local-borrow-outlives-fn.rs
+++ b/tests/ui/borrowck/borrowck-local-borrow-outlives-fn.rs
diff --git a/src/test/ui/borrowck/borrowck-local-borrow-outlives-fn.stderr b/tests/ui/borrowck/borrowck-local-borrow-outlives-fn.stderr
index 9d19de211..9d19de211 100644
--- a/src/test/ui/borrowck/borrowck-local-borrow-outlives-fn.stderr
+++ b/tests/ui/borrowck/borrowck-local-borrow-outlives-fn.stderr
diff --git a/src/test/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.rs b/tests/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.rs
index ffb2da280..ffb2da280 100644
--- a/src/test/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.rs
+++ b/tests/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.rs
diff --git a/src/test/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.stderr b/tests/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.stderr
index 6ea6951ad..6ea6951ad 100644
--- a/src/test/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.stderr
+++ b/tests/ui/borrowck/borrowck-local-borrow-with-panic-outlives-fn.stderr
diff --git a/src/test/ui/borrowck/borrowck-local-borrow.rs b/tests/ui/borrowck/borrowck-local-borrow.rs
index 0aaa4e4c6..0aaa4e4c6 100644
--- a/src/test/ui/borrowck/borrowck-local-borrow.rs
+++ b/tests/ui/borrowck/borrowck-local-borrow.rs
diff --git a/src/test/ui/borrowck/borrowck-macro-interaction-issue-6304.rs b/tests/ui/borrowck/borrowck-macro-interaction-issue-6304.rs
index 4e969f6ed..4e969f6ed 100644
--- a/src/test/ui/borrowck/borrowck-macro-interaction-issue-6304.rs
+++ b/tests/ui/borrowck/borrowck-macro-interaction-issue-6304.rs
diff --git a/src/test/ui/borrowck/borrowck-match-already-borrowed.rs b/tests/ui/borrowck/borrowck-match-already-borrowed.rs
index a925cbbf5..a925cbbf5 100644
--- a/src/test/ui/borrowck/borrowck-match-already-borrowed.rs
+++ b/tests/ui/borrowck/borrowck-match-already-borrowed.rs
diff --git a/src/test/ui/borrowck/borrowck-match-already-borrowed.stderr b/tests/ui/borrowck/borrowck-match-already-borrowed.stderr
index 39047be9d..39047be9d 100644
--- a/src/test/ui/borrowck/borrowck-match-already-borrowed.stderr
+++ b/tests/ui/borrowck/borrowck-match-already-borrowed.stderr
diff --git a/src/test/ui/borrowck/borrowck-match-binding-is-assignment.rs b/tests/ui/borrowck/borrowck-match-binding-is-assignment.rs
index 064bf69ae..064bf69ae 100644
--- a/src/test/ui/borrowck/borrowck-match-binding-is-assignment.rs
+++ b/tests/ui/borrowck/borrowck-match-binding-is-assignment.rs
diff --git a/src/test/ui/borrowck/borrowck-match-binding-is-assignment.stderr b/tests/ui/borrowck/borrowck-match-binding-is-assignment.stderr
index dd22d7e2e..dd22d7e2e 100644
--- a/src/test/ui/borrowck/borrowck-match-binding-is-assignment.stderr
+++ b/tests/ui/borrowck/borrowck-match-binding-is-assignment.stderr
diff --git a/src/test/ui/borrowck/borrowck-move-by-capture-ok.rs b/tests/ui/borrowck/borrowck-move-by-capture-ok.rs
index e7a48ebf6..e7a48ebf6 100644
--- a/src/test/ui/borrowck/borrowck-move-by-capture-ok.rs
+++ b/tests/ui/borrowck/borrowck-move-by-capture-ok.rs
diff --git a/src/test/ui/borrowck/borrowck-move-by-capture.rs b/tests/ui/borrowck/borrowck-move-by-capture.rs
index 6f0eb1870..6f0eb1870 100644
--- a/src/test/ui/borrowck/borrowck-move-by-capture.rs
+++ b/tests/ui/borrowck/borrowck-move-by-capture.rs
diff --git a/src/test/ui/borrowck/borrowck-move-by-capture.stderr b/tests/ui/borrowck/borrowck-move-by-capture.stderr
index 8ddc48b2a..8ddc48b2a 100644
--- a/src/test/ui/borrowck/borrowck-move-by-capture.stderr
+++ b/tests/ui/borrowck/borrowck-move-by-capture.stderr
diff --git a/tests/ui/borrowck/borrowck-move-error-with-note.fixed b/tests/ui/borrowck/borrowck-move-error-with-note.fixed
new file mode 100644
index 000000000..cf6c382a6
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-error-with-note.fixed
@@ -0,0 +1,56 @@
+// run-rustfix
+#![allow(unused)]
+enum Foo {
+ Foo1(Box<u32>, Box<u32>),
+ Foo2(Box<u32>),
+ Foo3,
+}
+
+
+
+fn blah() {
+ let f = &Foo::Foo1(Box::new(1), Box::new(2));
+ match f { //~ ERROR cannot move out of
+ Foo::Foo1(num1,
+ num2) => (),
+ Foo::Foo2(num) => (),
+ Foo::Foo3 => ()
+ }
+}
+
+struct S {
+ f: String,
+ g: String
+}
+impl Drop for S {
+ fn drop(&mut self) { println!("{}", self.f); }
+}
+
+fn move_in_match() {
+ match (S {f: "foo".to_string(), g: "bar".to_string()}) {
+ //~^ ERROR cannot move out of type `S`, which implements the `Drop` trait
+ S {
+ f: ref _s,
+ g: ref _t
+ } => {}
+ }
+}
+
+// from issue-8064
+struct A {
+ a: Box<isize>,
+}
+
+fn free<T>(_: T) {}
+
+fn blah2() {
+ let a = &A { a: Box::new(1) };
+ match &a.a { //~ ERROR cannot move out of
+ n => {
+ free(n)
+ }
+ }
+ free(a)
+}
+
+fn main() {}
diff --git a/src/test/ui/borrowck/borrowck-move-error-with-note.rs b/tests/ui/borrowck/borrowck-move-error-with-note.rs
index ef38cbb63..f336ac4f9 100644
--- a/src/test/ui/borrowck/borrowck-move-error-with-note.rs
+++ b/tests/ui/borrowck/borrowck-move-error-with-note.rs
@@ -1,3 +1,5 @@
+// run-rustfix
+#![allow(unused)]
enum Foo {
Foo1(Box<u32>, Box<u32>),
Foo2(Box<u32>),
diff --git a/tests/ui/borrowck/borrowck-move-error-with-note.stderr b/tests/ui/borrowck/borrowck-move-error-with-note.stderr
new file mode 100644
index 000000000..722c2c144
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-error-with-note.stderr
@@ -0,0 +1,60 @@
+error[E0507]: cannot move out of `f` as enum variant `Foo1` which is behind a shared reference
+ --> $DIR/borrowck-move-error-with-note.rs:13:11
+ |
+LL | match *f {
+ | ^^
+LL | Foo::Foo1(num1,
+ | ---- data moved here
+LL | num2) => (),
+ | ---- ...and here
+LL | Foo::Foo2(num) => (),
+ | --- ...and here
+ |
+ = note: move occurs because these variables have types that don't implement the `Copy` trait
+help: consider removing the dereference here
+ |
+LL - match *f {
+LL + match f {
+ |
+
+error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
+ --> $DIR/borrowck-move-error-with-note.rs:30:11
+ |
+LL | match (S {f: "foo".to_string(), g: "bar".to_string()}) {
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of here
+...
+LL | f: _s,
+ | -- data moved here
+LL | g: _t
+ | -- ...and here
+ |
+ = note: move occurs because these variables have types that don't implement the `Copy` trait
+help: consider borrowing the pattern binding
+ |
+LL | f: ref _s,
+ | +++
+help: consider borrowing the pattern binding
+ |
+LL | g: ref _t
+ | +++
+
+error[E0507]: cannot move out of `a.a` which is behind a shared reference
+ --> $DIR/borrowck-move-error-with-note.rs:48:11
+ |
+LL | match a.a {
+ | ^^^
+LL | n => {
+ | -
+ | |
+ | data moved here
+ | move occurs because `n` has type `Box<isize>`, which does not implement the `Copy` trait
+ |
+help: consider borrowing here
+ |
+LL | match &a.a {
+ | +
+
+error: aborting due to 3 previous errors
+
+Some errors have detailed explanations: E0507, E0509.
+For more information about an error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.rs b/tests/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.rs
index 71405f7a7..71405f7a7 100644
--- a/src/test/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.rs
+++ b/tests/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.rs
diff --git a/src/test/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.stderr b/tests/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.stderr
index f833abcc0..f833abcc0 100644
--- a/src/test/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.stderr
+++ b/tests/ui/borrowck/borrowck-move-from-subpath-of-borrowed-path.stderr
diff --git a/src/test/ui/borrowck/borrowck-move-from-unsafe-ptr.rs b/tests/ui/borrowck/borrowck-move-from-unsafe-ptr.rs
index 824da5ceb..824da5ceb 100644
--- a/src/test/ui/borrowck/borrowck-move-from-unsafe-ptr.rs
+++ b/tests/ui/borrowck/borrowck-move-from-unsafe-ptr.rs
diff --git a/tests/ui/borrowck/borrowck-move-from-unsafe-ptr.stderr b/tests/ui/borrowck/borrowck-move-from-unsafe-ptr.stderr
new file mode 100644
index 000000000..43fc102bd
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-from-unsafe-ptr.stderr
@@ -0,0 +1,15 @@
+error[E0507]: cannot move out of `*x` which is behind a raw pointer
+ --> $DIR/borrowck-move-from-unsafe-ptr.rs:2:13
+ |
+LL | let y = *x;
+ | ^^ move occurs because `*x` has type `Box<isize>`, which does not implement the `Copy` trait
+ |
+help: consider removing the dereference here
+ |
+LL - let y = *x;
+LL + let y = x;
+ |
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/borrowck-move-in-irrefut-pat.rs b/tests/ui/borrowck/borrowck-move-in-irrefut-pat.rs
index f4f402dd9..f4f402dd9 100644
--- a/src/test/ui/borrowck/borrowck-move-in-irrefut-pat.rs
+++ b/tests/ui/borrowck/borrowck-move-in-irrefut-pat.rs
diff --git a/tests/ui/borrowck/borrowck-move-in-irrefut-pat.stderr b/tests/ui/borrowck/borrowck-move-in-irrefut-pat.stderr
new file mode 100644
index 000000000..21bd07332
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-in-irrefut-pat.stderr
@@ -0,0 +1,48 @@
+error[E0507]: cannot move out of a shared reference
+ --> $DIR/borrowck-move-in-irrefut-pat.rs:3:13
+ |
+LL | fn arg_item(&_x: &String) {}
+ | ^--
+ | |
+ | data moved here
+ | move occurs because `_x` has type `String`, which does not implement the `Copy` trait
+ |
+help: consider removing the borrow
+ |
+LL - fn arg_item(&_x: &String) {}
+LL + fn arg_item(_x: &String) {}
+ |
+
+error[E0507]: cannot move out of a shared reference
+ --> $DIR/borrowck-move-in-irrefut-pat.rs:7:11
+ |
+LL | with(|&_x| ())
+ | ^--
+ | |
+ | data moved here
+ | move occurs because `_x` has type `String`, which does not implement the `Copy` trait
+ |
+help: consider removing the borrow
+ |
+LL - with(|&_x| ())
+LL + with(|_x| ())
+ |
+
+error[E0507]: cannot move out of a shared reference
+ --> $DIR/borrowck-move-in-irrefut-pat.rs:12:15
+ |
+LL | let &_x = &"hi".to_string();
+ | -- ^^^^^^^^^^^^^^^^^
+ | |
+ | data moved here
+ | move occurs because `_x` has type `String`, which does not implement the `Copy` trait
+ |
+help: consider removing the borrow
+ |
+LL - let &_x = &"hi".to_string();
+LL + let _x = &"hi".to_string();
+ |
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/borrowck-move-moved-value-into-closure.rs b/tests/ui/borrowck/borrowck-move-moved-value-into-closure.rs
index 72e7b5a71..72e7b5a71 100644
--- a/src/test/ui/borrowck/borrowck-move-moved-value-into-closure.rs
+++ b/tests/ui/borrowck/borrowck-move-moved-value-into-closure.rs
diff --git a/src/test/ui/borrowck/borrowck-move-moved-value-into-closure.stderr b/tests/ui/borrowck/borrowck-move-moved-value-into-closure.stderr
index 9509ebb7c..9509ebb7c 100644
--- a/src/test/ui/borrowck/borrowck-move-moved-value-into-closure.stderr
+++ b/tests/ui/borrowck/borrowck-move-moved-value-into-closure.stderr
diff --git a/src/test/ui/borrowck/borrowck-move-mut-base-ptr.rs b/tests/ui/borrowck/borrowck-move-mut-base-ptr.rs
index fa2d5531b..fa2d5531b 100644
--- a/src/test/ui/borrowck/borrowck-move-mut-base-ptr.rs
+++ b/tests/ui/borrowck/borrowck-move-mut-base-ptr.rs
diff --git a/src/test/ui/borrowck/borrowck-move-mut-base-ptr.stderr b/tests/ui/borrowck/borrowck-move-mut-base-ptr.stderr
index d5ff0c501..d5ff0c501 100644
--- a/src/test/ui/borrowck/borrowck-move-mut-base-ptr.stderr
+++ b/tests/ui/borrowck/borrowck-move-mut-base-ptr.stderr
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-match.rs b/tests/ui/borrowck/borrowck-move-out-from-array-match.rs
index ced4d002b..ced4d002b 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-match.rs
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-match.rs
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-match.stderr b/tests/ui/borrowck/borrowck-move-out-from-array-match.stderr
index 67b00c1dd..67b00c1dd 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-match.stderr
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-match.stderr
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.rs b/tests/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.rs
index 97db70f34..97db70f34 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.rs
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.rs
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.stderr b/tests/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.stderr
index 47429ea3e..47429ea3e 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.stderr
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-no-overlap-match.stderr
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-no-overlap.rs b/tests/ui/borrowck/borrowck-move-out-from-array-no-overlap.rs
index c91b4286b..c91b4286b 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-no-overlap.rs
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-no-overlap.rs
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-use-match.rs b/tests/ui/borrowck/borrowck-move-out-from-array-use-match.rs
index 604a25cdc..604a25cdc 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-use-match.rs
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-use-match.rs
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-use-match.stderr b/tests/ui/borrowck/borrowck-move-out-from-array-use-match.stderr
index bfab13d42..bfab13d42 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-use-match.stderr
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-use-match.stderr
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.rs b/tests/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.rs
index 017ca90b8..017ca90b8 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.rs
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.rs
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.stderr b/tests/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.stderr
index 8412c24fe..8412c24fe 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.stderr
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-use-no-overlap-match.stderr
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-use-no-overlap.rs b/tests/ui/borrowck/borrowck-move-out-from-array-use-no-overlap.rs
index e3498cef3..e3498cef3 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-use-no-overlap.rs
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-use-no-overlap.rs
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-use.rs b/tests/ui/borrowck/borrowck-move-out-from-array-use.rs
index ad08367a3..ad08367a3 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-use.rs
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-use.rs
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array-use.stderr b/tests/ui/borrowck/borrowck-move-out-from-array-use.stderr
index e2aeaafc6..e2aeaafc6 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array-use.stderr
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-use.stderr
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array.rs b/tests/ui/borrowck/borrowck-move-out-from-array.rs
index 83755812f..83755812f 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array.rs
+++ b/tests/ui/borrowck/borrowck-move-out-from-array.rs
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array.stderr b/tests/ui/borrowck/borrowck-move-out-from-array.stderr
index dd456681f..dd456681f 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array.stderr
+++ b/tests/ui/borrowck/borrowck-move-out-from-array.stderr
diff --git a/src/test/ui/borrowck/borrowck-move-out-of-overloaded-auto-deref.rs b/tests/ui/borrowck/borrowck-move-out-of-overloaded-auto-deref.rs
index 0b9e7102c..0b9e7102c 100644
--- a/src/test/ui/borrowck/borrowck-move-out-of-overloaded-auto-deref.rs
+++ b/tests/ui/borrowck/borrowck-move-out-of-overloaded-auto-deref.rs
diff --git a/tests/ui/borrowck/borrowck-move-out-of-overloaded-auto-deref.stderr b/tests/ui/borrowck/borrowck-move-out-of-overloaded-auto-deref.stderr
new file mode 100644
index 000000000..87135f0bb
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-out-of-overloaded-auto-deref.stderr
@@ -0,0 +1,19 @@
+error[E0507]: cannot move out of an `Rc`
+ --> $DIR/borrowck-move-out-of-overloaded-auto-deref.rs:4:14
+ |
+LL | let _x = Rc::new(vec![1, 2]).into_iter();
+ | ^^^^^^^^^^^^^^^^^^^^-----------
+ | | |
+ | | value moved due to this method call
+ | move occurs because value has type `Vec<i32>`, which does not implement the `Copy` trait
+ |
+note: `into_iter` takes ownership of the receiver `self`, which moves value
+ --> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
+help: you can `clone` the value and consume it, but this might not be your desired behavior
+ |
+LL | let _x = Rc::new(vec![1, 2]).clone().into_iter();
+ | ++++++++
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/borrowck-move-out-of-overloaded-deref.rs b/tests/ui/borrowck/borrowck-move-out-of-overloaded-deref.rs
index ecb135f68..ecb135f68 100644
--- a/src/test/ui/borrowck/borrowck-move-out-of-overloaded-deref.rs
+++ b/tests/ui/borrowck/borrowck-move-out-of-overloaded-deref.rs
diff --git a/tests/ui/borrowck/borrowck-move-out-of-overloaded-deref.stderr b/tests/ui/borrowck/borrowck-move-out-of-overloaded-deref.stderr
new file mode 100644
index 000000000..599fa1e88
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-out-of-overloaded-deref.stderr
@@ -0,0 +1,15 @@
+error[E0507]: cannot move out of an `Rc`
+ --> $DIR/borrowck-move-out-of-overloaded-deref.rs:4:14
+ |
+LL | let _x = *Rc::new("hi".to_string());
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because value has type `String`, which does not implement the `Copy` trait
+ |
+help: consider removing the dereference here
+ |
+LL - let _x = *Rc::new("hi".to_string());
+LL + let _x = Rc::new("hi".to_string());
+ |
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/borrowck-move-out-of-static-item.rs b/tests/ui/borrowck/borrowck-move-out-of-static-item.rs
index d01fb2618..d01fb2618 100644
--- a/src/test/ui/borrowck/borrowck-move-out-of-static-item.rs
+++ b/tests/ui/borrowck/borrowck-move-out-of-static-item.rs
diff --git a/src/test/ui/borrowck/borrowck-move-out-of-static-item.stderr b/tests/ui/borrowck/borrowck-move-out-of-static-item.stderr
index edf8c954f..edf8c954f 100644
--- a/src/test/ui/borrowck/borrowck-move-out-of-static-item.stderr
+++ b/tests/ui/borrowck/borrowck-move-out-of-static-item.stderr
diff --git a/tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.fixed b/tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.fixed
new file mode 100644
index 000000000..c463c6559
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.fixed
@@ -0,0 +1,24 @@
+// run-rustfix
+#![allow(unused)]
+struct S {f:String}
+impl Drop for S {
+ fn drop(&mut self) { println!("{}", self.f); }
+}
+
+fn move_in_match() {
+ match (S {f:"foo".to_string()}) {
+ //~^ ERROR [E0509]
+ S {f:ref _s} => {}
+ }
+}
+
+fn move_in_let() {
+ let S {f:ref _s} = S {f:"foo".to_string()};
+ //~^ ERROR [E0509]
+}
+
+fn move_in_fn_arg(S {f:ref _s}: S) {
+ //~^ ERROR [E0509]
+}
+
+fn main() {}
diff --git a/src/test/ui/borrowck/borrowck-move-out-of-struct-with-dtor.rs b/tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.rs
index a429f4bc3..93183062d 100644
--- a/src/test/ui/borrowck/borrowck-move-out-of-struct-with-dtor.rs
+++ b/tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.rs
@@ -1,3 +1,5 @@
+// run-rustfix
+#![allow(unused)]
struct S {f:String}
impl Drop for S {
fn drop(&mut self) { println!("{}", self.f); }
diff --git a/tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.stderr b/tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.stderr
new file mode 100644
index 000000000..58f706c65
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-out-of-struct-with-dtor.stderr
@@ -0,0 +1,49 @@
+error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
+ --> $DIR/borrowck-move-out-of-struct-with-dtor.rs:9:11
+ |
+LL | match (S {f:"foo".to_string()}) {
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of here
+LL |
+LL | S {f:_s} => {}
+ | --
+ | |
+ | data moved here
+ | move occurs because `_s` has type `String`, which does not implement the `Copy` trait
+ |
+help: consider borrowing the pattern binding
+ |
+LL | S {f:ref _s} => {}
+ | +++
+
+error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
+ --> $DIR/borrowck-move-out-of-struct-with-dtor.rs:16:20
+ |
+LL | let S {f:_s} = S {f:"foo".to_string()};
+ | -- ^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of here
+ | |
+ | data moved here
+ | move occurs because `_s` has type `String`, which does not implement the `Copy` trait
+ |
+help: consider borrowing the pattern binding
+ |
+LL | let S {f:ref _s} = S {f:"foo".to_string()};
+ | +++
+
+error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
+ --> $DIR/borrowck-move-out-of-struct-with-dtor.rs:20:19
+ |
+LL | fn move_in_fn_arg(S {f:_s}: S) {
+ | ^^^^^--^
+ | | |
+ | | data moved here
+ | | move occurs because `_s` has type `String`, which does not implement the `Copy` trait
+ | cannot move out of here
+ |
+help: consider borrowing the pattern binding
+ |
+LL | fn move_in_fn_arg(S {f:ref _s}: S) {
+ | +++
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0509`.
diff --git a/tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.fixed b/tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.fixed
new file mode 100644
index 000000000..bc2ddf85f
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.fixed
@@ -0,0 +1,24 @@
+// run-rustfix
+#![allow(unused)]
+struct S(String);
+impl Drop for S {
+ fn drop(&mut self) { }
+}
+
+fn move_in_match() {
+ match S("foo".to_string()) {
+ //~^ ERROR cannot move out of type `S`, which implements the `Drop` trait
+ S(ref _s) => {}
+ }
+}
+
+fn move_in_let() {
+ let S(ref _s) = S("foo".to_string());
+ //~^ ERROR cannot move out of type `S`, which implements the `Drop` trait
+}
+
+fn move_in_fn_arg(S(ref _s): S) {
+ //~^ ERROR cannot move out of type `S`, which implements the `Drop` trait
+}
+
+fn main() {}
diff --git a/src/test/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.rs b/tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.rs
index 5bd32f82e..f050bce87 100644
--- a/src/test/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.rs
+++ b/tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.rs
@@ -1,3 +1,5 @@
+// run-rustfix
+#![allow(unused)]
struct S(String);
impl Drop for S {
fn drop(&mut self) { }
diff --git a/tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.stderr b/tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.stderr
new file mode 100644
index 000000000..160a1f99f
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-out-of-tuple-struct-with-dtor.stderr
@@ -0,0 +1,49 @@
+error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
+ --> $DIR/borrowck-move-out-of-tuple-struct-with-dtor.rs:9:11
+ |
+LL | match S("foo".to_string()) {
+ | ^^^^^^^^^^^^^^^^^^^^ cannot move out of here
+LL |
+LL | S(_s) => {}
+ | --
+ | |
+ | data moved here
+ | move occurs because `_s` has type `String`, which does not implement the `Copy` trait
+ |
+help: consider borrowing the pattern binding
+ |
+LL | S(ref _s) => {}
+ | +++
+
+error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
+ --> $DIR/borrowck-move-out-of-tuple-struct-with-dtor.rs:16:17
+ |
+LL | let S(_s) = S("foo".to_string());
+ | -- ^^^^^^^^^^^^^^^^^^^^ cannot move out of here
+ | |
+ | data moved here
+ | move occurs because `_s` has type `String`, which does not implement the `Copy` trait
+ |
+help: consider borrowing the pattern binding
+ |
+LL | let S(ref _s) = S("foo".to_string());
+ | +++
+
+error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
+ --> $DIR/borrowck-move-out-of-tuple-struct-with-dtor.rs:20:19
+ |
+LL | fn move_in_fn_arg(S(_s): S) {
+ | ^^--^
+ | | |
+ | | data moved here
+ | | move occurs because `_s` has type `String`, which does not implement the `Copy` trait
+ | cannot move out of here
+ |
+help: consider borrowing the pattern binding
+ |
+LL | fn move_in_fn_arg(S(ref _s): S) {
+ | +++
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0509`.
diff --git a/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.rs b/tests/ui/borrowck/borrowck-move-out-of-vec-tail.rs
index 8ece81a3c..8ece81a3c 100644
--- a/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.rs
+++ b/tests/ui/borrowck/borrowck-move-out-of-vec-tail.rs
diff --git a/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.stderr b/tests/ui/borrowck/borrowck-move-out-of-vec-tail.stderr
index a865812cb..9ff20a1f4 100644
--- a/src/test/ui/borrowck/borrowck-move-out-of-vec-tail.stderr
+++ b/tests/ui/borrowck/borrowck-move-out-of-vec-tail.stderr
@@ -10,10 +10,10 @@ LL | Foo { string: b }] => {
| - ...and here
|
= note: move occurs because these variables have types that don't implement the `Copy` trait
-help: consider removing the `&`
+help: consider removing the borrow
|
-LL ~ [Foo { string: a },
-LL ~ Foo { string: b }] => {
+LL - &[Foo { string: a },
+LL + [Foo { string: a },
|
error: aborting due to previous error
diff --git a/src/test/ui/borrowck/borrowck-move-subcomponent.rs b/tests/ui/borrowck/borrowck-move-subcomponent.rs
index 38abd1932..38abd1932 100644
--- a/src/test/ui/borrowck/borrowck-move-subcomponent.rs
+++ b/tests/ui/borrowck/borrowck-move-subcomponent.rs
diff --git a/src/test/ui/borrowck/borrowck-move-subcomponent.stderr b/tests/ui/borrowck/borrowck-move-subcomponent.stderr
index 8c9083fcf..8c9083fcf 100644
--- a/src/test/ui/borrowck/borrowck-move-subcomponent.stderr
+++ b/tests/ui/borrowck/borrowck-move-subcomponent.stderr
diff --git a/src/test/ui/borrowck/borrowck-multiple-borrows-interior-boxes.rs b/tests/ui/borrowck/borrowck-multiple-borrows-interior-boxes.rs
index 96d266350..96d266350 100644
--- a/src/test/ui/borrowck/borrowck-multiple-borrows-interior-boxes.rs
+++ b/tests/ui/borrowck/borrowck-multiple-borrows-interior-boxes.rs
diff --git a/src/test/ui/borrowck/borrowck-multiple-captures.rs b/tests/ui/borrowck/borrowck-multiple-captures.rs
index 57b3819ac..57b3819ac 100644
--- a/src/test/ui/borrowck/borrowck-multiple-captures.rs
+++ b/tests/ui/borrowck/borrowck-multiple-captures.rs
diff --git a/src/test/ui/borrowck/borrowck-multiple-captures.stderr b/tests/ui/borrowck/borrowck-multiple-captures.stderr
index f94cbc30d..f94cbc30d 100644
--- a/src/test/ui/borrowck/borrowck-multiple-captures.stderr
+++ b/tests/ui/borrowck/borrowck-multiple-captures.stderr
diff --git a/src/test/ui/borrowck/borrowck-mut-addr-of-imm-var.rs b/tests/ui/borrowck/borrowck-mut-addr-of-imm-var.rs
index a79a239cb..a79a239cb 100644
--- a/src/test/ui/borrowck/borrowck-mut-addr-of-imm-var.rs
+++ b/tests/ui/borrowck/borrowck-mut-addr-of-imm-var.rs
diff --git a/src/test/ui/borrowck/borrowck-mut-addr-of-imm-var.stderr b/tests/ui/borrowck/borrowck-mut-addr-of-imm-var.stderr
index d58548f22..20528e3f0 100644
--- a/src/test/ui/borrowck/borrowck-mut-addr-of-imm-var.stderr
+++ b/tests/ui/borrowck/borrowck-mut-addr-of-imm-var.stderr
@@ -1,10 +1,13 @@
error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
--> $DIR/borrowck-mut-addr-of-imm-var.rs:3:25
|
-LL | let x: isize = 3;
- | - help: consider changing this to be mutable: `mut x`
LL | let y: &mut isize = &mut x;
| ^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut x: isize = 3;
+ | +++
error: aborting due to previous error
diff --git a/src/test/ui/borrowck/borrowck-mut-borrow-linear-errors.rs b/tests/ui/borrowck/borrowck-mut-borrow-linear-errors.rs
index e3d76398b..e3d76398b 100644
--- a/src/test/ui/borrowck/borrowck-mut-borrow-linear-errors.rs
+++ b/tests/ui/borrowck/borrowck-mut-borrow-linear-errors.rs
diff --git a/src/test/ui/borrowck/borrowck-mut-borrow-linear-errors.stderr b/tests/ui/borrowck/borrowck-mut-borrow-linear-errors.stderr
index d2b845619..d2b845619 100644
--- a/src/test/ui/borrowck/borrowck-mut-borrow-linear-errors.stderr
+++ b/tests/ui/borrowck/borrowck-mut-borrow-linear-errors.stderr
diff --git a/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.rs b/tests/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.rs
index 6174893ba..6174893ba 100644
--- a/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.rs
+++ b/tests/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.rs
diff --git a/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.stderr b/tests/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.stderr
index ef811b849..ef811b849 100644
--- a/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.stderr
+++ b/tests/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.stderr
diff --git a/src/test/ui/borrowck/borrowck-mut-slice-of-imm-vec.rs b/tests/ui/borrowck/borrowck-mut-slice-of-imm-vec.rs
index 8e23571ce..8e23571ce 100644
--- a/src/test/ui/borrowck/borrowck-mut-slice-of-imm-vec.rs
+++ b/tests/ui/borrowck/borrowck-mut-slice-of-imm-vec.rs
diff --git a/tests/ui/borrowck/borrowck-mut-slice-of-imm-vec.stderr b/tests/ui/borrowck/borrowck-mut-slice-of-imm-vec.stderr
new file mode 100644
index 000000000..8ab472e64
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-mut-slice-of-imm-vec.stderr
@@ -0,0 +1,14 @@
+error[E0596]: cannot borrow `v` as mutable, as it is not declared as mutable
+ --> $DIR/borrowck-mut-slice-of-imm-vec.rs:7:11
+ |
+LL | write(&mut v);
+ | ^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut v = vec![1, 2, 3];
+ | +++
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-mut-uniq.rs b/tests/ui/borrowck/borrowck-mut-uniq.rs
index 255b4995b..255b4995b 100644
--- a/src/test/ui/borrowck/borrowck-mut-uniq.rs
+++ b/tests/ui/borrowck/borrowck-mut-uniq.rs
diff --git a/src/test/ui/borrowck/borrowck-mut-vec-as-imm-slice.rs b/tests/ui/borrowck/borrowck-mut-vec-as-imm-slice.rs
index d2b0c0154..d2b0c0154 100644
--- a/src/test/ui/borrowck/borrowck-mut-vec-as-imm-slice.rs
+++ b/tests/ui/borrowck/borrowck-mut-vec-as-imm-slice.rs
diff --git a/tests/ui/borrowck/borrowck-mutate-in-guard.rs b/tests/ui/borrowck/borrowck-mutate-in-guard.rs
new file mode 100644
index 000000000..d80a9e815
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-mutate-in-guard.rs
@@ -0,0 +1,34 @@
+#![feature(if_let_guard)]
+
+enum Enum<'a> {
+ A(&'a isize),
+ B(bool),
+}
+
+fn if_guard() -> isize {
+ let mut n = 42;
+ let mut x = Enum::A(&mut n);
+ match x {
+ Enum::A(_) if { x = Enum::B(false); false } => 1,
+ //~^ ERROR cannot assign `x` in match guard
+ Enum::A(_) if { let y = &mut x; *y = Enum::B(false); false } => 1,
+ //~^ ERROR cannot mutably borrow `x` in match guard
+ Enum::A(p) => *p,
+ Enum::B(_) => 2,
+ }
+}
+
+fn if_let_guard() -> isize {
+ let mut n = 42;
+ let mut x = Enum::A(&mut n);
+ match x {
+ Enum::A(_) if let Some(()) = { x = Enum::B(false); None } => 1,
+ //~^ ERROR cannot assign `x` in match guard
+ Enum::A(_) if let Some(()) = { let y = &mut x; *y = Enum::B(false); None } => 1,
+ //~^ ERROR cannot mutably borrow `x` in match guard
+ Enum::A(p) => *p,
+ Enum::B(_) => 2,
+ }
+}
+
+fn main() {}
diff --git a/tests/ui/borrowck/borrowck-mutate-in-guard.stderr b/tests/ui/borrowck/borrowck-mutate-in-guard.stderr
new file mode 100644
index 000000000..dbb3272fd
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-mutate-in-guard.stderr
@@ -0,0 +1,37 @@
+error[E0510]: cannot assign `x` in match guard
+ --> $DIR/borrowck-mutate-in-guard.rs:12:25
+ |
+LL | match x {
+ | - value is immutable in match guard
+LL | Enum::A(_) if { x = Enum::B(false); false } => 1,
+ | ^^^^^^^^^^^^^^^^^^ cannot assign
+
+error[E0510]: cannot mutably borrow `x` in match guard
+ --> $DIR/borrowck-mutate-in-guard.rs:14:33
+ |
+LL | match x {
+ | - value is immutable in match guard
+...
+LL | Enum::A(_) if { let y = &mut x; *y = Enum::B(false); false } => 1,
+ | ^^^^^^ cannot mutably borrow
+
+error[E0510]: cannot assign `x` in match guard
+ --> $DIR/borrowck-mutate-in-guard.rs:25:40
+ |
+LL | match x {
+ | - value is immutable in match guard
+LL | Enum::A(_) if let Some(()) = { x = Enum::B(false); None } => 1,
+ | ^^^^^^^^^^^^^^^^^^ cannot assign
+
+error[E0510]: cannot mutably borrow `x` in match guard
+ --> $DIR/borrowck-mutate-in-guard.rs:27:48
+ |
+LL | match x {
+ | - value is immutable in match guard
+...
+LL | Enum::A(_) if let Some(()) = { let y = &mut x; *y = Enum::B(false); None } => 1,
+ | ^^^^^^ cannot mutably borrow
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0510`.
diff --git a/src/test/ui/borrowck/borrowck-no-cycle-in-exchange-heap.rs b/tests/ui/borrowck/borrowck-no-cycle-in-exchange-heap.rs
index f035049d8..f035049d8 100644
--- a/src/test/ui/borrowck/borrowck-no-cycle-in-exchange-heap.rs
+++ b/tests/ui/borrowck/borrowck-no-cycle-in-exchange-heap.rs
diff --git a/src/test/ui/borrowck/borrowck-no-cycle-in-exchange-heap.stderr b/tests/ui/borrowck/borrowck-no-cycle-in-exchange-heap.stderr
index 3462b7610..3462b7610 100644
--- a/src/test/ui/borrowck/borrowck-no-cycle-in-exchange-heap.stderr
+++ b/tests/ui/borrowck/borrowck-no-cycle-in-exchange-heap.stderr
diff --git a/src/test/ui/borrowck/borrowck-object-lifetime.rs b/tests/ui/borrowck/borrowck-object-lifetime.rs
index 137a9adbc..137a9adbc 100644
--- a/src/test/ui/borrowck/borrowck-object-lifetime.rs
+++ b/tests/ui/borrowck/borrowck-object-lifetime.rs
diff --git a/src/test/ui/borrowck/borrowck-object-lifetime.stderr b/tests/ui/borrowck/borrowck-object-lifetime.stderr
index 215ed760a..215ed760a 100644
--- a/src/test/ui/borrowck/borrowck-object-lifetime.stderr
+++ b/tests/ui/borrowck/borrowck-object-lifetime.stderr
diff --git a/src/test/ui/borrowck/borrowck-or-init.rs b/tests/ui/borrowck/borrowck-or-init.rs
index 079cf899e..079cf899e 100644
--- a/src/test/ui/borrowck/borrowck-or-init.rs
+++ b/tests/ui/borrowck/borrowck-or-init.rs
diff --git a/src/test/ui/borrowck/borrowck-or-init.stderr b/tests/ui/borrowck/borrowck-or-init.stderr
index 16d66bf40..16d66bf40 100644
--- a/src/test/ui/borrowck/borrowck-or-init.stderr
+++ b/tests/ui/borrowck/borrowck-or-init.stderr
diff --git a/src/test/ui/borrowck/borrowck-overloaded-call.rs b/tests/ui/borrowck/borrowck-overloaded-call.rs
index 7b16bf666..7b16bf666 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-call.rs
+++ b/tests/ui/borrowck/borrowck-overloaded-call.rs
diff --git a/src/test/ui/borrowck/borrowck-overloaded-call.stderr b/tests/ui/borrowck/borrowck-overloaded-call.stderr
index ddb63b5ec..723b19f41 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-call.stderr
+++ b/tests/ui/borrowck/borrowck-overloaded-call.stderr
@@ -11,11 +11,13 @@ LL | use_mut(sp);
error[E0596]: cannot borrow `s` as mutable, as it is not declared as mutable
--> $DIR/borrowck-overloaded-call.rs:67:5
|
-LL | let s = SFnMut {
- | - help: consider changing this to be mutable: `mut s`
-...
LL | s(3);
| ^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut s = SFnMut {
+ | +++
error[E0382]: use of moved value: `s`
--> $DIR/borrowck-overloaded-call.rs:75:5
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.rs b/tests/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.rs
index 0e3e01a93..0e3e01a93 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.rs
+++ b/tests/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.rs
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.stderr b/tests/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.stderr
index 5d52e4919..5d52e4919 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.stderr
+++ b/tests/ui/borrowck/borrowck-overloaded-index-and-overloaded-deref.stderr
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.rs b/tests/ui/borrowck/borrowck-overloaded-index-autoderef.rs
index 3d3a3afd3..3d3a3afd3 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.rs
+++ b/tests/ui/borrowck/borrowck-overloaded-index-autoderef.rs
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.stderr b/tests/ui/borrowck/borrowck-overloaded-index-autoderef.stderr
index 087f2ac79..087f2ac79 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-autoderef.stderr
+++ b/tests/ui/borrowck/borrowck-overloaded-index-autoderef.stderr
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-move-from-vec.rs b/tests/ui/borrowck/borrowck-overloaded-index-move-from-vec.rs
index 344d75cc5..344d75cc5 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-move-from-vec.rs
+++ b/tests/ui/borrowck/borrowck-overloaded-index-move-from-vec.rs
diff --git a/tests/ui/borrowck/borrowck-overloaded-index-move-from-vec.stderr b/tests/ui/borrowck/borrowck-overloaded-index-move-from-vec.stderr
new file mode 100644
index 000000000..f5f4817e9
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-overloaded-index-move-from-vec.stderr
@@ -0,0 +1,14 @@
+error[E0507]: cannot move out of index of `MyVec<Box<i32>>`
+ --> $DIR/borrowck-overloaded-index-move-from-vec.rs:20:15
+ |
+LL | let bad = v[0];
+ | ^^^^ move occurs because value has type `Box<i32>`, which does not implement the `Copy` trait
+ |
+help: consider borrowing here
+ |
+LL | let bad = &v[0];
+ | +
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-move-index.rs b/tests/ui/borrowck/borrowck-overloaded-index-move-index.rs
index 00f448314..00f448314 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-move-index.rs
+++ b/tests/ui/borrowck/borrowck-overloaded-index-move-index.rs
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-move-index.stderr b/tests/ui/borrowck/borrowck-overloaded-index-move-index.stderr
index fb0e274c2..fb0e274c2 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-move-index.stderr
+++ b/tests/ui/borrowck/borrowck-overloaded-index-move-index.stderr
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.rs b/tests/ui/borrowck/borrowck-overloaded-index-ref-index.rs
index 8adafaa8e..8adafaa8e 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.rs
+++ b/tests/ui/borrowck/borrowck-overloaded-index-ref-index.rs
diff --git a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.stderr b/tests/ui/borrowck/borrowck-overloaded-index-ref-index.stderr
index 2f92c1ebe..2f92c1ebe 100644
--- a/src/test/ui/borrowck/borrowck-overloaded-index-ref-index.stderr
+++ b/tests/ui/borrowck/borrowck-overloaded-index-ref-index.stderr
diff --git a/src/test/ui/borrowck/borrowck-partial-reinit-1.rs b/tests/ui/borrowck/borrowck-partial-reinit-1.rs
index 4e6951581..4e6951581 100644
--- a/src/test/ui/borrowck/borrowck-partial-reinit-1.rs
+++ b/tests/ui/borrowck/borrowck-partial-reinit-1.rs
diff --git a/src/test/ui/borrowck/borrowck-partial-reinit-1.stderr b/tests/ui/borrowck/borrowck-partial-reinit-1.stderr
index 65f2bd6cf..65f2bd6cf 100644
--- a/src/test/ui/borrowck/borrowck-partial-reinit-1.stderr
+++ b/tests/ui/borrowck/borrowck-partial-reinit-1.stderr
diff --git a/src/test/ui/borrowck/borrowck-partial-reinit-2.rs b/tests/ui/borrowck/borrowck-partial-reinit-2.rs
index 06cd322e7..06cd322e7 100644
--- a/src/test/ui/borrowck/borrowck-partial-reinit-2.rs
+++ b/tests/ui/borrowck/borrowck-partial-reinit-2.rs
diff --git a/src/test/ui/borrowck/borrowck-partial-reinit-2.stderr b/tests/ui/borrowck/borrowck-partial-reinit-2.stderr
index 36a871fbb..36a871fbb 100644
--- a/src/test/ui/borrowck/borrowck-partial-reinit-2.stderr
+++ b/tests/ui/borrowck/borrowck-partial-reinit-2.stderr
diff --git a/src/test/ui/borrowck/borrowck-partial-reinit-3.rs b/tests/ui/borrowck/borrowck-partial-reinit-3.rs
index ca484315b..ca484315b 100644
--- a/src/test/ui/borrowck/borrowck-partial-reinit-3.rs
+++ b/tests/ui/borrowck/borrowck-partial-reinit-3.rs
diff --git a/src/test/ui/borrowck/borrowck-partial-reinit-3.stderr b/tests/ui/borrowck/borrowck-partial-reinit-3.stderr
index 05f5411ee..05f5411ee 100644
--- a/src/test/ui/borrowck/borrowck-partial-reinit-3.stderr
+++ b/tests/ui/borrowck/borrowck-partial-reinit-3.stderr
diff --git a/src/test/ui/borrowck/borrowck-partial-reinit-4.rs b/tests/ui/borrowck/borrowck-partial-reinit-4.rs
index a43a19366..a43a19366 100644
--- a/src/test/ui/borrowck/borrowck-partial-reinit-4.rs
+++ b/tests/ui/borrowck/borrowck-partial-reinit-4.rs
diff --git a/src/test/ui/borrowck/borrowck-partial-reinit-4.stderr b/tests/ui/borrowck/borrowck-partial-reinit-4.stderr
index d12a482cb..d12a482cb 100644
--- a/src/test/ui/borrowck/borrowck-partial-reinit-4.stderr
+++ b/tests/ui/borrowck/borrowck-partial-reinit-4.stderr
diff --git a/src/test/ui/borrowck/borrowck-pat-enum.rs b/tests/ui/borrowck/borrowck-pat-enum.rs
index 7f9c5544d..7f9c5544d 100644
--- a/src/test/ui/borrowck/borrowck-pat-enum.rs
+++ b/tests/ui/borrowck/borrowck-pat-enum.rs
diff --git a/src/test/ui/borrowck/borrowck-pat-reassign-binding.rs b/tests/ui/borrowck/borrowck-pat-reassign-binding.rs
index f02c46fb8..f02c46fb8 100644
--- a/src/test/ui/borrowck/borrowck-pat-reassign-binding.rs
+++ b/tests/ui/borrowck/borrowck-pat-reassign-binding.rs
diff --git a/src/test/ui/borrowck/borrowck-pat-reassign-binding.stderr b/tests/ui/borrowck/borrowck-pat-reassign-binding.stderr
index 9e65ccf5a..9e65ccf5a 100644
--- a/src/test/ui/borrowck/borrowck-pat-reassign-binding.stderr
+++ b/tests/ui/borrowck/borrowck-pat-reassign-binding.stderr
diff --git a/src/test/ui/borrowck/borrowck-pat-reassign-no-binding.rs b/tests/ui/borrowck/borrowck-pat-reassign-no-binding.rs
index 1362fd8ce..1362fd8ce 100644
--- a/src/test/ui/borrowck/borrowck-pat-reassign-no-binding.rs
+++ b/tests/ui/borrowck/borrowck-pat-reassign-no-binding.rs
diff --git a/src/test/ui/borrowck/borrowck-reborrow-from-mut.rs b/tests/ui/borrowck/borrowck-reborrow-from-mut.rs
index eef83c5ac..eef83c5ac 100644
--- a/src/test/ui/borrowck/borrowck-reborrow-from-mut.rs
+++ b/tests/ui/borrowck/borrowck-reborrow-from-mut.rs
diff --git a/src/test/ui/borrowck/borrowck-reborrow-from-mut.stderr b/tests/ui/borrowck/borrowck-reborrow-from-mut.stderr
index 284cab296..d9590e446 100644
--- a/src/test/ui/borrowck/borrowck-reborrow-from-mut.stderr
+++ b/tests/ui/borrowck/borrowck-reborrow-from-mut.stderr
@@ -105,10 +105,13 @@ LL | use_imm(_bar1);
error[E0596]: cannot borrow `foo.bar1` as mutable, as it is behind a `&` reference
--> $DIR/borrowck-reborrow-from-mut.rs:88:17
|
-LL | fn borrow_mut_from_imm(foo: &Foo) {
- | ---- help: consider changing this to be a mutable reference: `&mut Foo`
LL | let _bar1 = &mut foo.bar1;
| ^^^^^^^^^^^^^ `foo` is a `&` reference, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | fn borrow_mut_from_imm(foo: &mut Foo) {
+ | ~~~~~~~~
error: aborting due to 11 previous errors
diff --git a/src/test/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.rs b/tests/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.rs
index 779cb3bbe..779cb3bbe 100644
--- a/src/test/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.rs
+++ b/tests/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.rs
diff --git a/src/test/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.stderr b/tests/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.stderr
index f28c42ce2..f28c42ce2 100644
--- a/src/test/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.stderr
+++ b/tests/ui/borrowck/borrowck-reborrow-from-shorter-lived-andmut.stderr
diff --git a/src/test/ui/borrowck/borrowck-ref-mut-of-imm.rs b/tests/ui/borrowck/borrowck-ref-mut-of-imm.rs
index ae5bb8591..ae5bb8591 100644
--- a/src/test/ui/borrowck/borrowck-ref-mut-of-imm.rs
+++ b/tests/ui/borrowck/borrowck-ref-mut-of-imm.rs
diff --git a/tests/ui/borrowck/borrowck-ref-mut-of-imm.stderr b/tests/ui/borrowck/borrowck-ref-mut-of-imm.stderr
new file mode 100644
index 000000000..5cfd81bd0
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-ref-mut-of-imm.stderr
@@ -0,0 +1,14 @@
+error[E0596]: cannot borrow `x.0` as mutable, as `x` is not declared as mutable
+ --> $DIR/borrowck-ref-mut-of-imm.rs:4:12
+ |
+LL | Some(ref mut v) => *v
+ | ^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | fn destructure(mut x: Option<isize>) -> isize {
+ | +++
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/borrowck-reinit.rs b/tests/ui/borrowck/borrowck-reinit.rs
index 866b3a2a8..866b3a2a8 100644
--- a/src/test/ui/borrowck/borrowck-reinit.rs
+++ b/tests/ui/borrowck/borrowck-reinit.rs
diff --git a/src/test/ui/borrowck/borrowck-reinit.stderr b/tests/ui/borrowck/borrowck-reinit.stderr
index f785900d5..f785900d5 100644
--- a/src/test/ui/borrowck/borrowck-reinit.stderr
+++ b/tests/ui/borrowck/borrowck-reinit.stderr
diff --git a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.rs b/tests/ui/borrowck/borrowck-report-with-custom-diagnostic.rs
index 6f323d912..6f323d912 100644
--- a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.rs
+++ b/tests/ui/borrowck/borrowck-report-with-custom-diagnostic.rs
diff --git a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr b/tests/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr
index d05996413..d05996413 100644
--- a/src/test/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr
+++ b/tests/ui/borrowck/borrowck-report-with-custom-diagnostic.stderr
diff --git a/src/test/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs b/tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs
index 75e5e7fd4..75e5e7fd4 100644
--- a/src/test/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs
+++ b/tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.rs
diff --git a/src/test/ui/borrowck/borrowck-return-variable-on-stack-via-clone.stderr b/tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.stderr
index d54449ac4..d54449ac4 100644
--- a/src/test/ui/borrowck/borrowck-return-variable-on-stack-via-clone.stderr
+++ b/tests/ui/borrowck/borrowck-return-variable-on-stack-via-clone.stderr
diff --git a/src/test/ui/borrowck/borrowck-return.rs b/tests/ui/borrowck/borrowck-return.rs
index a63ffcff7..a63ffcff7 100644
--- a/src/test/ui/borrowck/borrowck-return.rs
+++ b/tests/ui/borrowck/borrowck-return.rs
diff --git a/src/test/ui/borrowck/borrowck-return.stderr b/tests/ui/borrowck/borrowck-return.stderr
index 9799357c9..9799357c9 100644
--- a/src/test/ui/borrowck/borrowck-return.stderr
+++ b/tests/ui/borrowck/borrowck-return.stderr
diff --git a/src/test/ui/borrowck/borrowck-rvalues-mutable.rs b/tests/ui/borrowck/borrowck-rvalues-mutable.rs
index c4695c942..c4695c942 100644
--- a/src/test/ui/borrowck/borrowck-rvalues-mutable.rs
+++ b/tests/ui/borrowck/borrowck-rvalues-mutable.rs
diff --git a/src/test/ui/borrowck/borrowck-scope-of-deref-issue-4666.rs b/tests/ui/borrowck/borrowck-scope-of-deref-issue-4666.rs
index e89332ae3..e89332ae3 100644
--- a/src/test/ui/borrowck/borrowck-scope-of-deref-issue-4666.rs
+++ b/tests/ui/borrowck/borrowck-scope-of-deref-issue-4666.rs
diff --git a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-array-no-overlap.rs b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-array-no-overlap.rs
index a8e56f648..a8e56f648 100644
--- a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-array-no-overlap.rs
+++ b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-array-no-overlap.rs
diff --git a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-array.rs b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-array.rs
index 6b210d732..6b210d732 100644
--- a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-array.rs
+++ b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-array.rs
diff --git a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-array.stderr b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-array.stderr
index f4324110c..f4324110c 100644
--- a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-array.stderr
+++ b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-array.stderr
diff --git a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-rpass.rs b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-rpass.rs
index 4367596c6..4367596c6 100644
--- a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-rpass.rs
+++ b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-rpass.rs
diff --git a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-slice-no-overlap.rs b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-slice-no-overlap.rs
index 6390dc3a9..6390dc3a9 100644
--- a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-slice-no-overlap.rs
+++ b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-slice-no-overlap.rs
diff --git a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-slice.rs b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-slice.rs
index 0e1c90a1c..0e1c90a1c 100644
--- a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-slice.rs
+++ b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-slice.rs
diff --git a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-slice.stderr b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-slice.stderr
index f9a63bd49..f9a63bd49 100644
--- a/src/test/ui/borrowck/borrowck-slice-pattern-element-loan-slice.stderr
+++ b/tests/ui/borrowck/borrowck-slice-pattern-element-loan-slice.stderr
diff --git a/src/test/ui/borrowck/borrowck-static-item-in-fn.rs b/tests/ui/borrowck/borrowck-static-item-in-fn.rs
index 5f4379325..5f4379325 100644
--- a/src/test/ui/borrowck/borrowck-static-item-in-fn.rs
+++ b/tests/ui/borrowck/borrowck-static-item-in-fn.rs
diff --git a/src/test/ui/borrowck/borrowck-storage-dead.rs b/tests/ui/borrowck/borrowck-storage-dead.rs
index fe9844610..fe9844610 100644
--- a/src/test/ui/borrowck/borrowck-storage-dead.rs
+++ b/tests/ui/borrowck/borrowck-storage-dead.rs
diff --git a/src/test/ui/borrowck/borrowck-storage-dead.stderr b/tests/ui/borrowck/borrowck-storage-dead.stderr
index 3a413153a..3a413153a 100644
--- a/src/test/ui/borrowck/borrowck-storage-dead.stderr
+++ b/tests/ui/borrowck/borrowck-storage-dead.stderr
diff --git a/src/test/ui/borrowck/borrowck-struct-update-with-dtor.rs b/tests/ui/borrowck/borrowck-struct-update-with-dtor.rs
index 1f6ed6d46..1f6ed6d46 100644
--- a/src/test/ui/borrowck/borrowck-struct-update-with-dtor.rs
+++ b/tests/ui/borrowck/borrowck-struct-update-with-dtor.rs
diff --git a/src/test/ui/borrowck/borrowck-struct-update-with-dtor.stderr b/tests/ui/borrowck/borrowck-struct-update-with-dtor.stderr
index af32f2791..af32f2791 100644
--- a/src/test/ui/borrowck/borrowck-struct-update-with-dtor.stderr
+++ b/tests/ui/borrowck/borrowck-struct-update-with-dtor.stderr
diff --git a/src/test/ui/borrowck/borrowck-swap-mut-base-ptr.rs b/tests/ui/borrowck/borrowck-swap-mut-base-ptr.rs
index 8170323ef..8170323ef 100644
--- a/src/test/ui/borrowck/borrowck-swap-mut-base-ptr.rs
+++ b/tests/ui/borrowck/borrowck-swap-mut-base-ptr.rs
diff --git a/src/test/ui/borrowck/borrowck-swap-mut-base-ptr.stderr b/tests/ui/borrowck/borrowck-swap-mut-base-ptr.stderr
index b39215b9a..b39215b9a 100644
--- a/src/test/ui/borrowck/borrowck-swap-mut-base-ptr.stderr
+++ b/tests/ui/borrowck/borrowck-swap-mut-base-ptr.stderr
diff --git a/src/test/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.rs b/tests/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.rs
index 1cf8d187c..1cf8d187c 100644
--- a/src/test/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.rs
+++ b/tests/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.rs
diff --git a/src/test/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.stderr b/tests/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.stderr
index 26453b42f..26453b42f 100644
--- a/src/test/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.stderr
+++ b/tests/ui/borrowck/borrowck-thread-local-static-borrow-outlives-fn.stderr
diff --git a/src/test/ui/borrowck/borrowck-trait-lifetime.rs b/tests/ui/borrowck/borrowck-trait-lifetime.rs
index 8a6dfe76d..8a6dfe76d 100644
--- a/src/test/ui/borrowck/borrowck-trait-lifetime.rs
+++ b/tests/ui/borrowck/borrowck-trait-lifetime.rs
diff --git a/src/test/ui/borrowck/borrowck-unary-move.rs b/tests/ui/borrowck/borrowck-unary-move.rs
index 3b4c0731f..3b4c0731f 100644
--- a/src/test/ui/borrowck/borrowck-unary-move.rs
+++ b/tests/ui/borrowck/borrowck-unary-move.rs
diff --git a/src/test/ui/borrowck/borrowck-unary-move.stderr b/tests/ui/borrowck/borrowck-unary-move.stderr
index aab225ed4..aab225ed4 100644
--- a/src/test/ui/borrowck/borrowck-unary-move.stderr
+++ b/tests/ui/borrowck/borrowck-unary-move.stderr
diff --git a/src/test/ui/borrowck/borrowck-unboxed-closures.rs b/tests/ui/borrowck/borrowck-unboxed-closures.rs
index f0048dd7d..f0048dd7d 100644
--- a/src/test/ui/borrowck/borrowck-unboxed-closures.rs
+++ b/tests/ui/borrowck/borrowck-unboxed-closures.rs
diff --git a/src/test/ui/borrowck/borrowck-unboxed-closures.stderr b/tests/ui/borrowck/borrowck-unboxed-closures.stderr
index d46ef126d..363467646 100644
--- a/src/test/ui/borrowck/borrowck-unboxed-closures.stderr
+++ b/tests/ui/borrowck/borrowck-unboxed-closures.stderr
@@ -11,10 +11,13 @@ LL | use_mut(g);
error[E0596]: cannot borrow `f` as mutable, as it is not declared as mutable
--> $DIR/borrowck-unboxed-closures.rs:7:5
|
-LL | fn b<F:FnMut(isize, isize) -> isize>(f: F) {
- | - help: consider changing this to be mutable: `mut f`
LL | f(1, 2);
| ^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | fn b<F:FnMut(isize, isize) -> isize>(mut f: F) {
+ | +++
error[E0382]: use of moved value: `f`
--> $DIR/borrowck-unboxed-closures.rs:12:5
diff --git a/src/test/ui/borrowck/borrowck-uninit-after-item.rs b/tests/ui/borrowck/borrowck-uninit-after-item.rs
index e97ce6aa4..e97ce6aa4 100644
--- a/src/test/ui/borrowck/borrowck-uninit-after-item.rs
+++ b/tests/ui/borrowck/borrowck-uninit-after-item.rs
diff --git a/src/test/ui/borrowck/borrowck-uninit-after-item.stderr b/tests/ui/borrowck/borrowck-uninit-after-item.stderr
index 071598b42..071598b42 100644
--- a/src/test/ui/borrowck/borrowck-uninit-after-item.stderr
+++ b/tests/ui/borrowck/borrowck-uninit-after-item.stderr
diff --git a/src/test/ui/borrowck/borrowck-uninit-field-access.rs b/tests/ui/borrowck/borrowck-uninit-field-access.rs
index bc931eef9..bc931eef9 100644
--- a/src/test/ui/borrowck/borrowck-uninit-field-access.rs
+++ b/tests/ui/borrowck/borrowck-uninit-field-access.rs
diff --git a/src/test/ui/borrowck/borrowck-uninit-field-access.stderr b/tests/ui/borrowck/borrowck-uninit-field-access.stderr
index f0f4ad704..f0f4ad704 100644
--- a/src/test/ui/borrowck/borrowck-uninit-field-access.stderr
+++ b/tests/ui/borrowck/borrowck-uninit-field-access.stderr
diff --git a/src/test/ui/borrowck/borrowck-uninit-in-assignop.rs b/tests/ui/borrowck/borrowck-uninit-in-assignop.rs
index 92c3692bd..92c3692bd 100644
--- a/src/test/ui/borrowck/borrowck-uninit-in-assignop.rs
+++ b/tests/ui/borrowck/borrowck-uninit-in-assignop.rs
diff --git a/src/test/ui/borrowck/borrowck-uninit-in-assignop.stderr b/tests/ui/borrowck/borrowck-uninit-in-assignop.stderr
index fdbb451bd..fdbb451bd 100644
--- a/src/test/ui/borrowck/borrowck-uninit-in-assignop.stderr
+++ b/tests/ui/borrowck/borrowck-uninit-in-assignop.stderr
diff --git a/src/test/ui/borrowck/borrowck-uninit-ref-chain.rs b/tests/ui/borrowck/borrowck-uninit-ref-chain.rs
index c36b9707d..c36b9707d 100644
--- a/src/test/ui/borrowck/borrowck-uninit-ref-chain.rs
+++ b/tests/ui/borrowck/borrowck-uninit-ref-chain.rs
diff --git a/src/test/ui/borrowck/borrowck-uninit-ref-chain.stderr b/tests/ui/borrowck/borrowck-uninit-ref-chain.stderr
index 73fded754..73fded754 100644
--- a/src/test/ui/borrowck/borrowck-uninit-ref-chain.stderr
+++ b/tests/ui/borrowck/borrowck-uninit-ref-chain.stderr
diff --git a/src/test/ui/borrowck/borrowck-uninit.rs b/tests/ui/borrowck/borrowck-uninit.rs
index 5d0ebabb0..5d0ebabb0 100644
--- a/src/test/ui/borrowck/borrowck-uninit.rs
+++ b/tests/ui/borrowck/borrowck-uninit.rs
diff --git a/src/test/ui/borrowck/borrowck-uninit.stderr b/tests/ui/borrowck/borrowck-uninit.stderr
index eeafc4ce1..eeafc4ce1 100644
--- a/src/test/ui/borrowck/borrowck-uninit.stderr
+++ b/tests/ui/borrowck/borrowck-uninit.stderr
diff --git a/src/test/ui/borrowck/borrowck-union-borrow-nested.rs b/tests/ui/borrowck/borrowck-union-borrow-nested.rs
index b3a6670fa..b3a6670fa 100644
--- a/src/test/ui/borrowck/borrowck-union-borrow-nested.rs
+++ b/tests/ui/borrowck/borrowck-union-borrow-nested.rs
diff --git a/src/test/ui/borrowck/borrowck-union-borrow-nested.stderr b/tests/ui/borrowck/borrowck-union-borrow-nested.stderr
index 4bd7d54cf..4bd7d54cf 100644
--- a/src/test/ui/borrowck/borrowck-union-borrow-nested.stderr
+++ b/tests/ui/borrowck/borrowck-union-borrow-nested.stderr
diff --git a/src/test/ui/borrowck/borrowck-union-borrow.rs b/tests/ui/borrowck/borrowck-union-borrow.rs
index f01915398..f01915398 100644
--- a/src/test/ui/borrowck/borrowck-union-borrow.rs
+++ b/tests/ui/borrowck/borrowck-union-borrow.rs
diff --git a/src/test/ui/borrowck/borrowck-union-borrow.stderr b/tests/ui/borrowck/borrowck-union-borrow.stderr
index 090c7b6b5..090c7b6b5 100644
--- a/src/test/ui/borrowck/borrowck-union-borrow.stderr
+++ b/tests/ui/borrowck/borrowck-union-borrow.stderr
diff --git a/src/test/ui/borrowck/borrowck-union-move-assign.rs b/tests/ui/borrowck/borrowck-union-move-assign.rs
index 4c96ccdb2..4c96ccdb2 100644
--- a/src/test/ui/borrowck/borrowck-union-move-assign.rs
+++ b/tests/ui/borrowck/borrowck-union-move-assign.rs
diff --git a/src/test/ui/borrowck/borrowck-union-move-assign.stderr b/tests/ui/borrowck/borrowck-union-move-assign.stderr
index af6f6fac4..af6f6fac4 100644
--- a/src/test/ui/borrowck/borrowck-union-move-assign.stderr
+++ b/tests/ui/borrowck/borrowck-union-move-assign.stderr
diff --git a/src/test/ui/borrowck/borrowck-union-move.rs b/tests/ui/borrowck/borrowck-union-move.rs
index 510547ad5..510547ad5 100644
--- a/src/test/ui/borrowck/borrowck-union-move.rs
+++ b/tests/ui/borrowck/borrowck-union-move.rs
diff --git a/src/test/ui/borrowck/borrowck-union-move.stderr b/tests/ui/borrowck/borrowck-union-move.stderr
index 731607fbd..731607fbd 100644
--- a/src/test/ui/borrowck/borrowck-union-move.stderr
+++ b/tests/ui/borrowck/borrowck-union-move.stderr
diff --git a/src/test/ui/borrowck/borrowck-union-uninitialized.rs b/tests/ui/borrowck/borrowck-union-uninitialized.rs
index bbe9f22aa..bbe9f22aa 100644
--- a/src/test/ui/borrowck/borrowck-union-uninitialized.rs
+++ b/tests/ui/borrowck/borrowck-union-uninitialized.rs
diff --git a/src/test/ui/borrowck/borrowck-union-uninitialized.stderr b/tests/ui/borrowck/borrowck-union-uninitialized.stderr
index b7ff5f395..b7ff5f395 100644
--- a/src/test/ui/borrowck/borrowck-union-uninitialized.stderr
+++ b/tests/ui/borrowck/borrowck-union-uninitialized.stderr
diff --git a/src/test/ui/borrowck/borrowck-uniq-via-lend.rs b/tests/ui/borrowck/borrowck-uniq-via-lend.rs
index 25d3e0b54..25d3e0b54 100644
--- a/src/test/ui/borrowck/borrowck-uniq-via-lend.rs
+++ b/tests/ui/borrowck/borrowck-uniq-via-lend.rs
diff --git a/src/test/ui/borrowck/borrowck-uniq-via-lend.stderr b/tests/ui/borrowck/borrowck-uniq-via-lend.stderr
index 6dbe4c74b..6dbe4c74b 100644
--- a/src/test/ui/borrowck/borrowck-uniq-via-lend.stderr
+++ b/tests/ui/borrowck/borrowck-uniq-via-lend.stderr
diff --git a/src/test/ui/borrowck/borrowck-uniq-via-ref.rs b/tests/ui/borrowck/borrowck-uniq-via-ref.rs
index bdf7cc57a..bdf7cc57a 100644
--- a/src/test/ui/borrowck/borrowck-uniq-via-ref.rs
+++ b/tests/ui/borrowck/borrowck-uniq-via-ref.rs
diff --git a/src/test/ui/borrowck/borrowck-univariant-enum.rs b/tests/ui/borrowck/borrowck-univariant-enum.rs
index c78e94752..c78e94752 100644
--- a/src/test/ui/borrowck/borrowck-univariant-enum.rs
+++ b/tests/ui/borrowck/borrowck-univariant-enum.rs
diff --git a/src/test/ui/borrowck/borrowck-unsafe-static-mutable-borrows.rs b/tests/ui/borrowck/borrowck-unsafe-static-mutable-borrows.rs
index adc7dfd54..adc7dfd54 100644
--- a/src/test/ui/borrowck/borrowck-unsafe-static-mutable-borrows.rs
+++ b/tests/ui/borrowck/borrowck-unsafe-static-mutable-borrows.rs
diff --git a/src/test/ui/borrowck/borrowck-unused-mut-locals.rs b/tests/ui/borrowck/borrowck-unused-mut-locals.rs
index 23ef975cb..23ef975cb 100644
--- a/src/test/ui/borrowck/borrowck-unused-mut-locals.rs
+++ b/tests/ui/borrowck/borrowck-unused-mut-locals.rs
diff --git a/src/test/ui/borrowck/borrowck-use-in-index-lvalue.rs b/tests/ui/borrowck/borrowck-use-in-index-lvalue.rs
index d30b1de5c..d30b1de5c 100644
--- a/src/test/ui/borrowck/borrowck-use-in-index-lvalue.rs
+++ b/tests/ui/borrowck/borrowck-use-in-index-lvalue.rs
diff --git a/src/test/ui/borrowck/borrowck-use-in-index-lvalue.stderr b/tests/ui/borrowck/borrowck-use-in-index-lvalue.stderr
index 18e808f10..18e808f10 100644
--- a/src/test/ui/borrowck/borrowck-use-in-index-lvalue.stderr
+++ b/tests/ui/borrowck/borrowck-use-in-index-lvalue.stderr
diff --git a/src/test/ui/borrowck/borrowck-use-mut-borrow-rpass.rs b/tests/ui/borrowck/borrowck-use-mut-borrow-rpass.rs
index 1cf763f66..1cf763f66 100644
--- a/src/test/ui/borrowck/borrowck-use-mut-borrow-rpass.rs
+++ b/tests/ui/borrowck/borrowck-use-mut-borrow-rpass.rs
diff --git a/src/test/ui/borrowck/borrowck-use-mut-borrow.rs b/tests/ui/borrowck/borrowck-use-mut-borrow.rs
index 94f88395f..94f88395f 100644
--- a/src/test/ui/borrowck/borrowck-use-mut-borrow.rs
+++ b/tests/ui/borrowck/borrowck-use-mut-borrow.rs
diff --git a/src/test/ui/borrowck/borrowck-use-mut-borrow.stderr b/tests/ui/borrowck/borrowck-use-mut-borrow.stderr
index 91d69c51e..91d69c51e 100644
--- a/src/test/ui/borrowck/borrowck-use-mut-borrow.stderr
+++ b/tests/ui/borrowck/borrowck-use-mut-borrow.stderr
diff --git a/src/test/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.rs b/tests/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.rs
index 3ce721618..3ce721618 100644
--- a/src/test/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.rs
+++ b/tests/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.rs
diff --git a/src/test/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.stderr b/tests/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.stderr
index 55f3ff553..55f3ff553 100644
--- a/src/test/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.stderr
+++ b/tests/ui/borrowck/borrowck-use-uninitialized-in-cast-trait.stderr
diff --git a/src/test/ui/borrowck/borrowck-use-uninitialized-in-cast.rs b/tests/ui/borrowck/borrowck-use-uninitialized-in-cast.rs
index a355a546d..a355a546d 100644
--- a/src/test/ui/borrowck/borrowck-use-uninitialized-in-cast.rs
+++ b/tests/ui/borrowck/borrowck-use-uninitialized-in-cast.rs
diff --git a/src/test/ui/borrowck/borrowck-use-uninitialized-in-cast.stderr b/tests/ui/borrowck/borrowck-use-uninitialized-in-cast.stderr
index ea3d0d3ef..ea3d0d3ef 100644
--- a/src/test/ui/borrowck/borrowck-use-uninitialized-in-cast.stderr
+++ b/tests/ui/borrowck/borrowck-use-uninitialized-in-cast.stderr
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-element-loan.rs b/tests/ui/borrowck/borrowck-vec-pattern-element-loan.rs
index cd853b833..cd853b833 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-element-loan.rs
+++ b/tests/ui/borrowck/borrowck-vec-pattern-element-loan.rs
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-element-loan.stderr b/tests/ui/borrowck/borrowck-vec-pattern-element-loan.stderr
index 170982b16..170982b16 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-element-loan.stderr
+++ b/tests/ui/borrowck/borrowck-vec-pattern-element-loan.stderr
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-loan-from-mut.rs b/tests/ui/borrowck/borrowck-vec-pattern-loan-from-mut.rs
index 05859c95d..05859c95d 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-loan-from-mut.rs
+++ b/tests/ui/borrowck/borrowck-vec-pattern-loan-from-mut.rs
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-loan-from-mut.stderr b/tests/ui/borrowck/borrowck-vec-pattern-loan-from-mut.stderr
index eb0f24b9b..eb0f24b9b 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-loan-from-mut.stderr
+++ b/tests/ui/borrowck/borrowck-vec-pattern-loan-from-mut.stderr
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.rs b/tests/ui/borrowck/borrowck-vec-pattern-move-tail.rs
index 9b8ba2ea8..9b8ba2ea8 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.rs
+++ b/tests/ui/borrowck/borrowck-vec-pattern-move-tail.rs
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.stderr b/tests/ui/borrowck/borrowck-vec-pattern-move-tail.stderr
index 0ac7df944..0ac7df944 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.stderr
+++ b/tests/ui/borrowck/borrowck-vec-pattern-move-tail.stderr
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs b/tests/ui/borrowck/borrowck-vec-pattern-nesting.rs
index 8a9296c59..0e9284a2c 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.rs
+++ b/tests/ui/borrowck/borrowck-vec-pattern-nesting.rs
@@ -37,7 +37,7 @@ fn c() {
&mut [_a,
//~^ NOTE data moved here
//~| NOTE move occurs because `_a` has type
- //~| HELP consider removing the `&mut`
+ //~| HELP consider removing the mutable borrow
..
] => {
}
@@ -56,7 +56,7 @@ fn d() {
//~^ ERROR cannot move out
//~| NOTE cannot move out
&mut [
- //~^ HELP consider removing the `&mut`
+ //~^ HELP consider removing the mutable borrow
_b] => {}
//~^ NOTE data moved here
//~| NOTE move occurs because `_b` has type
@@ -79,7 +79,7 @@ fn e() {
//~^ NOTE data moved here
//~| NOTE and here
//~| NOTE and here
- //~| HELP consider removing the `&mut`
+ //~| HELP consider removing the mutable borrow
_ => {}
}
let a = vec[0]; //~ ERROR cannot move out
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr b/tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr
index c3bcb7de6..0dc5e64e4 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
+++ b/tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr
@@ -34,14 +34,10 @@ LL | &mut [_a,
| data moved here
| move occurs because `_a` has type `Box<isize>`, which does not implement the `Copy` trait
|
-help: consider removing the `&mut`
+help: consider removing the mutable borrow
|
-LL ~ [_a,
-LL +
-LL +
-LL +
-LL + ..
-LL ~ ] => {
+LL - &mut [_a,
+LL + [_a,
|
error[E0508]: cannot move out of type `[Box<isize>]`, a non-copy slice
@@ -52,7 +48,11 @@ LL | let a = vec[0];
| |
| cannot move out of here
| move occurs because `vec[_]` has type `Box<isize>`, which does not implement the `Copy` trait
- | help: consider borrowing here: `&vec[0]`
+ |
+help: consider borrowing here
+ |
+LL | let a = &vec[0];
+ | +
error[E0508]: cannot move out of type `[Box<isize>]`, a non-copy slice
--> $DIR/borrowck-vec-pattern-nesting.rs:55:11
@@ -66,11 +66,10 @@ LL | _b] => {}
| data moved here
| move occurs because `_b` has type `Box<isize>`, which does not implement the `Copy` trait
|
-help: consider removing the `&mut`
+help: consider removing the mutable borrow
|
-LL ~ [
-LL +
-LL ~ _b] => {}
+LL - &mut [
+LL + [
|
error[E0508]: cannot move out of type `[Box<isize>]`, a non-copy slice
@@ -81,7 +80,11 @@ LL | let a = vec[0];
| |
| cannot move out of here
| move occurs because `vec[_]` has type `Box<isize>`, which does not implement the `Copy` trait
- | help: consider borrowing here: `&vec[0]`
+ |
+help: consider borrowing here
+ |
+LL | let a = &vec[0];
+ | +
error[E0508]: cannot move out of type `[Box<isize>]`, a non-copy slice
--> $DIR/borrowck-vec-pattern-nesting.rs:74:11
@@ -90,14 +93,17 @@ LL | match vec {
| ^^^ cannot move out of here
...
LL | &mut [_a, _b, _c] => {}
- | -----------------
- | | | | |
- | | | | ...and here
- | | | ...and here
- | | data moved here
- | help: consider removing the `&mut`: `[_a, _b, _c]`
+ | -- -- -- ...and here
+ | | |
+ | | ...and here
+ | data moved here
|
= note: move occurs because these variables have types that don't implement the `Copy` trait
+help: consider removing the mutable borrow
+ |
+LL - &mut [_a, _b, _c] => {}
+LL + [_a, _b, _c] => {}
+ |
error[E0508]: cannot move out of type `[Box<isize>]`, a non-copy slice
--> $DIR/borrowck-vec-pattern-nesting.rs:85:13
@@ -107,7 +113,11 @@ LL | let a = vec[0];
| |
| cannot move out of here
| move occurs because `vec[_]` has type `Box<isize>`, which does not implement the `Copy` trait
- | help: consider borrowing here: `&vec[0]`
+ |
+help: consider borrowing here
+ |
+LL | let a = &vec[0];
+ | +
error: aborting due to 8 previous errors
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-tail-element-loan.rs b/tests/ui/borrowck/borrowck-vec-pattern-tail-element-loan.rs
index 39872825c..39872825c 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-tail-element-loan.rs
+++ b/tests/ui/borrowck/borrowck-vec-pattern-tail-element-loan.rs
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-tail-element-loan.stderr b/tests/ui/borrowck/borrowck-vec-pattern-tail-element-loan.stderr
index 7e21c55f2..7e21c55f2 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-tail-element-loan.stderr
+++ b/tests/ui/borrowck/borrowck-vec-pattern-tail-element-loan.stderr
diff --git a/src/test/ui/borrowck/borrowck-while-break.rs b/tests/ui/borrowck/borrowck-while-break.rs
index 7100b7130..7100b7130 100644
--- a/src/test/ui/borrowck/borrowck-while-break.rs
+++ b/tests/ui/borrowck/borrowck-while-break.rs
diff --git a/src/test/ui/borrowck/borrowck-while-break.stderr b/tests/ui/borrowck/borrowck-while-break.stderr
index 13143d436..13143d436 100644
--- a/src/test/ui/borrowck/borrowck-while-break.stderr
+++ b/tests/ui/borrowck/borrowck-while-break.stderr
diff --git a/src/test/ui/borrowck/borrowck-while-cond.rs b/tests/ui/borrowck/borrowck-while-cond.rs
index 62a9bdd20..62a9bdd20 100644
--- a/src/test/ui/borrowck/borrowck-while-cond.rs
+++ b/tests/ui/borrowck/borrowck-while-cond.rs
diff --git a/src/test/ui/borrowck/borrowck-while-cond.stderr b/tests/ui/borrowck/borrowck-while-cond.stderr
index 5d0194989..5d0194989 100644
--- a/src/test/ui/borrowck/borrowck-while-cond.stderr
+++ b/tests/ui/borrowck/borrowck-while-cond.stderr
diff --git a/src/test/ui/borrowck/borrowck-while.rs b/tests/ui/borrowck/borrowck-while.rs
index f49a778eb..f49a778eb 100644
--- a/src/test/ui/borrowck/borrowck-while.rs
+++ b/tests/ui/borrowck/borrowck-while.rs
diff --git a/src/test/ui/borrowck/borrowck-while.stderr b/tests/ui/borrowck/borrowck-while.stderr
index c45235990..c45235990 100644
--- a/src/test/ui/borrowck/borrowck-while.stderr
+++ b/tests/ui/borrowck/borrowck-while.stderr
diff --git a/src/test/ui/borrowck/copy-suggestion-region-vid.rs b/tests/ui/borrowck/copy-suggestion-region-vid.rs
index dff952834..dff952834 100644
--- a/src/test/ui/borrowck/copy-suggestion-region-vid.rs
+++ b/tests/ui/borrowck/copy-suggestion-region-vid.rs
diff --git a/src/test/ui/borrowck/copy-suggestion-region-vid.stderr b/tests/ui/borrowck/copy-suggestion-region-vid.stderr
index 1685acf87..1685acf87 100644
--- a/src/test/ui/borrowck/copy-suggestion-region-vid.stderr
+++ b/tests/ui/borrowck/copy-suggestion-region-vid.stderr
diff --git a/src/test/ui/borrowck/disallow-possibly-uninitialized.rs b/tests/ui/borrowck/disallow-possibly-uninitialized.rs
index 17de40d5b..17de40d5b 100644
--- a/src/test/ui/borrowck/disallow-possibly-uninitialized.rs
+++ b/tests/ui/borrowck/disallow-possibly-uninitialized.rs
diff --git a/src/test/ui/borrowck/disallow-possibly-uninitialized.stderr b/tests/ui/borrowck/disallow-possibly-uninitialized.stderr
index 9a84c6fef..9a84c6fef 100644
--- a/src/test/ui/borrowck/disallow-possibly-uninitialized.stderr
+++ b/tests/ui/borrowck/disallow-possibly-uninitialized.stderr
diff --git a/src/test/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.rs b/tests/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.rs
index 524459291..524459291 100644
--- a/src/test/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.rs
+++ b/tests/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.rs
diff --git a/src/test/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.stderr b/tests/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.stderr
index 78ca090fe..78ca090fe 100644
--- a/src/test/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.stderr
+++ b/tests/ui/borrowck/do-not-suggest-adding-move-when-closure-is-already-marked-as-move.stderr
diff --git a/src/test/ui/borrowck/fsu-moves-and-copies.rs b/tests/ui/borrowck/fsu-moves-and-copies.rs
index 85e0a840a..85e0a840a 100644
--- a/src/test/ui/borrowck/fsu-moves-and-copies.rs
+++ b/tests/ui/borrowck/fsu-moves-and-copies.rs
diff --git a/src/test/ui/borrowck/immut-function-arguments.rs b/tests/ui/borrowck/immut-function-arguments.rs
index 242a33e82..242a33e82 100644
--- a/src/test/ui/borrowck/immut-function-arguments.rs
+++ b/tests/ui/borrowck/immut-function-arguments.rs
diff --git a/tests/ui/borrowck/immut-function-arguments.stderr b/tests/ui/borrowck/immut-function-arguments.stderr
new file mode 100644
index 000000000..d5392e7d6
--- /dev/null
+++ b/tests/ui/borrowck/immut-function-arguments.stderr
@@ -0,0 +1,25 @@
+error[E0594]: cannot assign to `*y`, as `y` is not declared as mutable
+ --> $DIR/immut-function-arguments.rs:2:5
+ |
+LL | *y = 5;
+ | ^^^^^^ cannot assign
+ |
+help: consider changing this to be mutable
+ |
+LL | fn f(mut y: Box<isize>) {
+ | +++
+
+error[E0594]: cannot assign to `*q`, as `q` is not declared as mutable
+ --> $DIR/immut-function-arguments.rs:6:35
+ |
+LL | let _frob = |q: Box<isize>| { *q = 2; };
+ | ^^^^^^ cannot assign
+ |
+help: consider changing this to be mutable
+ |
+LL | let _frob = |mut q: Box<isize>| { *q = 2; };
+ | +++
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/immutable-arg.rs b/tests/ui/borrowck/immutable-arg.rs
index 2352d1bbe..2352d1bbe 100644
--- a/src/test/ui/borrowck/immutable-arg.rs
+++ b/tests/ui/borrowck/immutable-arg.rs
diff --git a/src/test/ui/borrowck/immutable-arg.stderr b/tests/ui/borrowck/immutable-arg.stderr
index bddb0633a..bddb0633a 100644
--- a/src/test/ui/borrowck/immutable-arg.stderr
+++ b/tests/ui/borrowck/immutable-arg.stderr
diff --git a/src/test/ui/borrowck/index-mut-help-with-impl.rs b/tests/ui/borrowck/index-mut-help-with-impl.rs
index 44b57c4a0..44b57c4a0 100644
--- a/src/test/ui/borrowck/index-mut-help-with-impl.rs
+++ b/tests/ui/borrowck/index-mut-help-with-impl.rs
diff --git a/src/test/ui/borrowck/index-mut-help-with-impl.stderr b/tests/ui/borrowck/index-mut-help-with-impl.stderr
index 69dca7e7b..69dca7e7b 100644
--- a/src/test/ui/borrowck/index-mut-help-with-impl.stderr
+++ b/tests/ui/borrowck/index-mut-help-with-impl.stderr
diff --git a/src/test/ui/borrowck/index-mut-help.rs b/tests/ui/borrowck/index-mut-help.rs
index 35266e113..35266e113 100644
--- a/src/test/ui/borrowck/index-mut-help.rs
+++ b/tests/ui/borrowck/index-mut-help.rs
diff --git a/src/test/ui/borrowck/index-mut-help.stderr b/tests/ui/borrowck/index-mut-help.stderr
index f42d7e015..f42d7e015 100644
--- a/src/test/ui/borrowck/index-mut-help.stderr
+++ b/tests/ui/borrowck/index-mut-help.stderr
diff --git a/src/test/ui/borrowck/issue-101119.rs b/tests/ui/borrowck/issue-101119.rs
index 64e52eaac..64e52eaac 100644
--- a/src/test/ui/borrowck/issue-101119.rs
+++ b/tests/ui/borrowck/issue-101119.rs
diff --git a/src/test/ui/borrowck/issue-101119.stderr b/tests/ui/borrowck/issue-101119.stderr
index a22afdc67..a22afdc67 100644
--- a/src/test/ui/borrowck/issue-101119.stderr
+++ b/tests/ui/borrowck/issue-101119.stderr
diff --git a/src/test/ui/borrowck/issue-102209.rs b/tests/ui/borrowck/issue-102209.rs
index 37628bff7..37628bff7 100644
--- a/src/test/ui/borrowck/issue-102209.rs
+++ b/tests/ui/borrowck/issue-102209.rs
diff --git a/src/test/ui/borrowck/issue-102209.stderr b/tests/ui/borrowck/issue-102209.stderr
index 351de8217..351de8217 100644
--- a/src/test/ui/borrowck/issue-102209.stderr
+++ b/tests/ui/borrowck/issue-102209.stderr
diff --git a/tests/ui/borrowck/issue-103095.rs b/tests/ui/borrowck/issue-103095.rs
new file mode 100644
index 000000000..0340f3924
--- /dev/null
+++ b/tests/ui/borrowck/issue-103095.rs
@@ -0,0 +1,30 @@
+// check-pass
+
+trait FnOnceForGenericRef<T>: FnOnce(&T) -> Self::FnOutput {
+ type FnOutput;
+}
+
+impl<T, R, F: FnOnce(&T) -> R> FnOnceForGenericRef<T> for F {
+ type FnOutput = R;
+}
+
+struct Data<T, D: FnOnceForGenericRef<T>> {
+ value: Option<T>,
+ output: Option<D::FnOutput>,
+}
+
+impl<T, D: FnOnceForGenericRef<T>> Data<T, D> {
+ fn new(value: T, f: D) -> Self {
+ let output = f(&value);
+ Self {
+ value: Some(value),
+ output: Some(output),
+ }
+ }
+}
+
+fn test() {
+ Data::new(String::new(), |_| {});
+}
+
+fn main() {}
diff --git a/src/test/ui/borrowck/issue-103250.rs b/tests/ui/borrowck/issue-103250.rs
index 46565f61c..46565f61c 100644
--- a/src/test/ui/borrowck/issue-103250.rs
+++ b/tests/ui/borrowck/issue-103250.rs
diff --git a/src/test/ui/borrowck/issue-103250.stderr b/tests/ui/borrowck/issue-103250.stderr
index 4a2378352..4a2378352 100644
--- a/src/test/ui/borrowck/issue-103250.stderr
+++ b/tests/ui/borrowck/issue-103250.stderr
diff --git a/src/test/ui/borrowck/issue-103624.rs b/tests/ui/borrowck/issue-103624.rs
index f1fa95f92..f1fa95f92 100644
--- a/src/test/ui/borrowck/issue-103624.rs
+++ b/tests/ui/borrowck/issue-103624.rs
diff --git a/src/test/ui/borrowck/issue-103624.stderr b/tests/ui/borrowck/issue-103624.stderr
index e6a35dd88..e6a35dd88 100644
--- a/src/test/ui/borrowck/issue-103624.stderr
+++ b/tests/ui/borrowck/issue-103624.stderr
diff --git a/tests/ui/borrowck/issue-104639-lifetime-order.rs b/tests/ui/borrowck/issue-104639-lifetime-order.rs
new file mode 100644
index 000000000..db1f8f8d5
--- /dev/null
+++ b/tests/ui/borrowck/issue-104639-lifetime-order.rs
@@ -0,0 +1,10 @@
+// edition:2018
+// check-pass
+
+#![allow(dead_code)]
+async fn fail<'a, 'b, 'c>(_: &'static str) where 'a: 'c, 'b: 'c, {}
+async fn pass<'a, 'c, 'b>(_: &'static str) where 'a: 'c, 'b: 'c, {}
+async fn pass2<'a, 'b, 'c>(_: &'static str) where 'a: 'c, 'b: 'c, 'c: 'a, {}
+async fn pass3<'a, 'b, 'c>(_: &'static str) where 'a: 'b, 'b: 'c, 'c: 'a, {}
+
+fn main() { }
diff --git a/src/test/ui/borrowck/issue-10876.rs b/tests/ui/borrowck/issue-10876.rs
index 22eaa119f..22eaa119f 100644
--- a/src/test/ui/borrowck/issue-10876.rs
+++ b/tests/ui/borrowck/issue-10876.rs
diff --git a/src/test/ui/borrowck/issue-11493.fixed b/tests/ui/borrowck/issue-11493.fixed
index 139bd9a07..139bd9a07 100644
--- a/src/test/ui/borrowck/issue-11493.fixed
+++ b/tests/ui/borrowck/issue-11493.fixed
diff --git a/src/test/ui/borrowck/issue-11493.rs b/tests/ui/borrowck/issue-11493.rs
index cb77f89fb..cb77f89fb 100644
--- a/src/test/ui/borrowck/issue-11493.rs
+++ b/tests/ui/borrowck/issue-11493.rs
diff --git a/src/test/ui/borrowck/issue-11493.stderr b/tests/ui/borrowck/issue-11493.stderr
index 2720b09b0..2720b09b0 100644
--- a/src/test/ui/borrowck/issue-11493.stderr
+++ b/tests/ui/borrowck/issue-11493.stderr
diff --git a/src/test/ui/borrowck/issue-17263.rs b/tests/ui/borrowck/issue-17263.rs
index 4f560b065..4f560b065 100644
--- a/src/test/ui/borrowck/issue-17263.rs
+++ b/tests/ui/borrowck/issue-17263.rs
diff --git a/src/test/ui/borrowck/issue-17545.rs b/tests/ui/borrowck/issue-17545.rs
index ced6fff31..ced6fff31 100644
--- a/src/test/ui/borrowck/issue-17545.rs
+++ b/tests/ui/borrowck/issue-17545.rs
diff --git a/src/test/ui/borrowck/issue-17545.stderr b/tests/ui/borrowck/issue-17545.stderr
index 3ae7e64d2..3ae7e64d2 100644
--- a/src/test/ui/borrowck/issue-17545.stderr
+++ b/tests/ui/borrowck/issue-17545.stderr
diff --git a/src/test/ui/borrowck/issue-17718-static-move.rs b/tests/ui/borrowck/issue-17718-static-move.rs
index 015487a06..015487a06 100644
--- a/src/test/ui/borrowck/issue-17718-static-move.rs
+++ b/tests/ui/borrowck/issue-17718-static-move.rs
diff --git a/tests/ui/borrowck/issue-17718-static-move.stderr b/tests/ui/borrowck/issue-17718-static-move.stderr
new file mode 100644
index 000000000..65aea5b18
--- /dev/null
+++ b/tests/ui/borrowck/issue-17718-static-move.stderr
@@ -0,0 +1,14 @@
+error[E0507]: cannot move out of static item `FOO`
+ --> $DIR/issue-17718-static-move.rs:6:14
+ |
+LL | let _a = FOO;
+ | ^^^ move occurs because `FOO` has type `Foo`, which does not implement the `Copy` trait
+ |
+help: consider borrowing here
+ |
+LL | let _a = &FOO;
+ | +
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/issue-20801.rs b/tests/ui/borrowck/issue-20801.rs
index c3f136f28..c3f136f28 100644
--- a/src/test/ui/borrowck/issue-20801.rs
+++ b/tests/ui/borrowck/issue-20801.rs
diff --git a/tests/ui/borrowck/issue-20801.stderr b/tests/ui/borrowck/issue-20801.stderr
new file mode 100644
index 000000000..215bf0100
--- /dev/null
+++ b/tests/ui/borrowck/issue-20801.stderr
@@ -0,0 +1,51 @@
+error[E0507]: cannot move out of a mutable reference
+ --> $DIR/issue-20801.rs:26:22
+ |
+LL | let a = unsafe { *mut_ref() };
+ | ^^^^^^^^^^ move occurs because value has type `T`, which does not implement the `Copy` trait
+ |
+help: consider removing the dereference here
+ |
+LL - let a = unsafe { *mut_ref() };
+LL + let a = unsafe { mut_ref() };
+ |
+
+error[E0507]: cannot move out of a shared reference
+ --> $DIR/issue-20801.rs:29:22
+ |
+LL | let b = unsafe { *imm_ref() };
+ | ^^^^^^^^^^ move occurs because value has type `T`, which does not implement the `Copy` trait
+ |
+help: consider removing the dereference here
+ |
+LL - let b = unsafe { *imm_ref() };
+LL + let b = unsafe { imm_ref() };
+ |
+
+error[E0507]: cannot move out of a raw pointer
+ --> $DIR/issue-20801.rs:32:22
+ |
+LL | let c = unsafe { *mut_ptr() };
+ | ^^^^^^^^^^ move occurs because value has type `T`, which does not implement the `Copy` trait
+ |
+help: consider removing the dereference here
+ |
+LL - let c = unsafe { *mut_ptr() };
+LL + let c = unsafe { mut_ptr() };
+ |
+
+error[E0507]: cannot move out of a raw pointer
+ --> $DIR/issue-20801.rs:35:22
+ |
+LL | let d = unsafe { *const_ptr() };
+ | ^^^^^^^^^^^^ move occurs because value has type `T`, which does not implement the `Copy` trait
+ |
+help: consider removing the dereference here
+ |
+LL - let d = unsafe { *const_ptr() };
+LL + let d = unsafe { const_ptr() };
+ |
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/issue-23338-params-outlive-temps-of-body.rs b/tests/ui/borrowck/issue-23338-params-outlive-temps-of-body.rs
index d45aaa843..d45aaa843 100644
--- a/src/test/ui/borrowck/issue-23338-params-outlive-temps-of-body.rs
+++ b/tests/ui/borrowck/issue-23338-params-outlive-temps-of-body.rs
diff --git a/src/test/ui/borrowck/issue-24267-flow-exit.rs b/tests/ui/borrowck/issue-24267-flow-exit.rs
index c419c5840..c419c5840 100644
--- a/src/test/ui/borrowck/issue-24267-flow-exit.rs
+++ b/tests/ui/borrowck/issue-24267-flow-exit.rs
diff --git a/src/test/ui/borrowck/issue-24267-flow-exit.stderr b/tests/ui/borrowck/issue-24267-flow-exit.stderr
index 58d1c8c0f..58d1c8c0f 100644
--- a/src/test/ui/borrowck/issue-24267-flow-exit.stderr
+++ b/tests/ui/borrowck/issue-24267-flow-exit.stderr
diff --git a/src/test/ui/borrowck/issue-25793.rs b/tests/ui/borrowck/issue-25793.rs
index 6c8dacc22..6c8dacc22 100644
--- a/src/test/ui/borrowck/issue-25793.rs
+++ b/tests/ui/borrowck/issue-25793.rs
diff --git a/src/test/ui/borrowck/issue-25793.stderr b/tests/ui/borrowck/issue-25793.stderr
index da3412f11..da3412f11 100644
--- a/src/test/ui/borrowck/issue-25793.stderr
+++ b/tests/ui/borrowck/issue-25793.stderr
diff --git a/src/test/ui/borrowck/issue-28934.rs b/tests/ui/borrowck/issue-28934.rs
index 1e48878f6..1e48878f6 100644
--- a/src/test/ui/borrowck/issue-28934.rs
+++ b/tests/ui/borrowck/issue-28934.rs
diff --git a/src/test/ui/issues/issue-29166.rs b/tests/ui/borrowck/issue-29166.rs
index ca819ba39..ca819ba39 100644
--- a/src/test/ui/issues/issue-29166.rs
+++ b/tests/ui/borrowck/issue-29166.rs
diff --git a/tests/ui/borrowck/issue-31287-drop-in-guard.rs b/tests/ui/borrowck/issue-31287-drop-in-guard.rs
new file mode 100644
index 000000000..5b824adc6
--- /dev/null
+++ b/tests/ui/borrowck/issue-31287-drop-in-guard.rs
@@ -0,0 +1,15 @@
+#![feature(if_let_guard)]
+
+fn main() {
+ let a = Some("...".to_owned());
+ let b = match a {
+ Some(_) if { drop(a); false } => None,
+ x => x, //~ ERROR use of moved value: `a`
+ };
+
+ let a = Some("...".to_owned());
+ let b = match a {
+ Some(_) if let Some(()) = { drop(a); None } => None,
+ x => x, //~ ERROR use of moved value: `a`
+ };
+}
diff --git a/tests/ui/borrowck/issue-31287-drop-in-guard.stderr b/tests/ui/borrowck/issue-31287-drop-in-guard.stderr
new file mode 100644
index 000000000..18f371c20
--- /dev/null
+++ b/tests/ui/borrowck/issue-31287-drop-in-guard.stderr
@@ -0,0 +1,35 @@
+error[E0382]: use of moved value: `a`
+ --> $DIR/issue-31287-drop-in-guard.rs:7:9
+ |
+LL | let a = Some("...".to_owned());
+ | - move occurs because `a` has type `Option<String>`, which does not implement the `Copy` trait
+LL | let b = match a {
+LL | Some(_) if { drop(a); false } => None,
+ | - value moved here
+LL | x => x,
+ | ^ value used here after move
+ |
+help: consider cloning the value if the performance cost is acceptable
+ |
+LL | Some(_) if { drop(a.clone()); false } => None,
+ | ++++++++
+
+error[E0382]: use of moved value: `a`
+ --> $DIR/issue-31287-drop-in-guard.rs:13:9
+ |
+LL | let a = Some("...".to_owned());
+ | - move occurs because `a` has type `Option<String>`, which does not implement the `Copy` trait
+LL | let b = match a {
+LL | Some(_) if let Some(()) = { drop(a); None } => None,
+ | - value moved here
+LL | x => x,
+ | ^ value used here after move
+ |
+help: consider cloning the value if the performance cost is acceptable
+ |
+LL | Some(_) if let Some(()) = { drop(a.clone()); None } => None,
+ | ++++++++
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/issue-33819.rs b/tests/ui/borrowck/issue-33819.rs
index fff5015cd..fff5015cd 100644
--- a/src/test/ui/borrowck/issue-33819.rs
+++ b/tests/ui/borrowck/issue-33819.rs
diff --git a/src/test/ui/borrowck/issue-33819.stderr b/tests/ui/borrowck/issue-33819.stderr
index f77fdbf2b..f77fdbf2b 100644
--- a/src/test/ui/borrowck/issue-33819.stderr
+++ b/tests/ui/borrowck/issue-33819.stderr
diff --git a/src/test/ui/borrowck/issue-36082.fixed b/tests/ui/borrowck/issue-36082.fixed
index 8fc963a85..8fc963a85 100644
--- a/src/test/ui/borrowck/issue-36082.fixed
+++ b/tests/ui/borrowck/issue-36082.fixed
diff --git a/src/test/ui/borrowck/issue-36082.rs b/tests/ui/borrowck/issue-36082.rs
index 20f66b4d4..20f66b4d4 100644
--- a/src/test/ui/borrowck/issue-36082.rs
+++ b/tests/ui/borrowck/issue-36082.rs
diff --git a/src/test/ui/borrowck/issue-36082.stderr b/tests/ui/borrowck/issue-36082.stderr
index a6357f818..a6357f818 100644
--- a/src/test/ui/borrowck/issue-36082.stderr
+++ b/tests/ui/borrowck/issue-36082.stderr
diff --git a/src/test/ui/borrowck/issue-41962.rs b/tests/ui/borrowck/issue-41962.rs
index 38a01b138..38a01b138 100644
--- a/src/test/ui/borrowck/issue-41962.rs
+++ b/tests/ui/borrowck/issue-41962.rs
diff --git a/src/test/ui/borrowck/issue-41962.stderr b/tests/ui/borrowck/issue-41962.stderr
index 716cc9d0c..716cc9d0c 100644
--- a/src/test/ui/borrowck/issue-41962.stderr
+++ b/tests/ui/borrowck/issue-41962.stderr
diff --git a/src/test/ui/borrowck/issue-42344.rs b/tests/ui/borrowck/issue-42344.rs
index a7636edf2..a7636edf2 100644
--- a/src/test/ui/borrowck/issue-42344.rs
+++ b/tests/ui/borrowck/issue-42344.rs
diff --git a/src/test/ui/borrowck/issue-42344.stderr b/tests/ui/borrowck/issue-42344.stderr
index 29b4c8c38..29b4c8c38 100644
--- a/src/test/ui/borrowck/issue-42344.stderr
+++ b/tests/ui/borrowck/issue-42344.stderr
diff --git a/src/test/ui/borrowck/issue-45199.rs b/tests/ui/borrowck/issue-45199.rs
index ded46e56e..ded46e56e 100644
--- a/src/test/ui/borrowck/issue-45199.rs
+++ b/tests/ui/borrowck/issue-45199.rs
diff --git a/src/test/ui/borrowck/issue-45199.stderr b/tests/ui/borrowck/issue-45199.stderr
index 47aa30908..47aa30908 100644
--- a/src/test/ui/borrowck/issue-45199.stderr
+++ b/tests/ui/borrowck/issue-45199.stderr
diff --git a/src/test/ui/borrowck/issue-45983.rs b/tests/ui/borrowck/issue-45983.rs
index 6784f6f86..6784f6f86 100644
--- a/src/test/ui/borrowck/issue-45983.rs
+++ b/tests/ui/borrowck/issue-45983.rs
diff --git a/src/test/ui/borrowck/issue-45983.stderr b/tests/ui/borrowck/issue-45983.stderr
index feb098c59..feb098c59 100644
--- a/src/test/ui/borrowck/issue-45983.stderr
+++ b/tests/ui/borrowck/issue-45983.stderr
diff --git a/src/test/ui/borrowck/issue-46095.rs b/tests/ui/borrowck/issue-46095.rs
index 59ddb60c9..59ddb60c9 100644
--- a/src/test/ui/borrowck/issue-46095.rs
+++ b/tests/ui/borrowck/issue-46095.rs
diff --git a/src/test/ui/borrowck/issue-46471.rs b/tests/ui/borrowck/issue-46471.rs
index 8922005d2..8922005d2 100644
--- a/src/test/ui/borrowck/issue-46471.rs
+++ b/tests/ui/borrowck/issue-46471.rs
diff --git a/src/test/ui/borrowck/issue-46471.stderr b/tests/ui/borrowck/issue-46471.stderr
index 935414c1f..935414c1f 100644
--- a/src/test/ui/borrowck/issue-46471.stderr
+++ b/tests/ui/borrowck/issue-46471.stderr
diff --git a/src/test/ui/borrowck/issue-47215-ice-from-drop-elab.rs b/tests/ui/borrowck/issue-47215-ice-from-drop-elab.rs
index e95a6b7c8..e95a6b7c8 100644
--- a/src/test/ui/borrowck/issue-47215-ice-from-drop-elab.rs
+++ b/tests/ui/borrowck/issue-47215-ice-from-drop-elab.rs
diff --git a/tests/ui/borrowck/issue-47215-ice-from-drop-elab.stderr b/tests/ui/borrowck/issue-47215-ice-from-drop-elab.stderr
new file mode 100644
index 000000000..8d4918867
--- /dev/null
+++ b/tests/ui/borrowck/issue-47215-ice-from-drop-elab.stderr
@@ -0,0 +1,14 @@
+error[E0507]: cannot move out of static item `X`
+ --> $DIR/issue-47215-ice-from-drop-elab.rs:17:21
+ |
+LL | let mut x = X;
+ | ^ move occurs because `X` has type `AtomicUsize`, which does not implement the `Copy` trait
+ |
+help: consider borrowing here
+ |
+LL | let mut x = &X;
+ | +
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/issue-51117.rs b/tests/ui/borrowck/issue-51117.rs
index e4664e4f3..e4664e4f3 100644
--- a/src/test/ui/borrowck/issue-51117.rs
+++ b/tests/ui/borrowck/issue-51117.rs
diff --git a/src/test/ui/borrowck/issue-51117.stderr b/tests/ui/borrowck/issue-51117.stderr
index ef1a16ea9..ef1a16ea9 100644
--- a/src/test/ui/borrowck/issue-51117.stderr
+++ b/tests/ui/borrowck/issue-51117.stderr
diff --git a/src/test/ui/issues/issue-51301.rs b/tests/ui/borrowck/issue-51301.rs
index 7e0a5190f..7e0a5190f 100644
--- a/src/test/ui/issues/issue-51301.rs
+++ b/tests/ui/borrowck/issue-51301.rs
diff --git a/src/test/ui/issues/issue-51301.stderr b/tests/ui/borrowck/issue-51301.stderr
index f3decf7a9..6ec920cb8 100644
--- a/src/test/ui/issues/issue-51301.stderr
+++ b/tests/ui/borrowck/issue-51301.stderr
@@ -6,6 +6,11 @@ LL | .find(|(&event_type, _)| event == event_type)
| |
| data moved here
| move occurs because `event_type` has type `EventType`, which does not implement the `Copy` trait
+ |
+help: consider borrowing the pattern binding
+ |
+LL | .find(|(&ref event_type, _)| event == event_type)
+ | +++
error: aborting due to previous error
diff --git a/src/test/ui/borrowck/issue-51348-multi-ref-mut-in-guard.rs b/tests/ui/borrowck/issue-51348-multi-ref-mut-in-guard.rs
index 7d5acb957..7d5acb957 100644
--- a/src/test/ui/borrowck/issue-51348-multi-ref-mut-in-guard.rs
+++ b/tests/ui/borrowck/issue-51348-multi-ref-mut-in-guard.rs
diff --git a/tests/ui/borrowck/issue-51415.fixed b/tests/ui/borrowck/issue-51415.fixed
new file mode 100644
index 000000000..92943f6c9
--- /dev/null
+++ b/tests/ui/borrowck/issue-51415.fixed
@@ -0,0 +1,12 @@
+// run-rustfix
+// Regression test for #51415: match default bindings were failing to
+// see the "move out" implied by `&s` below.
+
+fn main() {
+ let a = vec![String::from("a")];
+ let opt = a.iter().enumerate().find(|(_, &ref s)| {
+ //~^ ERROR cannot move out
+ *s == String::from("d")
+ }).map(|(i, _)| i);
+ println!("{:?}", opt);
+}
diff --git a/src/test/ui/borrowck/issue-51415.rs b/tests/ui/borrowck/issue-51415.rs
index f031308fb..56ed57a61 100644
--- a/src/test/ui/borrowck/issue-51415.rs
+++ b/tests/ui/borrowck/issue-51415.rs
@@ -1,3 +1,4 @@
+// run-rustfix
// Regression test for #51415: match default bindings were failing to
// see the "move out" implied by `&s` below.
diff --git a/tests/ui/borrowck/issue-51415.stderr b/tests/ui/borrowck/issue-51415.stderr
new file mode 100644
index 000000000..0d486b455
--- /dev/null
+++ b/tests/ui/borrowck/issue-51415.stderr
@@ -0,0 +1,17 @@
+error[E0507]: cannot move out of a shared reference
+ --> $DIR/issue-51415.rs:7:42
+ |
+LL | let opt = a.iter().enumerate().find(|(_, &s)| {
+ | ^^^^^-^
+ | |
+ | data moved here
+ | move occurs because `s` has type `String`, which does not implement the `Copy` trait
+ |
+help: consider borrowing the pattern binding
+ |
+LL | let opt = a.iter().enumerate().find(|(_, &ref s)| {
+ | +++
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/issue-52713-bug.rs b/tests/ui/borrowck/issue-52713-bug.rs
index 671e83dfa..671e83dfa 100644
--- a/src/test/ui/borrowck/issue-52713-bug.rs
+++ b/tests/ui/borrowck/issue-52713-bug.rs
diff --git a/src/test/ui/borrowck/issue-52713-bug.stderr b/tests/ui/borrowck/issue-52713-bug.stderr
index 4abb6fb2c..4abb6fb2c 100644
--- a/src/test/ui/borrowck/issue-52713-bug.stderr
+++ b/tests/ui/borrowck/issue-52713-bug.stderr
diff --git a/src/test/ui/borrowck/issue-52967-edition-2018-needs-two-phase-borrows.rs b/tests/ui/borrowck/issue-52967-edition-2018-needs-two-phase-borrows.rs
index fc8a07554..fc8a07554 100644
--- a/src/test/ui/borrowck/issue-52967-edition-2018-needs-two-phase-borrows.rs
+++ b/tests/ui/borrowck/issue-52967-edition-2018-needs-two-phase-borrows.rs
diff --git a/src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.rs b/tests/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.rs
index f1fd1b507..f1fd1b507 100644
--- a/src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.rs
+++ b/tests/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.rs
diff --git a/src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.stderr b/tests/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.stderr
index f0b574846..f0b574846 100644
--- a/src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.stderr
+++ b/tests/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.stderr
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.rs b/tests/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.rs
index 205ea10c9..205ea10c9 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.rs
+++ b/tests/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.rs
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.stderr b/tests/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.stderr
index 2a0eba396..2a0eba396 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.stderr
+++ b/tests/ui/borrowck/issue-54499-field-mutation-marks-mut-as-used.stderr
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.rs b/tests/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.rs
index f7fb2fd4d..f7fb2fd4d 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.rs
+++ b/tests/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.rs
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.stderr b/tests/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.stderr
index b188766e2..b188766e2 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.stderr
+++ b/tests/ui/borrowck/issue-54499-field-mutation-of-moved-out-with-mut.stderr
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.rs b/tests/ui/borrowck/issue-54499-field-mutation-of-moved-out.rs
index 498ca01e9..498ca01e9 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.rs
+++ b/tests/ui/borrowck/issue-54499-field-mutation-of-moved-out.rs
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr b/tests/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr
index b7623a540..774b6cf0e 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr
+++ b/tests/ui/borrowck/issue-54499-field-mutation-of-moved-out.stderr
@@ -1,11 +1,13 @@
error[E0594]: cannot assign to `t.0`, as `t` is not declared as mutable
--> $DIR/issue-54499-field-mutation-of-moved-out.rs:13:9
|
-LL | let t: Tuple = (S(0), 0);
- | - help: consider changing this to be mutable: `mut t`
-LL | drop(t);
LL | t.0 = S(1);
| ^^^^^^^^^^ cannot assign
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut t: Tuple = (S(0), 0);
+ | +++
error[E0382]: assign to part of moved value: `t`
--> $DIR/issue-54499-field-mutation-of-moved-out.rs:13:9
@@ -20,20 +22,24 @@ LL | t.0 = S(1);
error[E0594]: cannot assign to `t.1`, as `t` is not declared as mutable
--> $DIR/issue-54499-field-mutation-of-moved-out.rs:16:9
|
-LL | let t: Tuple = (S(0), 0);
- | - help: consider changing this to be mutable: `mut t`
-...
LL | t.1 = 2;
| ^^^^^^^ cannot assign
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut t: Tuple = (S(0), 0);
+ | +++
error[E0594]: cannot assign to `u.0`, as `u` is not declared as mutable
--> $DIR/issue-54499-field-mutation-of-moved-out.rs:24:9
|
-LL | let u: Tpair = Tpair(S(0), 0);
- | - help: consider changing this to be mutable: `mut u`
-LL | drop(u);
LL | u.0 = S(1);
| ^^^^^^^^^^ cannot assign
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut u: Tpair = Tpair(S(0), 0);
+ | +++
error[E0382]: assign to part of moved value: `u`
--> $DIR/issue-54499-field-mutation-of-moved-out.rs:24:9
@@ -48,20 +54,24 @@ LL | u.0 = S(1);
error[E0594]: cannot assign to `u.1`, as `u` is not declared as mutable
--> $DIR/issue-54499-field-mutation-of-moved-out.rs:27:9
|
-LL | let u: Tpair = Tpair(S(0), 0);
- | - help: consider changing this to be mutable: `mut u`
-...
LL | u.1 = 2;
| ^^^^^^^ cannot assign
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut u: Tpair = Tpair(S(0), 0);
+ | +++
error[E0594]: cannot assign to `v.x`, as `v` is not declared as mutable
--> $DIR/issue-54499-field-mutation-of-moved-out.rs:35:9
|
-LL | let v: Spair = Spair { x: S(0), y: 0 };
- | - help: consider changing this to be mutable: `mut v`
-LL | drop(v);
LL | v.x = S(1);
| ^^^^^^^^^^ cannot assign
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut v: Spair = Spair { x: S(0), y: 0 };
+ | +++
error[E0382]: assign to part of moved value: `v`
--> $DIR/issue-54499-field-mutation-of-moved-out.rs:35:9
@@ -76,11 +86,13 @@ LL | v.x = S(1);
error[E0594]: cannot assign to `v.y`, as `v` is not declared as mutable
--> $DIR/issue-54499-field-mutation-of-moved-out.rs:38:9
|
-LL | let v: Spair = Spair { x: S(0), y: 0 };
- | - help: consider changing this to be mutable: `mut v`
-...
LL | v.y = 2;
| ^^^^^^^ cannot assign
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut v: Spair = Spair { x: S(0), y: 0 };
+ | +++
error: aborting due to 9 previous errors
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-of-never-init.rs b/tests/ui/borrowck/issue-54499-field-mutation-of-never-init.rs
index 50d0c40fd..50d0c40fd 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-of-never-init.rs
+++ b/tests/ui/borrowck/issue-54499-field-mutation-of-never-init.rs
diff --git a/src/test/ui/borrowck/issue-54499-field-mutation-of-never-init.stderr b/tests/ui/borrowck/issue-54499-field-mutation-of-never-init.stderr
index 67a625830..67a625830 100644
--- a/src/test/ui/borrowck/issue-54499-field-mutation-of-never-init.stderr
+++ b/tests/ui/borrowck/issue-54499-field-mutation-of-never-init.stderr
diff --git a/src/test/ui/borrowck/issue-54597-reject-move-out-of-borrow-via-pat.rs b/tests/ui/borrowck/issue-54597-reject-move-out-of-borrow-via-pat.rs
index 3e46ee6f0..3e46ee6f0 100644
--- a/src/test/ui/borrowck/issue-54597-reject-move-out-of-borrow-via-pat.rs
+++ b/tests/ui/borrowck/issue-54597-reject-move-out-of-borrow-via-pat.rs
diff --git a/tests/ui/borrowck/issue-54597-reject-move-out-of-borrow-via-pat.stderr b/tests/ui/borrowck/issue-54597-reject-move-out-of-borrow-via-pat.stderr
new file mode 100644
index 000000000..99c63e4db
--- /dev/null
+++ b/tests/ui/borrowck/issue-54597-reject-move-out-of-borrow-via-pat.stderr
@@ -0,0 +1,15 @@
+error[E0507]: cannot move out of `*array` which is behind a shared reference
+ --> $DIR/issue-54597-reject-move-out-of-borrow-via-pat.rs:14:13
+ |
+LL | *array
+ | ^^^^^^ move occurs because `*array` has type `Vec<Value>`, which does not implement the `Copy` trait
+ |
+help: consider removing the dereference here
+ |
+LL - *array
+LL + array
+ |
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.rs b/tests/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.rs
index b3cce1b3a..b3cce1b3a 100644
--- a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.rs
+++ b/tests/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.rs
diff --git a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.stderr b/tests/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.stderr
index 4c299cdc4..4c299cdc4 100644
--- a/src/test/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.stderr
+++ b/tests/ui/borrowck/issue-55492-borrowck-migrate-scans-parents.stderr
diff --git a/src/test/ui/borrowck/issue-55552-ascribe-wildcard-to-structured-pattern.rs b/tests/ui/borrowck/issue-55552-ascribe-wildcard-to-structured-pattern.rs
index b87ef3baa..b87ef3baa 100644
--- a/src/test/ui/borrowck/issue-55552-ascribe-wildcard-to-structured-pattern.rs
+++ b/tests/ui/borrowck/issue-55552-ascribe-wildcard-to-structured-pattern.rs
diff --git a/src/test/ui/borrowck/issue-58776-borrowck-scans-children.rs b/tests/ui/borrowck/issue-58776-borrowck-scans-children.rs
index efa313a9d..efa313a9d 100644
--- a/src/test/ui/borrowck/issue-58776-borrowck-scans-children.rs
+++ b/tests/ui/borrowck/issue-58776-borrowck-scans-children.rs
diff --git a/src/test/ui/borrowck/issue-58776-borrowck-scans-children.stderr b/tests/ui/borrowck/issue-58776-borrowck-scans-children.stderr
index 57803247b..57803247b 100644
--- a/src/test/ui/borrowck/issue-58776-borrowck-scans-children.stderr
+++ b/tests/ui/borrowck/issue-58776-borrowck-scans-children.stderr
diff --git a/src/test/ui/borrowck/issue-62007-assign-box.rs b/tests/ui/borrowck/issue-62007-assign-box.rs
index f6fbea821..f6fbea821 100644
--- a/src/test/ui/borrowck/issue-62007-assign-box.rs
+++ b/tests/ui/borrowck/issue-62007-assign-box.rs
diff --git a/src/test/ui/borrowck/issue-62007-assign-field.rs b/tests/ui/borrowck/issue-62007-assign-field.rs
index 5b21c0838..5b21c0838 100644
--- a/src/test/ui/borrowck/issue-62007-assign-field.rs
+++ b/tests/ui/borrowck/issue-62007-assign-field.rs
diff --git a/src/test/ui/borrowck/issue-62107-match-arm-scopes.rs b/tests/ui/borrowck/issue-62107-match-arm-scopes.rs
index 93ce34d2f..93ce34d2f 100644
--- a/src/test/ui/borrowck/issue-62107-match-arm-scopes.rs
+++ b/tests/ui/borrowck/issue-62107-match-arm-scopes.rs
diff --git a/src/test/ui/borrowck/issue-62107-match-arm-scopes.stderr b/tests/ui/borrowck/issue-62107-match-arm-scopes.stderr
index 9683da919..9683da919 100644
--- a/src/test/ui/borrowck/issue-62107-match-arm-scopes.stderr
+++ b/tests/ui/borrowck/issue-62107-match-arm-scopes.stderr
diff --git a/src/test/ui/borrowck/issue-64453.rs b/tests/ui/borrowck/issue-64453.rs
index 33d55be58..33d55be58 100644
--- a/src/test/ui/borrowck/issue-64453.rs
+++ b/tests/ui/borrowck/issue-64453.rs
diff --git a/src/test/ui/borrowck/issue-64453.stderr b/tests/ui/borrowck/issue-64453.stderr
index 245c3a40e..245c3a40e 100644
--- a/src/test/ui/borrowck/issue-64453.stderr
+++ b/tests/ui/borrowck/issue-64453.stderr
diff --git a/src/test/ui/borrowck/issue-69789-iterator-mut-suggestion.rs b/tests/ui/borrowck/issue-69789-iterator-mut-suggestion.rs
index f6d0e9e04..f6d0e9e04 100644
--- a/src/test/ui/borrowck/issue-69789-iterator-mut-suggestion.rs
+++ b/tests/ui/borrowck/issue-69789-iterator-mut-suggestion.rs
diff --git a/src/test/ui/borrowck/issue-69789-iterator-mut-suggestion.stderr b/tests/ui/borrowck/issue-69789-iterator-mut-suggestion.stderr
index 369a8c61d..369a8c61d 100644
--- a/src/test/ui/borrowck/issue-69789-iterator-mut-suggestion.stderr
+++ b/tests/ui/borrowck/issue-69789-iterator-mut-suggestion.stderr
diff --git a/src/test/ui/borrowck/issue-71546.rs b/tests/ui/borrowck/issue-71546.rs
index 42100edea..42100edea 100644
--- a/src/test/ui/borrowck/issue-71546.rs
+++ b/tests/ui/borrowck/issue-71546.rs
diff --git a/src/test/ui/borrowck/issue-7573.rs b/tests/ui/borrowck/issue-7573.rs
index 7c0741153..7c0741153 100644
--- a/src/test/ui/borrowck/issue-7573.rs
+++ b/tests/ui/borrowck/issue-7573.rs
diff --git a/src/test/ui/borrowck/issue-7573.stderr b/tests/ui/borrowck/issue-7573.stderr
index 9d86286b8..9d86286b8 100644
--- a/src/test/ui/borrowck/issue-7573.stderr
+++ b/tests/ui/borrowck/issue-7573.stderr
diff --git a/src/test/ui/borrowck/issue-80772.rs b/tests/ui/borrowck/issue-80772.rs
index 1b8caa3f8..1b8caa3f8 100644
--- a/src/test/ui/borrowck/issue-80772.rs
+++ b/tests/ui/borrowck/issue-80772.rs
diff --git a/src/test/ui/borrowck/issue-81365-1.rs b/tests/ui/borrowck/issue-81365-1.rs
index 8e212a770..8e212a770 100644
--- a/src/test/ui/borrowck/issue-81365-1.rs
+++ b/tests/ui/borrowck/issue-81365-1.rs
diff --git a/src/test/ui/borrowck/issue-81365-1.stderr b/tests/ui/borrowck/issue-81365-1.stderr
index d79394834..d79394834 100644
--- a/src/test/ui/borrowck/issue-81365-1.stderr
+++ b/tests/ui/borrowck/issue-81365-1.stderr
diff --git a/src/test/ui/borrowck/issue-81365-10.rs b/tests/ui/borrowck/issue-81365-10.rs
index 7602e184a..7602e184a 100644
--- a/src/test/ui/borrowck/issue-81365-10.rs
+++ b/tests/ui/borrowck/issue-81365-10.rs
diff --git a/src/test/ui/borrowck/issue-81365-10.stderr b/tests/ui/borrowck/issue-81365-10.stderr
index 27123ef2b..27123ef2b 100644
--- a/src/test/ui/borrowck/issue-81365-10.stderr
+++ b/tests/ui/borrowck/issue-81365-10.stderr
diff --git a/src/test/ui/borrowck/issue-81365-11.rs b/tests/ui/borrowck/issue-81365-11.rs
index 6b558c65d..6b558c65d 100644
--- a/src/test/ui/borrowck/issue-81365-11.rs
+++ b/tests/ui/borrowck/issue-81365-11.rs
diff --git a/src/test/ui/borrowck/issue-81365-11.stderr b/tests/ui/borrowck/issue-81365-11.stderr
index 0770c1366..0770c1366 100644
--- a/src/test/ui/borrowck/issue-81365-11.stderr
+++ b/tests/ui/borrowck/issue-81365-11.stderr
diff --git a/src/test/ui/borrowck/issue-81365-2.rs b/tests/ui/borrowck/issue-81365-2.rs
index fbbdd93b9..fbbdd93b9 100644
--- a/src/test/ui/borrowck/issue-81365-2.rs
+++ b/tests/ui/borrowck/issue-81365-2.rs
diff --git a/src/test/ui/borrowck/issue-81365-2.stderr b/tests/ui/borrowck/issue-81365-2.stderr
index 764eaaa7c..764eaaa7c 100644
--- a/src/test/ui/borrowck/issue-81365-2.stderr
+++ b/tests/ui/borrowck/issue-81365-2.stderr
diff --git a/src/test/ui/borrowck/issue-81365-3.rs b/tests/ui/borrowck/issue-81365-3.rs
index 9a9e3a313..9a9e3a313 100644
--- a/src/test/ui/borrowck/issue-81365-3.rs
+++ b/tests/ui/borrowck/issue-81365-3.rs
diff --git a/src/test/ui/borrowck/issue-81365-3.stderr b/tests/ui/borrowck/issue-81365-3.stderr
index 9447174fd..9447174fd 100644
--- a/src/test/ui/borrowck/issue-81365-3.stderr
+++ b/tests/ui/borrowck/issue-81365-3.stderr
diff --git a/src/test/ui/borrowck/issue-81365-4.rs b/tests/ui/borrowck/issue-81365-4.rs
index b2643eb33..b2643eb33 100644
--- a/src/test/ui/borrowck/issue-81365-4.rs
+++ b/tests/ui/borrowck/issue-81365-4.rs
diff --git a/src/test/ui/borrowck/issue-81365-4.stderr b/tests/ui/borrowck/issue-81365-4.stderr
index 0ab3fa927..0ab3fa927 100644
--- a/src/test/ui/borrowck/issue-81365-4.stderr
+++ b/tests/ui/borrowck/issue-81365-4.stderr
diff --git a/src/test/ui/borrowck/issue-81365-5.rs b/tests/ui/borrowck/issue-81365-5.rs
index d36b79615..d36b79615 100644
--- a/src/test/ui/borrowck/issue-81365-5.rs
+++ b/tests/ui/borrowck/issue-81365-5.rs
diff --git a/src/test/ui/borrowck/issue-81365-5.stderr b/tests/ui/borrowck/issue-81365-5.stderr
index 20ff229ff..20ff229ff 100644
--- a/src/test/ui/borrowck/issue-81365-5.stderr
+++ b/tests/ui/borrowck/issue-81365-5.stderr
diff --git a/src/test/ui/borrowck/issue-81365-6.rs b/tests/ui/borrowck/issue-81365-6.rs
index 85ea77756..85ea77756 100644
--- a/src/test/ui/borrowck/issue-81365-6.rs
+++ b/tests/ui/borrowck/issue-81365-6.rs
diff --git a/src/test/ui/borrowck/issue-81365-6.stderr b/tests/ui/borrowck/issue-81365-6.stderr
index 575aed73b..575aed73b 100644
--- a/src/test/ui/borrowck/issue-81365-6.stderr
+++ b/tests/ui/borrowck/issue-81365-6.stderr
diff --git a/src/test/ui/borrowck/issue-81365-7.rs b/tests/ui/borrowck/issue-81365-7.rs
index cbf70f11a..cbf70f11a 100644
--- a/src/test/ui/borrowck/issue-81365-7.rs
+++ b/tests/ui/borrowck/issue-81365-7.rs
diff --git a/src/test/ui/borrowck/issue-81365-7.stderr b/tests/ui/borrowck/issue-81365-7.stderr
index 52d2d9e75..52d2d9e75 100644
--- a/src/test/ui/borrowck/issue-81365-7.stderr
+++ b/tests/ui/borrowck/issue-81365-7.stderr
diff --git a/src/test/ui/borrowck/issue-81365-8.rs b/tests/ui/borrowck/issue-81365-8.rs
index 0bb1033fb..0bb1033fb 100644
--- a/src/test/ui/borrowck/issue-81365-8.rs
+++ b/tests/ui/borrowck/issue-81365-8.rs
diff --git a/src/test/ui/borrowck/issue-81365-8.stderr b/tests/ui/borrowck/issue-81365-8.stderr
index fd83e10a2..fd83e10a2 100644
--- a/src/test/ui/borrowck/issue-81365-8.stderr
+++ b/tests/ui/borrowck/issue-81365-8.stderr
diff --git a/src/test/ui/borrowck/issue-81365-9.rs b/tests/ui/borrowck/issue-81365-9.rs
index cd57afa28..cd57afa28 100644
--- a/src/test/ui/borrowck/issue-81365-9.rs
+++ b/tests/ui/borrowck/issue-81365-9.rs
diff --git a/src/test/ui/borrowck/issue-81365-9.stderr b/tests/ui/borrowck/issue-81365-9.stderr
index c7d48214f..c7d48214f 100644
--- a/src/test/ui/borrowck/issue-81365-9.stderr
+++ b/tests/ui/borrowck/issue-81365-9.stderr
diff --git a/src/test/ui/borrowck/issue-81899.rs b/tests/ui/borrowck/issue-81899.rs
index 1f1af5c7e..1f1af5c7e 100644
--- a/src/test/ui/borrowck/issue-81899.rs
+++ b/tests/ui/borrowck/issue-81899.rs
diff --git a/src/test/ui/borrowck/issue-81899.stderr b/tests/ui/borrowck/issue-81899.stderr
index 1b03bc3af..1b03bc3af 100644
--- a/src/test/ui/borrowck/issue-81899.stderr
+++ b/tests/ui/borrowck/issue-81899.stderr
diff --git a/src/test/ui/borrowck/issue-82032.rs b/tests/ui/borrowck/issue-82032.rs
index 4a01b60c1..4a01b60c1 100644
--- a/src/test/ui/borrowck/issue-82032.rs
+++ b/tests/ui/borrowck/issue-82032.rs
diff --git a/src/test/ui/borrowck/issue-82032.stderr b/tests/ui/borrowck/issue-82032.stderr
index 25f343117..25f343117 100644
--- a/src/test/ui/borrowck/issue-82032.stderr
+++ b/tests/ui/borrowck/issue-82032.stderr
diff --git a/src/test/ui/borrowck/issue-82126-mismatched-subst-and-hir.rs b/tests/ui/borrowck/issue-82126-mismatched-subst-and-hir.rs
index dd0320bc5..dd0320bc5 100644
--- a/src/test/ui/borrowck/issue-82126-mismatched-subst-and-hir.rs
+++ b/tests/ui/borrowck/issue-82126-mismatched-subst-and-hir.rs
diff --git a/src/test/ui/borrowck/issue-82126-mismatched-subst-and-hir.stderr b/tests/ui/borrowck/issue-82126-mismatched-subst-and-hir.stderr
index d2b927fb6..d2b927fb6 100644
--- a/src/test/ui/borrowck/issue-82126-mismatched-subst-and-hir.stderr
+++ b/tests/ui/borrowck/issue-82126-mismatched-subst-and-hir.stderr
diff --git a/src/test/ui/borrowck/issue-82462.rs b/tests/ui/borrowck/issue-82462.rs
index 5a3c64255..5a3c64255 100644
--- a/src/test/ui/borrowck/issue-82462.rs
+++ b/tests/ui/borrowck/issue-82462.rs
diff --git a/src/test/ui/borrowck/issue-82462.stderr b/tests/ui/borrowck/issue-82462.stderr
index a2c291f77..a2c291f77 100644
--- a/src/test/ui/borrowck/issue-82462.stderr
+++ b/tests/ui/borrowck/issue-82462.stderr
diff --git a/src/test/ui/borrowck/issue-83309-ice-immut-in-for-loop.rs b/tests/ui/borrowck/issue-83309-ice-immut-in-for-loop.rs
index d301e7b35..d301e7b35 100644
--- a/src/test/ui/borrowck/issue-83309-ice-immut-in-for-loop.rs
+++ b/tests/ui/borrowck/issue-83309-ice-immut-in-for-loop.rs
diff --git a/src/test/ui/borrowck/issue-83309-ice-immut-in-for-loop.stderr b/tests/ui/borrowck/issue-83309-ice-immut-in-for-loop.stderr
index 26ce007dd..26ce007dd 100644
--- a/src/test/ui/borrowck/issue-83309-ice-immut-in-for-loop.stderr
+++ b/tests/ui/borrowck/issue-83309-ice-immut-in-for-loop.stderr
diff --git a/src/test/ui/borrowck/issue-83760.rs b/tests/ui/borrowck/issue-83760.rs
index e25b4f727..e25b4f727 100644
--- a/src/test/ui/borrowck/issue-83760.rs
+++ b/tests/ui/borrowck/issue-83760.rs
diff --git a/src/test/ui/borrowck/issue-83760.stderr b/tests/ui/borrowck/issue-83760.stderr
index 2552fff86..a585bff0c 100644
--- a/src/test/ui/borrowck/issue-83760.stderr
+++ b/tests/ui/borrowck/issue-83760.stderr
@@ -27,11 +27,8 @@ LL | foo = Some(Struct);
LL | let _y = foo;
| ^^^ value used here after move
|
-note: this function takes ownership of the receiver `self`, which moves `foo`
+note: `Option::<T>::unwrap` takes ownership of the receiver `self`, which moves `foo`
--> $SRC_DIR/core/src/option.rs:LL:COL
- |
-LL | pub const fn unwrap(self) -> T {
- | ^^^^
error[E0382]: use of moved value: `foo`
--> $DIR/issue-83760.rs:37:14
@@ -55,11 +52,8 @@ LL | foo = Some(Struct);
LL | } else if true {
LL | foo = Some(Struct);
| ^^^^^^^^^^^^^^^^^^
-note: this function takes ownership of the receiver `self`, which moves `foo`
+note: `Option::<T>::unwrap` takes ownership of the receiver `self`, which moves `foo`
--> $SRC_DIR/core/src/option.rs:LL:COL
- |
-LL | pub const fn unwrap(self) -> T {
- | ^^^^
error: aborting due to 3 previous errors
diff --git a/src/test/ui/borrowck/issue-85581.rs b/tests/ui/borrowck/issue-85581.rs
index ccc120c54..ccc120c54 100644
--- a/src/test/ui/borrowck/issue-85581.rs
+++ b/tests/ui/borrowck/issue-85581.rs
diff --git a/src/test/ui/borrowck/issue-85581.stderr b/tests/ui/borrowck/issue-85581.stderr
index 59ca4867f..59ca4867f 100644
--- a/src/test/ui/borrowck/issue-85581.stderr
+++ b/tests/ui/borrowck/issue-85581.stderr
diff --git a/src/test/ui/borrowck/issue-85765.rs b/tests/ui/borrowck/issue-85765.rs
index 1598cd5d3..1598cd5d3 100644
--- a/src/test/ui/borrowck/issue-85765.rs
+++ b/tests/ui/borrowck/issue-85765.rs
diff --git a/src/test/ui/borrowck/issue-85765.stderr b/tests/ui/borrowck/issue-85765.stderr
index 130339621..7da7dba68 100644
--- a/src/test/ui/borrowck/issue-85765.stderr
+++ b/tests/ui/borrowck/issue-85765.stderr
@@ -10,11 +10,13 @@ LL | rofl.push(Vec::new());
error[E0594]: cannot assign to `*r`, which is behind a `&` reference
--> $DIR/issue-85765.rs:12:5
|
-LL | let r = &mutvar;
- | ------- help: consider changing this to be a mutable reference: `&mut mutvar`
-LL |
LL | *r = 0;
| ^^^^^^ `r` is a `&` reference, so the data it refers to cannot be written
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | let r = &mut mutvar;
+ | ~~~~~~~~~~~
error[E0594]: cannot assign to `*x`, which is behind a `&` reference
--> $DIR/issue-85765.rs:19:5
diff --git a/src/test/ui/borrowck/issue-87456-point-to-closure.rs b/tests/ui/borrowck/issue-87456-point-to-closure.rs
index 9fc12ba74..9fc12ba74 100644
--- a/src/test/ui/borrowck/issue-87456-point-to-closure.rs
+++ b/tests/ui/borrowck/issue-87456-point-to-closure.rs
diff --git a/tests/ui/borrowck/issue-87456-point-to-closure.stderr b/tests/ui/borrowck/issue-87456-point-to-closure.stderr
new file mode 100644
index 000000000..afd141125
--- /dev/null
+++ b/tests/ui/borrowck/issue-87456-point-to-closure.stderr
@@ -0,0 +1,20 @@
+error[E0507]: cannot move out of `val`, a captured variable in an `FnMut` closure
+ --> $DIR/issue-87456-point-to-closure.rs:10:28
+ |
+LL | let val = String::new();
+ | --- captured outer variable
+LL |
+LL | take_mut(|| {
+ | -- captured by this `FnMut` closure
+LL |
+LL | let _foo: String = val;
+ | ^^^ move occurs because `val` has type `String`, which does not implement the `Copy` trait
+ |
+help: consider borrowing here
+ |
+LL | let _foo: String = &val;
+ | +
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/issue-88434-minimal-example.rs b/tests/ui/borrowck/issue-88434-minimal-example.rs
index b75abcb73..b75abcb73 100644
--- a/src/test/ui/borrowck/issue-88434-minimal-example.rs
+++ b/tests/ui/borrowck/issue-88434-minimal-example.rs
diff --git a/src/test/ui/borrowck/issue-88434-minimal-example.stderr b/tests/ui/borrowck/issue-88434-minimal-example.stderr
index a5a571c6d..a5a571c6d 100644
--- a/src/test/ui/borrowck/issue-88434-minimal-example.stderr
+++ b/tests/ui/borrowck/issue-88434-minimal-example.stderr
diff --git a/src/test/ui/borrowck/issue-88434-removal-index-should-be-less.rs b/tests/ui/borrowck/issue-88434-removal-index-should-be-less.rs
index f9134e669..f9134e669 100644
--- a/src/test/ui/borrowck/issue-88434-removal-index-should-be-less.rs
+++ b/tests/ui/borrowck/issue-88434-removal-index-should-be-less.rs
diff --git a/src/test/ui/borrowck/issue-88434-removal-index-should-be-less.stderr b/tests/ui/borrowck/issue-88434-removal-index-should-be-less.stderr
index 00023c459..00023c459 100644
--- a/src/test/ui/borrowck/issue-88434-removal-index-should-be-less.stderr
+++ b/tests/ui/borrowck/issue-88434-removal-index-should-be-less.stderr
diff --git a/src/test/ui/borrowck/issue-91206.rs b/tests/ui/borrowck/issue-91206.rs
index 67407c1ea..67407c1ea 100644
--- a/src/test/ui/borrowck/issue-91206.rs
+++ b/tests/ui/borrowck/issue-91206.rs
diff --git a/src/test/ui/borrowck/issue-91206.stderr b/tests/ui/borrowck/issue-91206.stderr
index 12d8d27c5..12d8d27c5 100644
--- a/src/test/ui/borrowck/issue-91206.stderr
+++ b/tests/ui/borrowck/issue-91206.stderr
diff --git a/src/test/ui/borrowck/issue-92015.rs b/tests/ui/borrowck/issue-92015.rs
index 16d651717..16d651717 100644
--- a/src/test/ui/borrowck/issue-92015.rs
+++ b/tests/ui/borrowck/issue-92015.rs
diff --git a/src/test/ui/borrowck/issue-92015.stderr b/tests/ui/borrowck/issue-92015.stderr
index 62b1183e7..62b1183e7 100644
--- a/src/test/ui/borrowck/issue-92015.stderr
+++ b/tests/ui/borrowck/issue-92015.stderr
diff --git a/tests/ui/borrowck/issue-92157.rs b/tests/ui/borrowck/issue-92157.rs
new file mode 100644
index 000000000..6ee2320a6
--- /dev/null
+++ b/tests/ui/borrowck/issue-92157.rs
@@ -0,0 +1,40 @@
+#![feature(no_core)]
+#![feature(lang_items)]
+
+#![no_core]
+
+#[cfg(target_os = "linux")]
+#[link(name = "c")]
+extern {}
+
+#[lang = "start"]
+fn start<T>(_main: fn() -> T, _argc: isize, _argv: *const *const u8) -> isize {
+ //~^ ERROR: incorrect number of parameters for the `start` lang item
+ 40+2
+}
+
+#[lang = "sized"]
+pub trait Sized {}
+#[lang = "copy"]
+pub trait Copy {}
+
+#[lang = "drop_in_place"]
+#[allow(unconditional_recursion)]
+pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
+ drop_in_place(to_drop)
+}
+
+#[lang = "add"]
+trait Add<RHS> {
+ type Output;
+ fn add(self, other: RHS) -> Self::Output;
+}
+
+impl Add<isize> for isize {
+ type Output = isize;
+ fn add(self, other: isize) -> isize {
+ self + other
+ }
+}
+
+fn main() {}
diff --git a/tests/ui/borrowck/issue-92157.stderr b/tests/ui/borrowck/issue-92157.stderr
new file mode 100644
index 000000000..a4010d73d
--- /dev/null
+++ b/tests/ui/borrowck/issue-92157.stderr
@@ -0,0 +1,11 @@
+error: incorrect number of parameters for the `start` lang item
+ --> $DIR/issue-92157.rs:11:1
+ |
+LL | fn start<T>(_main: fn() -> T, _argc: isize, _argv: *const *const u8) -> isize {
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = note: the `start` lang item should have four parameters, but found 3
+ = note: the `start` lang item should have the signature `fn(fn() -> T, isize, *const *const u8, u8) -> isize`
+
+error: aborting due to previous error
+
diff --git a/tests/ui/borrowck/issue-93078.rs b/tests/ui/borrowck/issue-93078.rs
new file mode 100644
index 000000000..2e608c5db
--- /dev/null
+++ b/tests/ui/borrowck/issue-93078.rs
@@ -0,0 +1,15 @@
+trait Modify {
+ fn modify(&mut self) ;
+}
+
+impl<T> Modify for T {
+ fn modify(&mut self) {}
+}
+
+trait Foo {
+ fn mute(&mut self) {
+ self.modify(); //~ ERROR cannot borrow `self` as mutable
+ }
+}
+
+fn main() {}
diff --git a/tests/ui/borrowck/issue-93078.stderr b/tests/ui/borrowck/issue-93078.stderr
new file mode 100644
index 000000000..771a652a1
--- /dev/null
+++ b/tests/ui/borrowck/issue-93078.stderr
@@ -0,0 +1,12 @@
+error[E0596]: cannot borrow `self` as mutable, as it is not declared as mutable
+ --> $DIR/issue-93078.rs:11:9
+ |
+LL | self.modify();
+ | ^^^^^^^^^^^^^ cannot borrow as mutable
+ |
+ = note: as `Self` may be unsized, this call attempts to take `&mut &mut self`
+ = note: however, `&mut self` expands to `self: &mut Self`, therefore `self` cannot be borrowed mutably
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/issue-93093.rs b/tests/ui/borrowck/issue-93093.rs
index f4db5ecaf..f4db5ecaf 100644
--- a/src/test/ui/borrowck/issue-93093.rs
+++ b/tests/ui/borrowck/issue-93093.rs
diff --git a/tests/ui/borrowck/issue-93093.stderr b/tests/ui/borrowck/issue-93093.stderr
new file mode 100644
index 000000000..afa76594f
--- /dev/null
+++ b/tests/ui/borrowck/issue-93093.stderr
@@ -0,0 +1,14 @@
+error[E0594]: cannot assign to `self.foo`, which is behind a `&` reference
+ --> $DIR/issue-93093.rs:8:9
+ |
+LL | self.foo += 1;
+ | ^^^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be written
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | async fn bar(&mut self) {
+ | ~~~~~~~~~
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/issue-95079-missing-move-in-nested-closure.rs b/tests/ui/borrowck/issue-95079-missing-move-in-nested-closure.rs
index 95847d8d3..95847d8d3 100644
--- a/src/test/ui/borrowck/issue-95079-missing-move-in-nested-closure.rs
+++ b/tests/ui/borrowck/issue-95079-missing-move-in-nested-closure.rs
diff --git a/src/test/ui/borrowck/issue-95079-missing-move-in-nested-closure.stderr b/tests/ui/borrowck/issue-95079-missing-move-in-nested-closure.stderr
index 2eae614a2..2eae614a2 100644
--- a/src/test/ui/borrowck/issue-95079-missing-move-in-nested-closure.stderr
+++ b/tests/ui/borrowck/issue-95079-missing-move-in-nested-closure.stderr
diff --git a/src/test/ui/borrowck/kindck-implicit-close-over-mut-var.rs b/tests/ui/borrowck/kindck-implicit-close-over-mut-var.rs
index 5b5d86eec..5b5d86eec 100644
--- a/src/test/ui/borrowck/kindck-implicit-close-over-mut-var.rs
+++ b/tests/ui/borrowck/kindck-implicit-close-over-mut-var.rs
diff --git a/src/test/ui/borrowck/lazy-init.rs b/tests/ui/borrowck/lazy-init.rs
index a4b5d18bb..a4b5d18bb 100644
--- a/src/test/ui/borrowck/lazy-init.rs
+++ b/tests/ui/borrowck/lazy-init.rs
diff --git a/tests/ui/borrowck/many-mutable-borrows.rs b/tests/ui/borrowck/many-mutable-borrows.rs
new file mode 100644
index 000000000..3e6ea9d25
--- /dev/null
+++ b/tests/ui/borrowck/many-mutable-borrows.rs
@@ -0,0 +1,18 @@
+fn main() {
+ let v = Vec::new(); //~ ERROR cannot borrow `v` as mutable, as it is not declared as mutable
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+ v.push(0);
+}
diff --git a/tests/ui/borrowck/many-mutable-borrows.stderr b/tests/ui/borrowck/many-mutable-borrows.stderr
new file mode 100644
index 000000000..aa0cbcffd
--- /dev/null
+++ b/tests/ui/borrowck/many-mutable-borrows.stderr
@@ -0,0 +1,33 @@
+error[E0596]: cannot borrow `v` as mutable, as it is not declared as mutable
+ --> $DIR/many-mutable-borrows.rs:2:9
+ |
+LL | let v = Vec::new();
+ | ^ not mutable
+LL | v.push(0);
+ | --------- cannot borrow as mutable
+LL | v.push(0);
+ | --------- cannot borrow as mutable
+LL | v.push(0);
+ | --------- cannot borrow as mutable
+LL | v.push(0);
+ | --------- cannot borrow as mutable
+LL | v.push(0);
+ | --------- cannot borrow as mutable
+LL | v.push(0);
+ | --------- cannot borrow as mutable
+LL | v.push(0);
+ | --------- cannot borrow as mutable
+LL | v.push(0);
+ | --------- cannot borrow as mutable
+LL | v.push(0);
+ | --------- cannot borrow as mutable
+ |
+ = note: ...and 5 other attempted mutable borrows
+help: consider changing this to be mutable
+ |
+LL | let mut v = Vec::new();
+ | +++
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/move-error-in-promoted-2.rs b/tests/ui/borrowck/move-error-in-promoted-2.rs
index 13da34f39..13da34f39 100644
--- a/src/test/ui/borrowck/move-error-in-promoted-2.rs
+++ b/tests/ui/borrowck/move-error-in-promoted-2.rs
diff --git a/src/test/ui/borrowck/move-error-in-promoted-2.stderr b/tests/ui/borrowck/move-error-in-promoted-2.stderr
index 38dba94bd..38dba94bd 100644
--- a/src/test/ui/borrowck/move-error-in-promoted-2.stderr
+++ b/tests/ui/borrowck/move-error-in-promoted-2.stderr
diff --git a/src/test/ui/borrowck/move-error-in-promoted.rs b/tests/ui/borrowck/move-error-in-promoted.rs
index b94db6451..b94db6451 100644
--- a/src/test/ui/borrowck/move-error-in-promoted.rs
+++ b/tests/ui/borrowck/move-error-in-promoted.rs
diff --git a/src/test/ui/borrowck/move-error-in-promoted.stderr b/tests/ui/borrowck/move-error-in-promoted.stderr
index a4432e38d..a4432e38d 100644
--- a/src/test/ui/borrowck/move-error-in-promoted.stderr
+++ b/tests/ui/borrowck/move-error-in-promoted.stderr
diff --git a/src/test/ui/borrowck/move-error-snippets-ext.rs b/tests/ui/borrowck/move-error-snippets-ext.rs
index c77f6c827..c77f6c827 100644
--- a/src/test/ui/borrowck/move-error-snippets-ext.rs
+++ b/tests/ui/borrowck/move-error-snippets-ext.rs
diff --git a/src/test/ui/borrowck/move-error-snippets.rs b/tests/ui/borrowck/move-error-snippets.rs
index 64f956538..64f956538 100644
--- a/src/test/ui/borrowck/move-error-snippets.rs
+++ b/tests/ui/borrowck/move-error-snippets.rs
diff --git a/tests/ui/borrowck/move-error-snippets.stderr b/tests/ui/borrowck/move-error-snippets.stderr
new file mode 100644
index 000000000..8ac711e9e
--- /dev/null
+++ b/tests/ui/borrowck/move-error-snippets.stderr
@@ -0,0 +1,20 @@
+error[E0507]: cannot move out of static item `D`
+ --> $DIR/move-error-snippets-ext.rs:5:17
+ |
+LL | let a = $c;
+ | ^^ move occurs because `D` has type `A`, which does not implement the `Copy` trait
+ |
+ ::: $DIR/move-error-snippets.rs:21:1
+ |
+LL | sss!();
+ | ------ in this macro invocation
+ |
+ = note: this error originates in the macro `aaa` which comes from the expansion of the macro `sss` (in Nightly builds, run with -Z macro-backtrace for more info)
+help: consider borrowing here
+ |
+LL | let a = &$c;
+ | +
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.
diff --git a/src/test/ui/borrowck/move-from-union-field-issue-66500.rs b/tests/ui/borrowck/move-from-union-field-issue-66500.rs
index 0bd2147f4..0bd2147f4 100644
--- a/src/test/ui/borrowck/move-from-union-field-issue-66500.rs
+++ b/tests/ui/borrowck/move-from-union-field-issue-66500.rs
diff --git a/src/test/ui/borrowck/move-from-union-field-issue-66500.stderr b/tests/ui/borrowck/move-from-union-field-issue-66500.stderr
index 700785827..700785827 100644
--- a/src/test/ui/borrowck/move-from-union-field-issue-66500.stderr
+++ b/tests/ui/borrowck/move-from-union-field-issue-66500.stderr
diff --git a/src/test/ui/borrowck/move-in-pattern-mut-in-loop.rs b/tests/ui/borrowck/move-in-pattern-mut-in-loop.rs
index 4b42f9d4c..4b42f9d4c 100644
--- a/src/test/ui/borrowck/move-in-pattern-mut-in-loop.rs
+++ b/tests/ui/borrowck/move-in-pattern-mut-in-loop.rs
diff --git a/src/test/ui/borrowck/move-in-pattern-mut-in-loop.stderr b/tests/ui/borrowck/move-in-pattern-mut-in-loop.stderr
index 55948afca..55948afca 100644
--- a/src/test/ui/borrowck/move-in-pattern-mut-in-loop.stderr
+++ b/tests/ui/borrowck/move-in-pattern-mut-in-loop.stderr
diff --git a/src/test/ui/borrowck/move-in-pattern-mut.rs b/tests/ui/borrowck/move-in-pattern-mut.rs
index b5c275bf2..b5c275bf2 100644
--- a/src/test/ui/borrowck/move-in-pattern-mut.rs
+++ b/tests/ui/borrowck/move-in-pattern-mut.rs
diff --git a/src/test/ui/borrowck/move-in-pattern-mut.stderr b/tests/ui/borrowck/move-in-pattern-mut.stderr
index dd3471e2c..dd3471e2c 100644
--- a/src/test/ui/borrowck/move-in-pattern-mut.stderr
+++ b/tests/ui/borrowck/move-in-pattern-mut.stderr
diff --git a/src/test/ui/borrowck/move-in-pattern.fixed b/tests/ui/borrowck/move-in-pattern.fixed
index 145893d33..145893d33 100644
--- a/src/test/ui/borrowck/move-in-pattern.fixed
+++ b/tests/ui/borrowck/move-in-pattern.fixed
diff --git a/src/test/ui/borrowck/move-in-pattern.rs b/tests/ui/borrowck/move-in-pattern.rs
index 14851d0f6..14851d0f6 100644
--- a/src/test/ui/borrowck/move-in-pattern.rs
+++ b/tests/ui/borrowck/move-in-pattern.rs
diff --git a/src/test/ui/borrowck/move-in-pattern.stderr b/tests/ui/borrowck/move-in-pattern.stderr
index 250acbe59..250acbe59 100644
--- a/src/test/ui/borrowck/move-in-pattern.stderr
+++ b/tests/ui/borrowck/move-in-pattern.stderr
diff --git a/src/test/ui/borrowck/move-in-static-initializer-issue-38520.rs b/tests/ui/borrowck/move-in-static-initializer-issue-38520.rs
index c2a59a105..c2a59a105 100644
--- a/src/test/ui/borrowck/move-in-static-initializer-issue-38520.rs
+++ b/tests/ui/borrowck/move-in-static-initializer-issue-38520.rs
diff --git a/src/test/ui/borrowck/move-in-static-initializer-issue-38520.stderr b/tests/ui/borrowck/move-in-static-initializer-issue-38520.stderr
index 6619fb42c..6619fb42c 100644
--- a/src/test/ui/borrowck/move-in-static-initializer-issue-38520.stderr
+++ b/tests/ui/borrowck/move-in-static-initializer-issue-38520.stderr
diff --git a/src/test/ui/borrowck/mut-borrow-in-loop-2.fixed b/tests/ui/borrowck/mut-borrow-in-loop-2.fixed
index ceeba30a9..ceeba30a9 100644
--- a/src/test/ui/borrowck/mut-borrow-in-loop-2.fixed
+++ b/tests/ui/borrowck/mut-borrow-in-loop-2.fixed
diff --git a/src/test/ui/borrowck/mut-borrow-in-loop-2.rs b/tests/ui/borrowck/mut-borrow-in-loop-2.rs
index d13fb7e56..d13fb7e56 100644
--- a/src/test/ui/borrowck/mut-borrow-in-loop-2.rs
+++ b/tests/ui/borrowck/mut-borrow-in-loop-2.rs
diff --git a/src/test/ui/borrowck/mut-borrow-in-loop-2.stderr b/tests/ui/borrowck/mut-borrow-in-loop-2.stderr
index 74e7067c9..74e7067c9 100644
--- a/src/test/ui/borrowck/mut-borrow-in-loop-2.stderr
+++ b/tests/ui/borrowck/mut-borrow-in-loop-2.stderr
diff --git a/src/test/ui/borrowck/mut-borrow-in-loop.rs b/tests/ui/borrowck/mut-borrow-in-loop.rs
index 22667906e..22667906e 100644
--- a/src/test/ui/borrowck/mut-borrow-in-loop.rs
+++ b/tests/ui/borrowck/mut-borrow-in-loop.rs
diff --git a/src/test/ui/borrowck/mut-borrow-in-loop.stderr b/tests/ui/borrowck/mut-borrow-in-loop.stderr
index b621694a5..b621694a5 100644
--- a/src/test/ui/borrowck/mut-borrow-in-loop.stderr
+++ b/tests/ui/borrowck/mut-borrow-in-loop.stderr
diff --git a/src/test/ui/borrowck/mut-borrow-of-mut-ref.rs b/tests/ui/borrowck/mut-borrow-of-mut-ref.rs
index 7cdb16b28..477a2aa48 100644
--- a/src/test/ui/borrowck/mut-borrow-of-mut-ref.rs
+++ b/tests/ui/borrowck/mut-borrow-of-mut-ref.rs
@@ -2,15 +2,14 @@
#![crate_type = "rlib"]
pub fn f(b: &mut i32) {
- //~^ NOTE the binding is already a mutable borrow
+ //~^ ERROR cannot borrow
+ //~| NOTE not mutable
//~| NOTE the binding is already a mutable borrow
h(&mut b);
- //~^ ERROR cannot borrow
- //~| NOTE cannot borrow as mutable
+ //~^ NOTE cannot borrow as mutable
//~| HELP try removing `&mut` here
g(&mut &mut b);
- //~^ ERROR cannot borrow
- //~| NOTE cannot borrow as mutable
+ //~^ NOTE cannot borrow as mutable
//~| HELP try removing `&mut` here
}
diff --git a/tests/ui/borrowck/mut-borrow-of-mut-ref.stderr b/tests/ui/borrowck/mut-borrow-of-mut-ref.stderr
new file mode 100644
index 000000000..c6f75b1c0
--- /dev/null
+++ b/tests/ui/borrowck/mut-borrow-of-mut-ref.stderr
@@ -0,0 +1,59 @@
+error[E0596]: cannot borrow `b` as mutable, as it is not declared as mutable
+ --> $DIR/mut-borrow-of-mut-ref.rs:4:10
+ |
+LL | pub fn f(b: &mut i32) {
+ | ^ not mutable
+...
+LL | h(&mut b);
+ | ------ cannot borrow as mutable
+...
+LL | g(&mut &mut b);
+ | ------ cannot borrow as mutable
+ |
+note: the binding is already a mutable borrow
+ --> $DIR/mut-borrow-of-mut-ref.rs:4:13
+ |
+LL | pub fn f(b: &mut i32) {
+ | ^^^^^^^^
+help: try removing `&mut` here
+ |
+LL - h(&mut b);
+LL + h(b);
+ |
+help: try removing `&mut` here
+ |
+LL - g(&mut &mut b);
+LL + g(&mut b);
+ |
+
+error[E0596]: cannot borrow `b` as mutable, as it is not declared as mutable
+ --> $DIR/mut-borrow-of-mut-ref.rs:17:12
+ |
+LL | h(&mut &mut b);
+ | ^^^^^^ cannot borrow as mutable
+ |
+note: the binding is already a mutable borrow
+ --> $DIR/mut-borrow-of-mut-ref.rs:16:13
+ |
+LL | pub fn g(b: &mut i32) {
+ | ^^^^^^^^
+help: try removing `&mut` here
+ |
+LL - h(&mut &mut b);
+LL + h(&mut b);
+ |
+
+error[E0596]: cannot borrow `f` as mutable, as it is not declared as mutable
+ --> $DIR/mut-borrow-of-mut-ref.rs:34:5
+ |
+LL | f.bar();
+ | ^^^^^^^ cannot borrow as mutable
+ |
+help: consider making the binding mutable
+ |
+LL | pub fn baz(mut f: &mut String) {
+ | +++
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/borrowck/mut-borrow-outside-loop.rs b/tests/ui/borrowck/mut-borrow-outside-loop.rs
index c02bfbf87..c02bfbf87 100644
--- a/src/test/ui/borrowck/mut-borrow-outside-loop.rs
+++ b/tests/ui/borrowck/mut-borrow-outside-loop.rs
diff --git a/src/test/ui/borrowck/mut-borrow-outside-loop.stderr b/tests/ui/borrowck/mut-borrow-outside-loop.stderr
index e6895b27f..e6895b27f 100644
--- a/src/test/ui/borrowck/mut-borrow-outside-loop.stderr
+++ b/tests/ui/borrowck/mut-borrow-outside-loop.stderr
diff --git a/src/test/ui/borrowck/mutability-errors.rs b/tests/ui/borrowck/mutability-errors.rs
index 5be0df137..82116425f 100644
--- a/src/test/ui/borrowck/mutability-errors.rs
+++ b/tests/ui/borrowck/mutability-errors.rs
@@ -50,9 +50,9 @@ fn ref_closure(mut x: (i32,)) {
});
}
-fn imm_local(x: (i32,)) {
- &mut x; //~ ERROR
- &mut x.0; //~ ERROR
+fn imm_local(x: (i32,)) { //~ ERROR
+ &mut x;
+ &mut x.0;
}
fn imm_capture(x: (i32,)) {
diff --git a/src/test/ui/borrowck/mutability-errors.stderr b/tests/ui/borrowck/mutability-errors.stderr
index dd29ae492..d7c602718 100644
--- a/src/test/ui/borrowck/mutability-errors.stderr
+++ b/tests/ui/borrowck/mutability-errors.stderr
@@ -1,37 +1,46 @@
error[E0594]: cannot assign to `*x`, which is behind a `&` reference
--> $DIR/mutability-errors.rs:9:5
|
-LL | fn named_ref(x: &(i32,)) {
- | ------- help: consider changing this to be a mutable reference: `&mut (i32,)`
LL | *x = (1,);
| ^^^^^^^^^ `x` is a `&` reference, so the data it refers to cannot be written
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | fn named_ref(x: &mut (i32,)) {
+ | ~~~~~~~~~~~
error[E0594]: cannot assign to `x.0`, which is behind a `&` reference
--> $DIR/mutability-errors.rs:10:5
|
-LL | fn named_ref(x: &(i32,)) {
- | ------- help: consider changing this to be a mutable reference: `&mut (i32,)`
-LL | *x = (1,);
LL | x.0 = 1;
| ^^^^^^^ `x` is a `&` reference, so the data it refers to cannot be written
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | fn named_ref(x: &mut (i32,)) {
+ | ~~~~~~~~~~~
error[E0596]: cannot borrow `*x` as mutable, as it is behind a `&` reference
--> $DIR/mutability-errors.rs:11:5
|
-LL | fn named_ref(x: &(i32,)) {
- | ------- help: consider changing this to be a mutable reference: `&mut (i32,)`
-...
LL | &mut *x;
| ^^^^^^^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | fn named_ref(x: &mut (i32,)) {
+ | ~~~~~~~~~~~
error[E0596]: cannot borrow `x.0` as mutable, as it is behind a `&` reference
--> $DIR/mutability-errors.rs:12:5
|
-LL | fn named_ref(x: &(i32,)) {
- | ------- help: consider changing this to be a mutable reference: `&mut (i32,)`
-...
LL | &mut x.0;
| ^^^^^^^^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable reference
+ |
+LL | fn named_ref(x: &mut (i32,)) {
+ | ~~~~~~~~~~~
error[E0594]: cannot assign to data in a `&` reference
--> $DIR/mutability-errors.rs:16:5
@@ -60,37 +69,46 @@ LL | &mut f().0;
error[E0594]: cannot assign to `*x`, which is behind a `*const` pointer
--> $DIR/mutability-errors.rs:23:5
|
-LL | unsafe fn named_ptr(x: *const (i32,)) {
- | ------------- help: consider changing this to be a mutable pointer: `*mut (i32,)`
LL | *x = (1,);
| ^^^^^^^^^ `x` is a `*const` pointer, so the data it refers to cannot be written
+ |
+help: consider changing this to be a mutable pointer
+ |
+LL | unsafe fn named_ptr(x: *mut (i32,)) {
+ | ~~~~~~~~~~~
error[E0594]: cannot assign to `x.0`, which is behind a `*const` pointer
--> $DIR/mutability-errors.rs:24:5
|
-LL | unsafe fn named_ptr(x: *const (i32,)) {
- | ------------- help: consider changing this to be a mutable pointer: `*mut (i32,)`
-LL | *x = (1,);
LL | (*x).0 = 1;
| ^^^^^^^^^^ `x` is a `*const` pointer, so the data it refers to cannot be written
+ |
+help: consider changing this to be a mutable pointer
+ |
+LL | unsafe fn named_ptr(x: *mut (i32,)) {
+ | ~~~~~~~~~~~
error[E0596]: cannot borrow `*x` as mutable, as it is behind a `*const` pointer
--> $DIR/mutability-errors.rs:25:5
|
-LL | unsafe fn named_ptr(x: *const (i32,)) {
- | ------------- help: consider changing this to be a mutable pointer: `*mut (i32,)`
-...
LL | &mut *x;
| ^^^^^^^ `x` is a `*const` pointer, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable pointer
+ |
+LL | unsafe fn named_ptr(x: *mut (i32,)) {
+ | ~~~~~~~~~~~
error[E0596]: cannot borrow `x.0` as mutable, as it is behind a `*const` pointer
--> $DIR/mutability-errors.rs:26:5
|
-LL | unsafe fn named_ptr(x: *const (i32,)) {
- | ------------- help: consider changing this to be a mutable pointer: `*mut (i32,)`
-...
LL | &mut (*x).0;
| ^^^^^^^^^^^ `x` is a `*const` pointer, so the data it refers to cannot be borrowed as mutable
+ |
+help: consider changing this to be a mutable pointer
+ |
+LL | unsafe fn named_ptr(x: *mut (i32,)) {
+ | ~~~~~~~~~~~
error[E0594]: cannot assign to data in a `*const` pointer
--> $DIR/mutability-errors.rs:30:5
@@ -227,21 +245,19 @@ LL | &mut x.0;
| ^^^^^^^^ cannot borrow as mutable
error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
- --> $DIR/mutability-errors.rs:54:5
+ --> $DIR/mutability-errors.rs:53:14
|
LL | fn imm_local(x: (i32,)) {
- | - help: consider changing this to be mutable: `mut x`
-LL | &mut x;
- | ^^^^^^ cannot borrow as mutable
-
-error[E0596]: cannot borrow `x.0` as mutable, as `x` is not declared as mutable
- --> $DIR/mutability-errors.rs:55:5
- |
-LL | fn imm_local(x: (i32,)) {
- | - help: consider changing this to be mutable: `mut x`
+ | ^ not mutable
LL | &mut x;
+ | ------ cannot borrow as mutable
LL | &mut x.0;
- | ^^^^^^^^ cannot borrow as mutable
+ | -------- cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | fn imm_local(mut x: (i32,)) {
+ | +++
error[E0594]: cannot assign to `x`, as it is not declared as mutable
--> $DIR/mutability-errors.rs:60:9
@@ -339,7 +355,7 @@ error[E0596]: cannot borrow `X.0` as mutable, as `X` is an immutable static item
LL | &mut X.0;
| ^^^^^^^^ cannot borrow as mutable
-error: aborting due to 38 previous errors
+error: aborting due to 37 previous errors
Some errors have detailed explanations: E0594, E0596.
For more information about an error, try `rustc --explain E0594`.
diff --git a/src/test/ui/borrowck/or-patterns.rs b/tests/ui/borrowck/or-patterns.rs
index aeab3b92e..aeab3b92e 100644
--- a/src/test/ui/borrowck/or-patterns.rs
+++ b/tests/ui/borrowck/or-patterns.rs
diff --git a/src/test/ui/borrowck/or-patterns.stderr b/tests/ui/borrowck/or-patterns.stderr
index 9501798bb..9501798bb 100644
--- a/src/test/ui/borrowck/or-patterns.stderr
+++ b/tests/ui/borrowck/or-patterns.stderr
diff --git a/src/test/ui/borrowck/promote-ref-mut-in-let-issue-46557.rs b/tests/ui/borrowck/promote-ref-mut-in-let-issue-46557.rs
index 3576734de..3576734de 100644
--- a/src/test/ui/borrowck/promote-ref-mut-in-let-issue-46557.rs
+++ b/tests/ui/borrowck/promote-ref-mut-in-let-issue-46557.rs
diff --git a/src/test/ui/borrowck/promote-ref-mut-in-let-issue-46557.stderr b/tests/ui/borrowck/promote-ref-mut-in-let-issue-46557.stderr
index 60af41237..60af41237 100644
--- a/src/test/ui/borrowck/promote-ref-mut-in-let-issue-46557.stderr
+++ b/tests/ui/borrowck/promote-ref-mut-in-let-issue-46557.stderr
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields.rs b/tests/ui/borrowck/reassignment_immutable_fields.rs
index fd2ab62a4..fd2ab62a4 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields.rs
+++ b/tests/ui/borrowck/reassignment_immutable_fields.rs
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields.stderr b/tests/ui/borrowck/reassignment_immutable_fields.stderr
index e6b25573e..e6b25573e 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields.stderr
+++ b/tests/ui/borrowck/reassignment_immutable_fields.stderr
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.rs b/tests/ui/borrowck/reassignment_immutable_fields_overlapping.rs
index d7aad6c01..d7aad6c01 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.rs
+++ b/tests/ui/borrowck/reassignment_immutable_fields_overlapping.rs
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr b/tests/ui/borrowck/reassignment_immutable_fields_overlapping.stderr
index a3885b5f5..81e5bc45d 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields_overlapping.stderr
+++ b/tests/ui/borrowck/reassignment_immutable_fields_overlapping.stderr
@@ -11,11 +11,13 @@ LL | x.a = 1;
error[E0594]: cannot assign to `x.b`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields_overlapping.rs:13:5
|
-LL | let x: Foo;
- | - help: consider changing this to be mutable: `mut x`
-LL | x.a = 1;
LL | x.b = 22;
| ^^^^^^^^ cannot assign
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut x: Foo;
+ | +++
error: aborting due to 2 previous errors
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields_twice.rs b/tests/ui/borrowck/reassignment_immutable_fields_twice.rs
index 2775a54c8..2775a54c8 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields_twice.rs
+++ b/tests/ui/borrowck/reassignment_immutable_fields_twice.rs
diff --git a/src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr b/tests/ui/borrowck/reassignment_immutable_fields_twice.stderr
index 49c81adad..ba0457809 100644
--- a/src/test/ui/borrowck/reassignment_immutable_fields_twice.stderr
+++ b/tests/ui/borrowck/reassignment_immutable_fields_twice.stderr
@@ -1,11 +1,13 @@
error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields_twice.rs:7:5
|
-LL | let x: (u32, u32);
- | - help: consider changing this to be mutable: `mut x`
-LL | x = (22, 44);
LL | x.0 = 1;
| ^^^^^^^ cannot assign
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut x: (u32, u32);
+ | +++
error[E0381]: partially assigned binding `x` isn't fully initialized
--> $DIR/reassignment_immutable_fields_twice.rs:12:5
diff --git a/src/test/ui/borrowck/reborrow-sugg-move-then-borrow.rs b/tests/ui/borrowck/reborrow-sugg-move-then-borrow.rs
index 31eba0740..31eba0740 100644
--- a/src/test/ui/borrowck/reborrow-sugg-move-then-borrow.rs
+++ b/tests/ui/borrowck/reborrow-sugg-move-then-borrow.rs
diff --git a/src/test/ui/borrowck/reborrow-sugg-move-then-borrow.stderr b/tests/ui/borrowck/reborrow-sugg-move-then-borrow.stderr
index 13a2005e2..ecd916a59 100644
--- a/src/test/ui/borrowck/reborrow-sugg-move-then-borrow.stderr
+++ b/tests/ui/borrowck/reborrow-sugg-move-then-borrow.stderr
@@ -9,11 +9,8 @@ LL |
LL | fill_segment(state);
| ^^^^^ value borrowed here after move
|
-note: this function takes ownership of the receiver `self`, which moves `state`
+note: `into_iter` takes ownership of the receiver `self`, which moves `state`
--> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
- |
-LL | fn into_iter(self) -> Self::IntoIter;
- | ^^^^
help: consider creating a fresh reborrow of `state` here
|
LL | for _ in &mut *state {}
diff --git a/src/test/ui/borrowck/regions-bound-missing-bound-in-impl.rs b/tests/ui/borrowck/regions-bound-missing-bound-in-impl.rs
index 141ad5bd2..141ad5bd2 100644
--- a/src/test/ui/borrowck/regions-bound-missing-bound-in-impl.rs
+++ b/tests/ui/borrowck/regions-bound-missing-bound-in-impl.rs
diff --git a/src/test/ui/borrowck/regions-bound-missing-bound-in-impl.stderr b/tests/ui/borrowck/regions-bound-missing-bound-in-impl.stderr
index 1e3b071ef..930fea915 100644
--- a/src/test/ui/borrowck/regions-bound-missing-bound-in-impl.stderr
+++ b/tests/ui/borrowck/regions-bound-missing-bound-in-impl.stderr
@@ -22,8 +22,8 @@ error[E0308]: method not compatible with trait
LL | fn wrong_bound1<'b,'c,'d:'a+'c>(self, b: Inv<'b>, c: Inv<'c>, d: Inv<'d>) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
|
- = note: expected fn pointer `fn(&'a isize, Inv<'c>, Inv<'c>, Inv<'_>)`
- found fn pointer `fn(&'a isize, Inv<'_>, Inv<'c>, Inv<'_>)`
+ = note: expected signature `fn(&'a isize, Inv<'c>, Inv<'c>, Inv<'_>)`
+ found signature `fn(&'a isize, Inv<'_>, Inv<'c>, Inv<'_>)`
note: the lifetime `'c` as defined here...
--> $DIR/regions-bound-missing-bound-in-impl.rs:27:24
|
@@ -41,8 +41,8 @@ error[E0308]: method not compatible with trait
LL | fn wrong_bound1<'b,'c,'d:'a+'c>(self, b: Inv<'b>, c: Inv<'c>, d: Inv<'d>) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
|
- = note: expected fn pointer `fn(&'a isize, Inv<'c>, Inv<'c>, Inv<'_>)`
- found fn pointer `fn(&'a isize, Inv<'_>, Inv<'c>, Inv<'_>)`
+ = note: expected signature `fn(&'a isize, Inv<'c>, Inv<'c>, Inv<'_>)`
+ found signature `fn(&'a isize, Inv<'_>, Inv<'c>, Inv<'_>)`
note: the lifetime `'c` as defined here...
--> $DIR/regions-bound-missing-bound-in-impl.rs:27:24
|
diff --git a/src/test/ui/borrowck/regions-escape-bound-fn-2.rs b/tests/ui/borrowck/regions-escape-bound-fn-2.rs
index 0e98d98cf..0e98d98cf 100644
--- a/src/test/ui/borrowck/regions-escape-bound-fn-2.rs
+++ b/tests/ui/borrowck/regions-escape-bound-fn-2.rs
diff --git a/src/test/ui/borrowck/regions-escape-bound-fn-2.stderr b/tests/ui/borrowck/regions-escape-bound-fn-2.stderr
index 14393bc8e..14393bc8e 100644
--- a/src/test/ui/borrowck/regions-escape-bound-fn-2.stderr
+++ b/tests/ui/borrowck/regions-escape-bound-fn-2.stderr
diff --git a/src/test/ui/borrowck/regions-escape-bound-fn.rs b/tests/ui/borrowck/regions-escape-bound-fn.rs
index f896ae7bd..f896ae7bd 100644
--- a/src/test/ui/borrowck/regions-escape-bound-fn.rs
+++ b/tests/ui/borrowck/regions-escape-bound-fn.rs
diff --git a/src/test/ui/borrowck/regions-escape-bound-fn.stderr b/tests/ui/borrowck/regions-escape-bound-fn.stderr
index a23fdacde..a23fdacde 100644
--- a/src/test/ui/borrowck/regions-escape-bound-fn.stderr
+++ b/tests/ui/borrowck/regions-escape-bound-fn.stderr
diff --git a/src/test/ui/borrowck/regions-escape-unboxed-closure.rs b/tests/ui/borrowck/regions-escape-unboxed-closure.rs
index f01e47122..f01e47122 100644
--- a/src/test/ui/borrowck/regions-escape-unboxed-closure.rs
+++ b/tests/ui/borrowck/regions-escape-unboxed-closure.rs
diff --git a/src/test/ui/borrowck/regions-escape-unboxed-closure.stderr b/tests/ui/borrowck/regions-escape-unboxed-closure.stderr
index 153f77c89..153f77c89 100644
--- a/src/test/ui/borrowck/regions-escape-unboxed-closure.stderr
+++ b/tests/ui/borrowck/regions-escape-unboxed-closure.stderr
diff --git a/src/test/ui/borrowck/return-local-binding-from-desugaring.rs b/tests/ui/borrowck/return-local-binding-from-desugaring.rs
index c6643edf5..c6643edf5 100644
--- a/src/test/ui/borrowck/return-local-binding-from-desugaring.rs
+++ b/tests/ui/borrowck/return-local-binding-from-desugaring.rs
diff --git a/src/test/ui/borrowck/return-local-binding-from-desugaring.stderr b/tests/ui/borrowck/return-local-binding-from-desugaring.stderr
index 9f952542e..9f952542e 100644
--- a/src/test/ui/borrowck/return-local-binding-from-desugaring.stderr
+++ b/tests/ui/borrowck/return-local-binding-from-desugaring.stderr
diff --git a/src/test/ui/borrowck/slice-index-bounds-check-invalidation.rs b/tests/ui/borrowck/slice-index-bounds-check-invalidation.rs
index 0e0e3cda6..0e0e3cda6 100644
--- a/src/test/ui/borrowck/slice-index-bounds-check-invalidation.rs
+++ b/tests/ui/borrowck/slice-index-bounds-check-invalidation.rs
diff --git a/src/test/ui/borrowck/slice-index-bounds-check-invalidation.stderr b/tests/ui/borrowck/slice-index-bounds-check-invalidation.stderr
index f9ed16f19..f9ed16f19 100644
--- a/src/test/ui/borrowck/slice-index-bounds-check-invalidation.stderr
+++ b/tests/ui/borrowck/slice-index-bounds-check-invalidation.stderr
diff --git a/src/test/ui/borrowck/suggest-as-ref-on-mut-closure.rs b/tests/ui/borrowck/suggest-as-ref-on-mut-closure.rs
index 1dcf04618..1dcf04618 100644
--- a/src/test/ui/borrowck/suggest-as-ref-on-mut-closure.rs
+++ b/tests/ui/borrowck/suggest-as-ref-on-mut-closure.rs
diff --git a/src/test/ui/borrowck/suggest-as-ref-on-mut-closure.stderr b/tests/ui/borrowck/suggest-as-ref-on-mut-closure.stderr
index b1af090ae..4621d8793 100644
--- a/src/test/ui/borrowck/suggest-as-ref-on-mut-closure.stderr
+++ b/tests/ui/borrowck/suggest-as-ref-on-mut-closure.stderr
@@ -8,11 +8,8 @@ LL | cb.map(|cb| cb());
| help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents
| move occurs because `*cb` has type `Option<&mut dyn FnMut()>`, which does not implement the `Copy` trait
|
-note: this function takes ownership of the receiver `self`, which moves `*cb`
+note: `Option::<T>::map` takes ownership of the receiver `self`, which moves `*cb`
--> $SRC_DIR/core/src/option.rs:LL:COL
- |
-LL | pub const fn map<U, F>(self, f: F) -> Option<U>
- | ^^^^
error[E0596]: cannot borrow `*cb` as mutable, as it is behind a `&` reference
--> $DIR/suggest-as-ref-on-mut-closure.rs:12:26
diff --git a/src/test/ui/borrowck/suggest-assign-rvalue.rs b/tests/ui/borrowck/suggest-assign-rvalue.rs
index aaca9d47f..aaca9d47f 100644
--- a/src/test/ui/borrowck/suggest-assign-rvalue.rs
+++ b/tests/ui/borrowck/suggest-assign-rvalue.rs
diff --git a/src/test/ui/borrowck/suggest-assign-rvalue.stderr b/tests/ui/borrowck/suggest-assign-rvalue.stderr
index 92acba640..92acba640 100644
--- a/src/test/ui/borrowck/suggest-assign-rvalue.stderr
+++ b/tests/ui/borrowck/suggest-assign-rvalue.stderr
diff --git a/src/test/ui/borrowck/suggest-local-var-double-mut.rs b/tests/ui/borrowck/suggest-local-var-double-mut.rs
index d5996ba68..d5996ba68 100644
--- a/src/test/ui/borrowck/suggest-local-var-double-mut.rs
+++ b/tests/ui/borrowck/suggest-local-var-double-mut.rs
diff --git a/src/test/ui/borrowck/suggest-local-var-double-mut.stderr b/tests/ui/borrowck/suggest-local-var-double-mut.stderr
index 3a43c18a7..3a43c18a7 100644
--- a/src/test/ui/borrowck/suggest-local-var-double-mut.stderr
+++ b/tests/ui/borrowck/suggest-local-var-double-mut.stderr
diff --git a/src/test/ui/borrowck/suggest-local-var-for-vector.rs b/tests/ui/borrowck/suggest-local-var-for-vector.rs
index 40f013f6a..40f013f6a 100644
--- a/src/test/ui/borrowck/suggest-local-var-for-vector.rs
+++ b/tests/ui/borrowck/suggest-local-var-for-vector.rs
diff --git a/src/test/ui/borrowck/suggest-local-var-for-vector.stderr b/tests/ui/borrowck/suggest-local-var-for-vector.stderr
index 615fffcd5..615fffcd5 100644
--- a/src/test/ui/borrowck/suggest-local-var-for-vector.stderr
+++ b/tests/ui/borrowck/suggest-local-var-for-vector.stderr
diff --git a/src/test/ui/borrowck/suggest-local-var-imm-and-mut.rs b/tests/ui/borrowck/suggest-local-var-imm-and-mut.rs
index bf167ba79..bf167ba79 100644
--- a/src/test/ui/borrowck/suggest-local-var-imm-and-mut.rs
+++ b/tests/ui/borrowck/suggest-local-var-imm-and-mut.rs
diff --git a/src/test/ui/borrowck/suggest-local-var-imm-and-mut.stderr b/tests/ui/borrowck/suggest-local-var-imm-and-mut.stderr
index eb934e7b7..eb934e7b7 100644
--- a/src/test/ui/borrowck/suggest-local-var-imm-and-mut.stderr
+++ b/tests/ui/borrowck/suggest-local-var-imm-and-mut.stderr
diff --git a/src/test/ui/borrowck/suggest-storing-local-var-for-vector.rs b/tests/ui/borrowck/suggest-storing-local-var-for-vector.rs
index 40f013f6a..40f013f6a 100644
--- a/src/test/ui/borrowck/suggest-storing-local-var-for-vector.rs
+++ b/tests/ui/borrowck/suggest-storing-local-var-for-vector.rs
diff --git a/src/test/ui/borrowck/suggest-storing-local-var-for-vector.stderr b/tests/ui/borrowck/suggest-storing-local-var-for-vector.stderr
index e3a16eddf..e3a16eddf 100644
--- a/src/test/ui/borrowck/suggest-storing-local-var-for-vector.stderr
+++ b/tests/ui/borrowck/suggest-storing-local-var-for-vector.stderr
diff --git a/src/test/ui/borrowck/two-phase-across-loop.rs b/tests/ui/borrowck/two-phase-across-loop.rs
index 3fcea7d17..3fcea7d17 100644
--- a/src/test/ui/borrowck/two-phase-across-loop.rs
+++ b/tests/ui/borrowck/two-phase-across-loop.rs
diff --git a/src/test/ui/borrowck/two-phase-across-loop.stderr b/tests/ui/borrowck/two-phase-across-loop.stderr
index 22f9b39df..22f9b39df 100644
--- a/src/test/ui/borrowck/two-phase-across-loop.stderr
+++ b/tests/ui/borrowck/two-phase-across-loop.stderr
diff --git a/src/test/ui/borrowck/two-phase-activation-sharing-interference.nll_target.stderr b/tests/ui/borrowck/two-phase-activation-sharing-interference.nll_target.stderr
index aacf17893..aacf17893 100644
--- a/src/test/ui/borrowck/two-phase-activation-sharing-interference.nll_target.stderr
+++ b/tests/ui/borrowck/two-phase-activation-sharing-interference.nll_target.stderr
diff --git a/src/test/ui/borrowck/two-phase-activation-sharing-interference.rs b/tests/ui/borrowck/two-phase-activation-sharing-interference.rs
index 8b880ff64..8b880ff64 100644
--- a/src/test/ui/borrowck/two-phase-activation-sharing-interference.rs
+++ b/tests/ui/borrowck/two-phase-activation-sharing-interference.rs
diff --git a/src/test/ui/borrowck/two-phase-allow-access-during-reservation.nll_target.stderr b/tests/ui/borrowck/two-phase-allow-access-during-reservation.nll_target.stderr
index a57ceb847..a57ceb847 100644
--- a/src/test/ui/borrowck/two-phase-allow-access-during-reservation.nll_target.stderr
+++ b/tests/ui/borrowck/two-phase-allow-access-during-reservation.nll_target.stderr
diff --git a/src/test/ui/borrowck/two-phase-allow-access-during-reservation.rs b/tests/ui/borrowck/two-phase-allow-access-during-reservation.rs
index 67d084207..67d084207 100644
--- a/src/test/ui/borrowck/two-phase-allow-access-during-reservation.rs
+++ b/tests/ui/borrowck/two-phase-allow-access-during-reservation.rs
diff --git a/src/test/ui/borrowck/two-phase-baseline.rs b/tests/ui/borrowck/two-phase-baseline.rs
index 994dc823d..994dc823d 100644
--- a/src/test/ui/borrowck/two-phase-baseline.rs
+++ b/tests/ui/borrowck/two-phase-baseline.rs
diff --git a/src/test/ui/borrowck/two-phase-bin-ops.rs b/tests/ui/borrowck/two-phase-bin-ops.rs
index 1242ae307..1242ae307 100644
--- a/src/test/ui/borrowck/two-phase-bin-ops.rs
+++ b/tests/ui/borrowck/two-phase-bin-ops.rs
diff --git a/src/test/ui/borrowck/two-phase-cannot-nest-mut-self-calls.rs b/tests/ui/borrowck/two-phase-cannot-nest-mut-self-calls.rs
index dd2ef4e27..dd2ef4e27 100644
--- a/src/test/ui/borrowck/two-phase-cannot-nest-mut-self-calls.rs
+++ b/tests/ui/borrowck/two-phase-cannot-nest-mut-self-calls.rs
diff --git a/src/test/ui/borrowck/two-phase-cannot-nest-mut-self-calls.stderr b/tests/ui/borrowck/two-phase-cannot-nest-mut-self-calls.stderr
index 21b0eddb9..21b0eddb9 100644
--- a/src/test/ui/borrowck/two-phase-cannot-nest-mut-self-calls.stderr
+++ b/tests/ui/borrowck/two-phase-cannot-nest-mut-self-calls.stderr
diff --git a/src/test/ui/borrowck/two-phase-control-flow-split-before-activation.rs b/tests/ui/borrowck/two-phase-control-flow-split-before-activation.rs
index 0b20e1945..0b20e1945 100644
--- a/src/test/ui/borrowck/two-phase-control-flow-split-before-activation.rs
+++ b/tests/ui/borrowck/two-phase-control-flow-split-before-activation.rs
diff --git a/src/test/ui/borrowck/two-phase-method-receivers.rs b/tests/ui/borrowck/two-phase-method-receivers.rs
index 6b879af5a..6b879af5a 100644
--- a/src/test/ui/borrowck/two-phase-method-receivers.rs
+++ b/tests/ui/borrowck/two-phase-method-receivers.rs
diff --git a/src/test/ui/borrowck/two-phase-multi-mut.rs b/tests/ui/borrowck/two-phase-multi-mut.rs
index bb646d7ca..bb646d7ca 100644
--- a/src/test/ui/borrowck/two-phase-multi-mut.rs
+++ b/tests/ui/borrowck/two-phase-multi-mut.rs
diff --git a/src/test/ui/borrowck/two-phase-multi-mut.stderr b/tests/ui/borrowck/two-phase-multi-mut.stderr
index 2e53e17a3..2e53e17a3 100644
--- a/src/test/ui/borrowck/two-phase-multi-mut.stderr
+++ b/tests/ui/borrowck/two-phase-multi-mut.stderr
diff --git a/src/test/ui/borrowck/two-phase-multiple-activations.rs b/tests/ui/borrowck/two-phase-multiple-activations.rs
index 53fb71ebe..53fb71ebe 100644
--- a/src/test/ui/borrowck/two-phase-multiple-activations.rs
+++ b/tests/ui/borrowck/two-phase-multiple-activations.rs
diff --git a/src/test/ui/borrowck/two-phase-nonrecv-autoref.base.stderr b/tests/ui/borrowck/two-phase-nonrecv-autoref.base.stderr
index efd63a08a..efd63a08a 100644
--- a/src/test/ui/borrowck/two-phase-nonrecv-autoref.base.stderr
+++ b/tests/ui/borrowck/two-phase-nonrecv-autoref.base.stderr
diff --git a/src/test/ui/borrowck/two-phase-nonrecv-autoref.rs b/tests/ui/borrowck/two-phase-nonrecv-autoref.rs
index da238205b..da238205b 100644
--- a/src/test/ui/borrowck/two-phase-nonrecv-autoref.rs
+++ b/tests/ui/borrowck/two-phase-nonrecv-autoref.rs
diff --git a/src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.rs b/tests/ui/borrowck/two-phase-reservation-sharing-interference-2.rs
index 27e599c6c..27e599c6c 100644
--- a/src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.rs
+++ b/tests/ui/borrowck/two-phase-reservation-sharing-interference-2.rs
diff --git a/src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.stderr b/tests/ui/borrowck/two-phase-reservation-sharing-interference-2.stderr
index 9e0f68b65..9e0f68b65 100644
--- a/src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.stderr
+++ b/tests/ui/borrowck/two-phase-reservation-sharing-interference-2.stderr
diff --git a/src/test/ui/borrowck/two-phase-reservation-sharing-interference.nll_target.stderr b/tests/ui/borrowck/two-phase-reservation-sharing-interference.nll_target.stderr
index e3e4057d6..e3e4057d6 100644
--- a/src/test/ui/borrowck/two-phase-reservation-sharing-interference.nll_target.stderr
+++ b/tests/ui/borrowck/two-phase-reservation-sharing-interference.nll_target.stderr
diff --git a/src/test/ui/borrowck/two-phase-reservation-sharing-interference.rs b/tests/ui/borrowck/two-phase-reservation-sharing-interference.rs
index 0463e22b3..0463e22b3 100644
--- a/src/test/ui/borrowck/two-phase-reservation-sharing-interference.rs
+++ b/tests/ui/borrowck/two-phase-reservation-sharing-interference.rs
diff --git a/src/test/ui/borrowck/two-phase-sneaky.rs b/tests/ui/borrowck/two-phase-sneaky.rs
index bf06366de..bf06366de 100644
--- a/src/test/ui/borrowck/two-phase-sneaky.rs
+++ b/tests/ui/borrowck/two-phase-sneaky.rs
diff --git a/src/test/ui/borrowck/two-phase-sneaky.stderr b/tests/ui/borrowck/two-phase-sneaky.stderr
index 117d7ceae..117d7ceae 100644
--- a/src/test/ui/borrowck/two-phase-sneaky.stderr
+++ b/tests/ui/borrowck/two-phase-sneaky.stderr
diff --git a/src/test/ui/borrowck/two-phase-surprise-no-conflict.rs b/tests/ui/borrowck/two-phase-surprise-no-conflict.rs
index 6d37d1ded..6d37d1ded 100644
--- a/src/test/ui/borrowck/two-phase-surprise-no-conflict.rs
+++ b/tests/ui/borrowck/two-phase-surprise-no-conflict.rs
diff --git a/src/test/ui/borrowck/two-phase-surprise-no-conflict.stderr b/tests/ui/borrowck/two-phase-surprise-no-conflict.stderr
index 5a240d900..5a240d900 100644
--- a/src/test/ui/borrowck/two-phase-surprise-no-conflict.stderr
+++ b/tests/ui/borrowck/two-phase-surprise-no-conflict.stderr
diff --git a/tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.fixed b/tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.fixed
new file mode 100644
index 000000000..b0c537610
--- /dev/null
+++ b/tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.fixed
@@ -0,0 +1,15 @@
+// run-rustfix
+// Test that a by-ref `FnMut` closure gets an error when it tries to
+// consume a value.
+
+fn call<F>(f: F) where F : Fn() {
+ f();
+}
+
+fn main() {
+ let y = vec![format!("World")];
+ call(|| {
+ y.clone().into_iter();
+ //~^ ERROR cannot move out of `y`, a captured variable in an `Fn` closure
+ });
+}
diff --git a/src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs b/tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs
index d54b09c5d..4666b8a33 100644
--- a/src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs
+++ b/tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.rs
@@ -1,3 +1,4 @@
+// run-rustfix
// Test that a by-ref `FnMut` closure gets an error when it tries to
// consume a value.
diff --git a/tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr b/tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr
new file mode 100644
index 000000000..f033d53bf
--- /dev/null
+++ b/tests/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr
@@ -0,0 +1,22 @@
+error[E0507]: cannot move out of `y`, a captured variable in an `Fn` closure
+ --> $DIR/unboxed-closures-move-upvar-from-non-once-ref-closure.rs:12:9
+ |
+LL | let y = vec![format!("World")];
+ | - captured outer variable
+LL | call(|| {
+ | -- captured by this `Fn` closure
+LL | y.into_iter();
+ | ^ ----------- `y` moved due to this method call
+ | |
+ | move occurs because `y` has type `Vec<String>`, which does not implement the `Copy` trait
+ |
+note: `into_iter` takes ownership of the receiver `self`, which moves `y`
+ --> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
+help: you can `clone` the value and consume it, but this might not be your desired behavior
+ |
+LL | y.clone().into_iter();
+ | ++++++++
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0507`.