Dawer
7d675eda80
Don't panic on a pattern of unresolved ADT variant.
2021-06-01 00:08:43 +05:00
Dawer
466345ca81
Clean up, more docs.
2021-06-01 00:08:27 +05:00
Dawer
49e016169f
Check pattern types.
2021-06-01 00:03:47 +05:00
Dawer
9b841a9a04
Expand binding patterns.
2021-06-01 00:03:47 +05:00
Dawer
d7239e5ab4
Fix visibility warnings
2021-06-01 00:03:47 +05:00
Dawer
a236bfa57a
Lower binding pattern
2021-06-01 00:03:47 +05:00
Dawer
cf6f989a8d
Lower bool literals
2021-06-01 00:03:47 +05:00
Dawer
d6d77e8a35
Treat ctor of unhandled type as non-exhaustive.
2021-06-01 00:03:47 +05:00
Dawer
e711abc290
Lower Pat::Path
2021-06-01 00:03:47 +05:00
Dawer
e50ce67631
Do not do match check if lowering failed.
2021-06-01 00:03:47 +05:00
Dawer
de6f430140
Fix panics on pattern_arena.borrow with ugly cloning
2021-06-01 00:03:46 +05:00
Dawer
975109051c
Basic lowering hir_def::exrp::Pat -> typed HIR.
...
Pattern arena is broken
2021-06-01 00:03:46 +05:00
Dawer
2431ff5987
Handle unordered fields in struct patterns
2021-06-01 00:03:46 +05:00
Dawer
3ffcb2658c
Complete field replacing
2021-06-01 00:03:46 +05:00
Dawer
3a85e47f6a
Support bool literal patterns
2021-06-01 00:03:46 +05:00
Dawer
5a8a0b6269
Check enum patterns
2021-06-01 00:03:46 +05:00
Dawer
b4f4197332
Build wildcard witnesses instead of panicking
2021-06-01 00:03:46 +05:00
Dawer
678d85ca7e
Implement struct ctor application
2021-06-01 00:03:46 +05:00
Dawer
062c7953a1
Add remaining Constructor variants
2021-06-01 00:03:46 +05:00
Dawer
2880fd2320
Complete usefulness::SubPatSet impl
2021-06-01 00:03:46 +05:00
Dawer
f4c3960364
List useless patterns in a useful match arm
2021-06-01 00:03:45 +05:00
Dawer
f4a95c93fe
Remove unneeded indirection on PatCtxt
2021-06-01 00:03:45 +05:00
Dawer
26baab5d28
Enable generation of non-exhaustiveness witnesses
2021-06-01 00:03:45 +05:00
Dawer
c3c2893f30
Update match checking.
...
fn is_useful , more skeletons
Specify a lifetime on pattern references
impl PatStack
fill impl Matrix
PatStack::pop_head_constructor
Index-based approach
struct PatCtxt
fields construction fn Fields::wildcards
split wildcard
fn Constructor::is_covered_by_any(..)
fn Matrix::specialize_constructor(..)
impl Usefulness
Initial work on witness construction
Reorganize files
Replace match checking diagnostic
Handle types of expanded patterns
unit match checking go brrr
2021-06-01 00:03:45 +05:00
cynecx
759cb07891
hir_ty: use correct receiver_ty in method resolution
2021-05-31 20:26:38 +02:00
bors[bot]
7c1d8ca635
Merge #9088
...
9088: minor: remove debug print r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-05-31 17:22:09 +00:00
Aleksey Kladov
ee51bf04be
minor: remove debug print
2021-05-31 20:20:30 +03:00
bors[bot]
4cb4b23dc6
Merge #9084 #9087
...
9084: fix: avoid panics in match case diagnostic r=matklad a=matklad
bors r+
🤖
closes #8809
9087: fix: fix shell injection in task spawning r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-05-31 17:12:01 +00:00
Jonas Schievink
b5fe4c6ef0
Use cargo check
again
2021-05-31 18:58:36 +02:00
Aleksey Kladov
159922de93
minor: it's Parameter, not Argument
2021-05-31 19:45:50 +03:00
Aleksey Kladov
341f8bb200
fix: avoid panics in match case diagnostic
2021-05-31 19:45:50 +03:00
bors[bot]
10b15b27f2
Merge #8952
...
8952: add support of impl block for doctest into runnables r=matklad a=bnjjj
close #6356
Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2021-05-31 15:48:41 +00:00
Jonas Schievink
cfcadcb295
Simplify proc_macro_srv tests
2021-05-31 17:32:56 +02:00
bors[bot]
c460baeaf3
Merge #9079
...
9079: Don't take the parent kind of trailing attributes in attr completion r=Veykril a=Veykril
bors r+
fixes https://github.com/rust-analyzer/rust-analyzer/issues/9076
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-05-31 13:38:32 +00:00
Lukas Wirth
741b2f531f
Don't take the parent kind of trailing attributes in attr completion
2021-05-31 15:35:22 +02:00
bors[bot]
e6ec860363
Merge #9039
...
9039: feat: Complete fields and methods with `self.` prefixed when inside methods r=matklad a=Veykril
![w65NbjkZiG](https://user-images.githubusercontent.com/3757771/119984385-a0111700-bfc1-11eb-9dbf-52fdaa4d72b5.gif )
Closes #7173
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-05-31 13:21:31 +00:00
Lukas Wirth
fb7105a580
Add config setting for self-on-the-fly
2021-05-31 15:14:56 +02:00
Lukas Wirth
4507382f2e
Move unprefixed field/method completion to dot
2021-05-31 15:10:20 +02:00
Lukas Wirth
d346f5bf75
Less strings, more hir::Names
2021-05-31 14:55:16 +02:00
Lukas Wirth
ca49fbe0a1
Complete self.
prefixed fields and methods inside methods
2021-05-31 14:52:55 +02:00
bors[bot]
e9a797748d
Merge #8866
...
8866: Update salsa r=matklad a=jonas-schievink
This updates salsa to include https://github.com/salsa-rs/salsa/pull/265 , and removes all cancellation-related code from rust-analyzer
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-05-31 12:42:32 +00:00
bors[bot]
b8d269990c
Merge #9060
...
9060: feat: Diagnose unimplemented built-in macros r=matklad a=jonas-schievink
A number of built-in attribute macros are unsupported, I thought it might be useful to put a diagnostic on their definition in libcore. Not sure.
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-05-31 12:34:01 +00:00
Lukas Wirth
971b0836ef
Use Name
s instead of Strings in the completion rendering api
2021-05-31 14:15:15 +02:00
bors[bot]
3cb3f1d17b
Merge #9025
...
9025: internal: Display unknown types in `analysis-stats` r=flodiebold a=lnicola
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-05-31 08:20:28 +00:00
bors[bot]
92b9e5ef3c
Merge #9068
...
9068: Move more `CompletinoContext` fields to `ImmediateLocation` r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-05-30 19:37:29 +00:00
Lukas Wirth
5660408f0a
Move more fields to ImmediateLocation
2021-05-30 21:35:01 +02:00
cynecx
51cbcc5346
hir_ty: don't pass where clauses of associated types down to chalk (temp. fix #9052 )
2021-05-30 19:21:08 +02:00
Lukas Wirth
c5cd25d755
Fix incorrect prefer_inner calls on some attribute completions
2021-05-30 17:13:00 +02:00
bors[bot]
f41b68637a
Merge #9062
...
9062: internal: Bump deps r=lnicola a=lnicola
Fixes #9061
bors r+
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-05-30 11:48:59 +00:00
Laurențiu Nicola
36567eb9be
Bump deps
2021-05-30 14:48:10 +03:00
Jonas Schievink
cb5454db86
Diagnose unimplemented built-in macros
2021-05-30 04:19:47 +02:00
Jonas Schievink
39533ad7dd
Only complete derive proc macros in #[derive]
2021-05-29 21:18:14 +02:00
Jonas Schievink
acb5c227ed
Update to prerelease
2021-05-29 21:10:00 +02:00
Jonas Schievink
8c639a87bd
Thread proc-macro types through the HIR
2021-05-29 20:32:57 +02:00
bors[bot]
f6da603c7f
Merge #9050
...
9050: hir_ty: use async ret type for inference inside async bodies r=flodiebold a=cynecx
Fixes #9004 .
Co-authored-by: cynecx <me@cynecx.net>
2021-05-29 17:39:15 +00:00
bors[bot]
0438e2ceaa
Merge #9054
...
9054: fix: fix `matches!` macro on nightly toolchains r=jonas-schievink a=jonas-schievink
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/9043
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-05-29 16:33:20 +00:00
Jonas Schievink
4c4bcaebbe
Treat pat_param
like pat
fragments
2021-05-29 18:32:32 +02:00
bors[bot]
11a1bd3259
Merge #9051
...
9051: Fix incorrect setting descriptions r=lnicola a=sclu1034
Descriptions for diagnostic warning hint and info display were swapped.
Fixes #8485 .
Co-authored-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-05-29 16:23:59 +00:00
cynecx
54d60fdee9
hir_ty: use async ret type for inference inside async bodies
2021-05-29 18:17:45 +02:00
Lucas Schwiderski
9a057c0ff4
Fix incorrect setting descriptions
...
Descriptions for diagnostic warning hint and info display were swapped.
Fixes #8485 .
Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-05-29 18:08:14 +02:00
bors[bot]
3fa3343e47
Merge #9048
...
9048: Add some lint completion tests r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-05-29 15:33:57 +00:00
Lukas Wirth
c9598a4cbf
Add some lint completion tests
2021-05-29 17:19:49 +02:00
Jonas Schievink
31588aea04
Remove fragment kind knowledge from builtin macros
2021-05-29 17:17:08 +02:00
bors[bot]
247faf271b
Merge #9027
...
9027: feat: Attribute completion is context aware r=Veykril a=Veykril
This splits off the `lint` and `derive` completions into their own submodules of `attribute`.
The idea is to create a lazy global hashmap that maps `SyntaxKind` to attribute names(`&[&str]`) in which we index with the syntax kind of the "thing" we are attributing giving us the attributes back that are valid for this kind. Then we use this name to do a binary search on the attribute list to fetch and build the corresponding completion item.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-05-29 12:14:16 +00:00
Lukas Wirth
c9f0f47bbb
simplify
2021-05-29 14:02:06 +02:00
Lukas Wirth
e42c448077
More completion pattern tests
2021-05-28 22:19:52 +02:00
Lukas Wirth
47ad752e6c
Implement prev sibling determination for CompletionContext
2021-05-28 22:03:31 +02:00
Lukas Wirth
a6b92a8cc0
simplify
2021-05-28 20:46:09 +02:00
bors[bot]
d5f7b2e52a
Merge #9028
...
9028: only advertise range formatting support if enabled r=Veykril a=euclio
Fixes #9009 .
Co-authored-by: Andy Russell <arussell123@gmail.com>
2021-05-28 15:26:20 +00:00
bors[bot]
2968731fd5
Merge #9040
...
9040: Don't label derive macros with their banged_name r=Veykril a=Veykril
cc https://github.com/rust-analyzer/rust-analyzer/issues/7072#issuecomment-850396203
This doesn't fix it non builtin derives yet I think cause of a FIXME somewhere that doesn't categorize proc-macro derives as derives yet
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-05-28 12:59:54 +00:00
Lukas Wirth
439ae17e1b
Don't label derive macros with their banged_name
2021-05-28 14:59:24 +02:00
bors[bot]
b5d41ba0e2
Merge #9038
...
9038: Folding range for return types r=Veykril a=MozarellaMan
For issue #8957
![return type fold](https://user-images.githubusercontent.com/48062697/119979082-5c62e100-bfb2-11eb-9729-1dea1ce74de1.gif )
Co-authored-by: Ayomide Bamidele <48062697+MozarellaMan@users.noreply.github.com>
2021-05-28 12:16:18 +00:00
Ayomide Bamidele
b4e936f8f0
Test for correct amount of emitted folds
2021-05-28 13:10:41 +01:00
Ayomide Bamidele
156d995423
Folding range for return types
2021-05-28 12:39:02 +01:00
Lukas Wirth
61b4456752
Move runnable lenses below attributes
2021-05-28 13:02:42 +02:00
Laurențiu Nicola
2dee5930e0
Remove undocumented TextDocumentSyncKind::Full
support
2021-05-28 13:01:04 +03:00
bors[bot]
bca00ac340
Merge #9033
...
9033: Complete keywords in (Assoc)ItemList with leading attribute r=Veykril a=Veykril
Fixes #7673
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-05-28 01:21:45 +00:00
Lukas Wirth
1894db49b1
Complete keywords in (Assoc)ItemList with leading attribute
2021-05-28 03:20:55 +02:00
bors[bot]
3a1598c3bc
Merge #9032
...
9032: Only complete modules in empty use-statements r=Veykril a=Veykril
bors r+
Part of #8518
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-05-28 00:43:16 +00:00
Lukas Wirth
9e71dd9799
Only complete modules in empty use-statements
2021-05-28 02:42:47 +02:00
Lukas Wirth
411eee7614
Add another attribute completion test
2021-05-28 01:09:22 +02:00
Lukas Wirth
0724bd0f21
Add attribute completion tests
2021-05-28 01:02:41 +02:00
bors[bot]
5b4589f474
Merge #9029
...
9029: minor: test that `ItemTree` makes `hir_def` queries syntax-independent r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-05-27 22:47:04 +00:00
Jonas Schievink
55f3ca2b74
Test that ItemTree
works as intended
2021-05-28 00:46:05 +02:00
Lukas Wirth
594270be49
tt muncher time
2021-05-28 00:35:21 +02:00
Lukas Wirth
ab9c6ea4dd
Split attribute completion module into attribute, derive and lint modules
2021-05-27 23:40:33 +02:00
Andy Russell
a0cd7fe242
only advertise range formatting support if enabled
2021-05-27 17:36:13 -04:00
Lukas Wirth
fc37e2f953
Attribute completion is context aware
2021-05-27 23:28:14 +02:00
bors[bot]
01bfc5f5c0
Merge #9026
...
9026: Complete modules in assoc item lists r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-05-27 19:13:34 +00:00
Lukas Wirth
ea251cbd4a
Complete modules in item lists
2021-05-27 21:12:50 +02:00
Lukas Wirth
7ad378fec0
Complete modules in assoc item lists
2021-05-27 20:53:38 +02:00
Jonas Schievink
26b4777e1f
Move hir_ty incremental test to its own file
2021-05-27 20:21:52 +02:00
bors[bot]
a2940c42c0
Merge #9020
...
9020: fix: Don't complete non-macro item paths in impls and modules r=Veykril a=Veykril
Part of #8518
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-05-27 16:34:46 +00:00
Laurențiu Nicola
aabbc84957
Display unknown types in analysis-stats
2021-05-27 19:30:28 +03:00
Lukas Wirth
3a16950fd9
Cleanup ImmediateLocation
determination
2021-05-27 18:16:39 +02:00
Laurențiu Nicola
2268a220e4
Don't store supertraits in ItemTree
2021-05-27 16:52:30 +03:00
Jonas Schievink
33debc4065
Update salsa
2021-05-27 15:05:41 +02:00
bors[bot]
d0a4ba294c
Merge #8997
...
8997: internal: stop expanding UseTrees during ItemTree lowering r=jonas-schievink a=jonas-schievink
Closes https://github.com/rust-analyzer/rust-analyzer/issues/8908
Messy diff, but `ItemTree` lowering got simpler, since we now have a strict 1-to-1 mapping between `ast::Item` and `ModItem`.
The most messy part is mapping a single `UseTree` back to its `ast::UseTree` counterpart for diagnostics, but I think the ad-hoc source map built during lowering does the job.
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-05-27 11:56:26 +00:00
Jonas Schievink
196cb65ead
Drop ignore
from doctests
2021-05-27 13:55:31 +02:00
Lukas Wirth
f41c983424
Don't complete non-macro item paths in impls and modules
2021-05-27 12:23:36 +02:00