Commit graph

1118 commits

Author SHA1 Message Date
Florian Diebold
d4db61b9a1 Resolve the self parameter during type inference 2019-01-04 19:12:29 +01:00
Florian Diebold
111126ed3c Type the self parameter 2019-01-04 19:10:50 +01:00
Florian Diebold
ae9530addc Add HIR for impl blocks
Since we need to be able to go from def to containing impl block, as well as the
other direction, and to find all impls for a certain type, a design similar to
the one for modules, where we collect all impls for the whole crate and keep
them in an arena, seemed fitting. The ImplBlock type, which provides the public
interface, then consists only of an Arc to the arena containing all impls, and
the index into it.
2019-01-04 19:10:47 +01:00
Florian Diebold
226e31dae9 Add test for self type inference 2019-01-04 18:28:43 +01:00
Florian Diebold
fe6c4115f6 Rename ImplItem to ImplBlock
rustc uses the name ImplItem for items in impls, not the impl {} block itself,
which could lead to confusion.
2019-01-04 18:28:36 +01:00
Aleksey Kladov
3fe6f422f9 remove id arena 2019-01-04 16:58:10 +03:00
Aleksey Kladov
291d578938 extract area to a crate 2019-01-04 16:58:10 +03:00
csmoe
a0ef196d04 add mod doc comments test in ast 2019-01-04 21:51:45 +08:00
csmoe
f604ff5b2f parse doc comment for items 2019-01-04 21:29:00 +08:00
csmoe
8a6d6ac132 add mod doc comment test 2019-01-04 21:28:09 +08:00
bors[bot]
6295bbe6ec Merge #391
391: docing parser methods r=csmoe a=csmoe



Co-authored-by: csmoe <csmoe@msn.com>
2019-01-04 04:36:40 +00:00
csmoe
58139c558a consume trivias for type/const def 2019-01-04 12:22:57 +08:00
csmoe
df591a1e48 doc parsing events 2019-01-04 12:21:47 +08:00
Aleksey Kladov
d61707b4e1 index stuff produced by macros 2019-01-03 21:29:17 +03:00
Aleksey Kladov
ebd7c04faa construct index from symbols directly 2019-01-03 21:29:05 +03:00
Aleksey Kladov
cd32177a25 don't create many compilation units for tests 2019-01-03 20:15:12 +03:00
bors[bot]
8a24f25482 Merge #419
419: file-id-to-symbol r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-03 16:56:08 +00:00
Aleksey Kladov
9bb2a74256 embed file_id into FileSymbol 2019-01-03 19:55:34 +03:00
Aleksey Kladov
233b170e83 add pub(crate) works for named fields 2019-01-03 19:37:41 +03:00
bors[bot]
33924c0939 Merge #416
416: assist-builder r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-03 16:08:52 +00:00
Aleksey Kladov
6be39ba758 fix the test 2019-01-03 19:08:24 +03:00
Aleksey Kladov
a4635a199b more enterprisey assists API 2019-01-03 18:59:17 +03:00
Bernardo
7d9e02e5a2 fix tests 2019-01-03 14:43:47 +01:00
Bernardo
3ab328b49a use lsp WorkspaceEdit instead of custom source_file_edits and file_system_edits 2019-01-03 14:20:15 +01:00
Aleksey Kladov
a5935687cb split assists over several files 2019-01-03 15:21:49 +03:00
Aleksey Kladov
5323e59996 rename code-actions -> assists 2019-01-03 15:21:31 +03:00
Aleksey Kladov
0a80d9685a visibility owner 2019-01-03 15:21:31 +03:00
Hirokazu Hata
6ee7788513 Return type name when doc_text_for returns nothing 2019-01-03 21:15:23 +09:00
Aleksey Kladov
3e764f97eb hardcode vec macro 2019-01-03 14:48:23 +03:00
bors[bot]
d29e98dd97 Merge #409
409: Add Analysis#teype_of test r=matklad a=h-michael



Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
2019-01-03 10:06:32 +00:00
Hirokazu Hata
4363e7b9b2 Deive type_of test from tests 2019-01-03 19:04:42 +09:00
Aleksey Kladov
8d61853509 docs 2019-01-03 12:57:30 +03:00
Hirokazu Hata
f99e96698c Remove unnecessary mock functions 2019-01-03 18:27:02 +09:00
Aleksey Kladov
03ea6bcbff use LocalPtr in navigation target 2019-01-03 12:26:40 +03:00
Aleksey Kladov
267a89bca2 use LocalSyntaxPtr for file symbol 2019-01-03 12:26:40 +03:00
Aleksey Kladov
f534d2132b move some logic to navigation target 2019-01-03 12:26:40 +03:00
Aleksey Kladov
80a91e6735 add kind to LocalSyntaxPtr 2019-01-03 12:26:40 +03:00
Aleksey Kladov
f673529a33 explain that completion shouldn't do filtering 2019-01-03 12:23:15 +03:00
Hirokazu Hata
f5992964ed Add Analysis#teype_of test 2019-01-03 12:07:20 +09:00
bors[bot]
54efd8204e Merge #407
407: run r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-02 17:13:06 +00:00
Aleksey Kladov
28f6eedba5 simplify runnables 2019-01-02 20:12:38 +03:00
bors[bot]
4f30c45933 Merge #406
406: Simplify r=matklad a=matklad

