rust/tests/ui/borrowck
Ralf Jung a0215d8e46 Re-do recursive const stability checks
Fundamentally, we have *three* disjoint categories of functions:
1. const-stable functions
2. private/unstable functions that are meant to be callable from const-stable functions
3. functions that can make use of unstable const features

This PR implements the following system:
- `#[rustc_const_stable]` puts functions in the first category. It may only be applied to `#[stable]` functions.
- `#[rustc_const_unstable]` by default puts functions in the third category. The new attribute `#[rustc_const_stable_indirect]` can be added to such a function to move it into the second category.
- `const fn` without a const stability marker are in the second category if they are still unstable. They automatically inherit the feature gate for regular calls, it can now also be used for const-calls.

Also, several holes in recursive const stability checking are being closed.
There's still one potential hole that is hard to avoid, which is when MIR
building automatically inserts calls to a particular function in stable
functions -- which happens in the panic machinery. Those need to *not* be
`rustc_const_unstable` (or manually get a `rustc_const_stable_indirect`) to be
sure they follow recursive const stability. But that's a fairly rare and special
case so IMO it's fine.

The net effect of this is that a `#[unstable]` or unmarked function can be
constified simply by marking it as `const fn`, and it will then be
const-callable from stable `const fn` and subject to recursive const stability
requirements. If it is publicly reachable (which implies it cannot be unmarked),
it will be const-unstable under the same feature gate. Only if the function ever
becomes `#[stable]` does it need a `#[rustc_const_unstable]` or
`#[rustc_const_stable]` marker to decide if this should also imply
const-stability.

