rust/compiler
Yuki Okushi 52afa3a70c
Rollup merge of #97964 - WaffleLapkin:fix_borrow_par_suggestions, r=compiler-errors
Fix suggestions for `&a: T` parameters

I've accidentally discovered that we have broken suggestions for `&a: T` parameters:
```rust
fn f(&mut bar: u32) {}

fn main() {
    let _ = |&mut a| ();
}
```
```text
error[E0308]: mismatched types
 --> ./t.rs:1:6
  |
1 | fn f(&mut bar: u32) {}
  |      ^^^^^^^^-----
  |      |         |
  |      |         expected due to this
  |      expected `u32`, found `&mut _`
  |      help: did you mean `bar`: `&u32`
  |
  = note:           expected type `u32`
          found mutable reference `&mut _`

error[E0308]: mismatched types
 --> ./t.rs:4:23
  |
4 |     let _: fn(u32) = |&mut a| ();
  |                       ^^^^^--
  |                       |    |
  |                       |    expected due to this
  |                       expected `u32`, found `&mut _`
  |                       help: did you mean `a`: `&u32`
  |
  = note:           expected type `u32`
          found mutable reference `&mut _`
```

It's hard to see, but
1. The help span is overlapping with "expected" spans
2. It suggests `fn f( &u32) {}` (no `mut` and lost parameter name) and `|&u32 ()` (no closing `|` and lost parameter name)

I've tried to fix this.

