Aleksey Kladov
9818108798
Rename BindPat -> IdentPat
2020-07-31 20:12:10 +02:00
Aleksey Kladov
6791eb9685
Rename PalceholderPat -> WildcardPat
2020-07-31 20:07:21 +02:00
Aleksey Kladov
14cb96ec0e
Allign RecordPat with RecordExpr
2020-07-31 20:00:48 +02:00
Aleksey Kladov
ddf08daddf
Fix const arguments grammar
2020-07-31 18:46:07 +02:00
Aleksey Kladov
91781c7ce8
Rename TypeArgList -> GenericArgList
2020-07-31 18:29:29 +02:00
Aleksey Kladov
633aace411
Rename LambdaExpr -> ClosureExpr
2020-07-31 17:08:58 +02:00
Aleksey Kladov
a6e45c6c69
Reame PlaceholderType -> InferType
2020-07-31 14:12:51 +02:00
Aleksey Kladov
c5798c4d75
Finalize impl Grammar
2020-07-30 18:28:28 +02:00
Aleksey Kladov
c83467796b
Finalize Trait grammar
2020-07-30 18:17:28 +02:00
Aleksey Kladov
3cd4112bdc
Finalize const&static grammar
2020-07-30 18:02:20 +02:00
Aleksey Kladov
1766aae145
Rename EnumVariant -> Variant
2020-07-30 17:56:53 +02:00
Aleksey Kladov
609680ef97
Rename EnumDef -> Enum
2020-07-30 17:52:53 +02:00
Aleksey Kladov
216a5344c8
Rename StructDef -> Struct
2020-07-30 17:50:40 +02:00
Aleksey Kladov
1ae4721c9c
Finalize union grammar
2020-07-30 17:38:52 +02:00
Aleksey Kladov
0a9e3ccc26
Rename FieldDef -> Field
2020-07-30 16:49:13 +02:00
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
b6b77d1396
Update tests
2020-07-30 14:20:33 +02:00
Aleksey Kladov
96313283cd
Update tests
2020-07-30 12:33:05 +02:00
Aleksey Kladov
026e4e6af1
Update tests
2020-07-30 12:01:14 +02:00
Aleksey Kladov
081f35fe1b
Update tests
2020-07-30 11:50:56 +02:00
Aleksey Kladov
b10e437039
Fix nameref parsing
2020-07-28 20:59:48 +02:00
Laurențiu Nicola
76ddface08
Fix panic in split and merge import assists
2020-06-23 16:51:07 +03:00
David Lattimore
bc99e95d7d
Implement APIs for parsing expressions, types, paths, patterns and items
2020-06-21 22:28:17 +10:00
Aleksey Kladov
b5c4f2faa2
Update parser tests with env var
2020-06-15 11:02:17 +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
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
a5588b9e19
Update tests
2020-06-03 20:39:57 -04:00
Avi Dessauer
fb632c747d
Parse default unsafe & default const
2020-06-03 20:16:38 -04:00
robojumper
367487fe88
Support raw_ref_op's raw reference operator
2020-05-28 21:42:22 +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
642a3392d9
Update test data
2020-05-02 11:21:39 +02:00
John Renner
3bb46042fb
Validate uses of self and super
2020-05-01 08:59:24 -07: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
John Renner
0af727da91
Validate the location of crate
in paths
2020-04-29 11:06:51 -07:00
Aleksey Kladov
8843588fca
Convert tests to text-size
2020-04-25 11:59:18 +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
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
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