Commit graph

4666 commits

Author SHA1 Message Date
Aleksey Kladov
deba1fedfa ⬆️ rustc_lexer 2019-08-20 19:53:05 +03:00
Aleksey Kladov
bbeb07e5ca switch to upstream ra_vfs 2019-08-20 19:53:05 +03:00
Aleksey Kladov
188c9967c0 Drop unnecessary &'_ from impls 2019-08-20 19:53:05 +03:00
Aleksey Kladov
4753409f86 refactor TryConvWith similar to ConvWith 2019-08-20 19:53:05 +03:00
Aleksey Kladov
6ea4184fd1 translate \n -> \r\n on the way out 2019-08-20 19:53:05 +03:00
Aleksey Kladov
80a6e61446 make CTX type param instead of assoc type
that way, we can implement ConvWith<&'_ CTX> for different lifetimes
2019-08-20 19:53:05 +03:00
Aleksey Kladov
de3f2948ea add tests for crlf 2019-08-20 19:53:05 +03:00
Aleksey Kladov
ccca427ce4 minor 2019-08-20 19:53:05 +03:00
bors[bot]
43dd8b64e7
Merge #1707
1707: make sure lockfile is used for cargo install r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-20 16:27:57 +00:00
Aleksey Kladov
1ae186a4cc make sure lockfile is used for cargo install 2019-08-20 19:27:33 +03:00
bors[bot]
c7d37e424f
Merge #1703
1703: don't load sysroot in most heavy tests r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-19 12:42:06 +00:00
Aleksey Kladov
7cd9b1dd7a don't load sysroot in most heavy tests 2019-08-19 15:41:18 +03:00
bors[bot]
3ba9bc493f
Merge #1702
1702: replace heck with just ascii transformation r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-19 12:09:33 +00:00
Aleksey Kladov
58e9d7ef6f replace heck with just ascii transformation 2019-08-19 15:08:36 +03:00
bors[bot]
cef90ce45e
Merge #1701
1701:  qualify ast types with `ast::`  r=matklad a=matklad

