rust/compiler
Matthias Krüger 7bacfced95
Rollup merge of #121892 - Zalathar:expr-kind-let, r=Nadrieril
The ordinary lowering of `thir::ExprKind::Let` is unreachable

After desugaring, `let` expressions should only appear inside `if` expressions or `match` guards, possibly nested within a let-chain. In both cases they are specifically handled by the lowerings of those expressions, so this case is currently unreachable.

---

Context: https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/Lowering.20of.20.60thir.3A.3AExprKind.3A.3ALet.60.20is.20unreachable

My conclusions are partly based on the observation that stubbing out this match arm doesn't cause any test failures. So either this really is unreachable, or it can be reached in some obscure circumstances that our test suite doesn't cover.

If we end up needing this code (or something like it) for an implementation of https://github.com/rust-lang/rfcs/pull/3573, it should be easy enough to pull it back out of version control history.

I looked into having the `if`/`match` lowerings call back into `expr_into_dest`, but from what I can tell that won't work well, because there are extra scoping considerations that require some awareness of the enclosing if/match.

r? ```@Nadrieril```
2024-03-02 16:53:16 +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 #121815 - nnethercote:mv-gather_comments, r=est31 2024-03-02 10:09:36 +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 Rename DiagnosticBuilder as Diag. 2024-02-28 08:55:35 +11: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 #121728 - tgross35:f16-f128-step1-ty-updates, r=compiler-errors 2024-03-01 03:36:11 +00:00
rustc_codegen_llvm Auto merge of #121728 - tgross35:f16-f128-step1-ty-updates, r=compiler-errors 2024-03-01 03:36:11 +00:00
rustc_codegen_ssa Rollup merge of #121730 - ecnelises:aix_pgo, r=wesleywiser 2024-03-01 22:38:48 +01:00
rustc_const_eval Auto merge of #121728 - tgross35:f16-f128-step1-ty-updates, r=compiler-errors 2024-03-01 03:36:11 +00:00
rustc_data_structures compiler: use addr_of! 2024-02-24 18:53:48 +03: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 #120305 - clubby789:unused-import-line, r=estebank 2024-03-01 22:38:45 +01:00
rustc_expand Auto merge of #121657 - estebank:issue-119665, r=davidtwco 2024-03-02 05:03:46 +00:00
rustc_feature Rollup merge of #121740 - surechen:change_attribute_to_local_20240228, r=lcnr 2024-02-29 05:25:27 -05: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 Rollup merge of #121681 - jswrenn:nix-visibility-analysis, r=compiler-errors 2024-02-29 20:50:03 +01:00
rustc_hir_analysis Rollup merge of #121828 - mu001999:clean, r=Nilstrieb 2024-03-01 17:51:32 +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 #121739 - jieyouxu:loooong-typename, r=estebank 2024-03-02 10:09:36 +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 Rename Diagnostic as DiagInner. 2024-02-28 08:33:25 +11:00
rustc_lexer Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_lint Rollup merge of #121580 - Suyashtnt:issue-121502-fix, r=michaelwoerister 2024-03-01 17:51:29 +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 Rollup merge of #121389 - klensy:llvm-warn-fix, r=nikic 2024-02-26 16:06:02 +01:00
rustc_log Invert diagnostic lints. 2024-02-06 13:12:33 +11: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 Rollup merge of #121497 - lcnr:coherence-suggest-increasing-recursion-limit, r=compiler-errors 2024-03-01 22:38:47 +01:00
rustc_mir_build Rollup merge of #121892 - Zalathar:expr-kind-let, r=Nadrieril 2024-03-02 16:53:16 +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 always emit AliasRelate goals when relating aliases 2024-02-26 10:17:43 +01: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 Auto merge of #121728 - tgross35:f16-f128-step1-ty-updates, r=compiler-errors 2024-03-01 03:36:11 +00:00
rustc_privacy Mark some once-again-unreachable paths as unreachable. 2024-02-29 11:08:29 +11:00
rustc_query_impl Rename Diagnostic as DiagInner. 2024-02-28 08:33:25 +11:00
rustc_query_system Overhaul how stashed diagnostics work, again. 2024-02-29 11:08:27 +11:00
rustc_resolve Remove unused fluent messages 2024-03-01 09:59:44 +08:00
rustc_serialize Replace NonZero::<_>::new with NonZero::new. 2024-02-15 08:09:42 +01:00
rustc_session Rollup merge of #121783 - nnethercote:emitter-cleanups, r=oli-obk 2024-02-29 17:08:38 +01:00
rustc_smir Add support to new float types 2024-03-01 11:16:35 -08:00
rustc_span Auto merge of #121728 - tgross35:f16-f128-step1-ty-updates, r=compiler-errors 2024-03-01 03:36:11 +00:00
rustc_symbol_mangling Rollup merge of #121818 - rcvalle:rust-cfi-remove-unused-typeid-for-fnsig, r=workingjubilee 2024-03-01 17:51:31 +01:00
rustc_target Auto merge of #121728 - tgross35:f16-f128-step1-ty-updates, r=compiler-errors 2024-03-01 03:36:11 +00:00
rustc_trait_selection Rollup merge of #121875 - estebank:e0277-drive-by, r=compiler-errors 2024-03-02 10:09:38 +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 Auto merge of #121728 - tgross35:f16-f128-step1-ty-updates, r=compiler-errors 2024-03-01 03:36:11 +00:00
stable_mir Add support to new float types 2024-03-01 11:16:35 -08:00