rust-analyzer/crates/ra_hir/src
bors[bot] 5b8fdfe231
Merge #5553
5553: Add fix ranges for diagnostics r=matklad a=SomeoneToIgnore

A follow-up of https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Less.20red.20in.20the.20code

Now diagnostics can apply fixes in a range that's different from the range used to highlight the diagnostics.
Previous logic did not consider the fix range, having both ranges equal, which could cause a lot of red noise in the editor.
Now, the fix range gets used with the fix, the diagnostics range is used for everything else which allows to improve the error highlighting.

before:
<img width="191" alt="image" src="https://user-images.githubusercontent.com/2690773/88590727-df9a6a00-d063-11ea-97ed-9809c1c5e6e6.png">
after:
<img width="222" alt="image" src="https://user-images.githubusercontent.com/2690773/88590734-e1fcc400-d063-11ea-9b7c-25701cbd5352.png">

`MissingFields` and `MissingPatFields` diagnostics now have the fix range as `ast::RecordFieldList` of the expression with an error (as it was before this PR), and the diagnostics range as a `ast::Path` of the expression, if it's present (do you have any example of `ast::Expr::RecordLit` that has no path btw?).
The rest of the diagnostics have both ranges equal, same as it was before this PR.

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-08-12 13:44:13 +00:00
..
semantics Rename BindPat -> IdentPat 2020-07-31 20:12:10 +02:00
code_model.rs Revert function structs back to using bool to track self param, use first param for self information in syntax highlighting instead 2020-08-10 08:44:54 -04:00
db.rs Use salsa's purge to account for all memory 2020-08-05 15:28:20 +02:00
diagnostics.rs Move the DiagnosticsWithFix trait on the ide level 2020-08-11 15:09:08 +03:00
from_id.rs Rename StructField -> Field 2020-04-25 14:23:34 +02:00
has_source.rs Finalize impl Grammar 2020-07-30 18:28:28 +02:00
lib.rs Revert function structs back to using bool to track self param, use first param for self information in syntax highlighting instead 2020-08-10 08:44:54 -04:00
semantics.rs Merge #5553 2020-08-12 13:44:13 +00:00
source_analyzer.rs Minor 2020-08-12 12:21:03 +02:00