Commit graph

241 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
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
Aleksey Kladov
669eabe892 even less hacks 2018-09-05 20:22:52 +03: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
Aleksey Kladov
e98d8cd255 nail down runnables 2018-09-02 16:36:03 +03:00
Aleksey Kladov
1329dd4e28 Avoid clones 2018-09-02 15:18:43 +03:00
Aleksey Kladov
80be61ed78 project model 2018-09-02 14:46:15 +03:00