Paul Daniel Faria
3456e2eec7
Add new method to Semantics, method_receiver_kind, which returns the kind of self
...
The options are Shared, Mutable, Consuming, and Copied. Use this to add proper
highlighting to methods based on usage.
2020-08-16 10:26:16 -04:00
Paul Daniel Faria
a044ff0138
Mark mutating functions with mutable
modifier, and owning functions with consuming
.
2020-08-16 10:22:51 -04:00
Paul Daniel Faria
7009d5ee2b
Add new HighlightModifier variant, Consuming
2020-08-16 10:22:51 -04:00
Dave Lage
d31634940d
Fix typo in comment
2020-08-15 16:37:44 -04:00
Aleksey Kladov
0ca1ba29e8
Don't expose hir::Path out of hir
...
Conjecture: it's impossible to use hir::Path *correctly* from an IDE.
I am not entirely sure about this, and we might need to add it back at
some point, but I have to arguments that convince me that we probably
won't:
* `hir::Path` has to know about hygiene, which an IDE can't set up
properly.
* `hir::Path` lacks identity, but you actually have to know identity
to resolve it correctly
2020-08-15 18:50:41 +02:00
Aleksey Kladov
2052d33b9b
Remove deprecated Path::from_ast
...
Long term, we probably should make hir::Path private to hir.
2020-08-15 18:22:16 +02:00
Jonas Schievink
bee56e68a3
Hacky support for fn-like proc macros
2020-08-15 15:34:56 +02:00
Jonas Schievink
cb816b1ea8
Add a proc_macro_test crate
...
This exports all 3 kinds of proc macros and is useful for testing
2020-08-15 00:27:32 +02:00
Dmitry
73315c9168
synchronizing changes
2020-08-15 02:37:43 +07:00
Dmitry
178c3e135a
Merge remote-tracking branch 'origin/master'
2020-08-15 01:32:05 +07:00
Dmitry
06ff8e6c76
refactor requirements put forward mkladov
2020-08-15 01:25:08 +07:00
bors[bot]
c2594daf29
Merge #5347
...
5347: Chalk writer integration r=flodiebold a=detrumi
~~This adds a `rust-analyzer dump-chalk` command, similar to analysis-stats, which writes out the whole chalk progam (see [chalk#365](https://github.com/rust-lang/chalk/issues/365 ) for more info about the .chalk writer)~~
Write out chalk programs in debug output if chalk debugging is active (using `CHALK_DEBUG`).
Example output:
```
[DEBUG ra_hir_ty::traits] solve(UCanonical { canonical: Canonical { value: InEnvironment { environment: Env([]), goal: Implemented(SeparatorTraitRef(?)) }, binders: [] }, universes: 1 }) => None
[INFO ra_hir_ty::traits] trait_solve_query(Implements(fn min<?0.0>(?0.0, ?0.0) -> ?0.0: Deref))
[DEBUG ra_hir_ty::traits] solve goal: UCanonical { canonical: Canonical { value: InEnvironment { environment: Env([]), goal: Implemented(SeparatorTraitRef(?)) }, binders: [U0 with kind type] }, universes: 1 }
[DEBUG ra_hir_ty::traits::chalk] impls_for_trait Deref
[DEBUG ra_hir_ty::traits::chalk] impls_for_trait returned 0 impls
[DEBUG ra_hir_ty::traits::chalk] trait_datum Ord
[DEBUG ra_hir_ty::traits::chalk] trait Ord = Name(Text("Ord"))
[DEBUG ra_hir_ty::traits] chalk program:
#[upstream]
#[non_enumerable]
#[object_safe]
trait Ord {}
#[upstream]
#[non_enumerable]
#[object_safe]
#[lang(sized)]
trait Sized {}
fn fn_0<_1_0>(arg_0: _1_0, arg_1: _1_0) -> _1_0
where
_1_0: Ord;
#[upstream]
#[non_enumerable]
#[object_safe]
trait Deref {
type Assoc_1829: Sized;
}
[DEBUG ra_hir_ty::traits] solve(UCanonical { canonical: Canonical { value: InEnvironment { environment: Env([]), goal: Implemented(SeparatorTraitRef(?)) }, binders: [U0 with kind type] }, universes: 1 }) => None
[INFO ra_hir_ty::traits] trait_solve_query(Implements(?0.0: Ord))
```
Co-authored-by: Wilco Kusee <wilcokusee@gmail.com>
2020-08-14 17:02:55 +00:00
Dmitry
e7899625e6
restrict visibility only by crate
2020-08-14 23:22:23 +07:00
Dmitry
c8a6ecc075
Revert "replase sparse-checkout by github api"
...
This reverts commit 034db28c54
.
2020-08-14 23:09:47 +07:00
Dmitry
034db28c54
replase sparse-checkout by github api
2020-08-14 21:58:04 +07:00
Aleksey Kladov
125744c057
Rename hypothetical -> speculative
2020-08-14 15:23:27 +02:00
jDomantas
9f548a0295
fixup whitespace when adding missing impl items
2020-08-14 16:10:52 +03:00
Wilco Kusee
de282ddd86
Only print chalk programs with CHALK_PRINT
2020-08-14 14:52:07 +02:00
David Lattimore
a4a504e132
SSR: Explicitly autoderef and ref placeholders as needed
...
Structured search replace now inserts *, & and &mut in the replacement to match any auto[de]ref in the matched code.
2020-08-14 21:26:25 +10:00
David Lattimore
c84f98385a
Refactor SSR so that placeholders store a Var
...
This allows lookup of placeholder bindings given a placeholder without
needing to create a Var instance.
2020-08-14 20:12:26 +10:00
Wilco Kusee
36052ce1a1
Lookup adt names
2020-08-14 11:43:11 +02:00
Wilco Kusee
10c33275b0
Only use logging db if CHALK_DEBUG is active
2020-08-14 11:43:10 +02:00
Wilco Kusee
58e338a729
Print chalk programs in debug output
2020-08-14 11:43:10 +02:00
Igor Aleksanov
c26c911ec1
Merge branch 'master' into add-disable-diagnostics
2020-08-14 07:34:07 +03:00
Armin Sander
8fc254597f
Sophisticate Windows path encoding
2020-08-14 02:03:54 +02:00
Aleksey Kladov
9664c57e60
Make hygiene private to hir
2020-08-13 23:54:37 +02:00
bors[bot]
9930ef2536
Merge #5753
...
5753: Remove Hygiene from completion
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-13 20:42:36 +00:00
Aleksey Kladov
86f89d9b31
Remove Hygiene from completion
2020-08-13 22:41:55 +02:00
Benjamin Coenen
947a27b797
display correctly 'impl Trait<T> + Trait<T>' #4814
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-08-13 22:13:34 +02:00
Aleksey Kladov
ef462ed6af
Better recovery in use foo::;
2020-08-13 18:50:21 +02:00
Aleksey Kladov
0e1cda3079
Minor
2020-08-13 18:17:53 +02:00
Aleksey Kladov
6bc2633c90
Align parser names with grammar
2020-08-13 17:59:27 +02:00
Aleksey Kladov
1b0c7701cc
Rename ra_ide -> ide
2020-08-13 17:58:27 +02:00
Aleksey Kladov
fc34403018
Rename ra_assists -> assists
2020-08-13 17:33:38 +02:00
Aleksey Kladov
ae3abd6e57
Rename ra_ssr -> ssr
2020-08-13 17:02:44 +02:00
Aleksey Kladov
bb5c189b7d
Rename ra_ide_db -> ide_db
2020-08-13 16:39:16 +02:00
Aleksey Kladov
ae71a631fd
Rename ra_hir -> hir
2020-08-13 16:36:55 +02:00
Aleksey Kladov
6a77ec7bbe
Rename ra_hir_ty -> hir_ty
2020-08-13 16:35:29 +02:00
Aleksey Kladov
b28c54a2c2
Rename ra_hir_def -> hir_def
2020-08-13 16:29:33 +02:00
Aleksey Kladov
b7aa4898e0
Rename ra_hir_expand -> hir_expand
2020-08-13 16:29:33 +02:00
Aleksey Kladov
ed20a857f4
Rename ra_db -> base_db
2020-08-13 16:29:33 +02:00
bors[bot]
902f74c269
Merge #5746
...
5746: Structured search replace now handles UFCS calls to trait methods r=matklad a=davidlattimore
Co-authored-by: David Lattimore <dml@google.com>
2020-08-13 14:21:35 +00:00
Aleksey Kladov
2119dc23e8
Rename ra_proc_macro -> proc_macro_api
2020-08-13 12:39:27 +02:00
David Lattimore
3100de842b
Structured search replace now handles UFCS calls to trait methods
2020-08-13 20:24:55 +10:00
bors[bot]
4abdf323af
Merge #5732
...
5732: Consider only IdentPats for param name hints r=matklad a=SomeoneToIgnore
Closes https://github.com/rust-analyzer/rust-analyzer/issues/4960
Avoid displaying any param name hints like
<img width="590" alt="image" src="https://user-images.githubusercontent.com/2690773/90071461-47a4ad80-dcfe-11ea-9330-fb4f4e2d1b71.png ">
Those hints seem to occupy plenty of space for no apparent benefit, with their destructured content not used in the code with the function hints.
I'm not entirely sure if we should show something else than `IdentPat`s, since I don't understand some of the `Pat` variant meanings:
a1c187eef3/crates/syntax/src/ast/generated/nodes.rs (L1336-L1352)
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-08-13 10:20:59 +00:00
bors[bot]
de1d93455f
Merge #5744
...
5744: Rename ra_project_model -> project_model r=matklad a=pksunkara
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-08-13 10:10:03 +00:00
Pavan Kumar Sunkara
eac24d52e6
Rename ra_project_model -> project_model
2020-08-13 12:05:30 +02:00
Aleksey Kladov
c81f6230da
Remove ra_fmt crate
2020-08-13 11:59:42 +02:00
Aleksey Kladov
479235ff0b
Minor
2020-08-13 11:48:26 +02:00
Aleksey Kladov
80c241b39a
Minor
2020-08-13 11:44:39 +02:00
Aleksey Kladov
f0a9128761
Minor
2020-08-13 11:41:39 +02:00
Aleksey Kladov
b0f03db51d
Remove deprecated function
2020-08-13 11:37:54 +02:00
Aleksey Kladov
26b98b07aa
Cleanup **Move Guard** assist
2020-08-13 10:57:17 +02:00
Aleksey Kladov
7d9480c6eb
fmt
2020-08-13 10:36:04 +02:00
Aleksey Kladov
68c2238725
Rename ra_cfg -> cfg
2020-08-13 10:36:04 +02:00
Aleksey Kladov
5734cc8586
Simplify
2020-08-13 10:36:04 +02:00
Aleksey Kladov
3615758f8e
Minimize deps
2020-08-13 10:36:04 +02:00
Aleksey Kladov
2f45cfc415
Rename ra_mbe -> mbe
2020-08-13 10:36:04 +02:00
Aleksey Kladov
0e6b94de78
Minor
2020-08-13 10:36:04 +02:00
Pavan Kumar Sunkara
349e6c62ad
Rename ra_proc_macro_srv -> proc_macro_srv
2020-08-13 03:18:19 +02:00
Kirill Bulatov
0de795fc4c
Consider only IdentPats for param name hints
2020-08-13 00:44:16 +03:00
Aleksey Kladov
0635458a6b
**Merge Imports** assist handles self
2020-08-12 18:59:13 +02:00
Aleksey Kladov
a1c187eef3
Rename ra_syntax -> syntax
2020-08-12 18:30:53 +02:00
Aleksey Kladov
50a02eb359
Rename ra_parser -> parser
2020-08-12 17:14:23 +02:00
Aleksey Kladov
6dafc13f5f
Rename ra_text_edit -> text_edit
2020-08-12 17:03:06 +02:00
Aleksey Kladov
7510048ec0
Cleanup TextEdit API
2020-08-12 16:58:56 +02:00
Aleksey Kladov
8d34262956
Rename ra_toolchain -> toolchain
2020-08-12 16:52:28 +02:00
Aleksey Kladov
550d7fbe3c
Rename ra_tt -> tt
2020-08-12 16:46:54 +02:00
Aleksey Kladov
208b7bd7ba
Rename ra_prof -> profile
2020-08-12 16:35:29 +02:00
Igor Aleksanov
b50bb800a5
Merge branch 'master' into add-disable-diagnostics
2020-08-12 17:26:43 +03:00
Aleksey Kladov
98baa9b569
Rename ra_arena
2020-08-12 16:22:05 +02:00
bors[bot]
1e8b2c498a
Merge #5637
...
5637: SSR: Matching trait associated constants, types and functions r=matklad a=davidlattimore
This fixes matching of things like `HashMap::default()` by resolving `HashMap` instead of `default` (which resolves to `Default::default`).
Same for associated constants and types that are part of a trait implementation.
However, we still don't support matching calls to trait methods.
Co-authored-by: David Lattimore <dml@google.com>
2020-08-12 13:50:34 +00:00
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
bors[bot]
11de7ac2fb
Merge #4743
...
4743: Add tracking of packed repr, use it to highlight unsafe refs r=matklad a=Nashenas88
Taking a reference to a misaligned field on a packed struct is an
unsafe operation. Highlight that behavior. Currently, the misaligned
part isn't tracked, so this highlight is a bit too aggressive.
Fixes #4600
Co-authored-by: Paul Daniel Faria <Nashenas88@users.noreply.github.com>
Co-authored-by: Paul Daniel Faria <nashenas88@users.noreply.github.com>
Co-authored-by: Paul Daniel Faria <paulf@pop-os.localdomain>
2020-08-12 13:20:18 +00:00
bors[bot]
2d41cc0ea3
Merge #5722
...
5722: Replace SepBy with Itertools
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-12 13:06:38 +00:00
Aleksey Kladov
1c359ab634
Replace SepBy with Itertools
2020-08-12 15:04:06 +02:00
bors[bot]
441fbe3b0a
Merge #5721
...
5721: Cleanup parser modifiers tests
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-12 12:53:11 +00:00
Aleksey Kladov
f8bfd77e84
Cleanup parser modifiers tests
2020-08-12 14:52:37 +02:00
Igor Aleksanov
ae0b2477fe
Update crates/ra_ide/src/diagnostics.rs
...
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-08-12 15:48:56 +03:00
Igor Aleksanov
831e3d58b3
Replace String with &'static str
2020-08-12 15:33:07 +03:00
Aleksey Kladov
f73a6419d4
Allow default everywhere
...
closes #5681
2020-08-12 14:28:32 +02:00
bors[bot]
42a1692629
Merge #5720
...
5720: Fix docs
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-12 11:59:02 +00:00
Aleksey Kladov
c9a42c7c46
Fix docs
2020-08-12 13:56:58 +02:00
bors[bot]
4b3d99f98f
Merge #5699
...
5699: Fix clippy warnings r=matklad a=popzxc
Currently clippy spawns a bunch of warnings on the `rust-analyzer` project. Nothing critical, but easy to fix, so I guess it won't harm.
Co-authored-by: Igor Aleksanov <popzxc@yandex.ru>
2020-08-12 11:51:53 +00:00
Igor Aleksanov
fcd4b0176f
Revert style preference-related fixes
2020-08-12 14:08:55 +03:00
bors[bot]
e471cb2a12
Merge #5718
...
5718: Deny clippy
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-12 10:51:02 +00:00
Aleksey Kladov
49af51129b
Deny clippy
2020-08-12 12:49:48 +02:00
bors[bot]
d0fd8eb7f6
Merge #5717
...
5717: Minor
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-12 10:35:18 +00:00
Jonas Schievink
b27d5233bb
Merge pull request #5716 from jonas-schievink/musl
...
Fix build on musl and test it in CI
2020-08-12 12:31:17 +02:00
Jonas Schievink
67b2b3d0ce
Fix build on musl and test it in CI
2020-08-12 12:23:25 +02:00
Aleksey Kladov
96001921fc
Minor
2020-08-12 12:21:03 +02:00
bors[bot]
87429768bd
Merge #5711
...
5711: Display snippet in the completion label r=matklad a=SomeoneToIgnore
Before, the completion did not show the actual snippet and it was hard to understand what to input to get the right snippet:
<img width="467" alt="image" src="https://user-images.githubusercontent.com/2690773/89941040-21f6a600-dc23-11ea-94b8-61f77f88feaf.png ">
<img width="367" alt="image" src="https://user-images.githubusercontent.com/2690773/89941046-23c06980-dc23-11ea-8034-6c4e14357c94.png ">
Now it's more clear:
<img width="315" alt="image" src="https://user-images.githubusercontent.com/2690773/89941124-42befb80-dc23-11ea-9fcc-5fd49cc92b74.png ">
<img width="210" alt="image" src="https://user-images.githubusercontent.com/2690773/89941132-4488bf00-dc23-11ea-99c2-12ec66e0a044.png ">
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-08-12 10:00:08 +00:00
Aleksey Kladov
8aba6bfef5
Simplify
2020-08-12 10:14:08 +02:00
Kirill Bulatov
7543b06d30
Display snippet in the completion label
2020-08-11 22:33:17 +03:00
Kirill Bulatov
db12ccee96
Better naming and docs
2020-08-11 17:52:05 +03:00
Kirill Bulatov
188ec3459e
Simplify fix structure
2020-08-11 17:13:40 +03:00
Kirill Bulatov
37aa68f050
Add rustdocs
2020-08-11 15:09:08 +03:00
Kirill Bulatov
c8cad76d25
Improve the ide diagnostics trait API
2020-08-11 15:09:08 +03:00
Kirill Bulatov
29fbc8e021
Move the DiagnosticsWithFix trait on the ide level
2020-08-11 15:09:08 +03:00
Kirill Bulatov
9368619939
Make the fix AST source Optional
2020-08-11 15:09:08 +03:00