Aleksey Kladov
dd59237e0c
minor
2020-04-23 23:18:18 +02:00
Aleksey Kladov
27dd0086ea
Fully get rid of SyntaxNodePtr::range
2020-04-23 21:23:36 +02:00
bors[bot]
4a250021b1
Merge #4038
...
4038: Group generated ast boilerplate apart from the interesting part r=matklad a=Veetaha
Boilerplate `AstNode` and `From` impls are moved to the end further from the interesting part in `generated.rs`
Co-authored-by: veetaha <veetaha2@gmail.com>
2020-04-21 12:58:27 +00:00
Aleksey Kladov
8a04372fec
Fix panic in split_imports assist
...
The fix is admittedly quit literally just papering over.
Long-term, I see two more principled approaches:
* we switch to a fully tree-based impl, without parse . to_string
step; with this approach, there shouldn't be any panics. The results
might be nonsensical, but so was the original input.
* we preserve the invariant that re-parsing constructed node is an
identity, and make all the `make_xxx` method return an `Option`.
closes #4044
2020-04-20 16:34:01 +02:00
veetaha
972d3b2ba3
Group generated ast boilerplate apart from the interesting part
2020-04-18 23:51:13 +03:00
Aleksey Kladov
cae2498513
Don't expose SyntaxNodePtr impl details
2020-04-16 21:01:04 +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
0aece75cdd
Remove dead code
2020-04-11 19:36:31 +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
997c959d4f
Merge pull request #3935 from cjhopman/todo
...
Change missing impl assist to use todo!() instead of unimplemented()
2020-04-11 16:05:23 +02:00
Aleksey Kladov
c1244c853c
Forward compat
2020-04-11 00:27:00 +02:00
Chris Hopman
af04d45d32
Change missing impl assist to use todo!() instead of unimplemented()
...
todo!() "Indicates unfinished code" (https://doc.rust-lang.org/std/macro.todo.html )
Rust documentation provides further clarification:
> The difference between unimplemented! and todo! is that while todo!
> conveys an intent of implementing the functionality later and the
> message is "not yet implemented", unimplemented! makes no such claims.
todo!() seems more appropriate for assists that insert missing impls.
2020-04-10 13:56:12 -07:00
Aleksey Kladov
c476742f47
Simplify
2020-04-10 17:47:49 +02:00
Aleksey Kladov
5c5bde47fb
Rename some tokens
2020-04-10 17:07:09 +02:00
Aleksey Kladov
d4332760d8
Better readability
2020-04-10 16:10:28 +02:00
Aleksey Kladov
e0f02d233f
Remove dead code
2020-04-10 16:10:28 +02:00
Aleksey Kladov
4560fe2abf
Generate only minimal set of ineresting tokens
2020-04-10 16:10:28 +02:00
Aleksey Kladov
8d71a6bf0c
Scale token generation back
2020-04-10 16:10:28 +02:00
Aleksey Kladov
779f06ed77
Convert more tokens
2020-04-10 16:10:28 +02:00
Aleksey Kladov
548f562dda
Other delimiters
2020-04-10 16:10:28 +02:00
Aleksey Kladov
460c8bbdec
Curley tokens
2020-04-10 16:10:28 +02:00
Aleksey Kladov
1c5d859195
Start replacing tokens
2020-04-10 16:10:28 +02:00
Aleksey Kladov
c8b4c36f81
Semicolon token
2020-04-10 16:10:28 +02:00
Aleksey Kladov
f89f2e3885
More readable ast_src for keywords
2020-04-10 16:10:28 +02:00
Aleksey Kladov
30084a56a5
Simpler acessors for keywords
2020-04-09 23:42:01 +02:00
Aleksey Kladov
00ec0c1066
use uniform accessor
2020-04-09 23:19:51 +02:00
Aleksey Kladov
046a021013
use stdx
2020-04-09 23:05:13 +02:00
Aleksey Kladov
0ed27c388a
Drop needless trait
2020-04-09 23:02:10 +02:00
Aleksey Kladov
e07d3c94de
Remove code duplication
2020-04-09 22:22:58 +02:00
Aleksey Kladov
2bfb65db93
Be consistent about token accesors
2020-04-09 18:48:13 +02:00
Aleksey Kladov
e6d22187a6
Add _token suffix to token accessors
...
I think this makes is more clear which things are : AstNode and which
are : AstToken
2020-04-09 18:25:36 +02:00
Aleksey Kladov
a95116fbfa
Simplify
2020-04-09 18:20:06 +02:00
Aleksey Kladov
56c8581b90
Put displays at the end
2020-04-09 18:11:16 +02:00
Aleksey Kladov
9285cbffb6
More compact
2020-04-09 18:08:54 +02:00
Aleksey Kladov
6fd2a12495
More compact generated code
2020-04-09 18:07:16 +02:00
Aleksey Kladov
4a063e651f
Move the rest of the tokens to generated/tokens
2020-04-09 17:58:15 +02:00
Aleksey Kladov
c80795e274
Move generated tokens to a separate file
2020-04-09 17:47:46 +02:00
Aleksey Kladov
59b6b2278b
Start ast/generated/tokens
2020-04-09 16:25:06 +02:00
Aleksey Kladov
d61932ef7e
Prepare for spliting generated into tokens and nodes
2020-04-09 16:17:18 +02:00
Aleksey Kladov
738fc79c92
Remove allocations from LCA
...
I haven't actually profiled this, but not allocating a hash map (or
anything, really) seems like a good idea
2020-04-09 13:56:45 +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
Aleksey Kladov
689661c959
Scale back to only two traits
2020-04-09 13:00:09 +02:00
Luca Barbieri
60f4d7bd8c
Provide more complete AST accessors to support usage in rustc
2020-04-09 11:50:37 +02:00
Aleksey Kladov
8f01e62bb9
Scale back the traits
2020-04-09 11:04:18 +02:00
Luca Barbieri
68196ccc10
Add AstElement trait, generate tokens, support tokens in enums
...
- Adds a new AstElement trait that is implemented by all generated
node, token and enum structs
- Overhauls the code generators to code-generate all tokens, and
also enhances enums to support including tokens, node, and nested
enums
2020-04-08 17:15:12 +02:00
Luca Barbieri
35a69d09ee
Fix warnings emitted when compiling as part of rustc
2020-04-08 14:49:19 +02:00
Aleksey Kladov
79b48a9e77
Merge pull request #3863 from Veetaha/feature/migrate-to-rast
...
Migrate tests .txt -> .rast
2020-04-07 13:10:43 +02:00
Laurențiu Nicola
52fd2c8e48
Fix unnecessary braces warnings
2020-04-06 17:21:33 +03:00
veetaha
da091b1303
Migrate tests .txt -> .rast
...
The sytax tree output files now use .rast extension
(rust-analyzer syntax tree or rust abstract syntax tree
(whatever)).
This format has a editors/code/ra_syntax_tree.tmGrammar.json declaration
that supplies nice syntax highlighting for .rast files.
2020-04-06 14:04:26 +03:00
est31
2f6914824a
Remove rustc_lexer dependency in favour of rustc-ap-rustc_lexer
...
The latter is auto-published on a regular schedule (Right now weekly).
2020-04-06 10:08:51 +02:00