Aleksey Kladov
bbcca4f735
make ast object safe
2019-08-23 15:06:47 +03:00
bors[bot]
e055cfacdf
Merge #1724
...
1724: Refactor fill_match_arms assist to use AstBuilder facilities r=matklad a=viorina
Co-authored-by: Ekaterina Babshukova <ekaterina.babshukova@yandex.ru>
2019-08-23 05:43:32 +00:00
Ekaterina Babshukova
e84f93cb5b
refactor fill_match_arms assist
2019-08-23 00:43:12 +03:00
bors[bot]
0c35d82329
Merge #1721 #1723
...
1721: Impl/dyn trait r=flodiebold a=flodiebold
This adds support for `impl Trait` and `dyn Trait` types as far as possible without Chalk. So we can represent them in the type system, and handle them in method resolution, but Chalk doesn't know about them yet. There's a small temporary hack here where we bypass Chalk during method resolution, so we can handle simple method calls on them and completion works.
Fixes #1608 .
1723: Make sysroot use `RUST_SRC_PATH` if set r=matklad a=bkchr
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
2019-08-22 20:06:32 +00:00
Bastian Köcher
18c7a1ebe7
Make sysroot use RUST_SRC_PATH
if set
2019-08-22 21:59:23 +02:00
Florian Diebold
4768f5e717
Improve/fix type bound lowering
2019-08-22 21:58:29 +02:00
Florian Diebold
b1a40042e8
Handle impl/dyn Trait in method resolution
...
When we have one of these, the `Trait` doesn't need to be in scope to call its
methods. So we need to consider this when looking for method
candidates. (Actually I think the same is true when we have a bound `T:
some::Trait`, but we don't handle that yet).
At the same time, since Chalk doesn't handle these types yet, add a small hack
to skip Chalk in method resolution and just consider `impl Trait: Trait` always
true. This is enough to e.g. get completions for `impl Trait`, but since we
don't do any unification we won't infer the return type of e.g. `impl
Into<i64>::into()`.
2019-08-22 21:55:11 +02:00
Dylan MacKenzie
3e14b16c4d
Add test for nested box pattern
2019-08-22 12:53:54 -07:00
Dylan MacKenzie
f3b320adf4
Add BOX_KW to PATTERN_FIRST
2019-08-22 12:33:03 -07:00
Florian Diebold
16a7d8cc85
Add impl Trait
and dyn Trait
types
...
- refactor bounds handling in the AST a bit
- add HIR for bounds
- add `Ty::Dyn` and `Ty::Opaque` variants and lower `dyn Trait` / `impl Trait`
syntax to them
2019-08-22 19:33:00 +02:00
bors[bot]
79a46f2588
Merge #1717
...
1717: Don't add `?` bounds as real bounds r=flodiebold a=matklad
closes #1709
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-22 13:13:07 +00:00
Aleksey Kladov
77fa2ef96d
disable clap's features
2019-08-22 15:57:48 +03:00
Aleksey Kladov
9f238930f1
Don't add ?
bounds as real bounds
...
closes #1709
2019-08-22 15:35:42 +03:00
bors[bot]
0a612fad02
Merge #1715
...
1715: Feature flags r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-22 12:17:21 +00:00
Aleksey Kladov
69bbe79c50
implement feature flags
2019-08-22 15:07:31 +03:00
Aleksey Kladov
4dd5afb7fe
show error to the user when deserializing config
2019-08-22 11:08:22 +03:00
cynecx
1d87f85441
Update snapshots/highlighting.html to use correct highlighting
2019-08-22 01:08:07 +02:00
cynecx
5534167f58
Fix syntax-highlighting for fields (NAMED_FIELD_DEF
)
2019-08-22 00:39:18 +02:00
Aleksey Kladov
6ab85cc192
fix default for the exlude key
2019-08-21 17:30:58 +03:00
Aleksey Kladov
8844ed9697
switch to jod threads
2019-08-21 11:09:01 +03:00
Aleksey Kladov
77751cfe01
remove debug-print
2019-08-20 19:55:34 +03:00
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
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
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
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
Aleksey Kladov
00ccc6c292
use derive(Debug) for SyntaxKind
2019-08-19 13:11:51 +03: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
Aleksey Kladov
7d29cf1225
use quote! to generate syntax kinds
2019-08-19 11:02:04 +03: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"e 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