Edwin Cheng
c4173bb468
Handle extended key value attr in mbe
2021-04-17 14:31:52 +08:00
Jonas Schievink
3abcdc03ba
Make ast_to_token_tree
infallible
...
It could never return `None`, so reflect that in the return type
2021-04-04 01:46:45 +02:00
Edwin Cheng
20d55ce44d
Allow include! an empty content file
2021-04-03 12:50:55 +08:00
Jonas Schievink
eaffdae300
Allow ,
to delimit macro 2.0 rules
2021-04-03 03:08:31 +02:00
Matthias Krüger
202b51bc7b
a lot of clippy::style fixes
2021-03-21 16:15:41 +01:00
Matthias Krüger
ae7e55c1dd
clippy::complexity simplifications related to Iterators
2021-03-21 13:13:34 +01:00
Kevin Mehall
0a7f28620a
Fix and test edge cases of _
as ident
2021-03-20 17:54:57 -06:00
Kevin Mehall
0a0e22235b
Make bare underscore token an Ident rather than Punct in proc-macro
2021-03-20 12:28:44 -06:00
Edwin Cheng
49b876de09
Reorganize mbe tests
2021-03-18 17:22:52 +08:00
Matthias Krüger
048dad8c2e
don't clone types that are copy (clippy::clone_on_copy)
2021-03-17 01:56:31 +01:00
Matthias Krüger
c5d654d513
use if let Some(x) instead of if x.is_some() and x.unwrap() (clippy::unnecessary-unwrap)
2021-03-17 01:39:58 +01:00
Matthias Krüger
966c23f529
avoid converting types into themselves via .into() (clippy::useless-conversion)
...
example: let x: String = String::from("hello world").into();
2021-03-17 01:27:56 +01:00
Edwin Cheng
8e07b23b84
Fix macro expansion for statements w/o semicolon
2021-03-16 13:44:50 +08:00
Laurențiu Nicola
88cee24c6c
Enable thread-local coverage marks
2021-03-15 16:02:50 +02:00
Matthias Krüger
cad617bba0
some clippy::performance fixes
...
use vec![] instead of Vec::new() + push()
avoid redundant clones
use chars instead of &str for single char patterns in ends_with() and starts_with()
allocate some Vecs with capacity to avoid unneccessary resizing
2021-03-15 10:19:59 +01:00
Edwin Cheng
7279749bbb
Simpify mbe bindings builder
2021-03-14 11:54:19 +08:00
Edwin Cheng
b3b91046dd
Make sure ill-form macro handle propely
2021-03-14 11:24:55 +08:00
bors[bot]
fe4a94fff3
Merge #7994
...
7994: Speed up mbe matching in heavy recursive cases r=edwin0cheng a=edwin0cheng
In some cases (e.g. #4186 ), mbe matching is very slow due to a lot of copy and allocation for bindings, this PR try to solve this problem by introduce a semi "link-list" approach for bindings building.
I used this [test case](https://github.com/weiznich/minimal_example_for_rust_81262 ) (for `features(32-column-tables)`) to run following command to benchmark:
```
time rust-analyzer analysis-stats --load-output-dirs ./
```
Before this PR : 2 mins
After this PR: 3 seconds.
However, for 64-column-tables cases, we still need 4 mins to complete.
I will try to investigate in the following weeks.
bors r+
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2021-03-13 13:04:45 +00:00
Edwin Cheng
9117148f42
Add bindings builder for speed up matching
2021-03-13 20:52:36 +08:00
Aleksey Kladov
842d8ad9c8
Compilation speed
2021-03-09 22:30:58 +03:00
Laurențiu Nicola
fc9eed4836
Use upstream cov-mark
2021-03-08 22:19:44 +02:00
Edwin Cheng
20eda09712
Fix fail to parse :: for meta in mbe
2021-03-06 04:57:34 +08:00
bors[bot]
91bf5fa827
Merge #7513
...
7513: NFA parser for mbe matcher r=matklad a=edwin0cheng
Almost straight porting from rustc one, but a little bit slow :(
```
rust-analyzer analysis-stats -q .
```
From:
```log
Database loaded: 636.11ms, 277minstr
crates: 36, mods: 594, decls: 11527, fns: 9017
Item Collection: 10.99s, 60ginstr
exprs: 249618, ??ty: 2699 (1%), ?ty: 2101 (0%), !ty: 932
Inference: 28.94s, 123ginstr
Total: 39.93s, 184ginstr
```
To:
```log
Database loaded: 630.90ms, 277minstr
crates: 36, mods: 594, decls: 11528, fns: 9018
Item Collection: 13.70s, 77ginstr
exprs: 249482, ??ty: 2699 (1%), ?ty: 2101 (0%), !ty: 932
Inference: 30.27s, 133ginstr
Total: 43.97s, 211ginstr
```
Fixes #4777
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2021-03-02 13:20:47 +00:00
Laurențiu Nicola
a445584029
Use an unversioned profile dependency in mbe
2021-03-01 18:11:12 +02:00
bors[bot]
1c7b2b8c07
Merge #7822
...
7822: Paperover a bug in cargo-workspace for publish RA r=lnicola a=edwin0cheng
r? @lnicola
See also https://github.com/pksunkara/cargo-workspaces/issues/39
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2021-03-01 11:29:47 +00:00
Edwin Cheng
43f52a965c
Paperover a bug in cargo-workspace for publish RA
2021-03-01 19:23:45 +08:00
Dániel Buga
2f7b03b01c
Remove redundant semicolon
2021-03-01 09:05:14 +01:00
Edwin Cheng
cff2201c30
NFA parser for mbe matcher
2021-03-01 00:11:14 +08:00
Edwin Cheng
bf8bc5c882
Fix non-latin characters doc comment for mbe
2021-02-28 13:49:08 +08:00
Edwin Cheng
f5bf1a9650
Fix builtin macros split exprs on comma
2021-02-28 13:06:17 +08:00
Edwin Cheng
23dbf36c7d
Add benchmark test for mbe
2021-02-25 05:47:13 +08:00
Pavan Kumar Sunkara
a89fc070c6
Make sure normal dependencies always have version
2021-02-03 12:51:07 +00:00
Edwin Cheng
438b34dcee
Simpilfy mbe parsing
2021-01-30 16:12:30 +08:00
Edwin Cheng
706ac8256d
Simplify mbe match error.
...
Handle parse error in rule parsing instead of match in mbe
2021-01-30 00:21:43 +08:00
Edwin Cheng
4c7d8cbfbf
Rename mbe_expander for consistency
2021-01-29 20:23:38 +08:00
Edwin Cheng
ce4eeec1bf
Support Macro v2 in mbe
2021-01-26 05:15:47 +08:00
Aleksey Kladov
3429b32ad1
⬆️ rowan
...
It now stores text inline with tokens
2021-01-20 14:04:53 +03:00
Aleksey Kladov
46b4f89c92
.
2021-01-20 01:56:11 +03:00
Edwin Cheng
7b3e960d94
Reduce TokenMap size
2021-01-19 19:26:53 +08:00
Jonas Schievink
2d799cf5e0
shrink_to_fit TokenMap
's backing storage
2021-01-18 18:40:06 +01:00
yugo-horie
f273995a25
Swap assert_eq_text\!(expected, actual)
2021-01-16 13:30:26 +09:00
bors[bot]
d76143da19
Merge #7211
...
7211: Fixed expr meta var after path colons in mbe r=matklad a=edwin0cheng
Fixes #7207
Added `L_DOLLAR` in `ITEM_RECOVERY_SET` , but I don't know whether it is a good idea.
r? @matklad
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2021-01-14 10:52:12 +00:00
Edwin Cheng
8d62576a9b
Fixed expr meta var after path colons in mbe
2021-01-10 20:52:46 +08:00
Vincent Esche
586f84c730
Fixed typos in public type names
2021-01-09 15:41:29 +01:00
Vincent Esche
5877db28b4
Fixed typos in private type names
2021-01-09 15:41:29 +01:00
Vincent Esche
4702c01553
Fixed typos in tests
2021-01-09 15:41:29 +01:00
Vincent Esche
23f05aa1ad
Fixed typos in log::warn!
message
2021-01-09 15:41:29 +01:00
Vincent Esche
21f8239ac8
Fixed typos in code comments
2021-01-09 15:41:29 +01:00
Edwin Cheng
bced02c5dc
Add test
2021-01-08 14:00:23 +08:00
Edwin Cheng
74a24adc8e
Fix bug when $crate in LHS in mbe
2021-01-08 14:00:16 +08:00