rust/compiler
Matthias Krüger 58a0f64c8b
Rollup merge of #121928 - Zalathar:then-else-args, r=Nadrieril
Extract an arguments struct for `Builder::then_else_break`

Most of this method's arguments are usually or always forwarded as-is to recursive invocations.

Wrapping them in a dedicated struct allows us to document each struct field, and lets us use struct-update syntax to indicate which arguments are being modified when making a recursive call.

---

While trying to understand the lowering of `if` expressions, I found it difficult to keep track of the half-dozen arguments passed through to every call to `then_else_break`. I tried switching over to an arguments struct, and I found that it really helps to make sense of what each argument does, and how each call is modifying the arguments.

I have some further ideas for how to streamline these recursive calls, but I've kept those out of this PR so that it's a pure refactoring with no behavioural changes.
2024-03-04 22:16:32 +01:00
..
rustc Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_abi Add f16 and f128 to rustc_type_ir::FloatTy and rustc_abi::Primitive 2024-02-28 12:58:32 -05:00
rustc_arena rename ptr::invalid -> ptr::without_provenance 2024-02-21 20:15:52 +01:00
rustc_ast Rollup merge of #121841 - tgross35:f16-f128-step2-intrinsics, r=compiler-errors 2024-03-02 20:13:24 +01:00
rustc_ast_ir Split rustc_type_ir to avoid rustc_ast from depending on it 2024-02-27 18:11:23 +00:00
rustc_ast_lowering AST: Refactor type alias where clauses 2024-02-29 17:18:40 +01:00
rustc_ast_passes Detect empty leading where-clauses on type aliases 2024-02-29 17:20:04 +01:00
rustc_ast_pretty Rollup merge of #121815 - nnethercote:mv-gather_comments, r=est31 2024-03-02 10:09:36 +01:00
rustc_attr fix spans of arguments in diagnostic 2024-03-03 10:48:40 +08:00
rustc_baked_icu_data Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_borrowck Rollup merge of #120646 - clubby789:uninit-destructuring-sugg, r=michaelwoerister 2024-03-01 17:51:28 +01:00
rustc_builtin_macros Remove unused fluent messages 2024-03-01 09:59:44 +08:00
rustc_codegen_cranelift Add f16 and f128 to rustc_type_ir::FloatTy and rustc_abi::Primitive 2024-02-28 12:58:32 -05:00
rustc_codegen_gcc Auto merge of #121665 - erikdesjardins:ptradd, r=nikic 2024-03-03 22:21:53 +00:00
rustc_codegen_llvm Auto merge of #121665 - erikdesjardins:ptradd, r=nikic 2024-03-03 22:21:53 +00:00
rustc_codegen_ssa Auto merge of #121900 - chenyukang:yukang-fix-121425-repr-pack-error, r=compiler-errors 2024-03-04 05:32:26 +00:00
rustc_const_eval Rollup merge of #121731 - oli-obk:eager_opaque_checks, r=compiler-errors 2024-03-02 20:13:23 +01:00
rustc_data_structures Rollup merge of #120976 - matthiaskrgr:constify_TL_statics, r=lcnr 2024-03-04 22:16:30 +01:00
rustc_driver Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_driver_impl Inline and remove HumanEmitter::stderr. 2024-02-29 17:50:23 +11:00
rustc_error_codes Rollup merge of #120684 - carschandler:patch-1, r=nnethercote 2024-03-02 10:09:35 +01:00
rustc_error_messages errors: only eagerly translate subdiagnostics 2024-02-15 10:34:41 +00:00
rustc_errors Rollup merge of #120976 - matthiaskrgr:constify_TL_statics, r=lcnr 2024-03-04 22:16:30 +01:00
rustc_expand Auto merge of #121657 - estebank:issue-119665, r=davidtwco 2024-03-02 05:03:46 +00:00
rustc_feature Add new pattern_complexity attribute to add possibility to limit and check recursion in pattern matching 2024-03-03 13:10:15 +01:00
rustc_fluent_macro Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_fs_util Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_graphviz Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_hir Add f16 and f128 intrinsics to HIR 2024-03-01 13:59:06 -05:00
rustc_hir_analysis Rollup merge of #121927 - Zoxc:print-no-query, r=estebank 2024-03-04 07:57:57 +01:00
rustc_hir_pretty Lower anonymous structs or unions to HIR 2024-02-12 12:47:23 +08:00
rustc_hir_typeck Rollup merge of #121895 - matthiaskrgr:devec, r=fee1-dead 2024-03-02 16:53:17 +01:00
rustc_incremental Adjust the has_errors* methods. 2024-02-22 08:03:47 +11:00
rustc_index Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_index_macros Step all bootstrap cfgs forward 2024-02-08 07:44:34 -05:00
rustc_infer Auto merge of #121864 - compiler-errors:type-relating-variances, r=aliemjay 2024-03-02 08:52:26 +00:00
rustc_interface Add initial support for DataFlowSanitizer 2024-03-01 18:50:40 -08:00
rustc_lexer Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_lint Rollup merge of #121749 - jieyouxu:issue-45127-fix, r=petrochenkov 2024-03-03 22:56:13 +01:00
rustc_lint_defs Rollup merge of #111505 - GuillaumeGomez:turn-invalid-doc-attr-into-err, r=rustdoc 2024-03-01 22:38:45 +01:00
rustc_llvm Add initial support for DataFlowSanitizer 2024-03-01 18:50:40 -08:00
rustc_log rustc_log: expose tracing-tree "wraparound" in an env var 2024-03-03 12:33:26 +01:00
rustc_macros Rename DiagnosticBuilder as Diag. 2024-02-28 08:55:35 +11:00
rustc_metadata Rename DiagnosticArg{,Map,Name,Value} as DiagArg{,Map,Name,Value}. 2024-02-28 08:55:37 +11:00
rustc_middle Allow a way to add constructors for rustc_type_ir types 2024-03-04 15:39:59 +00:00
rustc_mir_build Rollup merge of #121928 - Zalathar:then-else-args, r=Nadrieril 2024-03-04 22:16:32 +01:00
rustc_mir_dataflow Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_mir_transform Fix typo in comment 2024-03-01 08:14:42 +05:30
rustc_monomorphize Rename DiagnosticBuilder as Diag. 2024-02-28 08:55:35 +11:00
rustc_next_trait_solver Allow a way to add constructors for rustc_type_ir types 2024-03-04 15:39:59 +00:00
rustc_parse Auto merge of #121657 - estebank:issue-119665, r=davidtwco 2024-03-02 05:03:46 +00:00
rustc_parse_format remove a couple of redundant clones 2024-02-17 12:46:18 +01:00
rustc_passes Rollup merge of #121669 - nnethercote:count-stashed-errs-again, r=estebank 2024-02-29 17:08:38 +01:00
rustc_pattern_analysis Add new pattern_complexity attribute to add possibility to limit and check recursion in pattern matching 2024-03-03 13:10:15 +01:00
rustc_privacy Mark some once-again-unreachable paths as unreachable. 2024-02-29 11:08:29 +11:00
rustc_query_impl Add a proper with_no_queries to printing 2024-03-03 21:12:04 +01:00
rustc_query_system Overhaul how stashed diagnostics work, again. 2024-02-29 11:08:27 +11:00
rustc_resolve Rollup merge of #121130 - chenyukang:yukang-fix-121061-macro-later, r=matthiaskrgr 2024-03-04 07:57:56 +01:00
rustc_serialize Replace NonZero::<_>::new with NonZero::new. 2024-02-15 08:09:42 +01:00
rustc_session Add initial support for DataFlowSanitizer 2024-03-01 18:50:40 -08:00
rustc_smir Add support to new float types 2024-03-01 11:16:35 -08:00
rustc_span Rollup merge of #121917 - GuillaumeGomez:pattern-complexity_limit.rs, r=Nadrieril 2024-03-03 14:07:43 +01:00
rustc_symbol_mangling Rollup merge of #121841 - tgross35:f16-f128-step2-intrinsics, r=compiler-errors 2024-03-02 20:13:24 +01:00
rustc_target Auto merge of #121903 - Nilstrieb:rename-qnx-file, r=WaffleLapkin 2024-03-03 11:34:21 +00:00
rustc_trait_selection Rollup merge of #121912 - fmease:diag-method-chains-gat, r=compiler-errors,estebank 2024-03-04 07:57:56 +01:00
rustc_traits Rename some normalization-related items 2024-02-20 17:30:49 +01:00
rustc_transmute safe transmute: revise safety analysis 2024-02-27 16:22:32 +00:00
rustc_ty_utils Add f16 and f128 to rustc_type_ir::FloatTy and rustc_abi::Primitive 2024-02-28 12:58:32 -05:00
rustc_type_ir Allow a way to add constructors for rustc_type_ir types 2024-03-04 15:39:59 +00:00
stable_mir Add support to new float types 2024-03-01 11:16:35 -08:00