Get rid of `AnalysisImpl` wrapper around salsa database. It was useful before we migrated by salsa, but it's long have been just a useless boilerplate. 

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-02 16:42:29 +00:00
Aleksey Kladov
ef08b6c084 fix compilation 2019-01-02 19:41:57 +03:00
Aleksey Kladov
5d483cb998 doctrings 2019-01-02 19:40:41 +03:00
Aleksey Kladov
08d1537468 get rid of AnalysisImpl 2019-01-02 19:20:56 +03:00
gfreezy
9672ae001e extend selection inside a string literal should select a word first 2019-01-02 23:42:38 +08:00
Aleksey Kladov
e9b47dbb36 remove AnalysisHostImpl 2019-01-02 18:41:41 +03:00
Aleksey Kladov
2f22c861a9 remove some methods from analysis impl 2019-01-02 18:11:49 +03:00
Aleksey Kladov
a94530afb3 move world-symbols to file_symbols 2019-01-02 18:08:14 +03:00
bors[bot]
29d8bfb9c9 Merge #404
404: Move FileSymbol to ra_analysis r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-02 14:26:06 +00:00
Aleksey Kladov
76910639e6 fix tests 2019-01-02 17:25:28 +03:00
Aleksey Kladov
fb775a293d make FileSymbol private 2019-01-02 17:11:04 +03:00
Aleksey Kladov
830abe0c1b use navigation target in API 2019-01-02 17:09:39 +03:00
Aleksey Kladov
d25c89f760 introduce navigation target 2019-01-02 16:53:40 +03:00
Aleksey Kladov
a4b4fd7dc5 move symbols to ra_analysis 2019-01-02 16:29:08 +03:00
Aleksey Kladov
1076e82856 small rename 2019-01-02 16:00:35 +03:00
Aleksey Kladov
35b3fc02e0 comments 2019-01-02 16:00:01 +03:00
Aleksey Kladov
4fe0ec5497 rename 2019-01-02 12:49:47 +03:00
Aleksey Kladov
db8d293208 move macro id to ids 2019-01-02 00:37:36 +03:00
Aleksey Kladov
42cc77703b move more stuff to ids 2019-01-02 00:30:00 +03:00
Aleksey Kladov
37ed2f35ba rename MFileId -> HirFileId 2019-01-02 00:09:54 +03:00
Aleksey Kladov
9c65e61849 introduce ids module 2019-01-01 22:47:10 +03:00
Aleksey Kladov
fca1422ea3 add tests for macro generated items 2019-01-01 22:15:35 +03:00
Aleksey Kladov
756e878158 add items from macros to modules 2019-01-01 22:15:35 +03:00
Aleksey Kladov
4a3f76d3bb wip 2019-01-01 22:15:35 +03:00
Aleksey Kladov
f8d419ee89 fix tests 2019-01-01 22:15:35 +03:00
Aleksey Kladov
289391e163 use MFile 2019-01-01 22:15:35 +03:00
Aleksey Kladov
4161466918 introduce MFileId 2019-01-01 22:15:35 +03:00
Aleksey Kladov
9d4af40995 work towards brining macros to nameres 2019-01-01 22:15:35 +03:00
Aleksey Kladov
7dc45745a3 save top-level macros in module items 2019-01-01 22:15:35 +03:00
Aleksey Kladov
e5b2fd6771 hard-code expansion of query_group 2019-01-01 22:15:35 +03:00
Aleksey Kladov
832bae8e28 fix tests 2019-01-01 22:15:35 +03:00
Aleksey Kladov
882a86240f rename 2019-01-01 22:15:35 +03:00
Aleksey Kladov
b2fec18098 move more macros to hir 2019-01-01 22:15:35 +03:00
Aleksey Kladov
57030f587b use macros database in analysis 2019-01-01 22:15:35 +03:00
Aleksey Kladov
d753656192 introduce MacrosDatabase 2019-01-01 22:15:35 +03:00
gfreezy
39dab68404 place complete_use_tree_keyword in the same mod with complete_expr_keyword 2019-01-01 23:12:51 +08:00
gfreezy
9895529d5c move to a seperate complete_use_tree_keyword mod 2019-01-01 23:00:29 +08:00
gfreezy
22ea00d5ff complete "self" and "super" 2019-01-01 22:45:53 +08:00
gfreezy
f408b1caa3 complete "use crate" for "use cr" too 2019-01-01 22:10:11 +08:00
gfreezy
fc2d7d1e1f complete crate in use stmt 2019-01-01 21:55:27 +08:00
Aleksey Kladov
acc38a9737 bump deps 2019-01-01 16:21:50 +03:00
DJMcNab
0ddeb3b824 Fix the same bug as #396 but for bytes too 2019-01-01 12:10:21 +00:00
bors[bot]
5a866a772c Merge #396
396: Fix the `panic` found whilst fuzzing r=matklad,me a=DJMcNab