Adding `#[rustc_const_unstable]` is only needed for (a) functions that need to
use unstable const lang features (including intrinsics), or (b) `#[stable]`
functions that are not yet intended to be const-stable. Adding
`#[rustc_const_stable]` is only needed for functions that are actually meant to
be directly callable from stable const code. `#[rustc_const_stable_indirect]` is
used to mark intrinsics as const-callable and for `#[rustc_const_unstable]`
functions that are actually called from other, exposed-on-stable `const fn`. No
other attributes are required.
2024-10-25 20:31:40 +02:00
..
alias-liveness No longer mark RTN as incomplete 2024-09-22 10:46:59 -04:00
access-mode-in-closures.rs
access-mode-in-closures.stderr
accidentally-cloning-ref-borrow-error.rs
accidentally-cloning-ref-borrow-error.stderr
anonymous-region-in-apit.rs
anonymous-region-in-apit.stderr
argument_number_mismatch_ice.rs
argument_number_mismatch_ice.stderr Account for trait/impl difference when suggesting changing argument from ref to mut ref 2024-04-06 16:23:10 +00:00
assign_mutable_fields.rs
assign_mutable_fields.stderr
assign-never-type.rs
async-reference-generality.rs
bindings-after-at-or-patterns-slice-patterns-box-patterns.rs
bindings-after-at-or-patterns-slice-patterns-box-patterns.stderr
borrow-immutable-upvar-mutation-impl-trait.rs
borrow-immutable-upvar-mutation-impl-trait.stderr
borrow-immutable-upvar-mutation.rs
borrow-immutable-upvar-mutation.stderr
borrow-raw-address-of-borrowed.rs stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
borrow-raw-address-of-borrowed.stderr stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
borrow-raw-address-of-deref-mutability-ok.rs stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
borrow-raw-address-of-deref-mutability.rs stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
borrow-raw-address-of-deref-mutability.stderr stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
borrow-raw-address-of-mutability-ok.rs stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
borrow-raw-address-of-mutability.rs stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
borrow-raw-address-of-mutability.stderr stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
borrow-tuple-fields.rs
borrow-tuple-fields.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-access-permissions.rs Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
borrowck-access-permissions.stderr Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
borrowck-and-init.rs
borrowck-and-init.stderr
borrowck-anon-fields-struct.rs
borrowck-anon-fields-struct.stderr
borrowck-anon-fields-tuple.rs
borrowck-anon-fields-tuple.stderr
borrowck-anon-fields-variant.rs
borrowck-anon-fields-variant.stderr
borrowck-argument.rs
borrowck-argument.stderr
borrowck-assign-comp-idx.rs
borrowck-assign-comp-idx.stderr
borrowck-assign-comp.rs
borrowck-assign-comp.stderr
borrowck-assign-to-andmut-in-aliasable-loc.rs
borrowck-assign-to-andmut-in-aliasable-loc.stderr
borrowck-assign-to-andmut-in-borrowed-loc.rs
borrowck-assign-to-andmut-in-borrowed-loc.stderr
borrowck-assign-to-constants.rs
borrowck-assign-to-constants.stderr
borrowck-assign-to-subfield.rs
borrowck-assignment-to-static-mut.rs
borrowck-auto-mut-ref-to-immut-var.rs
borrowck-auto-mut-ref-to-immut-var.stderr
borrowck-autoref-3261.rs
borrowck-autoref-3261.stderr
borrowck-bad-nested-calls-free.rs
borrowck-bad-nested-calls-free.stderr
borrowck-bad-nested-calls-move.rs
borrowck-bad-nested-calls-move.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-binding-mutbl.rs
borrowck-block-uninit.rs
borrowck-block-uninit.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-borrow-from-expr-block.rs
borrowck-borrow-from-owned-ptr.rs
borrowck-borrow-from-owned-ptr.stderr
borrowck-borrow-from-stack-variable.rs
borrowck-borrow-from-stack-variable.stderr
borrowck-borrow-from-temporary.rs
borrowck-borrow-from-temporary.stderr
borrowck-borrow-immut-deref-of-box-as-mut.rs
borrowck-borrow-immut-deref-of-box-as-mut.stderr
borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
borrowck-borrow-mut-base-ptr-in-aliasable-loc.stderr
borrowck-borrow-mut-object-twice.rs
borrowck-borrow-mut-object-twice.stderr
borrowck-borrow-of-mut-base-ptr-safe.rs
borrowck-borrow-overloaded-auto-deref.rs
borrowck-borrow-overloaded-auto-deref.stderr
borrowck-borrow-overloaded-deref.rs
borrowck-borrow-overloaded-deref.stderr
borrowck-borrowed-uniq-rvalue-2.rs
borrowck-borrowed-uniq-rvalue-2.stderr
borrowck-borrowed-uniq-rvalue.fixed
borrowck-borrowed-uniq-rvalue.rs
borrowck-borrowed-uniq-rvalue.stderr
borrowck-box-sensitivity.rs
borrowck-break-uninit-2.rs
borrowck-break-uninit-2.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-break-uninit.rs
borrowck-break-uninit.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-closures-mut-and-imm.rs
borrowck-closures-mut-and-imm.stderr
borrowck-closures-mut-of-imm.rs
borrowck-closures-mut-of-imm.stderr
borrowck-closures-mut-of-mut.rs
borrowck-closures-mut-of-mut.stderr
borrowck-closures-slice-patterns-ok.rs
borrowck-closures-slice-patterns.rs
borrowck-closures-slice-patterns.stderr Better account for more cases involving closures 2024-04-12 04:46:31 +00:00
borrowck-closures-two-imm.rs
borrowck-closures-two-mut-fail.rs
borrowck-closures-two-mut-fail.stderr
borrowck-closures-two-mut.rs
borrowck-closures-two-mut.stderr
borrowck-closures-unique-imm.rs
borrowck-closures-unique-imm.stderr
borrowck-closures-unique.rs
borrowck-closures-unique.stderr More accurate mutability suggestion 2024-07-04 05:36:34 +00:00
borrowck-closures-use-after-free.rs
borrowck-closures-use-after-free.stderr
borrowck-consume-unsize-vec.rs
borrowck-consume-unsize-vec.stderr
borrowck-consume-upcast-box.rs
borrowck-consume-upcast-box.stderr
borrowck-describe-lvalue.rs
borrowck-describe-lvalue.stderr
borrowck-drop-from-guard.rs
borrowck-drop-from-guard.stderr
borrowck-escaping-closure-error-1.rs
borrowck-escaping-closure-error-1.stderr
borrowck-escaping-closure-error-2.rs
borrowck-escaping-closure-error-2.stderr
borrowck-field-sensitivity-rpass.rs
borrowck-field-sensitivity.rs
borrowck-field-sensitivity.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-fixed-length-vecs.rs
borrowck-fn-in-const-a.rs Minor test fmt 2024-04-11 16:41:41 +00:00
borrowck-fn-in-const-a.stderr Suggest .clone() in some move errors 2024-04-11 16:41:41 +00:00
borrowck-fn-in-const-c.rs
borrowck-fn-in-const-c.stderr
borrowck-for-loop-correct-cmt-for-pattern.rs
borrowck-for-loop-correct-cmt-for-pattern.stderr
borrowck-for-loop-head-linkage.rs
borrowck-for-loop-head-linkage.stderr
borrowck-for-loop-uninitialized-binding.rs
borrowck-for-loop-uninitialized-binding.stderr
borrowck-freeze-frozen-mut.rs
borrowck-if-no-else.rs
borrowck-if-no-else.stderr
borrowck-if-with-else.rs
borrowck-if-with-else.stderr
borrowck-imm-ref-to-mut-rec-field-issue-3162-c.rs
borrowck-imm-ref-to-mut-rec-field-issue-3162-c.stderr
borrowck-in-static.rs Minor test fmt 2024-04-11 16:41:41 +00:00
borrowck-in-static.stderr Suggest .clone() in some move errors 2024-04-11 16:41:41 +00:00
borrowck-init-in-called-fn-expr.rs
borrowck-init-in-called-fn-expr.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-init-in-fn-expr.rs
borrowck-init-in-fn-expr.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-init-in-fru.rs
borrowck-init-in-fru.stderr Use /* value */ as a placeholder 2024-04-15 21:36:52 -04:00
borrowck-init-op-equal.rs
borrowck-init-op-equal.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-init-plus-equal.rs
borrowck-init-plus-equal.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-insert-during-each.rs
borrowck-insert-during-each.stderr
borrowck-issue-2657-1.rs
borrowck-issue-2657-1.stderr
borrowck-issue-2657-2.fixed More move error suggestions to clone 2024-04-11 16:41:41 +00:00
borrowck-issue-2657-2.rs
borrowck-issue-2657-2.stderr More move error suggestions to clone 2024-04-11 16:41:41 +00:00
borrowck-issue-14498.rs
borrowck-issue-14498.stderr
borrowck-issue-48962.rs
borrowck-issue-48962.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-lend-args.rs
borrowck-lend-flow-if.rs
borrowck-lend-flow-if.stderr
borrowck-lend-flow-loop.rs
borrowck-lend-flow-loop.stderr
borrowck-lend-flow-match.rs
borrowck-lend-flow-match.stderr
borrowck-lend-flow.rs
borrowck-lend-flow.stderr
borrowck-loan-blocks-move-cc.rs
borrowck-loan-blocks-move-cc.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-loan-blocks-move.rs
borrowck-loan-blocks-move.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-loan-blocks-mut-uniq.rs
borrowck-loan-blocks-mut-uniq.stderr
borrowck-loan-in-overloaded-op.rs
borrowck-loan-in-overloaded-op.stderr
borrowck-loan-of-static-data-issue-27616.rs
borrowck-loan-of-static-data-issue-27616.stderr
borrowck-loan-rcvr-overloaded-op.rs
borrowck-loan-rcvr-overloaded-op.stderr
borrowck-loan-rcvr.rs
borrowck-loan-rcvr.stderr
borrowck-loan-vec-content.rs
borrowck-loan-vec-content.stderr
borrowck-local-borrow-outlives-fn.rs
borrowck-local-borrow-outlives-fn.stderr
borrowck-local-borrow-with-panic-outlives-fn.rs
borrowck-local-borrow-with-panic-outlives-fn.stderr
borrowck-local-borrow.rs
borrowck-macro-interaction-issue-6304.rs
borrowck-match-already-borrowed.rs
borrowck-match-already-borrowed.stderr
borrowck-match-binding-is-assignment.rs
borrowck-match-binding-is-assignment.stderr Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
borrowck-move-by-capture-ok.rs
borrowck-move-by-capture.rs
borrowck-move-by-capture.stderr Suggest cloning captured binding in move closure 2024-04-24 22:21:16 +00:00
borrowck-move-error-with-note.fixed
borrowck-move-error-with-note.rs
borrowck-move-error-with-note.stderr
borrowck-move-from-subpath-of-borrowed-path.rs
borrowck-move-from-subpath-of-borrowed-path.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-move-from-unsafe-ptr.rs
borrowck-move-from-unsafe-ptr.stderr fix: prefer (*p).clone to p.clone if the p is a raw pointer 2024-06-29 19:58:18 +08:00
borrowck-move-in-irrefut-pat.rs
borrowck-move-in-irrefut-pat.stderr
borrowck-move-moved-value-into-closure.rs
borrowck-move-moved-value-into-closure.stderr
borrowck-move-mut-base-ptr.rs
borrowck-move-mut-base-ptr.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-move-out-from-array-match.rs
borrowck-move-out-from-array-match.stderr
borrowck-move-out-from-array-no-overlap-match.rs
borrowck-move-out-from-array-no-overlap.rs
borrowck-move-out-from-array-use-match.rs
borrowck-move-out-from-array-use-match.stderr
borrowck-move-out-from-array-use-no-overlap-match.rs
borrowck-move-out-from-array-use-no-overlap.rs
borrowck-move-out-from-array-use.rs
borrowck-move-out-from-array-use.stderr
borrowck-move-out-from-array.rs
borrowck-move-out-from-array.stderr
borrowck-move-out-of-overloaded-auto-deref.fixed Suggest .clone() in some move errors 2024-04-11 16:41:41 +00:00
borrowck-move-out-of-overloaded-auto-deref.rs
borrowck-move-out-of-overloaded-auto-deref.stderr Suggest .clone() in some move errors 2024-04-11 16:41:41 +00:00
borrowck-move-out-of-overloaded-deref.rs
borrowck-move-out-of-overloaded-deref.stderr More move error suggestions to clone 2024-04-11 16:41:41 +00:00
borrowck-move-out-of-static-item.rs Minor test fmt 2024-04-11 16:41:41 +00:00
borrowck-move-out-of-static-item.stderr Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
borrowck-move-out-of-struct-with-dtor.fixed
borrowck-move-out-of-struct-with-dtor.rs
borrowck-move-out-of-struct-with-dtor.stderr
borrowck-move-out-of-tuple-struct-with-dtor.fixed
borrowck-move-out-of-tuple-struct-with-dtor.rs
borrowck-move-out-of-tuple-struct-with-dtor.stderr
borrowck-move-out-of-vec-tail.rs
borrowck-move-out-of-vec-tail.stderr
borrowck-move-subcomponent.rs
borrowck-move-subcomponent.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-multiple-borrows-interior-boxes.rs
borrowck-multiple-captures.rs
borrowck-multiple-captures.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-mut-addr-of-imm-var.rs
borrowck-mut-addr-of-imm-var.stderr
borrowck-mut-borrow-linear-errors.rs
borrowck-mut-borrow-linear-errors.stderr
borrowck-mut-borrow-of-mut-base-ptr.rs
borrowck-mut-borrow-of-mut-base-ptr.stderr
borrowck-mut-slice-of-imm-vec.rs
borrowck-mut-slice-of-imm-vec.stderr
borrowck-mut-uniq.rs
borrowck-mut-vec-as-imm-slice.rs
borrowck-mutate-in-guard.rs
borrowck-mutate-in-guard.stderr
borrowck-no-cycle-in-exchange-heap.rs
borrowck-no-cycle-in-exchange-heap.stderr
borrowck-object-lifetime.rs
borrowck-object-lifetime.stderr
borrowck-or-init.rs
borrowck-or-init.stderr
borrowck-overloaded-call.rs
borrowck-overloaded-call.stderr Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
borrowck-overloaded-index-and-overloaded-deref.rs
borrowck-overloaded-index-and-overloaded-deref.stderr
borrowck-overloaded-index-autoderef.rs
borrowck-overloaded-index-autoderef.stderr
borrowck-overloaded-index-move-from-vec.rs
borrowck-overloaded-index-move-from-vec.stderr More move error suggestions to clone 2024-04-11 16:41:41 +00:00
borrowck-overloaded-index-move-index.rs
borrowck-overloaded-index-move-index.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-overloaded-index-ref-index.rs
borrowck-overloaded-index-ref-index.stderr
borrowck-partial-reinit-1.rs
borrowck-partial-reinit-1.stderr
borrowck-partial-reinit-2.rs
borrowck-partial-reinit-2.stderr
borrowck-partial-reinit-3.rs
borrowck-partial-reinit-3.stderr
borrowck-partial-reinit-4.rs
borrowck-partial-reinit-4.stderr
borrowck-pat-enum.rs
borrowck-pat-reassign-binding.rs
borrowck-pat-reassign-binding.stderr
borrowck-pat-reassign-no-binding.rs
borrowck-reborrow-from-mut.rs
borrowck-reborrow-from-mut.stderr
borrowck-reborrow-from-shorter-lived-andmut.rs
borrowck-reborrow-from-shorter-lived-andmut.stderr
borrowck-ref-mut-of-imm.rs
borrowck-ref-mut-of-imm.stderr
borrowck-reinit.rs
borrowck-reinit.stderr
borrowck-report-with-custom-diagnostic.rs
borrowck-report-with-custom-diagnostic.stderr
borrowck-return-variable-on-stack-via-clone.rs
borrowck-return-variable-on-stack-via-clone.stderr
borrowck-return.rs
borrowck-return.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-rvalues-mutable.rs
borrowck-scope-of-deref-issue-4666.rs
borrowck-slice-pattern-element-loan-array-no-overlap.rs
borrowck-slice-pattern-element-loan-array.rs
borrowck-slice-pattern-element-loan-array.stderr
borrowck-slice-pattern-element-loan-rpass.rs
borrowck-slice-pattern-element-loan-slice-no-overlap.rs
borrowck-slice-pattern-element-loan-slice.rs
borrowck-slice-pattern-element-loan-slice.stderr
borrowck-static-item-in-fn.rs
borrowck-storage-dead.rs
borrowck-storage-dead.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-struct-update-with-dtor.rs Account for move error in the spread operator on struct literals 2024-04-11 16:41:42 +00:00
borrowck-struct-update-with-dtor.stderr review comments 2024-04-12 20:57:07 +00:00
borrowck-swap-mut-base-ptr.rs
borrowck-swap-mut-base-ptr.stderr
borrowck-thread-local-static-borrow-outlives-fn.rs
borrowck-thread-local-static-borrow-outlives-fn.stderr
borrowck-trait-lifetime.rs
borrowck-unary-move.rs
borrowck-unary-move.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
borrowck-unboxed-closures.rs
borrowck-unboxed-closures.stderr Better account for FnOnce in move errors 2024-04-11 16:41:42 +00:00
borrowck-uninit-after-item.rs
borrowck-uninit-after-item.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-uninit-field-access.rs
borrowck-uninit-field-access.stderr
borrowck-uninit-in-assignop.rs
borrowck-uninit-in-assignop.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-uninit-ref-chain.rs
borrowck-uninit-ref-chain.stderr Use /* value */ as a placeholder 2024-04-15 21:36:52 -04:00
borrowck-uninit.rs
borrowck-uninit.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-union-borrow-nested.rs
borrowck-union-borrow-nested.stderr
borrowck-union-borrow.rs
borrowck-union-borrow.stderr
borrowck-union-move-assign.rs
borrowck-union-move-assign.stderr
borrowck-union-move.rs
borrowck-union-move.stderr
borrowck-union-uninitialized.rs
borrowck-union-uninitialized.stderr
borrowck-uniq-via-lend.rs
borrowck-uniq-via-lend.stderr
borrowck-uniq-via-ref.rs
borrowck-univariant-enum.rs
borrowck-unsafe-static-mutable-borrows.rs Improve wording of static_mut_ref 2024-02-18 06:01:40 +03:00
borrowck-unsafe-static-mutable-borrows.stderr Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
borrowck-unused-mut-locals.rs
borrowck-use-in-index-lvalue.fixed Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-use-in-index-lvalue.rs Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-use-in-index-lvalue.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-use-mut-borrow-rpass.rs
borrowck-use-mut-borrow.rs
borrowck-use-mut-borrow.stderr
borrowck-use-uninitialized-in-cast-trait.fixed Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-use-uninitialized-in-cast-trait.rs Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-use-uninitialized-in-cast-trait.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-use-uninitialized-in-cast.fixed Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-use-uninitialized-in-cast.rs Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-use-uninitialized-in-cast.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
borrowck-vec-pattern-element-loan.rs
borrowck-vec-pattern-element-loan.stderr
borrowck-vec-pattern-loan-from-mut.rs
borrowck-vec-pattern-loan-from-mut.stderr
borrowck-vec-pattern-move-tail.rs
borrowck-vec-pattern-move-tail.stderr
borrowck-vec-pattern-nesting.rs More move error suggestions to clone 2024-04-11 16:41:41 +00:00
borrowck-vec-pattern-nesting.stderr More move error suggestions to clone 2024-04-11 16:41:41 +00:00
borrowck-vec-pattern-tail-element-loan.rs
borrowck-vec-pattern-tail-element-loan.stderr
borrowck-while-break.rs
borrowck-while-break.stderr
borrowck-while-cond.rs
borrowck-while-cond.stderr
borrowck-while.rs
borrowck-while.stderr
clone-on-ref.fixed Fix accuracy of T: Clone check in suggestion 2024-04-11 16:41:41 +00:00
clone-on-ref.rs Detect calls to .clone() on T: !Clone types on borrowck errors 2024-03-13 23:05:11 +00:00
clone-on-ref.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
clone-span-on-try-operator.fixed Suggest .clone() in some move errors 2024-04-11 16:41:41 +00:00
clone-span-on-try-operator.rs
clone-span-on-try-operator.stderr Suggest .clone() in some move errors 2024-04-11 16:41:41 +00:00
cloning-in-async-block-121547.rs Fix diagnostics for async block cloning 2024-03-23 20:22:51 +01:00
cloning-in-async-block-121547.stderr Tighten spans for async blocks 2024-06-27 15:19:08 -04:00
copy-suggestion-region-vid.fixed
copy-suggestion-region-vid.rs
copy-suggestion-region-vid.stderr
dbg-issue-120327.rs Suggest a borrow when using dbg 2024-07-16 02:48:47 +08:00
dbg-issue-120327.stderr Suggest a borrow when using dbg 2024-07-16 02:48:47 +08:00
disallow-possibly-uninitialized.rs
disallow-possibly-uninitialized.stderr
do-not-suggest-adding-move-when-closure-is-already-marked-as-move.rs
do-not-suggest-adding-move-when-closure-is-already-marked-as-move.stderr
drop-in-loop.rs
drop-in-loop.stderr
fn-item-check-trait-ref.rs
fn-item-check-trait-ref.stderr
fn-item-check-type-params.rs
fn-item-check-type-params.stderr
fsu-moves-and-copies.rs
generic_const_early_param.rs Stop proving outlives constraints on regions we already reported errors on 2024-05-29 09:27:07 +00:00
generic_const_early_param.stderr Stop proving outlives constraints on regions we already reported errors on 2024-05-29 09:27:07 +00:00
ice-mutability-error-slicing-121807.rs add test for #121807 2024-03-21 21:27:37 +01:00
ice-mutability-error-slicing-121807.stderr add test for #121807 2024-03-21 21:27:37 +01:00
ice-on-non-ref-sig-ty.rs Don't ICE if HIR and middle types disagree in borrowck error reporting 2024-07-24 23:36:47 -04:00
ice-on-non-ref-sig-ty.stderr Don't ICE if HIR and middle types disagree in borrowck error reporting 2024-07-24 23:36:47 -04:00
immut-function-arguments.rs
immut-function-arguments.stderr
immutable-arg.rs
immutable-arg.stderr Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
index-mut-help-with-impl.rs
index-mut-help-with-impl.stderr
index-mut-help.rs
index-mut-help.stderr
issue-7573.rs
issue-7573.stderr
issue-10876.rs
issue-11493.fixed
issue-11493.rs
issue-11493.stderr
issue-17263.rs
issue-17545.rs
issue-17545.stderr
issue-17718-static-move.rs
issue-17718-static-move.stderr Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
issue-20801.rs Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
issue-20801.stderr Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
issue-23338-params-outlive-temps-of-body.rs
issue-24267-flow-exit.rs
issue-24267-flow-exit.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
issue-25793.rs
issue-25793.stderr
issue-28934.rs
issue-29166.rs
issue-31287-drop-in-guard.rs
issue-31287-drop-in-guard.stderr
issue-33819.rs
issue-33819.stderr Fix &mut removal suggestion 2024-07-04 04:36:52 +00:00
issue-36082.fixed
issue-36082.rs
issue-36082.stderr
issue-41962.rs
issue-41962.stderr
issue-42344.rs
issue-42344.stderr
issue-45199.rs Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
issue-45199.stderr Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
issue-45983.rs
issue-45983.stderr
issue-46095.rs
issue-46471.rs
issue-46471.stderr
issue-47215-ice-from-drop-elab.rs
issue-47215-ice-from-drop-elab.stderr
issue-47646.rs
issue-47646.stderr
issue-51117.rs
issue-51117.stderr
issue-51301.rs
issue-51301.stderr
issue-51348-multi-ref-mut-in-guard.rs
issue-51415.fixed
issue-51415.rs
issue-51415.stderr
issue-52713-bug.rs
issue-52713-bug.stderr
issue-52967-edition-2018-needs-two-phase-borrows.rs
issue-53432-nested-closure-outlives-borrowed-value.rs
issue-53432-nested-closure-outlives-borrowed-value.stderr
issue-54499-field-mutation-marks-mut-as-used.rs
issue-54499-field-mutation-marks-mut-as-used.stderr
issue-54499-field-mutation-of-moved-out-with-mut.rs
issue-54499-field-mutation-of-moved-out-with-mut.stderr
issue-54499-field-mutation-of-moved-out.rs
issue-54499-field-mutation-of-moved-out.stderr
issue-54499-field-mutation-of-never-init.rs
issue-54499-field-mutation-of-never-init.stderr
issue-54597-reject-move-out-of-borrow-via-pat.rs
issue-54597-reject-move-out-of-borrow-via-pat.stderr
issue-55492-borrowck-migrate-scans-parents.rs Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
issue-55492-borrowck-migrate-scans-parents.stderr Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
issue-55552-ascribe-wildcard-to-structured-pattern.rs
issue-58776-borrowck-scans-children.rs
issue-58776-borrowck-scans-children.stderr
issue-62007-assign-box.rs
issue-62007-assign-field.rs
issue-62107-match-arm-scopes.rs
issue-62107-match-arm-scopes.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
issue-62387-suggest-iter-mut-2.fixed
issue-62387-suggest-iter-mut-2.rs
issue-62387-suggest-iter-mut-2.stderr
issue-62387-suggest-iter-mut.fixed
issue-62387-suggest-iter-mut.rs
issue-62387-suggest-iter-mut.stderr
issue-64453.rs Re-do recursive const stability checks 2024-10-25 20:31:40 +02:00
issue-64453.stderr Re-do recursive const stability checks 2024-10-25 20:31:40 +02:00
issue-69789-iterator-mut-suggestion.rs
issue-69789-iterator-mut-suggestion.stderr
issue-70919-drop-in-loop.rs
issue-71546.rs
issue-80772.rs
issue-81365-1.rs
issue-81365-1.stderr
issue-81365-2.rs
issue-81365-2.stderr
issue-81365-3.rs
issue-81365-3.stderr
issue-81365-4.rs
issue-81365-4.stderr
issue-81365-5.rs
issue-81365-5.stderr
issue-81365-6.rs
issue-81365-6.stderr
issue-81365-7.rs
issue-81365-7.stderr
issue-81365-8.rs
issue-81365-8.stderr
issue-81365-9.rs
issue-81365-9.stderr
issue-81365-10.rs
issue-81365-10.stderr
issue-81365-11.rs
issue-81365-11.stderr
issue-81899.rs
issue-81899.stderr
issue-82032.rs
issue-82032.stderr
issue-82126-mismatched-subst-and-hir.rs Bless test fallout (duplicate diagnostics) 2024-03-20 13:00:34 -04:00
issue-82126-mismatched-subst-and-hir.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
issue-82462.rs
issue-82462.stderr
issue-83309-ice-immut-in-for-loop.rs
issue-83309-ice-immut-in-for-loop.stderr
issue-83760.fixed
issue-83760.rs
issue-83760.stderr
issue-83924.fixed
issue-83924.rs
issue-83924.stderr
issue-85581.rs
issue-85581.stderr
issue-85765-closure.rs
issue-85765-closure.stderr
issue-85765.rs
issue-85765.stderr
issue-87456-point-to-closure.rs
issue-87456-point-to-closure.stderr More move error suggestions to clone 2024-04-11 16:41:41 +00:00
issue-88434-minimal-example.rs
issue-88434-minimal-example.stderr
issue-88434-removal-index-should-be-less.rs
issue-88434-removal-index-should-be-less.stderr
issue-91206.rs
issue-91206.stderr
issue-92015.rs
issue-92015.stderr
issue-92157.rs
issue-92157.stderr
issue-93078.rs
issue-93078.stderr
issue-93093.rs
issue-93093.stderr
issue-95079-missing-move-in-nested-closure.fixed
issue-95079-missing-move-in-nested-closure.rs
issue-95079-missing-move-in-nested-closure.stderr
issue-101119.rs
issue-101119.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
issue-102209.rs
issue-102209.stderr
issue-103095.rs
issue-103250.rs
issue-103250.stderr Use /* value */ as a placeholder 2024-04-15 21:36:52 -04:00
issue-103624.rs
issue-103624.stderr Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
issue-104639-lifetime-order.rs
issue-109271-pass-self-into-closure.fixed
issue-109271-pass-self-into-closure.rs
issue-109271-pass-self-into-closure.stderr When displaying multispans, ignore empty lines adjacent to ... 2024-03-18 16:25:36 +00:00
issue-111554.rs
issue-111554.stderr More accurate mutability suggestion 2024-07-04 05:36:34 +00:00
issue-114374-invalid-help-fmt-args.rs
issue-114374-invalid-help-fmt-args.stderr
issue-115259-suggest-iter-mut.fixed
issue-115259-suggest-iter-mut.rs
issue-115259-suggest-iter-mut.stderr
issue-119915-bad-clone-suggestion.rs
issue-119915-bad-clone-suggestion.stderr Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
kindck-implicit-close-over-mut-var.rs
lazy-init.rs
let_underscore_temporary.rs Update test. 2024-02-20 15:34:11 +01:00
let_underscore_temporary.stderr Update test. 2024-02-20 15:34:11 +01:00
many-mutable-borrows.rs
many-mutable-borrows.stderr
move-error-in-promoted-2.rs
move-error-in-promoted-2.stderr Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
move-error-in-promoted.rs
move-error-in-promoted.stderr Suggest .clone() in some move errors 2024-04-11 16:41:41 +00:00
move-error-snippets-ext.rs
move-error-snippets.rs
move-error-snippets.stderr Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
move-error-suggest-clone-panic-issue-127915.rs fixes panic error 2024-07-19 09:34:32 +08:00
move-error-suggest-clone-panic-issue-127915.stderr fixes panic error 2024-07-19 09:34:32 +08:00
move-from-union-field-issue-66500.rs
move-from-union-field-issue-66500.stderr fix: prefer (*p).clone to p.clone if the p is a raw pointer 2024-06-29 19:58:18 +08:00
move-in-pattern-mut-in-loop.rs
move-in-pattern-mut-in-loop.stderr
move-in-pattern-mut.rs
move-in-pattern-mut.stderr
move-in-pattern.fixed
move-in-pattern.rs
move-in-pattern.stderr
move-in-static-initializer-issue-38520.rs
move-in-static-initializer-issue-38520.stderr Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
moved-value-suggest-reborrow-issue-127285.fixed If the moved value is a mut reference, it is used in a generic function and it's type is a generic param, it can be reborrowed to avoid moving. 2024-07-17 10:07:02 +08:00
moved-value-suggest-reborrow-issue-127285.rs If the moved value is a mut reference, it is used in a generic function and it's type is a generic param, it can be reborrowed to avoid moving. 2024-07-17 10:07:02 +08:00
moved-value-suggest-reborrow-issue-127285.stderr If the moved value is a mut reference, it is used in a generic function and it's type is a generic param, it can be reborrowed to avoid moving. 2024-07-17 10:07:02 +08:00
mut-borrow-in-loop-2.rs Detect when move of !Copy value occurs within loop and should likely not be cloned 2024-03-17 21:32:26 +00:00
mut-borrow-in-loop-2.stderr If the moved value is a mut reference, it is used in a generic function and it's type is a generic param, it can be reborrowed to avoid moving. 2024-07-17 10:07:02 +08:00
mut-borrow-in-loop.rs
mut-borrow-in-loop.stderr
mut-borrow-of-mut-ref.rs
mut-borrow-of-mut-ref.stderr
mut-borrow-outside-loop.rs
mut-borrow-outside-loop.stderr
mutability-errors.rs
mutability-errors.stderr More accurate mutability suggestion 2024-07-04 05:36:34 +00:00
non-ADT-struct-pattern-box-pattern-ice-121463.rs add test for ice #121463 2024-04-21 22:00:38 +02:00
non-ADT-struct-pattern-box-pattern-ice-121463.stderr add test for ice #121463 2024-04-21 22:00:38 +02:00
opaque-types-patterns-subtyping-ice-104779.rs add test for #104779 opaque types, patterns and subtyping ICE: IndexMap: key not found 2024-03-23 12:19:05 +01:00
opaque-types-patterns-subtyping-ice-104779.stderr add test for #104779 opaque types, patterns and subtyping ICE: IndexMap: key not found 2024-03-23 12:19:05 +01:00
or-patterns.rs
or-patterns.stderr
promote-ref-mut-in-let-issue-46557.rs
promote-ref-mut-in-let-issue-46557.stderr
reassignment_immutable_fields_overlapping.rs
reassignment_immutable_fields_overlapping.stderr
reassignment_immutable_fields_twice.rs
reassignment_immutable_fields_twice.stderr
reassignment_immutable_fields.rs
reassignment_immutable_fields.stderr
reborrow-sugg-move-then-borrow.rs
reborrow-sugg-move-then-borrow.stderr
regions-bound-missing-bound-in-impl.rs
regions-bound-missing-bound-in-impl.stderr Do not rely on names to find lifetimes. 2024-08-22 02:20:05 +00:00
regions-escape-bound-fn-2.rs
regions-escape-bound-fn-2.stderr
regions-escape-bound-fn.rs
regions-escape-bound-fn.stderr
regions-escape-unboxed-closure.rs
regions-escape-unboxed-closure.stderr
return-local-binding-from-desugaring.rs
return-local-binding-from-desugaring.stderr
slice-index-bounds-check-invalidation.rs
slice-index-bounds-check-invalidation.stderr
suggest-as-ref-on-mut-closure.rs
suggest-as-ref-on-mut-closure.stderr
suggest-assign-rvalue.rs
suggest-assign-rvalue.stderr Use /* value */ as a placeholder 2024-04-15 21:36:52 -04:00
suggest-local-var-double-mut.rs
suggest-local-var-double-mut.stderr
suggest-local-var-for-vector.rs
suggest-local-var-for-vector.stderr
suggest-local-var-imm-and-mut.rs
suggest-local-var-imm-and-mut.stderr
suggest-lt-on-ty-alias-w-generics.rs
suggest-lt-on-ty-alias-w-generics.stderr
suggest-mut-iterator.fixed
suggest-mut-iterator.rs
suggest-mut-iterator.stderr
suggest-ref-mut-issue-118596.rs Suggest ref mut for pattern matching assignment 2024-04-25 04:54:25 +08:00
suggest-ref-mut-issue-118596.stderr Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
suggest-storing-local-var-for-vector.rs
suggest-storing-local-var-for-vector.stderr
tainted-promoteds.rs
tainted-promoteds.stderr Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
trait-impl-argument-difference-ice.rs Account for trait/impl difference when suggesting changing argument from ref to mut ref 2024-04-06 16:23:10 +00:00
trait-impl-argument-difference-ice.stderr Account for trait/impl difference when suggesting changing argument from ref to mut ref 2024-04-06 16:23:10 +00:00
two-phase-across-loop.rs
two-phase-across-loop.stderr
two-phase-activation-sharing-interference.nll_target.stderr Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
two-phase-activation-sharing-interference.rs Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
two-phase-allow-access-during-reservation.nll_target.stderr Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
two-phase-allow-access-during-reservation.rs Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
two-phase-baseline.rs
two-phase-bin-ops.rs
two-phase-cannot-nest-mut-self-calls.rs
two-phase-cannot-nest-mut-self-calls.stderr
two-phase-control-flow-split-before-activation.rs
two-phase-method-receivers.rs
two-phase-multi-mut.rs
two-phase-multi-mut.stderr
two-phase-multiple-activations.rs
two-phase-nonrecv-autoref.base.stderr Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
two-phase-nonrecv-autoref.rs Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
two-phase-reservation-sharing-interference-2.rs
two-phase-reservation-sharing-interference-2.stderr
two-phase-reservation-sharing-interference.nll_target.stderr Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
two-phase-reservation-sharing-interference.rs Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
two-phase-sneaky.rs
two-phase-sneaky.stderr
two-phase-surprise-no-conflict.rs
two-phase-surprise-no-conflict.stderr replace "cast" with "coercion" where applicable 2024-09-24 22:20:46 +02:00
unboxed-closures-move-upvar-from-non-once-ref-closure.fixed Suggest .clone() in some move errors 2024-04-11 16:41:41 +00:00
unboxed-closures-move-upvar-from-non-once-ref-closure.rs
unboxed-closures-move-upvar-from-non-once-ref-closure.stderr Suggest .clone() in some move errors 2024-04-11 16:41:41 +00:00
uninitalized-in-match-arm-issue-126133.rs No uninitalized report in a pre-returned match arm 2024-06-12 11:11:02 +08:00
uninitalized-in-match-arm-issue-126133.stderr No uninitalized report in a pre-returned match arm 2024-06-12 11:11:02 +08:00
unmatched-arg-and-hir-arg-issue-126385.rs Convert a span_bug to a span_delayed_bug. 2024-06-17 15:21:07 +10:00
unmatched-arg-and-hir-arg-issue-126385.stderr Convert a span_bug to a span_delayed_bug. 2024-06-17 15:21:07 +10:00