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
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
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
borrowck-break-uninit.rs
borrowck-break-uninit.stderr
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
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
borrowck-fn-in-const-a.stderr
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
borrowck-in-static.stderr
borrowck-init-in-called-fn-expr.rs
borrowck-init-in-called-fn-expr.stderr
borrowck-init-in-fn-expr.rs
borrowck-init-in-fn-expr.stderr
borrowck-init-in-fru.rs
borrowck-init-in-fru.stderr
borrowck-init-op-equal.rs
borrowck-init-op-equal.stderr
borrowck-init-plus-equal.rs
borrowck-init-plus-equal.stderr
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
borrowck-issue-2657-2.rs
borrowck-issue-2657-2.stderr
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
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
borrowck-move-out-of-overloaded-auto-deref.rs
borrowck-move-out-of-overloaded-auto-deref.stderr
borrowck-move-out-of-overloaded-deref.rs
borrowck-move-out-of-overloaded-deref.stderr
borrowck-move-out-of-static-item.rs
borrowck-move-out-of-static-item.stderr
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
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
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
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
borrowck-struct-update-with-dtor.rs
borrowck-struct-update-with-dtor.stderr
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
borrowck-uninit-after-item.rs
borrowck-uninit-after-item.stderr
borrowck-uninit-field-access.rs
borrowck-uninit-field-access.stderr
borrowck-uninit-in-assignop.rs
borrowck-uninit-in-assignop.stderr
borrowck-uninit-ref-chain.rs
borrowck-uninit-ref-chain.stderr
borrowck-uninit.rs
borrowck-uninit.stderr
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
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
borrowck-use-in-index-lvalue.rs
borrowck-use-in-index-lvalue.stderr
borrowck-use-mut-borrow-rpass.rs
borrowck-use-mut-borrow.rs
borrowck-use-mut-borrow.stderr
borrowck-use-uninitialized-in-cast-trait.fixed
borrowck-use-uninitialized-in-cast-trait.rs
borrowck-use-uninitialized-in-cast-trait.stderr
borrowck-use-uninitialized-in-cast.fixed
borrowck-use-uninitialized-in-cast.rs
borrowck-use-uninitialized-in-cast.stderr
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
borrowck-vec-pattern-nesting.stderr
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
clone-on-ref.rs
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
clone-span-on-try-operator.rs
clone-span-on-try-operator.stderr
cloning-in-async-block-121547.rs
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
ice-mutability-error-slicing-121807.stderr
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
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
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
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
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
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
issue-103624.rs
issue-103624.stderr
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
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
kindck-implicit-close-over-mut-var.rs
lazy-init.rs
let_underscore_temporary.rs
let_underscore_temporary.stderr
many-mutable-borrows.rs
many-mutable-borrows.stderr
move-error-in-promoted-2.rs
move-error-in-promoted-2.stderr
move-error-in-promoted.rs
move-error-in-promoted.stderr
move-error-snippets-ext.rs
move-error-snippets.rs
move-error-snippets.stderr
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
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
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
non-ADT-struct-pattern-box-pattern-ice-121463.stderr
opaque-types-patterns-subtyping-ice-104779.rs
opaque-types-patterns-subtyping-ice-104779.stderr
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
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-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
trait-impl-argument-difference-ice.stderr
two-phase-across-loop.rs
two-phase-across-loop.stderr
two-phase-activation-sharing-interference.nll_target.stderr
two-phase-activation-sharing-interference.rs
two-phase-allow-access-during-reservation.nll_target.stderr
two-phase-allow-access-during-reservation.rs
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
two-phase-nonrecv-autoref.rs
two-phase-reservation-sharing-interference-2.rs
two-phase-reservation-sharing-interference-2.stderr
two-phase-reservation-sharing-interference.nll_target.stderr
two-phase-reservation-sharing-interference.rs
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
unboxed-closures-move-upvar-from-non-once-ref-closure.rs
unboxed-closures-move-upvar-from-non-once-ref-closure.stderr
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