rust/tests/ui/suggestions
Matthias Krüger c4ee2df539
Rollup merge of #120248 - WaffleLapkin:bonk-ptr-object-casts, r=compiler-errors,oli-obk,lnicola
Make casts of pointers to trait objects stricter

This is an attempt to `fix` https://github.com/rust-lang/rust/issues/120222 and https://github.com/rust-lang/rust/issues/120217.

This is done by adding restrictions on casting pointers to trait objects.

Before this PR the rules were as follows:

> When casting `*const X<dyn A>` -> `*const Y<dyn B>`, principal traits in `A` and `B` must refer to the same trait definition (or no trait).

With this PR the rules are changed to

> When casting `*const X<dyn Src>` -> `*const Y<dyn Dst>`
> - if `Dst` has a principal trait `DstP`,
>   - `Src` must have a principal trait `SrcP`
>   - `dyn SrcP` and `dyn DstP` must be the same type (modulo the trait object lifetime, `dyn T+'a` -> `dyn T+'b` is allowed)
>   - Auto traits in `Dst` must be a subset of auto traits in `Src`
>     - Not adhering to this is currently a FCW (warn-by-default + `FutureReleaseErrorReportInDeps`), instead of an error
> - if `Src` has a principal trait `Dst` must as well
>   - this restriction will be removed in a follow up PR

