Chetan Khilosiya
518c9c7548
Revert "8024: Added test case for highlighting trait items."
...
This reverts commit d7dcd41801
.
2021-03-31 01:46:01 +05:30
Chetan Khilosiya
d0fcd5c5e0
8024: Fix for function name change.
2021-03-31 00:47:37 +05:30
Chetan Khilosiya
d7dcd41801
8024: Added test case for highlighting trait items.
2021-03-31 00:31:15 +05:30
Chetan Khilosiya
56f624532a
8024: Updated the implementation for trait modifier.
...
Fixed the test cases.
2021-03-31 00:31:15 +05:30
Chetan Khilosiya
f269fe7156
8024: Added the trait modifier for methods
...
method in impls and method calls will have trait modifier.
2021-03-31 00:31:15 +05:30
Jonas Schievink
9b41effd07
Improve rustc diagnostic mapping
2021-03-30 19:29:26 +02:00
bors[bot]
fd7c454d51
Merge #8186
...
8186: Lower traits to `TraitRef` instead of `TypeRef` r=matklad a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-30 16:45:05 +00:00
bors[bot]
277db63a08
Merge #8261
...
8261: Fix expansion of OR-patterns in match check r=Veykril a=Jesse-Bakker
Fixes #8249
Co-authored-by: Jesse Bakker <github@jessebakker.com>
2021-03-30 16:34:53 +00:00
bors[bot]
ab4fae45ac
Merge #8262
...
8262: internal: revive google_cpu_profile infra r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-03-30 14:32:04 +00:00
Aleksey Kladov
fb00b92dde
internal: revive google_cpu_profile infra
2021-03-30 17:29:43 +03:00
Jesse Bakker
80fe03877d
Fix expansion of OR-patterns in match check
2021-03-30 15:01:47 +02:00
bors[bot]
0b68e03bf5
Merge #8256
...
8256: Item movers improvements r=ivan770 a=ivan770
Closes #8236
Co-authored-by: ivan770 <leshenko.ivan770@gmail.com>
2021-03-30 11:10:20 +00:00
ivan770
4fcba8b1bf
Fix code style
2021-03-30 12:58:41 +02:00
ivan770
6ef6e4dee1
Improved node lookup algorithm, added more movable nodes
2021-03-30 12:44:09 +02:00
Aleksey Kladov
797185e1b6
internal: switch from CLI to internal benchmarking
...
We have a CLI for benchmarking, but no one actually uses it it seems.
Let's try switching to "internal" benchmarks, implemented as rust tests.
They should be easier to "script" to automate tracking of perf
regressions.
2021-03-30 12:47:23 +03:00
Jonas Schievink
41c7448e12
Accurately classify assoc. types in paths
2021-03-30 02:09:17 +02:00
bors[bot]
b3ca06e4fd
Merge #8247
...
8247: internal: ensure that runaway type-inference doesn't block the main loop r=flodiebold a=matklad
We have a bug where type-checking `per_query_memory_usage` takes a
couple of seconds. It also reveals another bug: our type inference is
not cancellable.
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-03-29 20:39:36 +00:00
Aleksey Kladov
b35312d4af
internal: ensure that runaway type-inference doesn't block the main loop
...
We have a bug where type-checking `per_query_memory_usage` takes a
couple of seconds. It also reveals another bug: our type inference is
not cancellable.
2021-03-29 23:15:12 +03:00
bors[bot]
35efbf5661
Merge #8244
...
8244: internal: track missing `.check_cancelled` r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-03-29 19:22:11 +00:00
Aleksey Kladov
483a5bc9c8
internal: track missing .check_cancelled
2021-03-29 21:38:23 +03:00
bors[bot]
7b9e2a2641
Merge #8243
...
8243: Remove code duplication in highlight injection r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-29 18:18:40 +00:00
Lukas Wirth
6b8358d4d9
Remove code duplication in highlight injection
2021-03-29 20:11:28 +02:00
Aleksey Kladov
2381a54c2f
internal: cleanup hprof
2021-03-29 20:54:15 +03:00
Lukas Wirth
b4bb774381
Remove TraitRef::Error
2021-03-29 18:41:21 +02:00
Lukas Wirth
c2a63b97a8
Rename target_ty to self_ty
2021-03-29 17:47:47 +02:00
Lukas Wirth
bb6e1bf811
Lower traits to TraitRef instead of TypeRef
2021-03-29 17:11:28 +02:00
Ayomide Bamidele
8e11796dc5
formatting fix
2021-03-29 12:56:02 +01:00
Jonas Schievink
3c6c1c99b4
Don't use snippets
2021-03-29 13:23:07 +02:00
Ayomide Bamidele
a813062ed2
Folding range for statics
2021-03-29 12:20:26 +01:00
Jonas Schievink
8c1092455e
Use find_node_at_range
2021-03-29 13:17:49 +02:00
Ayomide Bamidele
391be07298
Folding range for consts
2021-03-29 12:17:19 +01:00
Ayomide Bamidele
23601454fe
New FoldKinds - Consts, Statics
2021-03-29 11:49:14 +01:00
Ayomide Bamidele
f6702dda9a
Test cases for folding consts and statics
2021-03-29 11:43:03 +01:00
bors[bot]
ae7de296ae
Merge #8222
...
8222: Don't mark unlinked file diagnostic as unused r=lnicola a=jonas-schievink
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8215 , at least on VS Code
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-03-29 07:30:28 +00:00
bors[bot]
bb1d925dab
Merge #8212
...
8212: Basic support macro 2.0 r=jonas-schievink a=edwin0cheng
Turn out it is quite straight forward :)
r @jonas-schievink
![m2](https://user-images.githubusercontent.com/11014119/112712565-6eb99380-8f0b-11eb-88de-5d7f974dfe6d.png )
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2021-03-28 15:43:11 +00:00
Edwin Cheng
7729879118
Remove unused test fixtures
2021-03-28 10:41:18 +08:00
Jonas Schievink
bd18e5fa87
Don't mark unlinked file diagnostic as unused
2021-03-28 03:56:03 +02:00
bors[bot]
ce6bb5ccca
Merge #8221
...
8221: Prefer adding `mod` declaration to lib.rs over file.rs in UnlinkedFile fix r=Veykril a=Veykril
When there is a `lib.rs` and `main.rs` in one crate, one usually wants the `lib.rs` file to declare the modules.
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-27 22:43:34 +00:00
Lukas Wirth
c9e479870b
Prefer add mod
declaration to lib.rs over file.rs in UnlinkedFile fix
2021-03-27 23:43:07 +01:00
bors[bot]
84f1660a37
Merge #8220
...
8220: Reorder some ide_db imports r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-27 21:13:08 +00:00
Lukas Wirth
1ef55002c2
Cleanup ide_db imports
2021-03-27 21:51:00 +01:00
Jonas Schievink
b494e47920
Snippet support in extract_type_alias
2021-03-27 18:53:13 +01:00
bors[bot]
ae92014319
Merge #8213
...
8213: Added support for const generics in impl generation r=Veykril a=ivan770
Closes #8211
Co-authored-by: ivan770 <leshenko.ivan770@gmail.com>
2021-03-27 10:00:37 +00:00
ivan770
5a2ef8d0ca
Added support for const generics in impl generation
2021-03-27 11:37:39 +02:00
Edwin Cheng
eedadd7024
Add support for doc on hover for macro 2.0
2021-03-27 14:57:11 +08:00
Edwin Cheng
4520002b63
Unleash macro 2.0 in hightlight and more
2021-03-27 14:42:49 +08:00
Edwin Cheng
a193666361
Basic Support Macro 2.0
2021-03-27 13:44:54 +08:00
bors[bot]
c8066ebd17
Merge #8201
...
8201: Fix recursive macro statements expansion r=edwin0cheng a=edwin0cheng
This PR attempts to properly handle macro statement expansion by implementing the following:
1. Merge macro expanded statements to parent scope statements.
2. Add a new hir `Expr::MacroStmts` for handle tail expression infer.
PS : The scope of macro expanded statements are so strange that it took more time than I thought to understand and implement it :(
Fixes #8171
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2021-03-27 02:57:02 +00:00
Jonas Schievink
e39979aa91
Implement "Extract type alias" assist
2021-03-26 19:39:20 +01:00
Aleksey Kladov
1bbac9053d
Add TokenText
2021-03-26 21:33:45 +03:00
cynecx
5ff3299dd6
syntax: return owned string instead of leaking string
2021-03-26 18:30:59 +01:00
Josh Mcguigan
0e31ae2cef
completion relevance distinguish between exact type match and could unify
2021-03-26 09:18:18 -07:00
Josh Mcguigan
957939292e
completion relevance consider if types can be unified
2021-03-26 09:11:50 -07:00
ivan770
50e28aec25
Ignore main functions not in root module
2021-03-26 16:04:53 +02:00
Edwin Cheng
8ce15b02de
Fix recursive macro statement expansion
2021-03-26 04:21:15 +08:00
Laurențiu Nicola
bc5c86543b
Use more std::array::IntoIter
2021-03-25 21:06:48 +02:00
Laurențiu Nicola
9787bddac5
Use arrayvec 0.6
2021-03-25 21:03:20 +02:00
bors[bot]
d7db38fff9
Merge #7907
...
7907: Autoderef with visibility r=cynecx a=cynecx
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7841 .
I am not sure about the general approach here. Right now this simply tries to check whether the autoderef candidate is reachable from the current module. ~~However this doesn't exactly work with traits (see the `tests::macros::infer_derive_clone_in_core` test, which fails right now).~~ see comment below
Refs:
- `rustc_typeck` checking fields: 66ec64ccf3/compiler/rustc_typeck/src/check/expr.rs (L1610)
r? @flodiebold
Co-authored-by: cynecx <me@cynecx.net>
2021-03-24 22:37:48 +00:00
bors[bot]
9d81618f11
Merge #8190
...
8190: Fix chalk_ir assertion r=flodiebold a=flodiebold
Fixes #8150 .
I implemented a validator that catches this in the tests, but it'd need to get merged in Chalk first.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2021-03-24 22:13:56 +00:00
Florian Diebold
b4c20e3589
Fix chalk_ir assertion
...
Fixes #8150 .
2021-03-24 23:10:13 +01:00
cynecx
d1156bb52e
hir: don't use the self module as visible_from in iterate_method_candidates
2021-03-24 23:09:22 +01:00
cynecx
7155f815b9
hir_ty: don't call write_field_resolution when field candidate isn't visible
2021-03-24 23:03:38 +01:00
cynecx
96c88680b2
hir_def: move visibility queries from hir_ty to hir_def
2021-03-24 23:00:03 +01:00
Jonas Schievink
37c6ce34a9
Document unlinked-file diagnostic
2021-03-24 22:18:17 +01:00
Jonas Schievink
4781479ab2
Sweep the new TraitEnvironmentQuery
2021-03-24 18:59:35 +01:00
hi-rustin
eef9bdb441
refine comment style of tests
2021-03-24 19:28:50 +08:00
bors[bot]
776b1ebcb4
Merge #8168
...
8168: correct `convert to guard return` let_stmt r=Veykril a=hi-rustin
close https://github.com/rust-analyzer/rust-analyzer/issues/8074
Co-authored-by: hi-rustin <rustin.liu@gmail.com>
2021-03-24 10:55:25 +00:00
bors[bot]
2aa64831e5
Merge #8183
...
8183: Fix missing command error with macros r=Veykril a=brandondong
**Reproduction:**
1. Define a struct through a macro (can be via `macro_rules`, proc macro, or `include!()`).
2. !!MISSING: command!! annotation appears. Clicking on it results in an error message. No matter where the macro is called/defined, the annotation is always at the start of the file.
![image](https://user-images.githubusercontent.com/13722457/112268785-bce14500-8c34-11eb-9a23-bafd63ffd6ef.png )
**Cause:**
- For struct `A`, a `HasImpls` annotation is added just like for struct `B`. Unlike `B`, the file id for `A` is not the file we are adding annotations to but a macro file.
- The resolving step of the code lens does not succeed.
**Fix:**
- Check that the files match before computing offsets and adding `HasImpls`/`HasReferences` annotations.
Co-authored-by: Brandon <brandondong604@hotmail.com>
2021-03-24 10:17:12 +00:00
bors[bot]
5f9ba2d589
Merge #8177
...
8177: Limit the hints size by default r=Veykril a=SomeoneToIgnore
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8175
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/3138
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2021-03-24 08:53:48 +00:00
Brandon
903a2e98f9
Clean up implementation
2021-03-24 00:47:55 -07:00
Edwin Cheng
a2950fcb05
Trim down IPC json size
2021-03-24 15:01:37 +08:00
Brandon
0d063b8d21
Fix MISSING: command error with macros
2021-03-24 00:00:38 -07:00
hi-rustin
e992acf078
correct convert to guard return
let_stmt
...
fix
fix
add check
2021-03-24 11:52:44 +08:00
bors[bot]
d702f10fb3
Merge #8159
...
8159: Ignore proc-macro stdout to prevent IPC crash r=edwin0cheng a=edwin0cheng
fixes #7954
r? @flodiebold
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2021-03-23 20:06:44 +00:00
bors[bot]
c6d6a7d412
Merge #8178
...
8178: Show item info when hovering intra doc links r=Veykril a=Veykril
![r4uIITP0IZ](https://user-images.githubusercontent.com/3757771/112197618-91e2fb00-8c0c-11eb-9edc-a7923214d2b6.gif )
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-23 19:58:03 +00:00
Lukas Wirth
caaeb92882
Cleanup intra_doc_link parsing
2021-03-23 20:56:38 +01:00
Edwin Cheng
79f583ed66
Improve message usage in proc-macro
...
Reuse storage for the buffer send to child process of proc-macro.
2021-03-24 03:51:06 +08:00
Edwin Cheng
f41ae64722
Ignore proc-macro stdout to prevent IPC crash
2021-03-24 03:44:28 +08:00
Lukas Wirth
8b0d0bd9c7
Show item info when hovering intra doc links
2021-03-23 19:57:04 +01:00
Kirill Bulatov
5e83a56dfb
Bump the default hint length
2021-03-23 19:43:55 +02:00
bors[bot]
5f13319892
Merge #8176
...
8176: Cleanup r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-03-23 17:05:14 +00:00
Kirill Bulatov
f1e1a2c0a7
Limit the hints size by default
2021-03-23 19:04:48 +02:00
Aleksey Kladov
8b4240e026
Cleanup
2021-03-23 19:59:33 +03:00
bors[bot]
789f7aca2e
Merge #8173
...
8173: simplify r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-23 16:54:35 +00:00
Lukas Wirth
6bdf505d7c
simplify
2021-03-23 17:49:06 +01:00
bors[bot]
c220b34095
Merge #8174
...
8174: Simplify code r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-03-23 16:44:28 +00:00
Aleksey Kladov
e33959a888
Simplify code
...
changelog: skip
2021-03-23 19:41:15 +03:00
Jonas Schievink
1d5d44f7f7
Merge bang-macros and derives in name resolution
2021-03-23 17:23:10 +01:00
bors[bot]
065a8e87cd
Merge #8169
...
8169: Make more use of the HIR in rename::rename_to_self r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-23 15:55:04 +00:00
Lukas Wirth
638dcac092
Make more use of the HIR in rename::rename_to_self
2021-03-23 16:54:21 +01:00
Aleksey Kladov
860e069d4d
Use styleguide conforming import for ast nodes
2021-03-23 17:44:17 +03:00
Aleksey Kladov
7352f50ec2
Unify test style
...
changelog skip
2021-03-23 17:38:51 +03:00
Aleksey Kladov
b83c7eedcc
Tweak assits API to fit mutable syntax trees
...
changelog: skip
2021-03-23 17:31:19 +03:00
Lukas Wirth
395183e0b7
Cleanup Definition::search_scope
2021-03-23 13:03:55 +01:00
Lukas Wirth
7c4eb66c1a
Merge hir::MacroDef::is_* into hir::MacroDef::kind
2021-03-23 11:32:14 +01:00
Lukas Wirth
bad4e48672
Set up a search scope when searching for mbe macro references
2021-03-23 11:32:10 +01:00
bors[bot]
1efd220f2f
Merge #8162
...
8162: Compute more mathematically well-rounded notion of transitive deps r=Veykril a=matklad
By including the crate itself, we make the resulting set closed with
respect to `transitve_reveres_dependencies` operation, as it becomes a
proper transitive closure. This just feels more proper and mathy.
And, indeed, this actually allows us to simplify call sites somewhat.
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-03-23 10:20:47 +00:00
Aleksey Kladov
fa9c6eb456
Improve readability
2021-03-23 13:04:43 +03:00
Aleksey Kladov
ba48c0d8bd
Align naming of deps and revdeps
2021-03-23 13:04:43 +03:00
Aleksey Kladov
521a26b0d2
Align semantics of deps and rev deps
2021-03-23 12:58:48 +03:00