Commit Graph

835 Commits

Author SHA1 Message Date
Pascal Hertleif
a37cd5ad43 Add trivial fuzzer for parser
As described in #61, fuzz testing some parts of this would be ~~fun~~
helpful. So, I started with the most trivial fuzzer I could think of:
Put random stuff into File::parse and see what happens.

To speed things up, I also did

    cp src/**/*.rs fuzz/corpus/parser/

in the `crates/libsyntax2/` directory (running the fuzzer once will
generate the necessary directories).
2018-09-08 16:55:53 +02:00
Aleksey Kladov
df05c5c3e2 Don't overflow when limiting symbol search 2018-09-08 15:39:28 +03:00
Aleksey Kladov
7daaddb2ac Some abstraction around workers 2018-09-08 13:15:01 +03:00
Aleksey Kladov
326ffcefe0 Deal with deadlocks in a more principaled way 2018-09-08 12:36:02 +03:00
Aleksey Kladov
d9ccebd913 fix deadlock 2018-09-08 12:08:46 +03:00
Aleksey Kladov
f48b9d9be7 Fix block structure in enums 2018-09-08 10:55:09 +03:00
Aleksey Kladov
749907d330 simplify 2018-09-08 10:38:53 +03:00
Aleksey Kladov
febbc9acdd Don't get stuck in tuple exprs 2018-09-08 10:35:05 +03:00
Aleksey Kladov
a0a347eac9 Don't get stuck in macros 2018-09-08 10:28:53 +03:00
Aleksey Kladov
bd3a26493f fix stuck parser 2018-09-08 10:13:32 +03:00
Aleksey Kladov
44334f6f56 fix labled expressions 2018-09-08 09:18:42 +03:00
Aleksey Kladov
127814d9a7 nested mod completion 2018-09-08 01:35:20 +03:00
Aleksey Kladov
ff1c82216c Remove dyn dispatch 2018-09-08 01:16:07 +03:00
Aleksey Kladov
fcfda94664 Separete API from IMPL
Looks like there's a rule of thumb: don't call API functions from an
implementation! In this case, following this rule of thumb saves us an
Arc-bump!
2018-09-07 22:05:05 +03:00
bors[bot]
ba7b3c2108 Merge #59
59: Moved TokenSet into it's own file. r=matklad a=Plasticcaz

As discussed in Issue #11, the only thing left in that issue that hasn't been fixed appears to be that TokenSet is not in it's own file. This pull request pulls TokenSet, it's macros and it's test into it's own file.

Co-authored-by: Zac Winter <plasticcaz@gmail.com>
2018-09-06 14:05:37 +00:00
Zac Winter
518cc87496 Moved TokenSet into it's own file. 2018-09-06 21:57:04 +08:00
Aleksey Kladov
751562d2f7 better introduce 2018-09-06 01:19:24 +03:00
Aleksey Kladov
bb64edf8ba introduce variable 2018-09-06 00:59:07 +03:00
Aleksey Kladov
47e8b80e9b use correct workdir for the server 2018-09-05 21:38:43 +03:00
bors[bot]
529ebd5840 Merge #58
58: even less hacks r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-09-05 17:23:25 +00:00
Aleksey Kladov
669eabe892 even less hacks 2018-09-05 20:22:52 +03:00
bors[bot]
8f30179f82 Merge #57
57: less hacky paths r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-09-05 15:28:21 +00:00
Aleksey Kladov
d0e22d7578 less hacky paths 2018-09-05 18:27:44 +03:00
bors[bot]
ad451686a8 Merge #56
56: Unify lookahead naming between parser and lexer. r=matklad a=zachlute

Resolves Issue #26.

I wanted to play around with libsyntax2, and fixing a random issue seemed like a good way to mess around in the code.

This PR mostly does what's suggested in that issue. I elected to go with `at` and `at_str` instead of trying to do any fancy overloading shenanigans, because...uh, well, frankly I don't really know how to do any fancy overloading shenanigans. The only really questionable bit is `nth_is_p`, which could also have potentially been named `nth_at_p`, but `is` seemed more apropos.

I also added simple tests for `Ptr` so I could be less terrified I broke something. 

Comments and criticisms very welcome. I'm still pretty new to Rust.

Co-authored-by: Zach Lute <zach.lute@gmail.com>
2018-09-05 15:07:17 +00:00
Aleksey Kladov
649f7faf7d fix tests on windows 2018-09-05 15:03:27 +01:00
Zach Lute
d21fead150 Added tests for Ptr. 2018-09-04 23:26:11 -07:00
Zach Lute
af0ae9ee04 Updated Ptr methods to better match Parser method names. 2018-09-04 22:56:16 -07:00
Aleksey Kladov
f87771092c switch to rayon threadpool 2018-09-04 20:43:37 +03:00
Aleksey Kladov
8b0210d233 simplify 2018-09-04 19:00:01 +03:00
Aleksey Kladov
8ed06d766f better extend selection 2018-09-04 12:48:39 +03:00
Aleksey Kladov
e44a6bcc82 for types in bounds 2018-09-04 12:25:23 +03:00
Aleksey Kladov
3a017aaa52 dont change readonly files 2018-09-04 11:40:45 +03:00
Aleksey Kladov
a668f703fa micro-optimize 2018-09-04 05:09:39 +03:00
Aleksey Kladov
294534abc7 accidentally quadratic 2018-09-04 05:04:55 +03:00
Aleksey Kladov
4df965a002 work 2018-09-04 04:13:22 +03:00
Aleksey Kladov
c3e28f0646 extern blocks 2018-09-04 00:49:21 +03:00
Aleksey Kladov
952da31f44 switch to internal feedback 2018-09-03 23:32:42 +03:00
Aleksey Kladov
971054e4d0 fix the test 2018-09-03 21:51:17 +03:00
Aleksey Kladov
f590635f57 faster text len 2018-09-03 21:48:26 +03:00
Aleksey Kladov
5ba645c009 index libraies off the main thread 2018-09-03 21:26:59 +03:00
Aleksey Kladov
47cbaeba6f Index deps 2018-09-03 21:03:37 +03:00
Aleksey Kladov
b04c14d4ad dispatch acros roots 2018-09-03 19:46:30 +03:00
Aleksey Kladov
2f2feef9af completion for trait params 2018-09-03 15:46:14 +03:00
Aleksey Kladov
4798a89a12 Complete params 2018-09-03 15:10:06 +03:00
Aleksey Kladov
58480b9190 method call scope 2018-09-03 02:01:43 +03:00
Aleksey Kladov
fdd282ee0c improve test 2018-09-03 01:52:59 +03:00
Aleksey Kladov
23303cd0f8 match scope 2018-09-03 01:51:46 +03:00
Aleksey Kladov
83e2ab434c store file id inside symbol 2018-09-02 23:36:23 +03:00
Aleksey Kladov
a5e319ec7e Store symbols separately from file data 2018-09-02 23:09:47 +03:00
Aleksey Kladov
440dc41dd8 Add source root 2018-09-02 22:51:59 +03:00