This ensures that
1. Principal trait's generic arguments match (no `*const dyn Tr<A>` -> `*const dyn Tr<B>` casts, which are a problem for [#120222](https://github.com/rust-lang/rust/issues/120222))
2. Principal trait's lifetime arguments match (no `*const dyn Tr<'a>` -> `*const dyn Tr<'b>` casts, which are a problem for [#120217](https://github.com/rust-lang/rust/issues/120217))
3. No auto traits can be _added_ (this is a problem for arbitrary self types, see [this comment](https://github.com/rust-lang/rust/pull/120248#discussion_r1463835350))

Some notes:
 - We only care about the metadata/last field, so you can still cast `*const dyn T` to `*const WithHeader<dyn T>`, etc
- The lifetime of the trait object itself (`dyn A + 'lt`) is not checked, so you can still cast `*mut FnOnce() + '_` to `*mut FnOnce() + 'static`, etc
  - This feels fishy, but I couldn't come up with a reason it must be checked

The diagnostics are currently not great, to say the least, but as far as I can tell this correctly fixes the issues.

cc `@oli-obk` `@compiler-errors` `@lcnr`
2024-07-08 16:28:15 +02:00
..
auxiliary
dont-suggest-doc-hidden-variant-for-enum
dont-suggest-ref
lifetimes
types
abi-typo.fixed
abi-typo.rs
abi-typo.stderr
adt-param-with-implicit-sized-bound.rs
adt-param-with-implicit-sized-bound.stderr
args-instead-of-tuple-errors.rs
args-instead-of-tuple-errors.stderr
args-instead-of-tuple.fixed
args-instead-of-tuple.rs
args-instead-of-tuple.stderr
as-ref-2.rs
as-ref-2.stderr
as-ref.rs
as-ref.stderr
assoc_fn_without_self.rs
assoc_fn_without_self.stderr
assoc-const-as-field.rs
assoc-const-as-field.stderr
assoc-const-as-fn.rs
assoc-const-as-fn.stderr
assoc-const-without-self.rs
assoc-const-without-self.stderr
assoc-ct-for-assoc-method.rs
assoc-ct-for-assoc-method.stderr
assoc-type-in-method-return.rs
assoc-type-in-method-return.stderr
async-fn-ctor-passed-as-arg-where-it-should-have-been-called.rs
async-fn-ctor-passed-as-arg-where-it-should-have-been-called.stderr
attribute-typos.rs
attribute-typos.stderr
bad-hex-float-lit.rs
bad-hex-float-lit.stderr
bad-infer-in-trait-impl.rs
bad-infer-in-trait-impl.stderr
bool_typo_err_suggest.rs
bool_typo_err_suggest.stderr
borrow-for-loop-head.rs
borrow-for-loop-head.stderr
bound-suggestions.fixed
bound-suggestions.rs
bound-suggestions.stderr
box-future-wrong-output.rs
box-future-wrong-output.stderr
boxed-variant-field.rs
boxed-variant-field.stderr
call-boxed.rs
call-boxed.stderr
call-on-missing.rs
call-on-missing.stderr
call-on-unimplemented-ctor.rs
call-on-unimplemented-ctor.stderr
call-on-unimplemented-fn-ptr.rs
call-on-unimplemented-fn-ptr.stderr
call-on-unimplemented-with-autoderef.rs
call-on-unimplemented-with-autoderef.stderr
chain-method-call-mutation-in-place.rs
chain-method-call-mutation-in-place.stderr
clone-bounds-121524.rs
clone-bounds-121524.stderr
clone-on-unconstrained-borrowed-type-param.fixed
clone-on-unconstrained-borrowed-type-param.rs
clone-on-unconstrained-borrowed-type-param.stderr
const-in-struct-pat.rs
const-in-struct-pat.stderr
const-no-type.rs
const-no-type.stderr
const-pat-non-exaustive-let-new-var.rs
const-pat-non-exaustive-let-new-var.stderr
constrain-suggest-ice.rs
constrain-suggest-ice.stderr
constrain-trait.fixed
constrain-trait.rs
constrain-trait.stderr
copied-and-cloned.fixed
copied-and-cloned.rs
copied-and-cloned.stderr
core-std-import-order-issue-83564.no_std.fixed
core-std-import-order-issue-83564.no_std.stderr
core-std-import-order-issue-83564.rs
core-std-import-order-issue-83564.std.fixed
core-std-import-order-issue-83564.std.stderr
correct-binder-for-arbitrary-bound-sugg.rs
correct-binder-for-arbitrary-bound-sugg.stderr
count2len.rs
count2len.stderr
crate-or-module-typo.rs
crate-or-module-typo.stderr
deref-path-method.rs
deref-path-method.stderr
derive-clone-for-eq.fixed
derive-clone-for-eq.rs
derive-clone-for-eq.stderr
derive-macro-missing-bounds.rs
derive-macro-missing-bounds.stderr
derive-trait-for-method-call.rs
derive-trait-for-method-call.stderr
do-not-attempt-to-add-suggestions-with-no-changes.rs
do-not-attempt-to-add-suggestions-with-no-changes.stderr
dont-suggest-deref-inside-macro-issue-58298.rs
dont-suggest-deref-inside-macro-issue-58298.stderr
dont-suggest-foreign-doc-hidden.rs
dont-suggest-foreign-doc-hidden.stderr
dont-suggest-pin-array-dot-set.rs
dont-suggest-pin-array-dot-set.stderr
dont-suggest-private-trait-method.rs
dont-suggest-private-trait-method.stderr
dont-suggest-try_into-in-macros.rs
dont-suggest-try_into-in-macros.stderr
dont-suggest-ufcs-for-const.rs
dont-suggest-ufcs-for-const.stderr
dont-try-removing-the-field.rs
dont-try-removing-the-field.stderr
dont-wrap-ambiguous-receivers.rs
dont-wrap-ambiguous-receivers.stderr
enum-method-probe.fixed
enum-method-probe.rs
enum-method-probe.stderr
enum-variant-arg-mismatch.rs
enum-variant-arg-mismatch.stderr
expected-boxed-future-isnt-pinned.rs
expected-boxed-future-isnt-pinned.stderr
field-access-considering-privacy.rs
field-access-considering-privacy.stderr
field-access.fixed
field-access.rs
field-access.stderr
field-has-method.rs
field-has-method.stderr
fn-ctor-passed-as-arg-where-it-should-have-been-called.rs
fn-ctor-passed-as-arg-where-it-should-have-been-called.stderr
fn-missing-lifetime-in-item.rs
fn-missing-lifetime-in-item.stderr
fn-needing-specified-return-type-param.rs
fn-needing-specified-return-type-param.stderr
fn-or-tuple-struct-with-underscore-args.rs
fn-or-tuple-struct-with-underscore-args.stderr
fn-or-tuple-struct-without-args.rs
fn-or-tuple-struct-without-args.stderr
fn-to-method-deeply-nested.rs
fn-to-method-deeply-nested.stderr
fn-to-method.rs
fn-to-method.stderr
fn-trait-notation.fixed
fn-trait-notation.rs
fn-trait-notation.stderr
for-i-in-vec.fixed
for-i-in-vec.rs
for-i-in-vec.stderr
format-borrow.rs
format-borrow.stderr
ice-unwrap-probe-many-result-125876.rs
ice-unwrap-probe-many-result-125876.stderr
if-let-typo.rs
if-let-typo.stderr
if-then-neeing-semi.rs
if-then-neeing-semi.stderr
ignore-nested-field-binding.fixed
ignore-nested-field-binding.rs
ignore-nested-field-binding.stderr
imm-ref-trait-object-literal-bound-regions.rs
imm-ref-trait-object-literal-bound-regions.stderr
imm-ref-trait-object-literal.rs
imm-ref-trait-object-literal.stderr
imm-ref-trait-object.rs
imm-ref-trait-object.stderr
impl-on-dyn-trait-with-implicit-static-bound-needing-more-suggestions.rs
impl-on-dyn-trait-with-implicit-static-bound-needing-more-suggestions.stderr
impl-on-dyn-trait-with-implicit-static-bound.rs
impl-on-dyn-trait-with-implicit-static-bound.stderr
impl-trait-missing-lifetime-gated.rs
impl-trait-missing-lifetime-gated.stderr
impl-trait-missing-lifetime.rs
impl-trait-missing-lifetime.stderr
impl-trait-return-trailing-semicolon.rs
impl-trait-return-trailing-semicolon.stderr
impl-trait-with-missing-bounds.rs
impl-trait-with-missing-bounds.stderr
impl-trait-with-missing-trait-bounds-in-arg.fixed
impl-trait-with-missing-trait-bounds-in-arg.rs
impl-trait-with-missing-trait-bounds-in-arg.stderr
import-trait-for-method-call.rs
import-trait-for-method-call.stderr
inner_type2.rs
inner_type2.stderr
inner_type.fixed
inner_type.rs
inner_type.stderr
into-convert.rs
into-convert.stderr
into-str.rs
into-str.stderr
invalid-bin-op.rs
invalid-bin-op.stderr
issue-21673.rs
issue-21673.stderr
issue-51055-missing-semicolon-between-call-and-tuple.rs
issue-51055-missing-semicolon-between-call-and-tuple.stderr
issue-52820.fixed
issue-52820.rs
issue-52820.stderr
issue-53692.fixed
issue-53692.rs
issue-53692.stderr
issue-57672.rs
issue-59819.fixed
issue-59819.rs
issue-59819.stderr
issue-61226.fixed
issue-61226.rs
issue-61226.stderr
issue-61963.rs
issue-61963.stderr
issue-62843.rs
issue-62843.stderr
issue-64252-self-type.rs
issue-64252-self-type.stderr
issue-66968-suggest-sorted-words.rs
issue-66968-suggest-sorted-words.stderr
issue-68049-1.rs
issue-68049-1.stderr
issue-68049-2.rs
issue-68049-2.stderr
issue-71394-no-from-impl.rs
issue-71394-no-from-impl.stderr
issue-72766.rs
issue-72766.stderr
issue-79843-impl-trait-with-missing-bounds-on-async-fn.rs
issue-79843-impl-trait-with-missing-bounds-on-async-fn.stderr
issue-81098.rs
issue-81098.stderr
issue-81839.rs
issue-81839.stderr
issue-82361.fixed
issue-82361.rs
issue-82361.stderr
issue-82566-1.rs
issue-82566-1.stderr
issue-82566-2.rs
issue-82566-2.stderr
issue-83892.fixed
issue-83892.rs
issue-83892.stderr
issue-83943.fixed
issue-83943.rs
issue-83943.stderr
issue-84592.rs
issue-84592.stderr
issue-84700.rs
issue-84700.stderr
issue-84973-2.rs
issue-84973-2.stderr
issue-84973-blacklist.rs
issue-84973-blacklist.stderr
issue-84973-negative.rs
issue-84973-negative.stderr
issue-84973.rs
issue-84973.stderr
issue-85347.rs
issue-85347.stderr
issue-85943-no-suggest-unsized-indirection-in-where-clause.rs
issue-85943-no-suggest-unsized-indirection-in-where-clause.stderr
issue-85945-check-where-clause-before-suggesting-unsized.rs
issue-85945-check-where-clause-before-suggesting-unsized.stderr
issue-86100-tuple-paren-comma.rs
issue-86100-tuple-paren-comma.stderr
issue-86667.rs
issue-86667.stderr
issue-88696.rs
issue-88696.stderr
issue-88730.rs
issue-88730.stderr
issue-89064.rs
issue-89064.stderr
issue-89333.rs
issue-89333.stderr
issue-89640.rs
issue-89640.stderr
issue-90213-expected-boxfuture-self-ice.rs
issue-90213-expected-boxfuture-self-ice.stderr
issue-90974.rs
issue-90974.stderr
issue-94171.rs
issue-94171.stderr
issue-96223.rs
issue-96223.stderr
issue-96555.rs
issue-96555.stderr
issue-97677.fixed
issue-97677.rs
issue-97677.stderr
issue-97704.fixed
issue-97704.rs
issue-97704.stderr
issue-97760.rs
issue-97760.stderr
issue-98500.rs
issue-98500.stderr
issue-98562.rs
issue-98562.stderr
issue-99080.rs
issue-99080.stderr
issue-99240-2.rs
issue-99240-2.stderr
issue-99240.rs
issue-99240.stderr
issue-99597.rs
issue-99597.stderr
issue-101065.fixed
issue-101065.rs
issue-101065.stderr
issue-101421.rs
issue-101421.stderr
issue-101465.rs
issue-101465.stderr
issue-101623.rs
issue-101623.stderr
issue-101984.rs
issue-101984.stderr
issue-102354.rs
issue-102354.stderr
issue-102892.rs
issue-102892.stderr
issue-102972.fixed
issue-102972.rs
issue-102972.stderr
issue-103112.rs
issue-103112.stderr
issue-103646.rs
issue-103646.stderr
issue-104086-suggest-let.rs
issue-104086-suggest-let.stderr
issue-104287.rs
issue-104287.stderr
issue-104327.rs
issue-104327.stderr
issue-104328.rs
issue-104328.stderr
issue-104961.fixed
issue-104961.rs
issue-104961.stderr
issue-105226.rs
issue-105226.stderr
issue-105494.rs
issue-105494.stderr
issue-105645.rs
issue-105645.stderr
issue-105761-suggest-self-for-closure.fixed
issue-105761-suggest-self-for-closure.rs
issue-105761-suggest-self-for-closure.stderr
issue-106443-sugg-clone-for-arg.rs
issue-106443-sugg-clone-for-arg.stderr
issue-106443-sugg-clone-for-bound.rs
issue-106443-sugg-clone-for-bound.stderr
issue-107860.rs
issue-107860.stderr
issue-108470.fixed
issue-108470.rs
issue-108470.stderr
issue-109195.rs
issue-109195.stderr
issue-109291.rs
issue-109291.stderr
issue-109396.rs
issue-109396.stderr
issue-109436.rs
issue-109436.stderr
issue-109854.rs
issue-109854.stderr
issue-109991.rs
issue-109991.stderr
issue-112590-suggest-import.rs
issue-112590-suggest-import.stderr
issue-114701.rs
issue-114701.stderr
issue-114797-bad-parentheses-dyn-trait.fixed blessings 2024-07-04 17:56:09 +02:00
issue-114797-bad-parentheses-dyn-trait.rs blessings 2024-07-04 17:56:09 +02:00
issue-114797-bad-parentheses-dyn-trait.stderr blessings 2024-07-04 17:56:09 +02:00
issue-116434-2015.rs
issue-116434-2015.stderr
issue-116434-2021.rs
issue-116434-2021.stderr
issue-117669.rs
issue-117669.stderr
js-style-comparison-op-separate-eq-token.rs
js-style-comparison-op-separate-eq-token.stderr
js-style-comparison-op.fixed
js-style-comparison-op.rs
js-style-comparison-op.stderr
late-bound-in-borrow-closure-sugg.rs
late-bound-in-borrow-closure-sugg.stderr
let-binding-init-expr-as-ty.rs
let-binding-init-expr-as-ty.stderr
many-type-ascription.rs
many-type-ascription.stderr
match-ergonomics.rs
match-ergonomics.stderr
match-needing-semi.rs
match-needing-semi.stderr
match-prev-arm-needing-semi.rs
match-prev-arm-needing-semi.stderr
match-with-different-arm-types-as-stmt-instead-of-expr.rs
match-with-different-arm-types-as-stmt-instead-of-expr.stderr
method-access-to-range-literal-typo.fixed
method-access-to-range-literal-typo.rs
method-access-to-range-literal-typo.stderr
method-missing-parentheses.rs
method-missing-parentheses.stderr
mismatched-types-numeric-from.rs
mismatched-types-numeric-from.stderr
missing-assoc-fn-applicable-suggestions.rs
missing-assoc-fn-applicable-suggestions.stderr
missing-assoc-fn.rs
missing-assoc-fn.stderr
missing-assoc-type-bound-restriction.rs
missing-bound-in-derive-copy-impl-2.fixed
missing-bound-in-derive-copy-impl-2.rs
missing-bound-in-derive-copy-impl-2.stderr
missing-bound-in-derive-copy-impl-3.fixed
missing-bound-in-derive-copy-impl-3.rs
missing-bound-in-derive-copy-impl-3.stderr
missing-bound-in-derive-copy-impl.rs
missing-bound-in-derive-copy-impl.stderr
missing-bound-in-manual-copy-impl-2.fixed
missing-bound-in-manual-copy-impl-2.rs
missing-bound-in-manual-copy-impl-2.stderr
missing-bound-in-manual-copy-impl.fixed
missing-bound-in-manual-copy-impl.rs
missing-bound-in-manual-copy-impl.stderr
missing-impl-trait-block-but-not-ascii.rs
missing-impl-trait-block-but-not-ascii.stderr
missing-lifetime-in-assoc-const-type.default.stderr
missing-lifetime-in-assoc-const-type.generic_const_items.stderr
missing-lifetime-in-assoc-const-type.rs
missing-lifetime-specifier.rs
missing-lifetime-specifier.stderr
missing-lt-for-hrtb.rs
missing-lt-for-hrtb.stderr
missing-semicolon.fixed
missing-semicolon.rs
missing-semicolon.stderr
missing-trait-item.fixed
missing-trait-item.rs
missing-trait-item.stderr
missing-type-param-used-in-param.fixed
missing-type-param-used-in-param.rs
missing-type-param-used-in-param.stderr
move-generic-to-trait-in-method-with-params.rs
move-generic-to-trait-in-method-with-params.stderr
multibyte-escapes.rs
multibyte-escapes.stderr
mut-borrow-needed-by-trait.rs
mut-borrow-needed-by-trait.stderr
mut-ref-reassignment.rs
mut-ref-reassignment.stderr
negative-literal-index.fixed
negative-literal-index.rs
negative-literal-index.stderr
nested-non-tuple-tuple-struct.rs
nested-non-tuple-tuple-struct.stderr
no-extern-crate-in-type.rs
no-extern-crate-in-type.stderr
non_ascii_ident.rs
non_ascii_ident.stderr
non-existent-field-present-in-subfield-recursion-limit.rs
non-existent-field-present-in-subfield-recursion-limit.stderr
non-existent-field-present-in-subfield.fixed
non-existent-field-present-in-subfield.rs
non-existent-field-present-in-subfield.stderr
object-unsafe-trait-references-self.rs
object-unsafe-trait-references-self.stderr
object-unsafe-trait-should-use-self-2021-without-dyn.rs
object-unsafe-trait-should-use-self-2021-without-dyn.stderr
object-unsafe-trait-should-use-self-2021.rs
object-unsafe-trait-should-use-self-2021.stderr
object-unsafe-trait-should-use-self.rs
object-unsafe-trait-should-use-self.stderr
object-unsafe-trait-should-use-where-sized.fixed
object-unsafe-trait-should-use-where-sized.rs
object-unsafe-trait-should-use-where-sized.stderr
only-suggest-removal-of-conversion-method-calls.fixed
only-suggest-removal-of-conversion-method-calls.rs
only-suggest-removal-of-conversion-method-calls.stderr
opaque-type-error.rs
opaque-type-error.stderr
option-content-move2.rs
option-content-move2.stderr
option-content-move3.rs
option-content-move3.stderr
option-content-move-from-tuple-match.rs
option-content-move-from-tuple-match.stderr
option-content-move.fixed
option-content-move.rs
option-content-move.stderr
option-to-bool.rs
option-to-bool.stderr
parenthesized-deref-suggestion.rs
parenthesized-deref-suggestion.stderr Tweak raw-pointer field access and array indexing suggestions 2024-07-04 06:06:33 +00:00
path-by-value.rs
path-by-value.stderr
path-display.rs
path-display.stderr
pattern-slice-vec.fixed
pattern-slice-vec.rs
pattern-slice-vec.stderr
pattern-struct-with-slice-vec-field.rs
pattern-struct-with-slice-vec-field.stderr
private-field.rs
private-field.stderr
range-index-instead-of-colon.rs
range-index-instead-of-colon.stderr
raw-byte-string-prefix.rs
raw-byte-string-prefix.stderr
raw-name-use-suggestion.rs
raw-name-use-suggestion.stderr
recover-from-semicolon-trailing-item.rs
recover-from-semicolon-trailing-item.stderr
recover-invalid-float-invalid.rs
recover-invalid-float-invalid.stderr
recover-invalid-float.fixed
recover-invalid-float.rs
recover-invalid-float.stderr
recover-missing-turbofish-surrounding-angle-braket.rs
recover-missing-turbofish-surrounding-angle-braket.stderr
ref-pattern-binding.fixed
ref-pattern-binding.rs
ref-pattern-binding.stderr
removal-of-multiline-trait-bound-in-where-clause.rs
removal-of-multiline-trait-bound-in-where-clause.stderr
remove-as_str.rs
remove-as_str.stderr
remove-question-symbol-with-paren.rs
remove-question-symbol-with-paren.stderr
restrict-existing-type-bounds.rs
restrict-existing-type-bounds.stderr
restrict-type-argument.rs
restrict-type-argument.stderr
restrict-type-not-param.rs
restrict-type-not-param.stderr
return-bindings-multi.rs
return-bindings-multi.stderr
return-bindings.rs
return-bindings.stderr
return-closures.rs
return-closures.stderr
return-cycle-2.rs
return-cycle-2.stderr
return-cycle.rs
return-cycle.stderr
return-elided-lifetime.rs
return-elided-lifetime.stderr
return-without-lifetime.rs
return-without-lifetime.stderr
shadowed-lplace-method-2.rs
shadowed-lplace-method-2.stderr
shadowed-lplace-method.fixed
shadowed-lplace-method.rs
shadowed-lplace-method.stderr
silenced-binding-typo.fixed
silenced-binding-typo.rs
silenced-binding-typo.stderr
slice-issue-87994.rs
slice-issue-87994.stderr
struct-field-type-including-single-colon.rs
struct-field-type-including-single-colon.stderr
struct-initializer-comma.fixed
struct-initializer-comma.rs
struct-initializer-comma.stderr
sugg_with_positional_args_and_debug_fmt.rs
sugg_with_positional_args_and_debug_fmt.stderr
sugg-else-for-closure.fixed
sugg-else-for-closure.rs
sugg-else-for-closure.stderr
suggest_print_over_printf.rs
suggest_print_over_printf.stderr
suggest-add-self.rs
suggest-add-self.stderr
suggest-adding-reference-to-trait-assoc-item.fixed
suggest-adding-reference-to-trait-assoc-item.rs
suggest-adding-reference-to-trait-assoc-item.stderr
suggest-assoc-fn-call-deref.fixed
suggest-assoc-fn-call-deref.rs
suggest-assoc-fn-call-deref.stderr
suggest-assoc-fn-call-for-impl-trait.fixed
suggest-assoc-fn-call-for-impl-trait.rs
suggest-assoc-fn-call-for-impl-trait.stderr
suggest-assoc-fn-call-with-turbofish-placeholder.rs
suggest-assoc-fn-call-with-turbofish-placeholder.stderr
suggest-assoc-fn-call-with-turbofish-through-deref.rs
suggest-assoc-fn-call-with-turbofish-through-deref.stderr
suggest-assoc-fn-call-with-turbofish.fixed
suggest-assoc-fn-call-with-turbofish.rs
suggest-assoc-fn-call-with-turbofish.stderr
suggest-assoc-fn-call-without-receiver.fixed
suggest-assoc-fn-call-without-receiver.rs
suggest-assoc-fn-call-without-receiver.stderr
suggest-blanket-impl-local-trait.rs
suggest-blanket-impl-local-trait.stderr
suggest-box.fixed
suggest-box.rs
suggest-box.stderr
suggest-boxed-empty-block.fixed
suggest-boxed-empty-block.rs
suggest-boxed-empty-block.stderr
suggest-call-on-pat-mismatch.rs
suggest-call-on-pat-mismatch.stderr
suggest-change-mut.rs
suggest-change-mut.stderr
suggest-closure-return-type-1.rs
suggest-closure-return-type-1.stderr
suggest-closure-return-type-2.rs
suggest-closure-return-type-2.stderr
suggest-closure-return-type-3.rs
suggest-closure-return-type-3.stderr
suggest-dereferencing-index.fixed
suggest-dereferencing-index.rs
suggest-dereferencing-index.stderr
suggest-field-through-deref.fixed
suggest-field-through-deref.rs
suggest-field-through-deref.stderr
suggest-fn-ptr-for-fn-item-in-fn-ret.fixed
suggest-fn-ptr-for-fn-item-in-fn-ret.rs
suggest-fn-ptr-for-fn-item-in-fn-ret.stderr
suggest-full-enum-variant-for-local-module.rs
suggest-full-enum-variant-for-local-module.stderr
suggest-imm-mut-trait-implementations.rs
suggest-imm-mut-trait-implementations.stderr
suggest-impl-trait-lifetime.fixed
suggest-impl-trait-lifetime.rs
suggest-impl-trait-lifetime.stderr
suggest-labels.rs
suggest-labels.stderr
suggest-let-for-assignment.fixed
suggest-let-for-assignment.rs
suggest-let-for-assignment.stderr
suggest-methods.rs
suggest-methods.stderr
suggest-move-lifetimes.rs
suggest-move-lifetimes.stderr
suggest-move-types.rs
suggest-move-types.stderr
suggest-mut-method-for-loop-closure.rs
suggest-mut-method-for-loop-closure.stderr
suggest-mut-method-for-loop-hashmap.fixed
suggest-mut-method-for-loop-hashmap.rs
suggest-mut-method-for-loop-hashmap.stderr
suggest-mut-method-for-loop.rs
suggest-mut-method-for-loop.stderr
suggest-null-ptr.fixed
suggest-null-ptr.rs
suggest-null-ptr.stderr
suggest-on-bare-closure-call.rs
suggest-on-bare-closure-call.stderr
suggest-pin-macro.rs
suggest-pin-macro.stderr
suggest-ref-macro.rs
suggest-ref-macro.stderr
suggest-ref-mut.rs
suggest-ref-mut.stderr
suggest-remove-deref.fixed
suggest-remove-deref.rs
suggest-remove-deref.stderr
suggest-remove-refs-1.fixed
suggest-remove-refs-1.rs
suggest-remove-refs-1.stderr
suggest-remove-refs-2.fixed
suggest-remove-refs-2.rs
suggest-remove-refs-2.stderr
suggest-remove-refs-3.fixed
suggest-remove-refs-3.rs
suggest-remove-refs-3.stderr
suggest-remove-refs-4.fixed
suggest-remove-refs-4.rs
suggest-remove-refs-4.stderr
suggest-remove-refs-5.fixed
suggest-remove-refs-5.rs
suggest-remove-refs-5.stderr
suggest-ret-on-async-w-late.fixed
suggest-ret-on-async-w-late.rs
suggest-ret-on-async-w-late.stderr
suggest-semicolon-for-fn-in-extern-block.fixed
suggest-semicolon-for-fn-in-extern-block.rs
suggest-semicolon-for-fn-in-extern-block.stderr
suggest-slice-swap.fixed
suggest-slice-swap.rs
suggest-slice-swap.stderr
suggest-split-at-mut.rs
suggest-split-at-mut.stderr
suggest-std-when-using-type.fixed
suggest-std-when-using-type.rs
suggest-std-when-using-type.stderr
suggest-swapping-self-ty-and-trait-edition-2021.rs
suggest-swapping-self-ty-and-trait-edition-2021.stderr
suggest-swapping-self-ty-and-trait.rs
suggest-swapping-self-ty-and-trait.stderr
suggest-trait-in-ufcs-in-hrtb.rs
suggest-trait-in-ufcs-in-hrtb.stderr
suggest-trait-items.rs
suggest-trait-items.stderr
suggest-tryinto-edition-change.rs
suggest-tryinto-edition-change.stderr
suggest-using-chars.rs
suggest-using-chars.stderr
suggest-variants.rs
suggest-variants.stderr
suppress-consider-slicing-issue-120605.rs
suppress-consider-slicing-issue-120605.stderr
too-many-field-suggestions.rs
too-many-field-suggestions.stderr
trait-hidden-method.rs
trait-hidden-method.stderr
trait-impl-bound-suggestions.fixed
trait-impl-bound-suggestions.rs
trait-impl-bound-suggestions.stderr
trait-with-missing-associated-type-restriction-fixable.fixed
trait-with-missing-associated-type-restriction-fixable.rs
trait-with-missing-associated-type-restriction-fixable.stderr
trait-with-missing-associated-type-restriction.rs
trait-with-missing-associated-type-restriction.stderr
try-operator-dont-suggest-semicolon.rs
try-operator-dont-suggest-semicolon.stderr
try-removing-the-field.rs
try-removing-the-field.stderr
type-ascription-and-other-error.rs
type-ascription-and-other-error.stderr
type-ascription-instead-of-let.fixed
type-ascription-instead-of-let.rs
type-ascription-instead-of-let.stderr
type-ascription-instead-of-method.fixed
type-ascription-instead-of-method.rs
type-ascription-instead-of-method.stderr
type-ascription-instead-of-path-2.fixed
type-ascription-instead-of-path-2.rs
type-ascription-instead-of-path-2.stderr
type-ascription-instead-of-path-in-type.rs
type-ascription-instead-of-path-in-type.stderr
type-ascription-instead-of-path.rs
type-ascription-instead-of-path.stderr
type-ascription-instead-of-variant.fixed
type-ascription-instead-of-variant.rs
type-ascription-instead-of-variant.stderr
type-mismatch-byte-literal.rs
type-mismatch-byte-literal.stderr
type-mismatch-struct-field-shorthand-2.rs
type-mismatch-struct-field-shorthand-2.stderr
type-mismatch-struct-field-shorthand.fixed
type-mismatch-struct-field-shorthand.rs
type-mismatch-struct-field-shorthand.stderr
type-not-found-in-adt-field.rs
type-not-found-in-adt-field.stderr
undeclared-module-alloc.rs
undeclared-module-alloc.stderr
unnamable-types.rs
unnamable-types.stderr
unnecessary_dot_for_floating_point_literal.rs
unnecessary_dot_for_floating_point_literal.stderr
unsized-function-parameter.fixed
unsized-function-parameter.rs
unsized-function-parameter.stderr
unused-closure-argument.rs
unused-closure-argument.stderr
unused-imports.fixed
unused-imports.rs
unused-imports.stderr
use-placement-resolve.fixed
use-placement-resolve.rs
use-placement-resolve.stderr
use-placement-typeck.fixed
use-placement-typeck.rs
use-placement-typeck.stderr
use-type-argument-instead-of-assoc-type.rs
use-type-argument-instead-of-assoc-type.stderr
while-let-typo.rs
while-let-typo.stderr
wrap-dyn-in-suggestion-issue-120223.rs
wrap-dyn-in-suggestion-issue-120223.stderr