rust/tests/ui/coercion
Esteban Küber 24dcfaf71f Make cast suggestions verbose
```
error[E0604]: only `u8` can be cast as `char`, not `u32`
  --> $DIR/E0604.rs:2:5
   |
LL |     1u32 as char;
   |     ^^^^^^^^^^^^ invalid cast
   |
help: try `char::from_u32` instead
   |
LL -     1u32 as char;
LL +     char::from_u32(1u32);
   |
```

```
error[E0620]: cast to unsized type: `&[u8]` as `[char]`
  --> $DIR/cast-to-slice.rs:6:5
   |
LL |     arr as [char];
   |     ^^^^^^^^^^^^^
   |
help: try casting to a reference instead
   |
LL |     arr as &[char];
   |            +
```

```
error[E0620]: cast to unsized type: `Box<{integer}>` as `dyn Send`
  --> $DIR/cast-to-unsized-trait-object-suggestion.rs:3:5
   |
LL |     Box::new(1) as dyn Send;
   |     ^^^^^^^^^^^^^^^^^^^^^^^
   |
help: you can cast to a `Box` instead
   |
LL |     Box::new(1) as Box<dyn Send>;
   |                    ++++        +
```
2025-06-06 19:53:12 +00:00
..
auxiliary Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cast-higher-ranked-unsafe-fn-ptr.rs Use subtyping for UnsafeFnPointer coercion, too 2024-08-19 21:26:10 -04:00
codegen-smart-pointer-with-alias.rs Normalize ADT fields in find_tails_for_unsizing 2025-04-14 16:51:00 +00:00
coerce-block-tail-26978.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-block-tail-26978.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coerce-block-tail-57749.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-block-tail-57749.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coerce-block-tail-83783.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-block-tail-83783.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-block-tail-83783.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coerce-block-tail-83850.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-block-tail-83850.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coerce-block-tail.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-block-tail.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coerce-expect-unsized-ascribed.rs Remove uses of box_syntax in rustc and tools 2023-03-12 13:19:46 +00:00
coerce-expect-unsized-ascribed.stderr Rework "long type names" printing logic 2025-01-31 20:39:01 +00:00
coerce-expect-unsized.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-issue-49593-box-never.nofallback.stderr Remove windows-specific copy of test 2024-06-17 10:57:52 +00:00
coerce-issue-49593-box-never.rs Relate receiver invariantly in method probe for Mode::Path 2024-09-16 10:55:07 -04:00
coerce-loop-issue-122561.rs Get rid of HIR const checker 2024-11-22 02:32:26 +00:00
coerce-loop-issue-122561.stderr Merge typeck loop with static/const item eval loop 2025-05-09 15:31:27 +00:00
coerce-mut.rs compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
coerce-mut.stderr compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
coerce-overloaded-autoderef-fail.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coerce-overloaded-autoderef-fail.stderr Tweak E0597 2023-01-15 19:46:20 +00:00
coerce-overloaded-autoderef.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
coerce-reborrow-imm-ptr-arg.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
coerce-reborrow-imm-ptr-rcvr.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-reborrow-imm-vec-arg.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
coerce-reborrow-imm-vec-rcvr.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-reborrow-multi-arg-fail.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
coerce-reborrow-multi-arg-fail.stderr Tweak parameter mismatch explanation to not say unknown 2024-11-25 03:04:07 +00:00
coerce-reborrow-multi-arg.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-reborrow-mut-ptr-arg.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
coerce-reborrow-mut-ptr-rcvr.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
coerce-reborrow-mut-vec-arg.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-reborrow-mut-vec-rcvr.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-to-bang-cast.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coerce-to-bang-cast.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coerce-to-bang.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coerce-to-bang.stderr Refactored a few bits: 2024-03-15 13:37:41 +00:00
coerce-unify-return.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
coerce-unify.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce-unsize-subtype.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
coercion-missing-tail-expected-type.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coercion-missing-tail-expected-type.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coercion-missing-tail-expected-type.stderr Modify primary span label for E0308 2023-01-30 20:12:19 +00:00
coercion-slice.rs compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
coercion-slice.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
constrain-expectation-in-arg.rs Inline expected_inputs_for_expected_output into check_argument_types/check_expr_struct_fields 2024-08-31 16:08:29 -04:00
issue-3794.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-14589.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
issue-14589.stderr tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
issue-26905-rpass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-26905.rs Move some tests 2024-02-09 15:43:08 -03:00
issue-26905.stderr Consolidate and rework CoercePointee and DispatchFromDyn errors 2025-02-24 19:34:54 +00:00
issue-32122-1.fixed Move some tests 2024-04-21 15:43:43 -03:00
issue-32122-1.rs Move some tests 2024-04-21 15:43:43 -03:00
issue-32122-1.stderr Move some tests 2024-04-21 15:43:43 -03:00
issue-32122-2.fixed Move some tests 2024-04-21 15:43:43 -03:00
issue-32122-2.rs Move some tests 2024-04-21 15:43:43 -03:00
issue-32122-2.stderr Move some tests 2024-04-21 15:43:43 -03:00
issue-36007.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-37655.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-39823.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-53475.rs Remove track_errors entirely 2024-01-23 15:23:22 +00:00
issue-53475.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-73886.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-73886.stderr Make cast suggestions verbose 2025-06-06 19:53:12 +00:00
issue-88097.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-101066.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
mut-mut-wont-coerce.rs compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
mut-mut-wont-coerce.stderr compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
non-primitive-cast-135412.fixed fix for issue 135412 2025-04-24 03:20:19 +05:00
non-primitive-cast-135412.rs fix for issue 135412 2025-04-24 03:20:19 +05:00
non-primitive-cast-135412.stderr Make cast suggestions verbose 2025-06-06 19:53:12 +00:00
pin-dyn-dispatch-sound.rs Add test for dynamic dispatch + Pin::new soundness 2024-05-13 14:25:03 +02:00
pin-dyn-dispatch-sound.stderr Add test for dynamic dispatch + Pin::new soundness 2024-05-13 14:25:03 +02:00
retslot-cast.rs Add missing dyn keywords to tests that do not test for them 2025-06-02 11:02:50 +02:00
retslot-cast.stderr Add missing dyn keywords to tests that do not test for them 2025-06-02 11:02:50 +02:00
struct-coerce-vec-to-slice.rs cleaned and organized 3 tests in ./tests/ui/issues 2025-03-21 22:55:00 -06:00
struct-literal-field-type-coercion-to-expected-type.rs cleaned and organized 3 tests in ./tests/ui/issues 2025-03-21 22:55:00 -06:00
sub-principals.rs Check allow instantiating object trait binder when upcasting and in new solver 2024-09-26 22:26:29 -04:00
type-errors.rs fix ICE for deref coercions with type errors 2024-02-12 14:37:35 +01:00
type-errors.stderr fix ICE for deref coercions with type errors 2024-02-12 14:37:35 +01:00
unboxing-needing-parenthases-issue-132924.rs add parentheses when unboxing suggestion needed 2024-11-12 18:23:57 +08:00
unboxing-needing-parenthases-issue-132924.stderr add parentheses when unboxing suggestion needed 2024-11-12 18:23:57 +08:00
unsafe-coercion.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00