Commit graph

1735 commits

Author SHA1 Message Date
Florian Diebold
758bc72873 Implement methods to build a resolver 2019-02-01 22:17:48 +01:00
Florian Diebold
5208c2aa93 Sketching the resolver API 2019-02-01 22:14:34 +01:00
csmoe
4dffdcf14a split HirDatabase api 2019-02-01 22:05:24 +08:00
csmoe
12433a7887 split hirdatabase 2019-02-01 21:36:51 +08:00
Aleksey Kladov
de85f1e947 remove hard-coded support for ctry macro
It was used mainly to prevent HirFileId infra from bitroting, but the
`vec![]` macro can serve that just as well!
2019-02-01 10:52:36 +03:00
kjeremy
f0fdc9d5c0 Go To Implementation for Trait 2019-01-31 18:34:52 -05:00
Aleksey Kladov
4c0ab7db85 explain the magic 2019-01-31 22:23:30 +02:00
Aleksey Kladov
b4b522fb39 cleanup the api 2019-01-31 22:23:30 +02:00
Aleksey Kladov
a16f6bb27d cleanup 2019-01-31 22:23:30 +02:00
Aleksey Kladov
2d1f0b105d move test 2019-01-31 22:23:30 +02:00
Aleksey Kladov
40feacdeb9 split macros across crates 2019-01-31 22:23:30 +02:00
Aleksey Kladov
ad80a0c551 preserve token spacing 2019-01-31 22:23:30 +02:00
Aleksey Kladov
5934738854 first test sort-of passes 2019-01-31 22:23:30 +02:00
Aleksey Kladov
be03aa5ee7 extract tt cursor 2019-01-31 22:23:30 +02:00
Aleksey Kladov
8d5a8f085c binders boilerplate 2019-01-31 22:23:30 +02:00
Aleksey Kladov
2def5b4e6f more expand boilerplate 2019-01-31 22:23:30 +02:00
Aleksey Kladov
d2a1e07150 more expand boilerplate 2019-01-31 22:23:30 +02:00
Aleksey Kladov
09a8d75351 expand boilerplate 2019-01-31 22:23:30 +02:00
Aleksey Kladov
2d88207853 reshuffle 2019-01-31 22:23:30 +02:00
Aleksey Kladov
ce3636798b move macros to a separate crate 2019-01-31 22:23:30 +02:00
Aleksey Kladov
9a043a163c parses simple macro 2019-01-31 22:23:30 +02:00
Aleksey Kladov
0d9210e9bc handle multibyte tokens 2019-01-31 22:23:30 +02:00
Aleksey Kladov
f3489e8111 add eat methods 2019-01-31 22:23:30 +02:00
Aleksey Kladov
e28a5e048a parsing scaffold 2019-01-31 22:23:30 +02:00
Aleksey Kladov
2980508ad2 debug impls 2019-01-31 22:23:30 +02:00
Aleksey Kladov
82cf0185c3 add repeats to ast 2019-01-31 22:23:30 +02:00
Aleksey Kladov
3bd4560d6e convert punts and literals 2019-01-31 22:23:30 +02:00
Aleksey Kladov
c09c6fc97c start tt convertions boilerplate 2019-01-31 22:23:30 +02:00
Aleksey Kladov
a4342a7fee add conversion boilerplate 2019-01-31 22:23:30 +02:00
Aleksey Kladov
ca327f35ad add macro by example ide 2019-01-31 22:23:30 +02:00
Aleksey Kladov
6846ac2a16 shorten name :-) 2019-01-31 22:23:30 +02:00
Aleksey Kladov
b8f56f89c6 start token tree module 2019-01-31 22:23:30 +02:00
bors[bot]
1bf47d43db Merge #715
715: Use "▶" for test code lens r=matklad a=kjeremy

I find that this makes code lenses stand out more otherwise they can be easy to miss.

Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-01-31 13:04:03 +00:00
Jeremy Kolb
76c0d0b94d format 2019-01-31 07:44:26 -05:00
bors[bot]
97ade89993 Merge #692
692: [WIP] Correctly parse attributes  r=matklad a=DJMcNab

Reference - https://doc.rust-lang.org/reference/attributes.html
This fixes/investigates inner attributes for:

