Commit Graph

1267 Commits

Author SHA1 Message Date
bors[bot]
acd90bc33b Merge #482
482: fix code duplication r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-10 15:32:34 +00:00
Aleksey Kladov
a0c978cd0c fix code duplication 2019-01-10 18:32:02 +03:00
Aleksey Kladov
3ca76c2039 move join_lines to a separate module 2019-01-10 17:50:49 +03:00
Aleksey Kladov
32fa084c07 introduce marking infrastructure for maintainable tests
This also fixes a particular edge case in name resolution.
2019-01-10 16:45:09 +03:00
Marcus Klaas de Vries
e78286c8e8 Save variant names in EnumData to reduce needless queries
We already have their names when anyway, and when in all (current)
situations where we're interested in an Enum's variants, we want
their names.
2019-01-10 14:43:01 +01:00
Marcus Klaas de Vries
978de5cf8b Implement type inference for enum variants 2019-01-10 14:32:56 +01:00
bors[bot]
aca14c591f Merge #475
475: Show types of fields in completion r=matklad a=matklad

![image](https://user-images.githubusercontent.com/1711539/50910524-0f146200-143f-11e9-84d6-0ba80761cd89.png)

r? @flodiebold 


Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-10 13:07:19 +00:00
bors[bot]
aef93c918e Merge #478
478: WIP: implement cancelation via unwinding r=matklad a=matklad

This uses https://github.com/salsa-rs/salsa/pull/107 to implement cancellation.

Now we can get rid of `Cancelable` wrapper from everywhere except the top-level analyzer library. 



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-10 12:51:58 +00:00
Aleksey Kladov
86bc898a2f explain why we use resume_unwind 2019-01-10 13:06:42 +03:00
Aleksey Kladov
f72c031eb9 implement RefUnwindSafe 2019-01-10 13:04:04 +03:00
Aleksey Kladov
64455ad701 use unwinding for cancelation 2019-01-10 12:20:32 +03:00
Hrvoje Ban
8384b2cc38 Extend selection for list items 2019-01-09 20:51:19 +01:00
Aleksey Kladov
cf20ecae9f unwind on cancel 2019-01-09 22:51:05 +03:00
Aleksey Kladov
56b2138d82 show field types in completion 2019-01-09 19:40:11 +03:00
Aleksey Kladov
ddf2a8a948 add completion detail 2019-01-09 19:40:11 +03:00
Aleksey Kladov
e8815b614e nicer trailing comma handling in types 2019-01-09 19:14:21 +03:00
bors[bot]
76b3985d70 Merge #473
473: Partial typo fix r=matklad a=marcusklaas

This fixes some typos. Mostly in documentation, but also some code is affected (`defenition` was used in a few method names).

Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-09 12:20:05 +00:00
Marcus Klaas de Vries
0b8fbb4fad Fix typos in ARCHITECTURE.md and a number of crates
specifically: gen_lsp_server, ra_arena, ra_cli, ra_db, ra_hir
2019-01-09 01:17:09 +01:00
Aleksey Kladov
d18d8399f5 fuzz-lockfile 2019-01-09 01:58:25 +03:00
Aleksey Kladov
5609989368 more stable DefIds via bfs tree walking 2019-01-09 01:57:40 +03:00
Marcus Klaas de Vries
f8261d611a Fix typo defenition -> definition 2019-01-08 23:38:51 +01:00
Aleksey Kladov
2dc85619be one more invalidation test 2019-01-09 00:54:06 +03:00
Aleksey Kladov
bcb6fabd15 fix test naming 2019-01-09 00:49:21 +03:00
Aleksey Kladov
8f93e7b9a4 remove duplication in tests 2019-01-09 00:48:54 +03:00
Aleksey Kladov
0c62b1bb7a fix the docs 2019-01-08 22:45:52 +03:00
Aleksey Kladov
5b573deb20 fix usages after rename 2019-01-08 22:33:36 +03:00
Aleksey Kladov
6bca91af53 rename ra_analysis -> ra_ide_api 2019-01-08 22:30:56 +03:00
Aleksey Kladov
fa3c9ce392 fix usages after rename 2019-01-08 22:30:32 +03:00
Aleksey Kladov
1967884d68 rename ra_editor -> ra_ide_api_light 2019-01-08 22:17:36 +03:00
Aleksey Kladov
921689b70d kill text utils 2019-01-08 22:03:13 +03:00
Aleksey Kladov
f553837c1c upstream text-utils to text_unit 2019-01-08 21:50:04 +03:00
Aleksey Kladov
695294bbb9 ra_db is independent from editor 2019-01-08 21:03:42 +03:00
Aleksey Kladov
0c88360eb4 add comment 2019-01-08 21:01:41 +03:00
Aleksey Kladov
13301f284c ra_hir does not depend on ra_editor 2019-01-08 21:01:41 +03:00
Aleksey Kladov
702bdacb03 move node at offset to aglo already 2019-01-08 21:01:41 +03:00
Aleksey Kladov
1b82084a5f dont depend on ra_editor directly 2019-01-08 21:01:41 +03:00
Aleksey Kladov
ac92973a6c move function to code_model_api 2019-01-08 20:11:13 +03:00
Aleksey Kladov
141ab166cf switch to newer cargo-metadata 2019-01-08 19:36:09 +03:00
Aleksey Kladov
4fa972cffb simplify 2019-01-08 18:44:18 +03:00
Aleksey Kladov
6f02f176c8 simplify 2019-01-08 18:43:29 +03:00
Aleksey Kladov
db794abe66 kill FnSignatureInfo 2019-01-08 18:42:11 +03:00
Aleksey Kladov
ed4f13e5c7 remove FnSignatureInfo from hir 2019-01-08 18:38:34 +03:00
Aleksey Kladov
a3f74702d9 move tests 2019-01-08 18:33:19 +03:00
Aleksey Kladov
256ec6e8d4 introduce CallInfo 2019-01-08 18:27:44 +03:00
Aleksey Kladov
e6a4383bb4 move call-info to a separate file 2019-01-08 18:16:26 +03:00
Florian Diebold
946b0ba02c Fix name resolution across source roots
It was using the wrong name in that case.
2019-01-08 15:16:24 +01:00
Florian Diebold
d4b44a092f Fix use tree desugaring 2019-01-08 15:00:29 +01:00
bors[bot]
562b448f9e Merge #458
458: dont reexport module id r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-08 13:36:13 +00:00
Aleksey Kladov
544c63b58e dont reexport module id 2019-01-08 16:35:36 +03:00
Aleksey Kladov
821f5186ba use real signature in completion 2019-01-08 16:08:58 +03:00
Aleksey Kladov
d4c8310d05 switch interner to use arena 2019-01-08 15:53:32 +03:00
Aleksey Kladov
54e5c4f085 minimize visibility 2019-01-08 15:40:02 +03:00
Aleksey Kladov
5edcf313f6 move query impls to adt 2019-01-08 15:38:29 +03:00
Aleksey Kladov
64f202bdd7 move variant public api to api 2019-01-08 15:32:27 +03:00
Aleksey Kladov
2d0ab52212 move variants to API 2019-01-08 15:28:08 +03:00
Aleksey Kladov
71c7936932 minor 2019-01-08 15:23:56 +03:00
Aleksey Kladov
2d4dc22af8 move enum to code_model_api 2019-01-08 15:22:57 +03:00
Aleksey Kladov
e30c533eb6 move stuct to code_model_api 2019-01-08 15:19:37 +03:00
bors[bot]
3bb1cb7017 Merge #455
455: Import fixpoint loop for name resolution r=matklad a=flodiebold

This implements reexports, so only the glob import part of #231 remains.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-08 12:02:06 +00:00
Florian Diebold
dc186c0fcc Import fixpoint loop for name resolution 2019-01-08 12:53:31 +01:00
Aleksey Kladov
50d5e37481 convert some if-lets to match 2019-01-08 14:23:00 +03:00
Aleksey Kladov
96236a9be5 assist to convert if-let to match 2019-01-08 14:21:29 +03:00
Aleksey Kladov
fa6e0b0d38 itroduce trait for ast tokens 2019-01-08 12:23:10 +03:00
Aleksey Kladov
d62ede8262 migrate ra_lsp_server to new rowan 2019-01-08 11:56:17 +03:00
Aleksey Kladov
3ffd5dd2a6 migrate ra_analysis to new rowan 2019-01-08 11:47:28 +03:00
Aleksey Kladov
da0b348ae9 migrate ra_hir to rowan 2.0 2019-01-08 11:28:42 +03:00
Aleksey Kladov
d6020f516f migrate ra_cli to new rowan 2019-01-08 11:20:15 +03:00
Aleksey Kladov
fe53b28250 migrate ra_db to new rowan 2019-01-08 11:20:15 +03:00
Aleksey Kladov
b88775af7f migrate ra_editor to rowan 0.2 2019-01-08 11:20:15 +03:00
Aleksey Kladov
b73c51ff9b wrap TreePtr 2019-01-08 11:20:15 +03:00
Aleksey Kladov
5618c8ade1 regenerate 2019-01-08 11:20:15 +03:00
Aleksey Kladov
d91a98ec84 switch ra_syntax to new rowan API 2019-01-08 11:20:15 +03:00
Aleksey Kladov
55272f2023 update rowan 2019-01-08 11:20:15 +03:00
Marcus Klaas de Vries
e51d44a2de Process explicit type hints for str, bool and char 2019-01-07 20:43:41 +01:00
Marcus Klaas de Vries
5d15dd70b0 Tidy up binary operator type inference; add test file 2019-01-07 20:39:23 +01:00
Marcus Klaas de Vries
7b0eaef580 Implement type inference for more binary operators
Mostly just for primitive numeric types such as u32 and f64. Not
yet a general solution using trait resolution.
2019-01-07 20:11:31 +01:00
Marcus Klaas de Vries
3238c06a5a Add remaining binary operations to AST 2019-01-07 19:04:25 +01:00
Florian Diebold
7bb279b365 Implement autoderef for field accesses 2019-01-07 14:54:23 +01:00
bors[bot]
a6071c9f4c Merge #442
442: WIP: indent on typing dot r=matklad a=simonvandel

Fixes #439.

The unit test passes, but I can't seem to make VS code perform the action. The existing action on "=" doesn't work either on my end either though.

I didn't add any smart way of detecting the current indent level. Any ideas how I would do that?

Co-authored-by: Simon Vandel Sillesen <simon.vandel@gmail.com>
2019-01-07 06:26:09 +00:00
Simon Vandel Sillesen
f3c708ab7b my formatting tool locally messes things up 2019-01-07 06:24:07 +01:00
Simon Vandel Sillesen
979dcf36e4 fix nits 2019-01-07 06:16:04 +01:00
Florian Diebold
d618b1f2ce if let -> match 2019-01-07 01:10:29 +01:00
Florian Diebold
2dfb5e6ac0 Improve types for node_expr / node_pat 2019-01-07 00:05:19 +01:00
Florian Diebold
71f7d82e45 Introduce ArenaMap 2019-01-07 00:05:19 +01:00
Florian Diebold
cf49a11263 Sort ranges in type inference tests
Also rename the files to remove the numbers (they don't serve a purpose now that
there are only the data files).
2019-01-07 00:05:19 +01:00
Florian Diebold
6210e82041 Use HIR Expr for type inference
Now we can reuse the type inference inside a function when typing whitespace
etc. :)
2019-01-07 00:05:19 +01:00
Florian Diebold
a4e97f5a2b Show types when hovering patterns as well 2019-01-06 22:53:09 +01:00
bors[bot]
31c1999505 Merge #440
440: Implement type inference for boolean operators r=flodiebold a=marcusklaas

