rust-analyzer/crates
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
..
expect Fix clippy warnings 2020-08-10 15:05:01 +03:00
flycheck Revert style preference-related fixes 2020-08-12 14:08:55 +03:00
paths Add a license field to all the crates 2020-07-14 10:57:26 +09:00
ra_arena Revert style preference-related fixes 2020-08-12 14:08:55 +03:00
ra_assists Merge #5553 2020-08-12 13:44:13 +00:00
ra_cfg Cleanup CFG API 2020-07-23 16:53:12 +02:00
ra_db Use salsa's purge to account for all memory 2020-08-05 15:28:20 +02:00
ra_fmt Add a license field to all the crates 2020-07-14 10:57:26 +09:00
ra_hir Merge #5553 2020-08-12 13:44:13 +00:00
ra_hir_def Merge #5553 2020-08-12 13:44:13 +00:00
ra_hir_expand Better naming and docs 2020-08-11 17:52:05 +03:00
ra_hir_ty Better naming and docs 2020-08-11 17:52:05 +03:00
ra_ide Merge #5553 2020-08-12 13:44:13 +00:00
ra_ide_db Remove Option<...> from result of Crate::root_module 2020-08-09 18:52:19 -04:00
ra_mbe Fix clippy warnings 2020-08-10 15:05:01 +03:00
ra_parser Cleanup parser modifiers tests 2020-08-12 14:52:37 +02:00
ra_proc_macro Fix clippy warnings 2020-08-10 15:05:01 +03:00
ra_proc_macro_srv cargo_metadata 0.11.1 and cargo update 2020-07-29 17:06:56 -04:00
ra_prof Fix build on musl and test it in CI 2020-08-12 12:23:25 +02:00
ra_project_model Merge #5596 2020-07-30 21:23:41 +00:00
ra_ssr Use SyntaxNode.ancestors instead of a loop 2020-08-06 07:36:03 +10:00
ra_syntax Merge #5722 2020-08-12 13:06:38 +00:00
ra_text_edit Fix clippy warnings 2020-08-10 15:05:01 +03:00
ra_toolchain Add a license field to all the crates 2020-07-14 10:57:26 +09:00
ra_tt Fix clippy warnings 2020-08-10 15:05:01 +03:00
rust-analyzer Simplify fix structure 2020-08-11 17:13:40 +03:00
stdx Replace SepBy with Itertools 2020-08-12 15:04:06 +02:00
test_utils Use split_once polyfill 2020-07-30 22:23:12 +02:00
vfs Revert style preference-related fixes 2020-08-12 14:08:55 +03:00
vfs-notify Simplify exclusion logic 2020-07-18 16:40:10 +02:00