(only the last commit is relevant, the rest are from #1700) 

bors r+

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-19 11:31:01 +00:00
Aleksey Kladov
db84437d6f qualify ast types with ast::
By convention, ast nodes should always be used as `ast::FnDef`. This
is to avoid confusion with similarly-named hir types.
2019-08-19 14:27:15 +03:00
bors[bot]
8704a74cd5
Merge #1700
1700: remove  ast::*Kind enums r=matklad a=matklad

bors r+

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-19 11:18:09 +00:00
Aleksey Kladov
df6dce23a7 remove ast::*Kind from ra_ide_api 2019-08-19 14:13:58 +03:00
Aleksey Kladov
3bec812258 remove ast::*Kind enums from assists 2019-08-19 14:11:09 +03:00
Aleksey Kladov
b50a04827c remove ast::*Kind from hir 2019-08-19 14:04:51 +03:00
Aleksey Kladov
39e444d701 remove ast::*Kind enums
With the new owned trees, we don't need an indirection here
2019-08-19 13:58:49 +03:00
bors[bot]
ba2836245b
Merge #1699
1699: ⬆️ vfs r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-19 10:30:19 +00:00
Aleksey Kladov
97a36c85a5 ⬆️ vfs 2019-08-19 13:21:34 +03:00
bors[bot]
2a34f5ca47
Merge #1698
1698: use derive(Debug) for SyntaxKind r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-19 10:17:23 +00:00
Aleksey Kladov
00ccc6c292 use derive(Debug) for SyntaxKind 2019-08-19 13:11:51 +03:00
bors[bot]
53241928e5
Merge #1697
1697: Use quote instead of tera for boilerplate generation r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-19 09:37:03 +00:00
Aleksey Kladov
038975b348 plug new boilerplate_gen into ra_tools 2019-08-19 12:26:34 +03:00
Aleksey Kladov
aa250ff612 rename codegen -> boilerplate_gen 2019-08-19 11:42:39 +03:00
Aleksey Kladov
5633829a16 drop tera dependency 2019-08-19 11:42:39 +03:00
Aleksey Kladov
832b40a075 use new quote-generated syntax kinds 2019-08-19 11:42:39 +03:00
bors[bot]
83413cc9ef
Merge #1696
1696: fix #1424 r=matklad a=coderfox

- resolve "~" in raLspServerPath

I think expanding simply `~/` is quite simple as node provides `homedir`, but expanding `~foo/` is difficult as there is no cross-platform approach of reading home directory of another user. So this pull request only resolves `~/` in `raLspServerPath`.

Besides, the source code is arranged in a way hard to write tests. Would anyone provide me with instructions of writing tests for this feature, or no test is required for this feature?

Co-authored-by: xfoxfu <i@xfox.me>
2019-08-19 08:05:39 +00:00
Aleksey Kladov
7d29cf1225 use quote! to generate syntax kinds 2019-08-19 11:02:04 +03:00
xfoxfu
d07a85ed7e fix #1424
resolve "~" in raLspServerPath
2019-08-19 10:48:39 +08:00
Aleksey Kladov
39f50e7bd7 use new quote-generated ast 2019-08-18 23:36:22 +03:00
Aleksey Kladov
8cefdb5527 use quote! macro to generate grammar
We already use syn&quote elsewhere (transitively), so it make sense to
cut down on the number of technologies and get rid of tera
2019-08-18 23:11:08 +03:00
Aleksey Kladov
d545a5c75c deserialize grammar 2019-08-18 21:54:51 +03:00
Aleksey Kladov
229d7943d8 switch to new codegen 2019-08-18 21:44:24 +03:00
Aleksey Kladov
839d9cce89 codegen boilerplate 2019-08-18 21:36:06 +03:00
Aleksey Kladov
14fd9e72a7 add quote dep 2019-08-18 21:33:31 +03:00
bors[bot]
2bac1bdf17
Merge #1695
1695: update lsp r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-17 19:23:16 +00:00
Aleksey Kladov
64ecba4f15 update lsp 2019-08-17 22:21:59 +03:00
bors[bot]
5a2a97c7e8
Merge #1694
1694: Implement initial type-inference support for Index r=flodiebold a=matklad

This doesn't actually infer indexing types, but at least it walks sub-expressions!

Initially, I wanted to make `Index` just a new kind of `BinOp` (b/c indexing is kind of a binary op), so I've refactoring binop handing a bit.

However, in the end I've decided to add a separate expr kind for Index, because `foo[0]`, `&foo[1]` and `&mut foo[1]` all seem to need slightly different handing, which is not binop-like

r? @flodiebold 

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-17 15:57:02 +00:00
Aleksey Kladov
189d879659 implement initial type inference for index expressions 2019-08-17 18:05:20 +03:00
Aleksey Kladov
b082cd679a normalize ordering ops 2019-08-17 17:51:01 +03:00
Aleksey Kladov
7e5a186c1f Introduce separate hir::BinaryOp
Unlike ast::BinOp, it has significantly more structure to it, so it's
easier to, say, handle all assignment-like operations in the same way.
2019-08-17 17:42:41 +03:00
Aleksey Kladov
8919aa8065 implement accessors for IndexExpr 2019-08-17 17:17:01 +03:00
Aleksey Kladov
fd4c083e42 simplify 2019-08-17 17:14:22 +03:00
bors[bot]
d15cf2c960
Merge #1693
1693: Remove cpuprofile dependencies r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-17 12:30:33 +00:00
Aleksey Kladov
e751e4d8a3 Remove cpuprofile dependencies 2019-08-17 15:29:57 +03:00
bors[bot]
c2dcabef2a
Merge #1692
1692: ⬆️ deps r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-17 10:53:33 +00:00