granite-rust/compiler
bors f24ef2e296 Auto merge of #97029 - eholk:drop-tracking-yielding-in-match-guard, r=nikomatsakis
generator_interior: Count match pattern bindings as borrowed for the whole guard expression

The test case `yielding-in-match-guard.rs` was failing with `-Zdrop-tracking` enabled. The reason is that the copy of a local (`y`) was not counted as a borrow in typeck, while MIR did consider this as borrowed.

The correct thing to do here is to count pattern bindings are borrowed for the whole guard. Instead, what we were doing is to record the type at the use site of the variable and check if the variable comes from a borrowed pattern. Due to the fix for #57017, we were considering too small of a scope for this variable, which meant it was not counted as borrowed.

Because we now unconditionally record the borrow, rather than only for bindings that are used, this PR is also able to remove a lot of the logic around match bindings that was there before.

r? `@nikomatsakis`
2022-05-20 03:27:01 +00:00
..
rustc Propagate parallel_compiler feature through rustc crates. Turned off feature gives change of builded crates: 238 -> 224. 2022-03-28 08:41:12 +03:00
rustc_apfloat Addressed comments by @compiler-errors and @bjorn3 2022-03-30 17:04:46 -04:00
rustc_arena mark FIXMES for all the places found that are probably offset_from 2022-03-29 20:18:28 -04:00
rustc_ast Auto merge of #97114 - klensy:cursor-ref, r=petrochenkov 2022-05-19 09:27:55 +00:00
rustc_ast_lowering Auto merge of #96863 - SparrowLii:let, r=michaelwoerister 2022-05-18 17:48:46 +00:00
rustc_ast_passes rustc: Stricter checking for #[link] attributes 2022-05-15 02:45:47 +03:00
rustc_ast_pretty use CursorRef more, to not to clone Trees 2022-05-18 18:43:48 +03:00
rustc_attr only_local: always check for misuse 2022-05-10 12:07:35 +02:00
rustc_borrowck Change Successors to impl Iterator<Item = BasicBlock> 2022-05-17 08:41:01 +08:00
rustc_builtin_macros ast: Introduce some traits to get AST node properties generically 2022-05-11 12:43:27 +03:00
rustc_codegen_cranelift Merge commit '63734fcdd718cca089f84c42f3a42c0096cfd431' into sync_cg_clif-2022-05-15 2022-05-15 12:32:19 +02:00
rustc_codegen_gcc Handle tmm_reg in rustc_codegen_gcc 2022-05-17 06:34:58 -04:00
rustc_codegen_llvm Properly apply path prefix remapping paths emitted into debuginfo. 2022-05-18 12:19:01 +02:00
rustc_codegen_ssa Rollup merge of #97062 - bjorn3:cg_ssa_driver_refactor, r=compiler-errors 2022-05-19 08:22:42 +09:00
rustc_const_eval Auto merge of #97019 - b-naber:transition-to-valtrees-pt1, r=oli-obk 2022-05-18 20:12:07 +00:00
rustc_data_structures Auto merge of #96094 - Elliot-Roberts:fix_doctests, r=compiler-errors 2022-05-07 06:30:29 +00:00
rustc_driver errors: lazily load fallback fluent bundle 2022-04-13 02:44:59 +01:00
rustc_error_codes rustc: Stricter checking for #[link] attributes 2022-05-15 02:45:47 +03:00
rustc_error_messages migrate maybe_recover_from_bad_type_plus diagnostic 2022-05-16 17:16:27 -05:00
rustc_errors errors: set_arg takes IntoDiagnosticArg 2022-05-12 07:21:51 +01:00
rustc_expand use CursorRef more, to not to clone Trees 2022-05-18 18:43:48 +03:00
rustc_feature change some attrs to only_local 2022-05-10 12:07:36 +02:00
rustc_fs_util Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_graphviz update graphviz links 2022-05-12 18:31:42 +09:00
rustc_hir Update IfLet syntax 2022-05-19 16:32:06 -07:00
rustc_hir_pretty use hir::Let in hir::Guard 2022-05-09 20:35:58 +08:00
rustc_incremental rename visit item-like methods 2022-05-13 11:46:06 -04:00
rustc_index optimize insert_range method of IntervalSet 2022-05-10 19:27:40 +08:00
rustc_infer Rollup merge of #97080 - lcnr:relate-sus, r=oli-obk 2022-05-17 19:01:33 +09:00
rustc_interface only_local: always check for misuse 2022-05-10 12:07:35 +02:00
rustc_lexer Reduce max hash in raw strings from u16 to u8 2022-03-23 22:13:55 +01:00
rustc_lint Auto merge of #97012 - oli-obk:🦀_intrinsics, r=davidtwco 2022-05-17 09:39:26 +00:00
rustc_lint_defs Allow the unused_macro_rules lint for now 2022-05-14 12:31:14 +02:00
rustc_llvm Add LLVM based mingw-w64 targets 2022-05-13 20:14:15 +02:00
rustc_log rustc_log: add env var to set verbose entry/exit behavior 2022-05-11 09:14:31 +02:00
rustc_macros errors: set_arg takes IntoDiagnosticArg 2022-05-12 07:21:51 +01:00
rustc_metadata Auto merge of #97024 - lcnr:simplify_type-sus, r=<try> 2022-05-19 13:08:51 +00:00
rustc_middle Auto merge of #97024 - lcnr:simplify_type-sus, r=<try> 2022-05-19 13:08:51 +00:00
rustc_mir_build Auto merge of #97019 - b-naber:transition-to-valtrees-pt1, r=oli-obk 2022-05-18 20:12:07 +00:00
rustc_mir_dataflow Auto merge of #97111 - JohnTitor:rollup-x3vjf6u, r=JohnTitor 2022-05-17 12:01:12 +00:00
rustc_mir_transform Rollup merge of #97142 - SparrowLii:inline, r=tmiasko 2022-05-19 17:22:48 +02:00
rustc_monomorphize only_local: always check for misuse 2022-05-10 12:07:35 +02:00
rustc_parse keep bounds where they were 2022-05-16 22:23:32 -05:00
rustc_parse_format Make rustc_parse_format compile on stable 2022-05-03 11:26:58 +02:00
rustc_passes Auto merge of #96863 - SparrowLii:let, r=michaelwoerister 2022-05-18 17:48:46 +00:00
rustc_plugin_impl replace dynamic library module with libloading 2021-12-06 12:03:47 -05:00
rustc_privacy Rollup merge of #97096 - tmiasko:reachable-constructor, r=petrochenkov 2022-05-18 07:40:58 +09:00
rustc_query_impl Move lint expectation checking into a separate query (RFC 2383) 2022-05-08 14:37:14 +02:00
rustc_query_system Auto merge of #96094 - Elliot-Roberts:fix_doctests, r=compiler-errors 2022-05-07 06:30:29 +00:00
rustc_resolve Auto merge of #96800 - nbdd0121:const, r=nagisa 2022-05-18 15:07:47 +00:00
rustc_save_analysis [save-analysis] Reference the variant not enum at struct-literal construction. 2022-05-12 16:34:02 -07:00
rustc_serialize Remove unused macro rules 2022-04-18 23:28:06 +02:00
rustc_session use CursorRef more, to not to clone Trees 2022-05-18 18:43:48 +03:00
rustc_span Properly apply path prefix remapping paths emitted into debuginfo. 2022-05-18 12:19:01 +02:00
rustc_symbol_mangling Auto merge of #96883 - jackh726:early-binder-2, r=oli-obk 2022-05-14 23:53:11 +00:00
rustc_target Add ABI clobbers 2022-05-17 06:48:03 -04:00
rustc_trait_selection Auto merge of #97024 - lcnr:simplify_type-sus, r=<try> 2022-05-19 13:08:51 +00:00
rustc_traits Add bound_impl_trait_ref 2022-05-13 18:27:40 -04:00
rustc_ty_utils Auto merge of #97012 - oli-obk:🦀_intrinsics, r=davidtwco 2022-05-17 09:39:26 +00:00
rustc_type_ir fix most compiler/ doctests 2022-05-02 17:40:30 -07:00
rustc_typeck Auto merge of #97029 - eholk:drop-tracking-yielding-in-match-guard, r=nikomatsakis 2022-05-20 03:27:01 +00:00