rust/compiler
bors 0c3f0cddde Auto merge of #93752 - eholk:drop-tracking-break-continue, r=nikomatsakis
Generator drop tracking: improve break and continue handling

This PR fixes two related issues.

One, sometimes break or continue have a block target instead of an expression target. This seems to mainly happen with try blocks. Since the drop tracking analysis only works on expressions, if we see a block target for break or continue, we substitute the last expression of the block as the target instead.

Two, break and continue were incorrectly being treated as the same, so continue would also show up as an exit from the loop or block. This patch corrects the way continue is handled by keeping a stack of loop entry points and uses those to find the target of the continue.

Fixes #93197

r? `@nikomatsakis`
2022-02-15 02:27:37 +00:00
..
rustc remove unused jemallocator crate 2022-01-28 16:56:05 +01:00
rustc_apfloat Stabilize iter::zip. 2021-12-14 18:50:31 -04:00
rustc_arena Remove unused dep from rustc_arena 2022-02-02 17:37:14 +01:00
rustc_ast Auto merge of #93752 - eholk:drop-tracking-break-continue, r=nikomatsakis 2022-02-15 02:27:37 +00:00
rustc_ast_lowering Auto merge of #91403 - cjgillot:inherit-async, r=oli-obk 2022-02-12 21:42:10 +00:00
rustc_ast_passes Auto merge of #93561 - Amanieu:more-unwind-abi, r=nagisa 2022-02-08 03:20:05 +00:00
rustc_ast_pretty Pretty print ItemKind::Use in rustfmt style 2022-02-07 21:51:05 -08:00
rustc_attr Ensure that queries only return Copy types. 2022-02-09 20:07:38 +01:00
rustc_borrowck Rollup merge of #90532 - fee1-dead:improve-const-fn-err-msg, r=oli-obk 2022-02-13 06:44:13 +01:00
rustc_builtin_macros Remove the alt_std_name option 2022-02-11 20:28:38 +01:00
rustc_codegen_cranelift Unconditionally update symbols 2022-02-10 18:27:18 +01:00
rustc_codegen_gcc Unconditionally update symbols 2022-02-10 18:27:18 +01:00
rustc_codegen_llvm Auto merge of #93670 - erikdesjardins:noundef, r=nikic 2022-02-13 00:14:52 +00:00
rustc_codegen_ssa Rollup merge of #93782 - adamgemmell:dev/adagem01/split-pauth, r=Amanieu 2022-02-11 21:48:48 +01:00
rustc_const_eval Report the selection error when possible 2022-02-12 19:24:43 +11:00
rustc_data_structures Call the method fork instead of clone and add proper comments 2022-02-14 12:57:20 -03:00
rustc_driver Remove Config::stderr 2022-02-13 11:49:52 +01:00
rustc_error_codes Auto merge of #91403 - cjgillot:inherit-async, r=oli-obk 2022-02-12 21:42:10 +00:00
rustc_errors add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_expand add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_feature Rollup merge of #93824 - Amanieu:stable_cfg_target_has_atomic, r=davidtwco 2022-02-10 12:10:00 +01:00
rustc_fs_util
rustc_graphviz eplace usages of vec![].into_iter with [].into_iter 2022-01-09 14:09:25 +11:00
rustc_hir Auto merge of #93938 - BoxyUwU:fix_res_self_ty, r=lcnr 2022-02-14 12:26:43 +00:00
rustc_hir_pretty Rollup merge of #93746 - cjgillot:nodefii, r=nikomatsakis 2022-02-09 14:12:22 +09:00
rustc_incremental add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_index implement lint for suspicious auto trait impls 2022-02-01 09:55:19 +01:00
rustc_infer reveal_defining_opaque_types field doesn't exist after rebase 2022-02-14 13:02:22 -03:00
rustc_interface Remove Config::stderr 2022-02-13 11:49:52 +01:00
rustc_lexer Auto merge of #91393 - Julian-Wollersberger:lexer_optimization, r=petrochenkov 2021-12-03 13:20:14 +00:00
rustc_lint change to a struct variant 2022-02-12 11:23:53 +00:00
rustc_lint_defs implement lint for suspicious auto trait impls 2022-02-01 09:55:19 +01:00
rustc_llvm Apply noundef attribute to &T, &mut T, Box<T>, bool 2022-02-05 01:09:52 -05:00
rustc_log Make rustc_log doc test runnable 2022-01-03 22:31:56 -08:00
rustc_macros Make Decodable and Decoder infallible. 2022-01-22 10:38:31 +11:00
rustc_metadata fast_reject: remove StripReferences 2022-02-14 07:37:14 +01:00
rustc_middle Auto merge of #93298 - lcnr:issue-92113, r=cjgillot 2022-02-14 14:47:20 +00:00
rustc_mir_build change to a struct variant 2022-02-12 11:23:53 +00:00
rustc_mir_dataflow rustc_mir_dataflow: use iter::once instead of Some().into_iter 2022-02-03 13:52:26 -07:00
rustc_mir_transform add tainted_by_errors to mir::Body 2022-02-11 12:45:51 -08:00
rustc_monomorphize add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_parse Rollup merge of #93595 - compiler-errors:ice-on-lifetime-arg, r=jackh726 2022-02-12 09:26:21 +01:00
rustc_parse_format
rustc_passes change to a struct variant 2022-02-12 11:23:53 +00:00
rustc_plugin_impl replace dynamic library module with libloading 2021-12-06 12:03:47 -05:00
rustc_privacy change to a struct variant 2022-02-12 11:23:53 +00:00
rustc_query_impl Auto merge of #93741 - Mark-Simulacrum:global-job-id, r=cjgillot 2022-02-09 18:54:30 +00:00
rustc_query_system Revert "Auto merge of #92007 - oli-obk:lazy_tait2, r=nikomatsakis" 2022-02-11 07:18:06 +00:00
rustc_resolve Auto merge of #93938 - BoxyUwU:fix_res_self_ty, r=lcnr 2022-02-14 12:26:43 +00:00
rustc_save_analysis change to a struct variant 2022-02-12 11:23:53 +00:00
rustc_serialize Drop json::from_reader 2022-02-05 15:07:10 -05:00
rustc_session Remove the alt_std_name option 2022-02-11 20:28:38 +01:00
rustc_span Rollup merge of #93936 - bjorn3:simplifications2, r=cjgillot 2022-02-13 06:44:18 +01:00
rustc_symbol_mangling add a rustc::query_stability lint 2022-02-01 10:15:59 +01:00
rustc_target rustc_target: Remove compiler-rt linking hack on Android 2022-02-13 21:22:02 +08:00
rustc_trait_selection Auto merge of #93652 - spastorino:fix-negative-overlap-check-regions, r=nikomatsakis 2022-02-14 18:28:04 +00:00
rustc_traits Reverse parameter to placeholder substitution in chalk results 2022-02-11 21:38:17 +00:00
rustc_ty_utils remove TyS::same_type 2022-02-01 11:21:26 +01:00
rustc_type_ir Revert "Auto merge of #92007 - oli-obk:lazy_tait2, r=nikomatsakis" 2022-02-11 07:18:06 +00:00
rustc_typeck Auto merge of #93752 - eholk:drop-tracking-break-continue, r=nikomatsakis 2022-02-15 02:27:37 +00:00