Tried implementing the easiest part of https://github.com/rust-analyzer/rust-analyzer/issues/390. Hope this is somewhat close to what the intent of the issue was. Found it surprisingly easy to find my way around the repository - it's well organized!

Very grateful for any pointers.

Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-06 21:28:36 +00:00
Marcus Klaas de Vries
82d9a77dad Touch up type inference for boolean operators
Also try to infer its subexpressions and set type expectations
whenever possible.
2019-01-06 22:17:54 +01:00
Simon Vandel Sillesen
bbc044990a formatting 2019-01-06 22:06:22 +01:00
Simon Vandel Sillesen
0be055072d fix tests 2019-01-06 21:59:14 +01:00
Aleksey Kladov
8a3b489c2f kill module source 2019-01-06 20:01:26 +03:00
Aleksey Kladov
733383446f move submodule computationt to module_tree 2019-01-06 17:44:50 +03:00
Aleksey Kladov
17b2994b99 fix the test 2019-01-06 17:38:20 +03:00
Aleksey Kladov
5b0267ecf7 fix after rebase 2019-01-06 17:37:18 +03:00
Aleksey Kladov
fd4456d0ec flatten module structure 2019-01-06 17:36:10 +03:00
Aleksey Kladov
5a505189a8 adjust comments 2019-01-06 17:35:57 +03:00
Aleksey Kladov
c303e6fbdf fix ra_analysis to work with the new API 2019-01-06 17:35:57 +03:00
Aleksey Kladov
a7f4f7bfcc split module source into decl/defin 2019-01-06 17:35:57 +03:00
Aleksey Kladov
9cb02fd931 kill old module 2019-01-06 17:35:57 +03:00