This occurred when a non-ascii character was used in an ascii escape, for example in the motivating example: `if'\xɿ`, which can be further simplified to `'\xɿ`.

Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
2019-01-01 11:11:20 +00:00
DJMcNab
0fd87cbc47 Use an else if 2019-01-01 11:10:08 +00:00
csmoe
b01e707dba doc parser input 2019-01-01 16:09:32 +08:00
DJMcNab
72ab6f7727 Fix the panic found whilst fuzzing 2018-12-31 23:02:04 +00:00
bors[bot]
6044ec5057 Merge #395
395: generalize r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-12-31 16:06:27 +00:00
Aleksey Kladov
862c99d0d5 generalize highlighting to work with nodes 2018-12-31 19:06:00 +03:00
Aleksey Kladov
f1e8ebfbeb generalize extend selection to work with nodes 2018-12-31 19:01:51 +03:00
bors[bot]
2a65020442 Merge #165
165: Make modules with tests runnable r=farodin91 a=farodin91

Fixes #154

I having problems to traverse the path to module. The main problem is that module_tree only supports `FileId` and not `Module` in files. Any idea?

I need to clean up the code a bit later.

Co-authored-by: Jan Jansen <farodin91@googlemail.com>
2018-12-31 14:15:34 +00:00
Jan Jansen
05daa86634 Make modules with tests runnable
Fixes #154
2018-12-31 15:00:04 +01:00
bors[bot]
700b334a28 Merge #393
393: Add a fuzzing subcommand r=matklad a=DJMcNab

Part of https://github.com/rust-analyzer/rust-analyzer/issues/61#issuecomment-450641045.

Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
2018-12-31 13:16:09 +00:00
DJMcNab
f61830d676 Add a fuzzing subcommand 2018-12-31 13:14:06 +00:00
Aleksey Kladov
a3ee07ac14 fix icons in completion 2018-12-31 16:06:14 +03:00
csmoe
ea7b569e1b docing parser methods 2018-12-31 21:00:05 +08:00
bors[bot]
2746dacac0 Merge #385
385: Implement DocumentHighlight r=matklad a=DJMcNab

Fixes #80.

Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
2018-12-31 12:37:05 +00:00
DJMcNab
be75e547ce Use TryConv for conversion 2018-12-31 12:17:05 +00:00
DJMcNab
79941a9e70 Implement DocumentHighlight 2018-12-31 11:08:44 +00:00
dependabot[bot]
96ecd73a5c
Bump serde_json from 1.0.33 to 1.0.34
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.33 to 1.0.34.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.33...v1.0.34)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-31 09:48:16 +00:00