rust/compiler
Matthias Krüger 32c8c5cb7e
Rollup merge of #121595 - strottos:issue_116615, r=compiler-errors
Better reporting on generic argument mismatchs

This allows better reporting as per issue #116615 .

If you have a function:
```
fn foo(a: T, b: T) {}
```
and call it like so:
```
foo(1, 2.)
```
it'll give improved error reported similar to the following:
```
error[E0308]: mismatched types
 --> generic-mismatch-reporting-issue-116615.rs:6:12
  |
6 |     foo(1, 2.);
  |     --- -  ^^ expected integer, found floating-point number
  |     |   |
  |     |   expected argument `b` to be an integer because that argument needs to match the type of this parameter
  |     arguments to this function are incorrect
  |
note: function defined here
 --> generic-mismatch-reporting-issue-116615.rs:1:4
  |
1 | fn foo<T>(a: T, b: T) {}
  |    ^^^ -  ----  ----
  |        |  |     |
  |        |  |     this parameter needs to match the integer type of `a`
  |        |  `b` needs to match the type of this parameter
  |        `a` and `b` all reference this parameter T
```

Open question, do we need to worry about error message translation into other languages? Not sure what the status of that is in Rust.

NB: Needs some checking over and some tests have altered that need sanity checking, but overall this is starting to get somewhere now. Will take out of draft PR status when this has been done, raising now to allow feedback at this stage, probably 90% ready.
2024-04-03 22:10:59 +02: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 rustc_ast: Update P<T> docs to reflect mutable status. 2024-04-03 08:41:03 +00:00
rustc_ast_ir Fix typo in VisitorResult 2024-03-08 23:20:29 -05:00
rustc_ast_lowering Implement mut ref/mut ref mut 2024-03-27 09:53:23 -04:00
rustc_ast_passes Rollup merge of #123188 - klensy:clippy-me2, r=Nilstrieb 2024-03-29 15:17:11 +01:00
rustc_ast_pretty Auto merge of #123080 - Jules-Bertholet:mut-ref-mut, r=Nadrieril 2024-03-29 11:08:11 +00:00
rustc_attr Use the Align type when parsing alignment attributes 2024-04-01 03:05:55 +01:00
rustc_baked_icu_data Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_borrowck Rollup merge of #122935 - RalfJung:with-exposed-provenance, r=Amanieu 2024-04-02 20:37:39 -04:00
rustc_builtin_macros Fix error message for env! when env var is not valid Unicode 2024-04-01 05:44:45 +01:00
rustc_codegen_cranelift Rollup merge of #122935 - RalfJung:with-exposed-provenance, r=Amanieu 2024-04-02 20:37:39 -04:00
rustc_codegen_gcc Auto merge of #118310 - scottmcm:three-way-compare, r=davidtwco 2024-04-02 19:21:44 +00:00
rustc_codegen_llvm Rollup merge of #122935 - RalfJung:with-exposed-provenance, r=Amanieu 2024-04-02 20:37:39 -04:00
rustc_codegen_ssa Rollup merge of #122935 - RalfJung:with-exposed-provenance, r=Amanieu 2024-04-02 20:37:39 -04:00
rustc_const_eval Rollup merge of #122935 - RalfJung:with-exposed-provenance, r=Amanieu 2024-04-02 20:37:39 -04:00
rustc_data_structures Auto merge of #121851 - michaelwoerister:mcp-533-effective-vis, r=cjgillot 2024-03-31 16:22:38 +00:00
rustc_driver Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_driver_impl Auto merge of #111769 - saethlin:ctfe-backtrace-ctrlc, r=RalfJung 2024-03-26 00:04:03 +00:00
rustc_error_codes Auto merge of #122055 - compiler-errors:stabilize-atb, r=oli-obk 2024-03-19 00:04:09 +00:00
rustc_error_messages Rename SubdiagnosticMessage as SubdiagMessage. 2024-03-05 12:14:49 +11:00
rustc_errors Rollup merge of #121595 - strottos:issue_116615, r=compiler-errors 2024-04-03 22:10:59 +02:00
rustc_expand Rollup merge of #123182 - jhpratt:fix-decodable-derive, r=davidtwco 2024-04-02 20:37:40 -04:00
rustc_feature Auto merge of #123080 - Jules-Bertholet:mut-ref-mut, r=Nadrieril 2024-03-29 11:08:11 +00:00
rustc_fluent_macro Rename SubdiagnosticMessage as SubdiagMessage. 2024-03-05 12:14:49 +11:00
rustc_fs_util Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_graphviz Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_hir Auto merge of #118310 - scottmcm:three-way-compare, r=davidtwco 2024-04-02 19:21:44 +00:00
rustc_hir_analysis Rollup merge of #123382 - compiler-errors:assert-fndef-kind, r=fmease 2024-04-03 17:15:48 +02:00
rustc_hir_pretty Implement mut ref/mut ref mut 2024-03-27 09:53:23 -04:00
rustc_hir_typeck Rollup merge of #121595 - strottos:issue_116615, r=compiler-errors 2024-04-03 22:10:59 +02:00
rustc_incremental Auto merge of #122721 - oli-obk:merge_queries, r=davidtwco 2024-03-25 01:33:46 +00:00
rustc_index doc: Add better explanation 2024-03-06 16:54:42 +01:00
rustc_index_macros Remove SpecOptionPartialEq 2024-03-19 16:32:01 +00:00
rustc_infer Rollup merge of #123188 - klensy:clippy-me2, r=Nilstrieb 2024-03-29 15:17:11 +01:00
rustc_interface Remove MIR unsafe check 2024-04-03 08:50:12 +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 Add support for NonNull in ambiguous_wide_ptr_comparisions 2024-03-29 22:02:07 +01:00
rustc_lint_defs rename ptr::from_exposed_addr -> ptr::with_exposed_provenance 2024-03-23 13:18:33 +01:00
rustc_llvm Fix build on AIX 2024-04-02 17:25:22 +08: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 Replace RemapFileNameExt::for_codegen with explicit calls 2024-03-28 18:47:26 +01:00
rustc_middle Rollup merge of #123394 - compiler-errors:postfix-match-fixes, r=estebank 2024-04-03 17:15:50 +02:00
rustc_mir_build Rollup merge of #123394 - compiler-errors:postfix-match-fixes, r=estebank 2024-04-03 17:15:50 +02:00
rustc_mir_dataflow refactor check_{lang,library}_ub: use a single intrinsic, put policy into library 2024-03-23 18:45:05 +01:00
rustc_mir_transform Auto merge of #123322 - matthewjasper:remove-mir-unsafeck, r=lcnr,compiler-errors 2024-04-03 10:30:34 +00:00
rustc_monomorphize Only allow upstream calls to LLVM intrinsics, not any link_name function 2024-04-01 20:31:19 -04:00
rustc_next_trait_solver Require foldability part of interner item bounds, remove redundant where clauses 2024-03-28 12:30:52 -04:00
rustc_parse Don't ICE for postfix match after as 2024-04-02 18:31:42 -04:00
rustc_parse_format Extend format arg help for simple tuple index access expression 2024-03-16 22:33:02 +00:00
rustc_passes Auto merge of #122450 - Urgau:simplify-trim-paths-feature, r=michaelwoerister 2024-03-29 14:00:21 +00:00
rustc_pattern_analysis Rollup merge of #123242 - Nadrieril:require-contiguous-enum-indices, r=compiler-errors 2024-03-31 11:50:41 +02:00
rustc_privacy Rename hir::Local into hir::LetStmt 2024-03-22 20:36:21 +01: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 CacheSelector trait now that we can use GATs 2024-03-26 11:03:23 +00:00
rustc_resolve remove def_id_to_node_id in ast lowering 2024-03-28 16:58:03 +08:00
rustc_serialize Stabilize associated type bounds 2024-03-08 20:56:25 +00:00
rustc_session Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
rustc_smir Rollup merge of #122935 - RalfJung:with-exposed-provenance, r=Amanieu 2024-04-02 20:37:39 -04:00
rustc_span Rollup merge of #122935 - RalfJung:with-exposed-provenance, r=Amanieu 2024-04-02 20:37:39 -04:00
rustc_symbol_mangling CFI: Support non-general coroutines 2024-04-02 17:34:42 +00:00
rustc_target CFI: Enable KCFI testing of run-pass tests 2024-03-26 03:16:41 +00:00
rustc_trait_selection Auto merge of #123396 - jhpratt:rollup-oa54mh1, r=jhpratt 2024-04-03 02:13:07 +00:00
rustc_traits Merge check_mod_impl_wf and check_mod_type_wf 2024-03-07 06:27:09 +00:00
rustc_transmute Remove unnecessary Partial/Ord derive 2024-03-27 14:02:15 +00:00
rustc_ty_utils Auto merge of #118310 - scottmcm:three-way-compare, r=davidtwco 2024-04-02 19:21:44 +00:00
rustc_type_ir Require foldability part of interner item bounds, remove redundant where clauses 2024-03-28 12:30:52 -04:00
stable_mir Rollup merge of #122935 - RalfJung:with-exposed-provenance, r=Amanieu 2024-04-02 20:37:39 -04:00