rust/compiler
Matthias Krüger f0adebc39d
Rollup merge of #126215 - gurry:125737-bad-err-anon-futs, r=lcnr
Add explanatory note to async block type mismatch error

The async block type mismatch error might leave the user wondering as to why it occurred. The new note should give them the needed context.

Changes this diagnostic:
```
error[E0308]: mismatched types
 --> src/main.rs:5:23
  |
2 |     let a = async { 1 };
  |             ----------- the expected `async` block
3 |     let b = async { 2 };
  |             ----------- the found `async` block
4 |
5 |     let bad = vec![a, b];
  |                       ^ expected `async` block, found a different `async` block
  |
  = note: expected `async` block `{async block@src/main.rs:2:13: 2:24}`
             found `async` block `{async block@src/main.rs:3:13: 3:24}`
```

to this:
```
error[E0308]: mismatched types
 --> src/main.rs:5:23
  |
2 |     let a = async { 1 };
  |             ----------- the expected `async` block
3 |     let b = async { 2 };
  |             ----------- the found `async` block
4 |
5 |     let bad = vec![a, b];
  |                       ^ expected `async` block, found a different `async` block
  |
  = note: expected `async` block `{async block@src/main.rs:2:13: 2:24}`
             found `async` block `{async block@src/main.rs:3:13: 3:24}`
  = note: no two async blocks, even if identical, have the same type
  = help: consider pinning your async block and and casting it to a trait object
```