- [x] `impl` blocks
- [x] `extern` blocks
- [x] `fn`s (fixes #689)
- [x] `mod`s (already supported)
- [x] 'block expressions' (the long text just describes all 'blocks' used as statements)

This also investigates/fixes outer attributes for:

- [ ] 'most statements' (see also: #685, https://doc.rust-lang.org/reference/expressions.html#expression-attributes)
- [x] Enum variants, Struct and Union fields (Fixed in #507)
- [ ] 'Match expression arms' (@matklad can you provide a test case which explains what this means?)
- [ ] 'Generic lifetime or type parameters'
- [ ] 'Elements of array expressions, tuple expressions, call expressions, tuple-style struct and enum variant expressions'
- [ ] 'The tail expression of block expressions'

Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
2019-01-31 07:06:31 +00:00
bors[bot]
777c79ce6b Merge #712
712:  Fix #667 and improvements to introduce_variable r=matklad a=eulerdisk

Fix #667 (but not re-indenting currently), plus many other improvements.
@matklad I'm not sure how to handle re-indenting here.

Co-authored-by: Andrea Pretto <eulerdisk@gmail.com>
2019-01-31 07:00:11 +00:00
Jeremy Kolb
57899d66fa Use "▶" for test code lens
I find that this makes code lenses stand out more.
2019-01-30 22:09:27 -05:00
Andrea Pretto
a5fe4a08fb Some improvements to introduce_variable. 2019-01-30 23:01:01 +01:00
bors[bot]
28fdb8d03c Merge #701
701: Minor type inference tweaks r=flodiebold a=marcusklaas

Pass down expectation for reference expressions and type the guard in match expressions.

I wasn't able to add a test for the former addition because the type variable previously introduced would always resolve to the right type in the things I tried!

Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-30 20:51:47 +00:00
Florian Diebold
1acff307fe Move expr_scopes query to its module 2019-01-30 21:39:34 +01:00
Andrea Pretto
7a1494ced5 Fix #667 2019-01-30 21:31:29 +01:00
Florian Diebold
65864d85f9 Rename FnScopes -> ExprScopes
The reason for this is that it describes scopes for any body expression, not
just that of a function. It did not actually refer to functions at all anymore.
2019-01-30 21:23:50 +01:00
Marcus Klaas de Vries
13cb4a1b37 Add test for passing on ref expectations 2019-01-30 21:14:26 +01:00
Aleksey Kladov
ef7eb8c257 Use Crate instead of CrateId 2019-01-30 22:37:20 +03:00
Aleksey Kladov
95aa7e46fc move item_map_query 2019-01-30 22:36:22 +03:00
bors[bot]
b704ce803b Merge #702
702: Go to Implementation r=matklad a=kjeremy

First half of #620

Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-01-30 19:19:31 +00:00
kjeremy
04eb15856b Resolve crate 2019-01-30 13:18:21 -05:00
Jeremy Kolb
b88ba007cc Pass Documentation up to LSP and add "rust" to our codeblocks there 2019-01-29 21:39:09 -05:00
Jeremy Kolb
3c17643b30 Go to Implementation for structs and enums 2019-01-29 19:13:02 -05:00
Marcus Klaas de Vries
3daca3eb4d Infer type of match guard 2019-01-28 23:09:14 +01:00
DJMcNab
00e6b5d26c Parse and validate attributes in blocks 2019-01-28 20:03:56 +00:00
WizardOfMenlo
ec32b2e39c Use match-all instead of individual branches 2019-01-28 17:17:04 +00:00
WizardOfMenlo
9416904d14 Added support for primitive types type inference when using std::ops::Not 2019-01-28 14:52:43 +00:00
Aleksey Kladov
2ee08098a6 opt-in jemalloc 2019-01-28 15:52:21 +03:00
Aleksey Kladov
d1a67c1174 align command naming 2019-01-28 15:01:22 +03:00
bors[bot]
7abe1f422c Merge #678
678: WIP: automatically collect garbage r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-28 11:39:02 +00:00
Aleksey Kladov
53e3e82d91 update salsa 2019-01-28 13:53:32 +03:00
Florian Diebold
cf5c99271d Sort completions in tests 2019-01-27 22:51:20 +01:00
Aleksey Kladov
c4ceea3417 use salsa from my repo 2019-01-27 22:57:18 +03:00
Aleksey Kladov
b4c8baadb1 tweak words 2019-01-27 22:57:18 +03:00
Aleksey Kladov
c7f4e3a401 show jemalloc 2019-01-27 22:57:18 +03:00
Aleksey Kladov
09b5dc8e02 drop obsolete comment 2019-01-27 22:57:18 +03:00
Aleksey Kladov
7801f6b50f automatically collect garbage 2019-01-27 22:57:18 +03:00
Marcus Klaas de Vries
6249989e6c Process second review 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
f6eb44cd9e Use type information from the turbofish 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
0da1e8b2f8 Add a FnSig to Ty::FnDef 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
089b1c57c1 Address some issues flagged in review 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
04748a0f16 Add missing ty test snapshot 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
aa06893a14 Add type params to FnSignature 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
67e40e431a Initial implementation of generics for method calls 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
3bd47c0285 First attempt at generic type inference for fns 2019-01-27 17:59:21 +01:00
bors[bot]
3f4f50baaa Merge #690
690: Fix module resolution for non standard filenames r=matklad a=regiontog

fixes #668

Co-authored-by: Erlend Tobiassen <erlend.tobiassen@gmail.com>
2019-01-27 15:55:47 +00:00
Erlend Tobiassen
b775fa285c
Revert parts of "Test non standard crate root"
Prefer cursor position over file_map
2019-01-27 16:32:31 +01:00
DJMcNab
137b1ccb71 Add a test for inner attributes on extern blocks 2019-01-27 15:20:36 +00:00
bors[bot]
b2b62b9579 Merge #691
691: remove dead code r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-27 15:08:23 +00:00
Aleksey Kladov
154bce1864 remove dead code 2019-01-27 18:07:45 +03:00
DJMcNab
73b075c556 Correctly parse inner attributes of impl blocks 2019-01-27 14:55:03 +00:00
Erlend Tobiassen
b149882d19
Remove dbg!(...) 2019-01-27 15:44:59 +01:00
Erlend Tobiassen
08e12f974c
Fix bad rebase and rustfmt 2019-01-27 15:37:43 +01:00
Erlend Tobiassen
e2e1f4ceca
Typos 2019-01-27 15:19:42 +01:00
Erlend Tobiassen
5052bf9889
Update test to use correct paths 2019-01-27 15:19:41 +01:00
Erlend Tobiassen
c5e6db16b1
fix #668 2019-01-27 15:19:38 +01:00
Erlend Tobiassen
683e5e64f4
Test non standard crate root 2019-01-27 15:15:56 +01:00
bors[bot]
964086e0d4 Merge #685
685: Support attributes on let statements r=matklad a=DJMcNab

Fix #677.

Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
2019-01-27 09:04:02 +00:00
DJMcNab
4d35cc3875 Stop using let_stmt twice 2019-01-27 09:00:57 +00:00
bors[bot]
ffcf618842 Merge #662
662: Preserve indentation in doc comments r=matklad a=kjeremy

Fixes #502 

Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-01-27 08:21:04 +00:00
bors[bot]
2577a65684 Merge #687
687: fix verificatio on ci r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-26 23:35:49 +00:00
Aleksey Kladov
7177fffd7b fix verification on CI
remove `--verify` flag from the binaries: we have tests for this!
2019-01-27 02:30:54 +03:00
Florian Diebold
94bbb2418a Add marks 2019-01-26 23:59:11 +01:00
Florian Diebold
77f92674f9 Handle cycles in type vars
This might be the cause of #587.
2019-01-26 23:48:01 +01:00
DJMcNab
7055d43c3a Make attrs be a child of the let statement 2019-01-26 22:02:23 +00:00
bors[bot]
e40d8d4032 Merge #683
683: fix AST for if expressions r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-26 21:41:27 +00:00
Aleksey Kladov
619af1e22c fix AST for if expressions
then is not always a block...
2019-01-27 00:37:11 +03:00
DJMcNab
55a3e21ac4 Support attributes on let statements 2019-01-26 21:35:03 +00:00
Aleksey Kladov
f78b092629 fix panic in call info
closes #317
closes #675
2019-01-27 00:34:18 +03:00
bors[bot]
691ffd2dcb Merge #681
681: Use the correct working directory for cargo metadata and rustfmt r=matklad a=DJMcNab

Fixes maybe #670. @bjorn3, is that true?

(Awkward wording due to GitHub's eager 'fixes' finding)

Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
2019-01-26 21:18:52 +00:00
DJMcNab
9fbbb8f609 Don't use the reserved error code 2019-01-26 20:58:50 +00:00
DJMcNab
d9456c3989 Return an lsp error 2019-01-26 20:43:51 +00:00
Aleksey Kladov
a128075af9 remove Option<SourceFileItemId> hack 2019-01-26 23:27:01 +03:00
DJMcNab
632b0f2902 Use the correct working directory for cargo metadata and rustfmt 2019-01-26 20:16:15 +00:00