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
Florian Diebold
e6ec4a329f
Better fix for stuck parser?
2020-03-16 18:38:19 +01:00
Florian Diebold
c32529ddd0
Get tests working
2020-03-16 18:38:19 +01:00
Aleksey Kladov
bee5cdb359
Parse variadics correctly
...
closes #3571
2020-03-13 13:54:14 +01:00
Aleksey Kladov
1e19847af3
Move verbose tests out of line
2020-03-13 12:20:42 +01:00
Aleksey Kladov
4a745cc8cf
Fix parsing of stement-ish binary expressions
...
closes #3512
2020-03-11 14:28:18 +01:00
Edwin Cheng
1465cc0c4f
Implement concat macro
2020-03-04 01:21:14 +08:00
Aleksey Kladov
a1e1869554
Rename ast::ImplBlock -> ast::ImplDef
2020-02-29 21:33:15 +01:00
Edwin Cheng
f4e48ad3e4
Parse attr in rhs of let stmts
2020-02-28 13:08:47 +08:00
Veetaha
59dc797eb3
Fix dat comment
2020-02-22 14:16:13 +02:00
Kirill Bulatov
eceaf94f19
More manual clippy fixes
2020-02-18 16:12:37 +02:00
Kirill Bulatov
b8ddcb0652
Run cargo +nightly fix --clippy -Z unstable-options
2020-02-18 16:03:08 +02:00
Han Mertens
b435fe8b77
Add test for unnamed argument in function pointer
2020-02-12 22:55:37 +01:00
Han Mertens
0e10e77a78
Support unnamed arguments in function pointers
...
Fixes #3089
2020-02-12 21:40:05 +01:00