rust/compiler
bors 08273780d8 Auto merge of #122213 - estebank:issue-50195, r=oli-obk,estebank
Provide suggestion to dereference closure tail if appropriate

When encoutnering a case like

```rust
use std::collections::HashMap;

fn main() {
    let vs = vec![0, 0, 1, 1, 3, 4, 5, 6, 3, 3, 3];

    let mut counts = HashMap::new();
    for num in vs {
        let count = counts.entry(num).or_insert(0);
        *count += 1;
    }

    let _ = counts.iter().max_by_key(|(_, v)| v);
```
produce the following suggestion
```
error: lifetime may not live long enough
  --> $DIR/return-value-lifetime-error.rs:13:47
   |
LL |     let _ = counts.iter().max_by_key(|(_, v)| v);
   |                                       ------- ^ returning this value requires that `'1` must outlive `'2`
   |                                       |     |
   |                                       |     return type of closure is &'2 &i32
   |                                       has type `&'1 (&i32, &i32)`
   |
help: dereference the return value
   |
LL |     let _ = counts.iter().max_by_key(|(_, v)| **v);
   |                                               ++
```

Fix #50195.
2024-04-11 02:37:35 +00:00
..
rustc
rustc_abi Use the Align type when parsing alignment attributes 2024-04-01 03:05:55 +01:00
rustc_arena rename ptr::invalid -> ptr::without_provenance 2024-02-21 20:15:52 +01:00
rustc_ast Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_ast_ir Fix typo in VisitorResult 2024-03-08 23:20:29 -05:00
rustc_ast_lowering Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_ast_passes Add a helper for extending a span to include any trailing whitespace 2024-04-09 14:06:09 -04:00
rustc_ast_pretty Add pattern types to ast 2024-04-08 11:54:22 +00:00
rustc_attr Use the Align type when parsing alignment attributes 2024-04-01 03:05:55 +01:00
rustc_baked_icu_data
rustc_borrowck Auto merge of #122213 - estebank:issue-50195, r=oli-obk,estebank 2024-04-11 02:37:35 +00:00
rustc_builtin_macros Add pattern types to parser 2024-04-08 11:57:17 +00:00
rustc_codegen_cranelift Only traverse mono-reachable blocks in cg_clif 2024-04-07 16:46:21 -04:00
rustc_codegen_gcc Save/restore more items in cache with incremental compilation 2024-04-06 10:59:24 -04:00
rustc_codegen_llvm Auto merge of #123185 - scottmcm:more-typed-copy, r=compiler-errors 2024-04-10 16:32:41 +00:00
rustc_codegen_ssa Put the NONTEMPORAL case first 2024-04-09 08:51:33 -07:00
rustc_const_eval Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_data_structures rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
rustc_driver
rustc_driver_impl driver: unconditionally show update nightly hint 2024-04-09 13:37:27 +00:00
rustc_error_codes Use the more informative generic type inference failure error on method calls on raw pointers 2024-03-20 15:53:06 +00:00
rustc_error_messages Rename SubdiagnosticMessage as SubdiagMessage. 2024-03-05 12:14:49 +11:00
rustc_errors Add redundant_lifetime_args lint 2024-04-09 12:15:27 -04:00
rustc_expand Check x86_64 size assertions on aarch64, too 2024-04-03 16:53:03 +11:00
rustc_feature Set the correct tracking issue for pattern types 2024-04-08 20:53:05 +00:00
rustc_fluent_macro Rename SubdiagnosticMessage as SubdiagMessage. 2024-03-05 12:14:49 +11:00
rustc_fs_util
rustc_graphviz
rustc_hir Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_hir_analysis Use suggest_impl_trait in return type suggestion 2024-04-10 18:58:15 -04:00
rustc_hir_pretty Thread pattern types through the HIR 2024-04-08 12:00:07 +00:00
rustc_hir_typeck Auto merge of #122213 - estebank:issue-50195, r=oli-obk,estebank 2024-04-11 02:37:35 +00:00
rustc_incremental Auto merge of #122070 - Zoxc:dep-edges-from-previous, r=cjgillot 2024-04-05 11:11:17 +00:00
rustc_index Check x86_64 size assertions on aarch64, too 2024-04-03 16:53:03 +11:00
rustc_index_macros rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
rustc_infer Rollup merge of #123703 - estebank:diag-changes-2, r=Nadrieril 2024-04-11 01:56:26 +02:00
rustc_interface Ensure we do not accidentally insert new early aborts in the analysis passes 2024-04-08 14:44:10 +00:00
rustc_lexer Silence redundant error on char literal that was meant to be a string in 2021 edition 2024-03-17 23:35:19 +00:00
rustc_lint Rollup merge of #123314 - surechen:fix_120642, r=Nadrieril 2024-04-11 01:56:24 +02:00
rustc_lint_defs Split back out unused_lifetimes -> redundant_lifetimes 2024-04-09 12:17:34 -04:00
rustc_llvm Rollup merge of #123612 - kxxt:riscv-target-abi, r=jieyouxu,nikic,DianQK 2024-04-10 04:27:40 +02:00
rustc_log bump tracing-tree to 0.3 2024-03-30 17:39:43 +03:00
rustc_macros Rename diagnostic derive things. 2024-03-11 10:06:34 +11:00
rustc_metadata Auto merge of #123099 - oli-obk:span_tcx, r=petrochenkov 2024-04-09 03:04:20 +00:00
rustc_middle Auto merge of #122213 - estebank:issue-50195, r=oli-obk,estebank 2024-04-11 02:37:35 +00:00
rustc_mir_build Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_mir_dataflow Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_mir_transform Only assert for child/parent projection compatibility AFTER checking that theyre coming from the same place 2024-04-10 10:13:24 -04:00
rustc_monomorphize Only collect mono items from reachable blocks 2024-04-07 14:36:42 -04:00
rustc_next_trait_solver Auto merge of #122077 - oli-obk:eager_opaque_checks4, r=lcnr 2024-04-08 23:01:50 +00:00
rustc_parse parser: reduce visibility of unnecessary public UnmatchedDelim 2024-04-08 23:55:48 +09:00
rustc_parse_format Check x86_64 size assertions on aarch64, too 2024-04-03 16:53:03 +11:00
rustc_passes Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_pattern_analysis Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_privacy Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
rustc_query_impl Verify that query keys result in unique dep nodes 2024-03-12 05:31:41 +01:00
rustc_query_system Remove sharding for VecCache 2024-04-06 10:49:31 -04:00
rustc_resolve Rollup merge of #123307 - tgross35:f16-f128-feature-gate-fix, r=petrochenkov 2024-04-03 20:17:05 -04:00
rustc_sanitizers sanitizers: Create the rustc_sanitizers crate 2024-04-08 12:05:41 -07:00
rustc_serialize Stabilize associated type bounds 2024-03-08 20:56:25 +00:00
rustc_session Auto merge of #123099 - oli-obk:span_tcx, r=petrochenkov 2024-04-09 03:04:20 +00:00
rustc_smir Rollup merge of #123659 - celinval:smir-fix-intrinsic, r=oli-obk 2024-04-10 16:15:23 +02:00
rustc_span Add a helper for extending a span to include any trailing whitespace 2024-04-09 14:06:09 -04:00
rustc_symbol_mangling Rollup merge of #123649 - maurer:kcfi-v0, r=compiler-errors 2024-04-09 06:02:24 +02:00
rustc_target force_array -> is_consecutive 2024-04-08 11:31:43 +09:00
rustc_trait_selection Add a helper for extending a span to include any trailing whitespace 2024-04-09 14:06:09 -04:00
rustc_traits Merge check_mod_impl_wf and check_mod_type_wf 2024-03-07 06:27:09 +00:00
rustc_transmute Rollup merge of #123367 - jswrenn:layoutify, r=compiler-errors 2024-04-08 22:06:21 +02:00
rustc_ty_utils Handle const generic pattern types 2024-04-09 16:42:45 -03:00
rustc_type_ir Auto merge of #122077 - oli-obk:eager_opaque_checks4, r=lcnr 2024-04-08 23:01:50 +00:00
stable_mir Rollup merge of #123659 - celinval:smir-fix-intrinsic, r=oli-obk 2024-04-10 16:15:23 +02:00