r? ``@compiler-errors``
2022-06-16 07:24:39 +09:00
..
rustc Rollup merge of #97385 - oli-obk:smir-tool-lib, r=pnkfelix 2022-06-14 07:47:24 +09:00
rustc_apfloat Fully stabilize NLL 2022-06-03 17:16:41 -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 Rename rustc_serialize::opaque::Encoder as MemEncoder. 2022-06-14 14:52:01 +10:00
rustc_ast_lowering Rollup merge of #98110 - cjgillot:closure-brace, r=Aaron1011 2022-06-15 19:37:14 +09:00
rustc_ast_passes Remove rustc_deprecated diagnostics 2022-06-14 19:46:13 -04:00
rustc_ast_pretty Revert #96682. 2022-06-02 11:22:16 +10:00
rustc_attr Remove rustc_deprecated diagnostics 2022-06-14 19:46:13 -04:00
rustc_borrowck Rollup merge of #98110 - cjgillot:closure-brace, r=Aaron1011 2022-06-15 19:37:14 +09:00
rustc_builtin_macros [RFC 2011] Minimal initial implementation 2022-06-15 07:37:40 -03:00
rustc_codegen_cranelift implement valtrees as the type-system representation for constant values 2022-06-14 16:07:11 +02:00
rustc_codegen_gcc Add llvm.type.checked.load intrinsic 2022-06-14 14:50:52 +02:00
rustc_codegen_llvm Rollup merge of #98067 - klensy:compiler-deps2, r=Dylan-DPC 2022-06-15 12:02:02 +09:00
rustc_codegen_ssa Rollup merge of #98083 - nnethercote:rename-Encoder, r=bjorn3 2022-06-15 12:02:04 +09:00
rustc_const_eval rebase 2022-06-14 17:57:51 +02:00
rustc_data_structures Rollup merge of #98083 - nnethercote:rename-Encoder, r=bjorn3 2022-06-15 12:02:04 +09:00
rustc_driver remove currently unused deps 2022-06-13 22:20:51 +03:00
rustc_error_codes Add comment for internal error codes 2022-06-12 19:52:49 -03:00
rustc_error_messages Rollup merge of #97948 - davidtwco:diagnostic-translation-lints, r=oli-obk 2022-06-14 10:35:31 +02:00
rustc_errors Rollup merge of #97948 - davidtwco:diagnostic-translation-lints, r=oli-obk 2022-06-14 10:35:31 +02:00
rustc_expand remove unnecessary to_string and String::new 2022-06-13 15:48:40 +09:00
rustc_feature Remove rustc_deprecated diagnostics 2022-06-14 19:46:13 -04:00
rustc_fs_util
rustc_graphviz Fully stabilize NLL 2022-06-03 17:16:41 -04:00
rustc_hir Rollup merge of #98110 - cjgillot:closure-brace, r=Aaron1011 2022-06-15 19:37:14 +09:00
rustc_hir_pretty Make ExprKind::Closure a struct variant. 2022-06-12 00:16:27 +02:00
rustc_incremental Rename rustc_serialize::opaque::Encoder as MemEncoder. 2022-06-14 14:52:01 +10:00
rustc_index Auto merge of #97862 - SparrowLii:superset, r=lcnr 2022-06-09 07:13:46 +00:00
rustc_infer Rollup merge of #98110 - cjgillot:closure-brace, r=Aaron1011 2022-06-15 19:37:14 +09:00
rustc_interface Rollup merge of #98067 - klensy:compiler-deps2, r=Dylan-DPC 2022-06-15 12:02:02 +09:00
rustc_lexer Reduce max hash in raw strings from u16 to u8 2022-03-23 22:13:55 +01:00
rustc_lint Rollup merge of #97948 - davidtwco:diagnostic-translation-lints, r=oli-obk 2022-06-14 10:35:31 +02:00
rustc_lint_defs Use serde_json for json error messages 2022-06-03 16:46:19 +00:00
rustc_llvm Add metadata generation for vtables when using VFE 2022-06-14 14:50:52 +02:00
rustc_log clippy::complexity fixes 2022-05-26 13:14:24 +02:00
rustc_macros Auto merge of #94732 - nnethercote:infallible-encoder, r=bjorn3 2022-06-08 10:24:12 +00:00
rustc_metadata Rollup merge of #98110 - cjgillot:closure-brace, r=Aaron1011 2022-06-15 19:37:14 +09:00
rustc_middle Rollup merge of #98110 - cjgillot:closure-brace, r=Aaron1011 2022-06-15 19:37:14 +09:00
rustc_mir_build Rollup merge of #98110 - cjgillot:closure-brace, r=Aaron1011 2022-06-15 19:37:14 +09:00
rustc_mir_dataflow Rollup merge of #98067 - klensy:compiler-deps2, r=Dylan-DPC 2022-06-15 12:02:02 +09:00
rustc_mir_transform Rollup merge of #98067 - klensy:compiler-deps2, r=Dylan-DPC 2022-06-15 12:02:02 +09:00
rustc_monomorphize Rollup merge of #98067 - klensy:compiler-deps2, r=Dylan-DPC 2022-06-15 12:02:02 +09:00
rustc_parse Improve parsing errors and suggestions for bad if statements 2022-06-13 20:53:48 -07:00
rustc_parse_format Make rustc_parse_format compile on stable 2022-05-03 11:26:58 +02:00
rustc_passes Rollup merge of #98115 - jhpratt:remove-rustc_deprecated, r=compiler-errors 2022-06-15 19:37:15 +09:00
rustc_plugin_impl remove currently unused deps 2022-06-13 22:20:51 +03:00
rustc_privacy Make ExprKind::Closure a struct variant. 2022-06-12 00:16:27 +02:00
rustc_query_impl Rollup merge of #98083 - nnethercote:rename-Encoder, r=bjorn3 2022-06-15 12:02:04 +09:00
rustc_query_system Auto merge of #98084 - nnethercote:rm-thread-local-IGNORED_ATTRIBUTES, r=michaelwoerister 2022-06-15 08:20:19 +00:00
rustc_resolve Rollup merge of #98087 - TaKO8Ki:suggest-adding-macro-export, r=oli-obk 2022-06-15 12:02:05 +09:00
rustc_save_analysis Make ExprKind::Closure a struct variant. 2022-06-12 00:16:27 +02:00
rustc_serialize Rename rustc_serialize::opaque::Encoder as MemEncoder. 2022-06-14 14:52:01 +10:00
rustc_session Auto merge of #96285 - flip1995:pk-vfe, r=nagisa 2022-06-14 21:37:11 +00:00
rustc_smir Rustfmt 2022-06-02 10:29:00 +00:00
rustc_span Auto merge of #97665 - c410-f3r:assert-compiler, r=oli-obk 2022-06-15 17:43:01 +00:00
rustc_symbol_mangling Rollup merge of #98067 - klensy:compiler-deps2, r=Dylan-DPC 2022-06-15 12:02:02 +09:00
rustc_target Disable has_thread_local due to weird issues in some programs 2022-06-13 20:45:25 -07:00
rustc_trait_selection Rollup merge of #98110 - cjgillot:closure-brace, r=Aaron1011 2022-06-15 19:37:14 +09:00
rustc_traits implement valtrees as the type-system representation for constant values 2022-06-14 16:07:11 +02:00
rustc_ty_utils implement valtrees as the type-system representation for constant values 2022-06-14 16:07:11 +02:00
rustc_type_ir Rename rustc_serialize::opaque::Encoder as MemEncoder. 2022-06-14 14:52:01 +10:00
rustc_typeck Rollup merge of #97964 - WaffleLapkin:fix_borrow_par_suggestions, r=compiler-errors 2022-06-16 07:24:39 +09:00