rust/compiler
Dylan DPC 83f10ea5b7
Rollup merge of #105300 - aliemjay:member-lower, r=oli-obk
rework min_choice algorithm of member constraints

See [this comment](https://github.com/rust-lang/rust/pull/105300#issuecomment-1384312743) for the description of the new algorithm.

Fixes #63033
Fixes #104639

This uses a more general algorithm than #89056 that doesn't treat `'static` as a special case. It thus accepts more code. For example:
```rust
async fn test2<'s>(_: &'s u8, _: &'_ &'s u8, _: &'_ &'s u8) {}
```
I claim it's more correct as well because it fixes #104639.

cc ``@nikomatsakis`` ``@lqd`` ``@tmandry`` ``@eholk`` ``@chenyukang`` ``@oli-obk``

r? types
2023-02-15 12:24:53 +05:30
..
rustc Add a new rustc_driver dylib to rexport rustc_driver_impl 2023-02-02 07:34:41 +01:00
rustc_abi also do not add noalias on not-Unpin Box 2023-02-06 12:17:41 +01:00
rustc_apfloat compiler: remove unnecessary imports and qualified paths 2022-12-10 18:45:34 +01:00
rustc_arena compiler: remove unnecessary imports and qualified paths 2022-12-10 18:45:34 +01:00
rustc_ast rustc_ast: Merge impls and reorder methods for attributes and meta items 2023-02-11 23:23:17 +04:00
rustc_ast_lowering remove unused imports 2023-02-06 17:40:18 +03:00
rustc_ast_passes Autoderive ExternBlockSuggestion 2023-01-19 13:52:15 +01:00
rustc_ast_pretty Expand const-if-const trait bounds correctly 2023-02-07 21:00:12 +00:00
rustc_attr Fix uninlined_format_args for some compiler crates 2023-01-05 19:01:12 +01:00
rustc_baked_icu_data update ICU4X to 1.1.0 2023-02-04 22:28:59 +01:00
rustc_borrowck Rollup merge of #105300 - aliemjay:member-lower, r=oli-obk 2023-02-15 12:24:53 +05:30
rustc_builtin_macros Extend BYTE_SLICE_IN_PACKED_STRUCT_WITH_DERIVE. 2023-02-09 11:47:12 +11:00
rustc_codegen_cranelift s/eval_usize/eval_target_usize/ for clarity 2023-02-14 08:51:19 +00:00
rustc_codegen_gcc s/eval_usize/eval_target_usize/ for clarity 2023-02-14 08:51:19 +00:00
rustc_codegen_llvm Auto merge of #108056 - matthiaskrgr:rollup-oa6bxvh, r=matthiaskrgr 2023-02-14 21:07:04 +00:00
rustc_codegen_ssa s/eval_usize/eval_target_usize/ for clarity 2023-02-14 08:51:19 +00:00
rustc_const_eval Auto merge of #108056 - matthiaskrgr:rollup-oa6bxvh, r=matthiaskrgr 2023-02-14 21:07:04 +00:00
rustc_data_structures Refactor refcounted structural_impls via functors 2023-02-14 12:14:58 +00:00
rustc_driver Remove unneeded extern crate 2023-02-02 07:47:39 +01:00
rustc_driver_impl Rollup merge of #107838 - estebank:terminal_hyperlinks, r=nagisa 2023-02-13 11:34:57 +01:00
rustc_error_codes Add extended error message for E0523 2023-02-06 06:58:30 -05:00
rustc_error_messages Rollup merge of #107673 - lukas-code:update-icu4x, r=davidtwco 2023-02-14 18:24:41 +01:00
rustc_errors Rollup merge of #107838 - estebank:terminal_hyperlinks, r=nagisa 2023-02-13 11:34:57 +01:00
rustc_expand Rollup merge of #107838 - estebank:terminal_hyperlinks, r=nagisa 2023-02-13 11:34:57 +01:00
rustc_feature change the marker attribute to only_local 2023-02-14 12:18:33 +01:00
rustc_fs_util Remove useless borrows and derefs 2022-12-01 17:34:43 +00:00
rustc_graphviz Fix uninlined_format_args for some compiler crates 2023-01-05 19:01:12 +01:00
rustc_hir rustc_resolve: Remove Resolver::clone_output 2023-02-13 00:10:15 +04:00
rustc_hir_analysis Auto merge of #108056 - matthiaskrgr:rollup-oa6bxvh, r=matthiaskrgr 2023-02-14 21:07:04 +00:00
rustc_hir_pretty Use Mutability::{is_mut, is_not} 2023-01-30 12:26:26 +00:00
rustc_hir_typeck s/eval_usize/eval_target_usize/ for clarity 2023-02-14 08:51:19 +00:00
rustc_incremental incremental: migrate diagnostics 2023-01-30 17:11:35 +00:00
rustc_index Fix IndexVec::drain_enumerated 2023-01-19 15:25:33 +00:00
rustc_infer Rollup merge of #107902 - vincenzopalazzo:macros/async_fn_suggestion, r=compiler-errors 2023-02-13 23:25:11 +01:00
rustc_interface rustc_resolve: Remove Resolver::clone_output 2023-02-13 00:10:15 +04:00
rustc_lexer Remove double spaces after dots in comments 2023-01-17 08:09:33 +00:00
rustc_lint Auto merge of #108056 - matthiaskrgr:rollup-oa6bxvh, r=matthiaskrgr 2023-02-14 21:07:04 +00:00
rustc_lint_defs Extend BYTE_SLICE_IN_PACKED_STRUCT_WITH_DERIVE. 2023-02-09 11:47:12 +11:00
rustc_llvm Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
rustc_log Rollup merge of #107895 - matthiaskrgr:cl, r=compiler-errors 2023-02-11 17:18:44 +01:00
rustc_macros Use derive attributes for uninteresting traversals 2023-02-14 15:09:40 +00:00
rustc_metadata rustc_resolve: Remove Resolver::clone_output 2023-02-13 00:10:15 +04:00
rustc_middle Auto merge of #108056 - matthiaskrgr:rollup-oa6bxvh, r=matthiaskrgr 2023-02-14 21:07:04 +00:00
rustc_mir_build s/eval_usize/eval_target_usize/ for clarity 2023-02-14 08:51:19 +00:00
rustc_mir_dataflow s/eval_usize/eval_target_usize/ for clarity 2023-02-14 08:51:19 +00:00
rustc_mir_transform s/eval_usize/eval_target_usize/ for clarity 2023-02-14 08:51:19 +00:00
rustc_monomorphize Make visiting traits generic over the Interner 2023-02-13 10:24:49 +00:00
rustc_parse Rollup merge of #103478 - SpanishPear:spanishpear/issue_103366_fix, r=TaKO8Ki 2023-02-14 18:02:50 +01:00
rustc_parse_format remove redundant clones 2023-02-10 18:08:25 +01:00
rustc_passes add a #[rustc_coinductive] attribute 2023-02-14 11:53:22 +01:00
rustc_plugin_impl Migrate all diagnostics 2022-10-23 10:09:44 +02:00
rustc_privacy Make visiting traits generic over the Interner 2023-02-13 10:24:49 +00:00
rustc_query_impl Simplify tls::enter_context. 2023-02-09 15:25:45 +11:00
rustc_query_system Create a single value cache for the () query key 2023-02-11 23:38:01 +01:00
rustc_resolve rustc_resolve: Remove Resolver::clone_output 2023-02-13 00:10:15 +04:00
rustc_save_analysis Review changes 2023-01-31 07:54:01 +00:00
rustc_serialize compiler: remove unnecessary imports and qualified paths 2022-12-10 18:45:34 +01:00
rustc_session Rollup merge of #107838 - estebank:terminal_hyperlinks, r=nagisa 2023-02-13 11:34:57 +01:00
rustc_smir
rustc_span add a #[rustc_coinductive] attribute 2023-02-14 11:53:22 +01:00
rustc_symbol_mangling Pre-intern some commonly used type variables. 2023-02-13 09:25:36 +11:00
rustc_target Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
rustc_trait_selection Auto merge of #108056 - matthiaskrgr:rollup-oa6bxvh, r=matthiaskrgr 2023-02-14 21:07:04 +00:00
rustc_traits Rename folder traits' tcx method to interner 2023-02-13 10:24:51 +00:00
rustc_transmute s/eval_usize/eval_target_usize/ for clarity 2023-02-14 08:51:19 +00:00
rustc_ty_utils s/eval_usize/eval_target_usize/ for clarity 2023-02-14 08:51:19 +00:00
rustc_type_ir Auto merge of #108056 - matthiaskrgr:rollup-oa6bxvh, r=matthiaskrgr 2023-02-14 21:07:04 +00:00