Aleksey Kladov
6f8aa75329
Rename RecordLit -> RecordExpr
2020-07-30 16:21:30 +02:00
Aleksey Kladov
28ef4c375a
Rename TypeParamList -> GenericParamList
2020-07-30 15:36:21 +02:00
Aleksey Kladov
eb2f806344
Rename TypeAliasDef -> TypeAlias
2020-07-30 15:25:46 +02:00
Aleksey Kladov
1142112c70
Rename FnDef -> Fn
2020-07-30 15:16:05 +02:00
Aleksey Kladov
b1332670c7
Rename UseItem -> Use
2020-07-30 14:20:33 +02:00
Aleksey Kladov
d032f872b6
Finish extern crates grammar
2020-07-30 12:31:07 +02:00
Aleksey Kladov
6cd2131caf
Rename Rename
2020-07-30 11:58:41 +02:00
Aleksey Kladov
081f35fe1b
Update tests
2020-07-30 11:50:56 +02:00
Aleksey Kladov
2984da672e
Split ItemList & AssocItemList
2020-07-30 11:50:56 +02:00
Aleksey Kladov
ede5d17b04
Finish SourceFile grammar
2020-07-30 00:46:39 +02:00
Aleksey Kladov
b10e437039
Fix nameref parsing
2020-07-28 20:59:48 +02:00
Yuki Okushi
6f423466d1
Add a license field to all the crates
2020-07-14 10:57:26 +09:00
Veetaha
e75e2ae5b6
Simlify with matches!()
2020-06-28 04:03:59 +03:00
Laurențiu Nicola
2c72d2f438
Micro-optimize lookahead in composite tokens
2020-06-26 21:47:17 +03:00
Laurențiu Nicola
76ddface08
Fix panic in split and merge import assists
2020-06-23 16:51:07 +03:00
Aleksey Kladov
d739731830
Allow attributes on expressions
...
https://github.com/rust-lang/rust/pull/69201/
2020-06-15 10:59:05 +02:00
Matthew Jasper
8622e4cc1b
Add example of old trait object syntax
2020-06-11 18:15:03 +01:00
Matthew Jasper
879693e63c
Move complex inline test to own file
2020-06-11 18:14:57 +01:00
Matthew Jasper
506e1ddbfa
Separating parsing of for
in predicates and types
2020-06-10 11:30:58 +01:00
Aleksey Kladov
e8d50578ab
Correctly parse <_> paths in patterns
...
closes #3659
2020-06-09 13:45:18 +02:00
Aleksey Kladov
16943e533c
Minor, use T!
2020-06-09 13:45:11 +02:00
Aleksey Kladov
2785362a1f
Update crates/ra_parser/src/grammar/items.rs
2020-06-09 10:50:25 +02:00
Avi Dessauer
e38685cb48
Parse default unsafe fn
2020-06-08 17:49:06 -04:00
Avi Dessauer
c4fd463981
Move default const test out of line
2020-06-04 13:06:57 -04:00
Avi Dessauer
3ec2dcfc0d
Address review
2020-06-04 13:00:21 -04:00
Avi Dessauer
fb632c747d
Parse default unsafe & default const
2020-06-03 20:16:38 -04:00
Nelson Elhage
8101ea0fdc
Update a comment for the new source organization
2020-05-31 16:04:52 -07:00
robojumper
367487fe88
Support raw_ref_op's raw reference operator
2020-05-28 21:42:22 +02:00
Simon Vandel Sillesen
ef6d53521f
Shrink ra_parser::Event from 32 bytes to 16 bytes
...
This boxes the Error variant with the assumption that it is rarely constructed
2020-05-16 22:20:44 +02:00
Aleksey Kladov
359d3be308
Fix parsing of blocks without {
2020-05-02 14:35:17 +02:00
Aleksey Kladov
623faefcda
Cleanup inline tests
2020-05-02 11:21:39 +02:00
Aleksey Kladov
4f2134cc33
Introduce EffectExpr
2020-05-02 11:21:39 +02:00
Aleksey Kladov
fd030f9450
Revert "Merge #4233 "
...
This reverts commit a5f2b16366
, reversing
changes made to c96b2180c1
.
2020-05-02 01:12:37 +02:00
Aleksey Kladov
292ba6a1f8
Remove dead code, which elaborately pretends to be alive
2020-04-30 22:41:14 +02:00
bors[bot]
745bd45ddb
Merge #4227
...
4227: Report invalid, nested, multi-segment crate-paths r=matklad a=djrenren
There was a bug in the previous path-validating code that didn't detect multi-segment paths that started with `crate`.
```rust
// Successfully reported
use foo::{crate};
// BUG: was not being reported
use foo::{crate::bar};
```
This was due to my confusion about path-associativity. That is, the path with no qualifier is the innermost path, not the outermost. I've updated the code with a lot of comments to explain what's going on.
This bug was discovered when I found an erroneous `ok` test which I reported here:
https://github.com/rust-analyzer/rust-analyzer/issues/4226
This test now fails and has been modified, hopefully in the spirit of the original test, to be correct. Sorry about submitting the bug in the first place!
Co-authored-by: John Renner <john@jrenner.net>
2020-04-30 18:37:35 +00:00
John Renner
513a3615f6
Report invalid, nested, multi-segment crate-paths
...
Specifically, things like:
use foo::{crate::bar};
Are now being caught, when before we only caught:
use foo::{crate};
2020-04-30 11:16:09 -07:00
Edwin Cheng
45c4f620b1
Special-case try macro_rules
2020-04-30 22:07:46 +08:00
Aleksey Kladov
c51c8bfb84
Special-case try macro to better support 2015 edition
2020-04-30 14:17:14 +02:00
Aleksey Kladov
5e5eb6a108
Align grammar for record patterns and literals
...
The grammar now looks like this
[name_ref :] pat
2020-04-12 00:00:15 +02:00
Aleksey Kladov
6b49e774e2
Remove dead code
2020-04-11 23:08:05 +02:00
Aleksey Kladov
7a39bc3ba2
Make records grammar more orthogonal
...
We used
name [: expr]
grammar before, now it is
[name :] expr
which makes things simpler
2020-04-11 19:20:41 +02:00
Aleksey Kladov
5c5bde47fb
Rename some tokens
2020-04-10 17:07:09 +02:00
Aleksey Kladov
8d71a6bf0c
Scale token generation back
2020-04-10 16:10:28 +02:00
Luca Barbieri
74e3b48806
Parse correctly fn f<T>() where T: Fn() -> u8 + Send {}
...
We used to parse it as T: Fn() -> (u8 + Send), which is different from
the rustc behavior of T: (Fn() -> u8) + Send
2020-04-09 13:05:41 +02:00
Luca Barbieri
60f4d7bd8c
Provide more complete AST accessors to support usage in rustc
2020-04-09 11:50:37 +02:00
Edwin Cheng
53d05448c1
Add L_DOLLAR for TYPE_RECOVERY_SET
2020-04-08 18:34:20 +08:00
Aleksey Kladov
da8eb29a2f
Macro patterns are not confused with expressions.
...
We treat macro calls as expressions (there's appropriate Into impl),
which causes problem if there's expresison and non-expression macro in
the same node (like in the match arm).
We fix this problem by nesting macor patterns into another node (the
same way we nest path into PathExpr or PathPat). Ideally, we probably
should add a similar nesting for macro expressions, but that needs
some careful thinking about macros in blocks: `{ am_i_expression!() }`.
2020-04-03 16:12:38 +02:00
Aleksey Kladov
0e46ed8420
Cleanups
2020-04-03 15:44:06 +02:00
Aleksey Kladov
f6188caaa0
Fix parsing lambdas with return type
...
We should eat only a single block, and not whatever larger expression
may start with a block.
closes #3721
2020-03-25 17:01:28 +01:00
Aleksey Kladov
89694ec8f6
Support arbitrary discriminants
...
Closes #3661
2020-03-20 08:50:34 +01:00