rust/compiler
Matthias Krüger 36d1915449
Rollup merge of #123518 - compiler-errors:by-move-fixes, r=oli-obk
Fix `ByMove` coroutine-closure shim (for 2021 precise closure capturing behavior)

This PR reworks the way that we perform the `ByMove` coroutine-closure shim to account for the fact that the upvars of the outer coroutine-closure and the inner coroutine might not line up due to edition-2021 closure capture rules changes.

Specifically, the number of upvars may differ *and/or* the inner coroutine may have additional projections applied to an upvar. This PR reworks the information we pass into the `ByMoveBody` MIR visitor to account for both of these facts.

I tried to leave comments explaining exactly what everything is doing, but let me know if you have questions.

r? oli-obk
2024-04-08 22:06:21 +02:00
..
rustc
rustc_abi Use the Align type when parsing alignment attributes 2024-04-01 03:05:55 +01:00
rustc_arena rename ptr::invalid -> ptr::without_provenance 2024-02-21 20:15:52 +01:00
rustc_ast Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_ast_ir Fix typo in VisitorResult 2024-03-08 23:20:29 -05:00
rustc_ast_lowering Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_ast_passes Add pattern types to parser 2024-04-08 11:57:17 +00:00
rustc_ast_pretty Add pattern types to ast 2024-04-08 11:54:22 +00:00
rustc_attr Use the Align type when parsing alignment attributes 2024-04-01 03:05:55 +01:00
rustc_baked_icu_data
rustc_borrowck Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_builtin_macros Add pattern types to parser 2024-04-08 11:57:17 +00:00
rustc_codegen_cranelift Auto merge of #123221 - pacak:cache_emit, r=fmease,jieyouxu 2024-04-07 10:46:50 +00:00
rustc_codegen_gcc Save/restore more items in cache with incremental compilation 2024-04-06 10:59:24 -04:00
rustc_codegen_llvm force_array -> is_consecutive 2024-04-08 11:31:43 +09:00
rustc_codegen_ssa Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_const_eval Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_data_structures rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
rustc_driver
rustc_driver_impl Rollup merge of #122807 - danielhuang:fix-1, r=davidtwco 2024-04-08 14:31:10 +02:00
rustc_error_codes Auto merge of #122055 - compiler-errors:stabilize-atb, r=oli-obk 2024-03-19 00:04:09 +00:00
rustc_error_messages Rename SubdiagnosticMessage as SubdiagMessage. 2024-03-05 12:14:49 +11:00
rustc_errors Rollup merge of #123401 - Zalathar:assert-size-aarch64, r=fmease 2024-04-03 20:17:06 -04:00
rustc_expand Check x86_64 size assertions on aarch64, too 2024-04-03 16:53:03 +11:00
rustc_feature Auto merge of #120131 - oli-obk:pattern_types_syntax, r=compiler-errors 2024-04-08 16:25:23 +00:00
rustc_fluent_macro Rename SubdiagnosticMessage as SubdiagMessage. 2024-03-05 12:14:49 +11:00
rustc_fs_util
rustc_graphviz
rustc_hir Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_hir_analysis Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_hir_pretty Thread pattern types through the HIR 2024-04-08 12:00:07 +00:00
rustc_hir_typeck Auto merge of #120131 - oli-obk:pattern_types_syntax, r=compiler-errors 2024-04-08 16:25:23 +00:00
rustc_incremental Auto merge of #122070 - Zoxc:dep-edges-from-previous, r=cjgillot 2024-04-05 11:11:17 +00:00
rustc_index Check x86_64 size assertions on aarch64, too 2024-04-03 16:53:03 +11:00
rustc_index_macros rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
rustc_infer Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_interface Put checks that detect UB under their own flag below debug_assertions 2024-04-06 11:21:47 -04:00
rustc_lexer Silence redundant error on char literal that was meant to be a string in 2021 edition 2024-03-17 23:35:19 +00:00
rustc_lint Auto merge of #120131 - oli-obk:pattern_types_syntax, r=compiler-errors 2024-04-08 16:25:23 +00:00
rustc_lint_defs Rollup merge of #120144 - petrochenkov:unty, r=davidtwco 2024-04-08 14:31:10 +02:00
rustc_llvm Rollup merge of #122807 - danielhuang:fix-1, r=davidtwco 2024-04-08 14:31:10 +02:00
rustc_log bump tracing-tree to 0.3 2024-03-30 17:39:43 +03:00
rustc_macros Rename diagnostic derive things. 2024-03-11 10:06:34 +11:00
rustc_metadata Replace RemapFileNameExt::for_codegen with explicit calls 2024-03-28 18:47:26 +01:00
rustc_middle Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_mir_build Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_mir_dataflow Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_mir_transform Rollup merge of #123518 - compiler-errors:by-move-fixes, r=oli-obk 2024-04-08 22:06:21 +02:00
rustc_monomorphize Only allow upstream calls to LLVM intrinsics, not any link_name function 2024-04-01 20:31:19 -04:00
rustc_next_trait_solver Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_parse Rollup merge of #123401 - Zalathar:assert-size-aarch64, r=fmease 2024-04-03 20:17:06 -04:00
rustc_parse_format Check x86_64 size assertions on aarch64, too 2024-04-03 16:53:03 +11:00
rustc_passes Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_pattern_analysis Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_privacy Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_query_impl Verify that query keys result in unique dep nodes 2024-03-12 05:31:41 +01:00
rustc_query_system Remove sharding for VecCache 2024-04-06 10:49:31 -04:00
rustc_resolve Rollup merge of #123307 - tgross35:f16-f128-feature-gate-fix, r=petrochenkov 2024-04-03 20:17:05 -04:00
rustc_serialize Stabilize associated type bounds 2024-03-08 20:56:25 +00:00
rustc_session Put checks that detect UB under their own flag below debug_assertions 2024-04-06 11:21:47 -04:00
rustc_smir Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_span Add pattern types to parser 2024-04-08 11:57:17 +00:00
rustc_symbol_mangling Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_target force_array -> is_consecutive 2024-04-08 11:31:43 +09:00
rustc_trait_selection Rollup merge of #123367 - jswrenn:layoutify, r=compiler-errors 2024-04-08 22:06:21 +02:00
rustc_traits Merge check_mod_impl_wf and check_mod_type_wf 2024-03-07 06:27:09 +00:00
rustc_transmute Rollup merge of #123367 - jswrenn:layoutify, r=compiler-errors 2024-04-08 22:06:21 +02:00
rustc_ty_utils Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_type_ir Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
stable_mir Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00