Fixes #125737
2024-06-10 21:12:27 +02:00
..
rustc
rustc_abi don't inhibit random field reordering on repr(packed(1)) 2024-05-21 19:22:04 +02:00
rustc_arena
rustc_ast Rollup merge of #124214 - carbotaniuman:parse_unsafe_attrs, r=michaelwoerister 2024-06-07 20:14:28 +02:00
rustc_ast_ir Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_ast_lowering Rollup merge of #124214 - carbotaniuman:parse_unsafe_attrs, r=michaelwoerister 2024-06-07 20:14:28 +02:00
rustc_ast_passes Parse unsafe attributes 2024-06-06 20:26:27 -05:00
rustc_ast_pretty Rollup merge of #124214 - carbotaniuman:parse_unsafe_attrs, r=michaelwoerister 2024-06-07 20:14:28 +02:00
rustc_attr Rename buffer_lint_with_diagnostic to buffer_lint 2024-05-21 20:16:39 +00:00
rustc_baked_icu_data Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_borrowck Uplift TypeRelation and Relate 2024-06-06 07:50:19 -04:00
rustc_builtin_macros Handle safe case 2024-06-06 20:54:51 -05:00
rustc_codegen_cranelift ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_codegen_gcc ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_codegen_llvm Rollup merge of #126159 - RalfJung:scalarint-size-mismatch, r=oli-obk 2024-06-10 21:12:25 +02:00
rustc_codegen_ssa ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_const_eval Rollup merge of #126184 - RalfJung:interpret-simd-nonpow2, r=oli-obk 2024-06-10 21:12:25 +02:00
rustc_data_structures Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_driver
rustc_driver_impl Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_error_codes Rollup merge of #124746 - OliverKillane:E0582-explain-assoc-types-improvement, r=pnkfelix 2024-06-05 18:21:08 +02:00
rustc_error_messages Auto merge of #125410 - fmease:adj-lint-diag-api, r=nnethercote 2024-05-27 08:44:12 +00:00
rustc_errors Auto merge of #125410 - fmease:adj-lint-diag-api, r=nnethercote 2024-05-27 08:44:12 +00:00
rustc_expand rustc_span: Optimize syntax context updates in spans 2024-06-10 02:20:16 +03:00
rustc_feature offset_of: allow (unstably) taking the offset of slice tail fields 2024-06-08 18:17:55 +02:00
rustc_fluent_macro
rustc_fs_util
rustc_graphviz
rustc_hir Auto merge of #125918 - oli-obk:const_block_ice, r=compiler-errors 2024-06-07 09:08:59 +00:00
rustc_hir_analysis Auto merge of #125918 - oli-obk:const_block_ice, r=compiler-errors 2024-06-07 09:08:59 +00:00
rustc_hir_pretty Revert "Create const block DefIds in typeck instead of ast lowering" 2024-06-07 08:33:58 +00:00
rustc_hir_typeck Rollup merge of #126159 - RalfJung:scalarint-size-mismatch, r=oli-obk 2024-06-10 21:12:25 +02:00
rustc_incremental Run rustfmt on files that need it. 2024-05-24 15:17:21 +10:00
rustc_index
rustc_index_macros Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_infer Add explanatory note to async block type mismatch error 2024-06-10 17:14:49 +05:30
rustc_interface Revert "Rollup merge of #124976 - petrochenkov:usedcrates, r=oli-obk" 2024-06-06 10:06:28 +00:00
rustc_lexer
rustc_lint Rollup merge of #126040 - Urgau:unreachable_pub-fields-less, r=petrochenkov 2024-06-06 21:10:10 -07:00
rustc_lint_defs Auto merge of #124482 - spastorino:unsafe-extern-blocks, r=oli-obk 2024-06-06 08:14:58 +00:00
rustc_llvm thinlto: only build summary file if needed 2024-05-23 14:58:30 -04:00
rustc_log remove tracing tree indent lines 2024-05-30 15:26:48 +02:00
rustc_macros Make the panic info more useful 2024-06-06 09:47:10 +00:00
rustc_metadata Rollup merge of #126099 - Nilstrieb:crate-loader-cleanups, r=jieyouxu 2024-06-06 21:10:10 -07:00
rustc_middle Rollup merge of #126159 - RalfJung:scalarint-size-mismatch, r=oli-obk 2024-06-10 21:12:25 +02:00
rustc_mir_build Rollup merge of #126159 - RalfJung:scalarint-size-mismatch, r=oli-obk 2024-06-10 21:12:25 +02:00
rustc_mir_dataflow Remove #[macro_use] extern crate tracing from rustc_mir_dataflow. 2024-05-23 18:02:40 +10:00
rustc_mir_transform Rollup merge of #126159 - RalfJung:scalarint-size-mismatch, r=oli-obk 2024-06-10 21:12:25 +02:00
rustc_monomorphize Auto merge of #125928 - michaelwoerister:fix-cgu-hashstable, r=oli-obk 2024-06-07 04:02:59 +00:00
rustc_next_trait_solver Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_parse Rollup merge of #126052 - nnethercote:rustc_parse-more-cleanups, r=spastorino 2024-06-07 20:14:30 +02:00
rustc_parse_format Apply x clippy --fix and x fmt 2024-05-30 09:51:27 +08:00
rustc_passes Rollup merge of #125572 - mu001999-contrib:dead/enhance, r=pnkfelix 2024-06-07 20:14:28 +02:00
rustc_pattern_analysis ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_privacy Make body_owned_by return the body directly. 2024-05-29 10:04:08 +00:00
rustc_query_impl Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_query_system Make the panic info more useful 2024-06-06 09:47:10 +00:00
rustc_resolve mark binding undetermined if target name exist and not obtained 2024-06-07 21:23:56 +08:00
rustc_sanitizers Misc fixes (pattern type lowering, cfi, pretty printing) 2024-06-05 22:25:42 +01:00
rustc_serialize Apply x clippy --fix and x fmt 2024-05-30 09:51:27 +08:00
rustc_session Improve naming and path operations in crate loader 2024-06-06 21:53:29 +02:00
rustc_smir Revert "Rollup merge of #124976 - petrochenkov:usedcrates, r=oli-obk" 2024-06-06 10:06:28 +00:00
rustc_span rustc_span: Optimize syntax context updates in spans 2024-06-10 02:20:16 +03:00
rustc_symbol_mangling Add Ty to ConstKind::Value 2024-06-05 22:25:41 +01:00
rustc_target offset_of: allow (unstably) taking the offset of slice tail fields 2024-06-08 18:17:55 +02:00
rustc_trait_selection Rollup merge of #126089 - wutchzone:option_take_if, r=scottmcm 2024-06-07 20:14:31 +02:00
rustc_traits Align Term methods with GenericArg methods 2024-06-03 20:36:27 -04:00
rustc_transmute ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_ty_utils ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_type_ir Uplift TypeRelation and Relate 2024-06-06 07:50:19 -04:00
rustc_type_ir_macros
stable_mir Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00