1
Fork 0
rust/compiler/rustc_errors/src
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
..
json Make JsonEmitter more like HumanEmitter. 2024-02-29 17:50:26 +11:00
markdown constify a couple thread_local statics 2024-02-12 16:25:39 +01:00
annotate_snippet_emitter_writer.rs Rename DiagnosticMessage as DiagMessage. 2024-03-05 12:14:49 +11:00
codes.rs Stop using String for error codes. 2024-01-29 07:41:41 +11:00
diagnostic.rs Make SubdiagMessageOp well-formed 2024-03-14 13:13:08 -04:00
diagnostic_impls.rs Rename AddToDiagnostic as Subdiagnostic. 2024-03-11 10:04:49 +11:00
emitter.rs Rollup merge of #122737 - ytmimi:conditionally_ignore_fatal_diagnostic, r=davidtwco 2024-03-24 17:08:15 +01:00
error.rs Minor visibility and formatting improvements. 2024-02-29 16:30:09 +11:00
json.rs If suggestion would leave an empty line, delete it 2024-03-01 13:48:20 +00:00
lib.rs Rollup merge of #121595 - strottos:issue_116615, r=compiler-errors 2024-04-03 22:10:59 +02:00
lock.rs windows bump to 0.52 2024-02-18 16:02:16 +03:00
registry.rs Stop using String for error codes. 2024-01-29 07:41:41 +11:00
snippet.rs Rework StringPart. 2024-02-01 19:23:01 +11:00
styled_buffer.rs Replace some _ == _ || _ == _s with matches!(_, _ | _)s 2023-01-30 12:26:26 +00:00
tests.rs Rename DiagnosticMessage as DiagMessage. 2024-03-05 12:14:49 +11:00
translation.rs Rename DiagnosticMessage as DiagMessage. 2024-03-05 12:14:49 +11:00