diff options
26 files changed, 707 insertions, 176 deletions
diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..a77342d72 --- /dev/null +++ b/.gitattributes | |||
@@ -0,0 +1 @@ | |||
crates/ra_syntax/tests/data/** -text | |||
diff --git a/Cargo.lock b/Cargo.lock index ddd508b0a..0400c6a94 100644 --- a/Cargo.lock +++ b/Cargo.lock | |||
@@ -2,7 +2,7 @@ | |||
2 | # It is not intended for manual editing. | 2 | # It is not intended for manual editing. |
3 | [[package]] | 3 | [[package]] |
4 | name = "aho-corasick" | 4 | name = "aho-corasick" |
5 | version = "0.6.10" | 5 | version = "0.7.3" |
6 | source = "registry+https://github.com/rust-lang/crates.io-index" | 6 | source = "registry+https://github.com/rust-lang/crates.io-index" |
7 | dependencies = [ | 7 | dependencies = [ |
8 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | 8 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -13,7 +13,7 @@ name = "ansi_term" | |||
13 | version = "0.11.0" | 13 | version = "0.11.0" |
14 | source = "registry+https://github.com/rust-lang/crates.io-index" | 14 | source = "registry+https://github.com/rust-lang/crates.io-index" |
15 | dependencies = [ | 15 | dependencies = [ |
16 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 16 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
17 | ] | 17 | ] |
18 | 18 | ||
19 | [[package]] | 19 | [[package]] |
@@ -34,9 +34,9 @@ name = "atty" | |||
34 | version = "0.2.11" | 34 | version = "0.2.11" |
35 | source = "registry+https://github.com/rust-lang/crates.io-index" | 35 | source = "registry+https://github.com/rust-lang/crates.io-index" |
36 | dependencies = [ | 36 | dependencies = [ |
37 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 37 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
38 | "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", | 38 | "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", |
39 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 39 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
40 | ] | 40 | ] |
41 | 41 | ||
42 | [[package]] | 42 | [[package]] |
@@ -46,15 +46,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
46 | 46 | ||
47 | [[package]] | 47 | [[package]] |
48 | name = "backtrace" | 48 | name = "backtrace" |
49 | version = "0.3.14" | 49 | version = "0.3.15" |
50 | source = "registry+https://github.com/rust-lang/crates.io-index" | 50 | source = "registry+https://github.com/rust-lang/crates.io-index" |
51 | dependencies = [ | 51 | dependencies = [ |
52 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | 52 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", |
53 | "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", | 53 | "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", |
54 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", | 54 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", |
55 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 55 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
56 | "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", | 56 | "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", |
57 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 57 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
58 | ] | 58 | ] |
59 | 59 | ||
60 | [[package]] | 60 | [[package]] |
@@ -62,8 +62,8 @@ name = "backtrace-sys" | |||
62 | version = "0.1.28" | 62 | version = "0.1.28" |
63 | source = "registry+https://github.com/rust-lang/crates.io-index" | 63 | source = "registry+https://github.com/rust-lang/crates.io-index" |
64 | dependencies = [ | 64 | dependencies = [ |
65 | "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", | 65 | "cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", |
66 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 66 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
67 | ] | 67 | ] |
68 | 68 | ||
69 | [[package]] | 69 | [[package]] |
@@ -123,14 +123,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
123 | dependencies = [ | 123 | dependencies = [ |
124 | "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", | 124 | "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", |
125 | "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", | 125 | "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", |
126 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 126 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
127 | "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 127 | "serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
128 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", | 128 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", |
129 | ] | 129 | ] |
130 | 130 | ||
131 | [[package]] | 131 | [[package]] |
132 | name = "cc" | 132 | name = "cc" |
133 | version = "1.0.31" | 133 | version = "1.0.34" |
134 | source = "registry+https://github.com/rust-lang/crates.io-index" | 134 | source = "registry+https://github.com/rust-lang/crates.io-index" |
135 | 135 | ||
136 | [[package]] | 136 | [[package]] |
@@ -145,7 +145,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
145 | dependencies = [ | 145 | dependencies = [ |
146 | "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", | 146 | "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", |
147 | "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | 147 | "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", |
148 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 148 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
149 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", | 149 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", |
150 | ] | 150 | ] |
151 | 151 | ||
@@ -175,8 +175,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
175 | dependencies = [ | 175 | dependencies = [ |
176 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", | 176 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", |
177 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", | 177 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", |
178 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 178 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
179 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 179 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
180 | ] | 180 | ] |
181 | 181 | ||
182 | [[package]] | 182 | [[package]] |
@@ -201,12 +201,12 @@ dependencies = [ | |||
201 | "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", | 201 | "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", |
202 | "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | 202 | "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", |
203 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", | 203 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", |
204 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 204 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
205 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", | 205 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", |
206 | "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | 206 | "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", |
207 | "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", | 207 | "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", |
208 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | 208 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", |
209 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 209 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
210 | ] | 210 | ] |
211 | 211 | ||
212 | [[package]] | 212 | [[package]] |
@@ -265,7 +265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
265 | dependencies = [ | 265 | dependencies = [ |
266 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", | 266 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", |
267 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", | 267 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", |
268 | "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", | 268 | "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", |
269 | ] | 269 | ] |
270 | 270 | ||
271 | [[package]] | 271 | [[package]] |
@@ -298,7 +298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
298 | 298 | ||
299 | [[package]] | 299 | [[package]] |
300 | name = "either" | 300 | name = "either" |
301 | version = "1.5.1" | 301 | version = "1.5.2" |
302 | source = "registry+https://github.com/rust-lang/crates.io-index" | 302 | source = "registry+https://github.com/rust-lang/crates.io-index" |
303 | 303 | ||
304 | [[package]] | 304 | [[package]] |
@@ -319,7 +319,7 @@ name = "error-chain" | |||
319 | version = "0.12.0" | 319 | version = "0.12.0" |
320 | source = "registry+https://github.com/rust-lang/crates.io-index" | 320 | source = "registry+https://github.com/rust-lang/crates.io-index" |
321 | dependencies = [ | 321 | dependencies = [ |
322 | "backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", | 322 | "backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", |
323 | ] | 323 | ] |
324 | 324 | ||
325 | [[package]] | 325 | [[package]] |
@@ -327,7 +327,7 @@ name = "failure" | |||
327 | version = "0.1.5" | 327 | version = "0.1.5" |
328 | source = "registry+https://github.com/rust-lang/crates.io-index" | 328 | source = "registry+https://github.com/rust-lang/crates.io-index" |
329 | dependencies = [ | 329 | dependencies = [ |
330 | "backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", | 330 | "backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", |
331 | "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | 331 | "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", |
332 | ] | 332 | ] |
333 | 333 | ||
@@ -338,7 +338,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
338 | dependencies = [ | 338 | dependencies = [ |
339 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", | 339 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", |
340 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", | 340 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", |
341 | "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", | 341 | "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", |
342 | "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", | 342 | "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", |
343 | ] | 343 | ] |
344 | 344 | ||
@@ -353,19 +353,19 @@ version = "0.2.4" | |||
353 | source = "registry+https://github.com/rust-lang/crates.io-index" | 353 | source = "registry+https://github.com/rust-lang/crates.io-index" |
354 | dependencies = [ | 354 | dependencies = [ |
355 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", | 355 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", |
356 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 356 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
357 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", | 357 | "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", |
358 | ] | 358 | ] |
359 | 359 | ||
360 | [[package]] | 360 | [[package]] |
361 | name = "flexi_logger" | 361 | name = "flexi_logger" |
362 | version = "0.11.2" | 362 | version = "0.11.4" |
363 | source = "registry+https://github.com/rust-lang/crates.io-index" | 363 | source = "registry+https://github.com/rust-lang/crates.io-index" |
364 | dependencies = [ | 364 | dependencies = [ |
365 | "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | 365 | "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", |
366 | "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", | 366 | "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", |
367 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | 367 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", |
368 | "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | 368 | "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", |
369 | ] | 369 | ] |
370 | 370 | ||
371 | [[package]] | 371 | [[package]] |
@@ -380,7 +380,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
380 | dependencies = [ | 380 | dependencies = [ |
381 | "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | 381 | "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", |
382 | "fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", | 382 | "fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", |
383 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 383 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
384 | ] | 384 | ] |
385 | 385 | ||
386 | [[package]] | 386 | [[package]] |
@@ -388,7 +388,7 @@ name = "fsevent-sys" | |||
388 | version = "0.1.6" | 388 | version = "0.1.6" |
389 | source = "registry+https://github.com/rust-lang/crates.io-index" | 389 | source = "registry+https://github.com/rust-lang/crates.io-index" |
390 | dependencies = [ | 390 | dependencies = [ |
391 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 391 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
392 | ] | 392 | ] |
393 | 393 | ||
394 | [[package]] | 394 | [[package]] |
@@ -426,7 +426,7 @@ dependencies = [ | |||
426 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | 426 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", |
427 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | 427 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", |
428 | "lsp-types 0.56.0 (registry+https://github.com/rust-lang/crates.io-index)", | 428 | "lsp-types 0.56.0 (registry+https://github.com/rust-lang/crates.io-index)", |
429 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 429 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
430 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", | 430 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", |
431 | ] | 431 | ] |
432 | 432 | ||
@@ -485,7 +485,7 @@ dependencies = [ | |||
485 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", | 485 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", |
486 | "number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", | 486 | "number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", |
487 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", | 487 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", |
488 | "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | 488 | "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", |
489 | ] | 489 | ] |
490 | 490 | ||
491 | [[package]] | 491 | [[package]] |
@@ -495,7 +495,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
495 | dependencies = [ | 495 | dependencies = [ |
496 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | 496 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", |
497 | "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", | 497 | "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", |
498 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 498 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
499 | ] | 499 | ] |
500 | 500 | ||
501 | [[package]] | 501 | [[package]] |
@@ -503,7 +503,7 @@ name = "inotify-sys" | |||
503 | version = "0.1.3" | 503 | version = "0.1.3" |
504 | source = "registry+https://github.com/rust-lang/crates.io-index" | 504 | source = "registry+https://github.com/rust-lang/crates.io-index" |
505 | dependencies = [ | 505 | dependencies = [ |
506 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 506 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
507 | ] | 507 | ] |
508 | 508 | ||
509 | [[package]] | 509 | [[package]] |
@@ -520,10 +520,10 @@ dependencies = [ | |||
520 | "pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | 520 | "pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
521 | "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | 521 | "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
522 | "ron 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", | 522 | "ron 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", |
523 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 523 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
524 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", | 524 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", |
525 | "serde_yaml 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", | 525 | "serde_yaml 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", |
526 | "uuid 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", | 526 | "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", |
527 | ] | 527 | ] |
528 | 528 | ||
529 | [[package]] | 529 | [[package]] |
@@ -531,7 +531,7 @@ name = "iovec" | |||
531 | version = "0.1.2" | 531 | version = "0.1.2" |
532 | source = "registry+https://github.com/rust-lang/crates.io-index" | 532 | source = "registry+https://github.com/rust-lang/crates.io-index" |
533 | dependencies = [ | 533 | dependencies = [ |
534 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 534 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
535 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", | 535 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", |
536 | ] | 536 | ] |
537 | 537 | ||
@@ -540,7 +540,7 @@ name = "itertools" | |||
540 | version = "0.8.0" | 540 | version = "0.8.0" |
541 | source = "registry+https://github.com/rust-lang/crates.io-index" | 541 | source = "registry+https://github.com/rust-lang/crates.io-index" |
542 | dependencies = [ | 542 | dependencies = [ |
543 | "either 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", | 543 | "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", |
544 | ] | 544 | ] |
545 | 545 | ||
546 | [[package]] | 546 | [[package]] |
@@ -554,7 +554,7 @@ version = "0.2.0" | |||
554 | source = "registry+https://github.com/rust-lang/crates.io-index" | 554 | source = "registry+https://github.com/rust-lang/crates.io-index" |
555 | dependencies = [ | 555 | dependencies = [ |
556 | "jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", | 556 | "jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", |
557 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 557 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
558 | ] | 558 | ] |
559 | 559 | ||
560 | [[package]] | 560 | [[package]] |
@@ -562,9 +562,9 @@ name = "jemalloc-sys" | |||
562 | version = "0.1.8" | 562 | version = "0.1.8" |
563 | source = "registry+https://github.com/rust-lang/crates.io-index" | 563 | source = "registry+https://github.com/rust-lang/crates.io-index" |
564 | dependencies = [ | 564 | dependencies = [ |
565 | "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", | 565 | "cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", |
566 | "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | 566 | "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
567 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 567 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
568 | ] | 568 | ] |
569 | 569 | ||
570 | [[package]] | 570 | [[package]] |
@@ -573,7 +573,7 @@ version = "0.1.9" | |||
573 | source = "registry+https://github.com/rust-lang/crates.io-index" | 573 | source = "registry+https://github.com/rust-lang/crates.io-index" |
574 | dependencies = [ | 574 | dependencies = [ |
575 | "jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", | 575 | "jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", |
576 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 576 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
577 | ] | 577 | ] |
578 | 578 | ||
579 | [[package]] | 579 | [[package]] |
@@ -602,7 +602,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
602 | 602 | ||
603 | [[package]] | 603 | [[package]] |
604 | name = "libc" | 604 | name = "libc" |
605 | version = "0.2.50" | 605 | version = "0.2.51" |
606 | source = "registry+https://github.com/rust-lang/crates.io-index" | 606 | source = "registry+https://github.com/rust-lang/crates.io-index" |
607 | 607 | ||
608 | [[package]] | 608 | [[package]] |
@@ -635,8 +635,8 @@ dependencies = [ | |||
635 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | 635 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", |
636 | "num-derive 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", | 636 | "num-derive 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", |
637 | "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | 637 | "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", |
638 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 638 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
639 | "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 639 | "serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
640 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", | 640 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", |
641 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", | 641 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", |
642 | "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | 642 | "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -672,7 +672,7 @@ dependencies = [ | |||
672 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | 672 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", |
673 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", | 673 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", |
674 | "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", | 674 | "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", |
675 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 675 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
676 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | 676 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", |
677 | "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", | 677 | "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", |
678 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", | 678 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -708,8 +708,8 @@ version = "0.2.33" | |||
708 | source = "registry+https://github.com/rust-lang/crates.io-index" | 708 | source = "registry+https://github.com/rust-lang/crates.io-index" |
709 | dependencies = [ | 709 | dependencies = [ |
710 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", | 710 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", |
711 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 711 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
712 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 712 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
713 | ] | 713 | ] |
714 | 714 | ||
715 | [[package]] | 715 | [[package]] |
@@ -728,11 +728,11 @@ dependencies = [ | |||
728 | "fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", | 728 | "fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", |
729 | "inotify 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", | 729 | "inotify 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", |
730 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", | 730 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", |
731 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 731 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
732 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", | 732 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", |
733 | "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", | 733 | "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", |
734 | "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", | 734 | "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", |
735 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 735 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
736 | ] | 736 | ] |
737 | 737 | ||
738 | [[package]] | 738 | [[package]] |
@@ -742,7 +742,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
742 | dependencies = [ | 742 | dependencies = [ |
743 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", | 743 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", |
744 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", | 744 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", |
745 | "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", | 745 | "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", |
746 | ] | 746 | ] |
747 | 747 | ||
748 | [[package]] | 748 | [[package]] |
@@ -763,7 +763,7 @@ name = "num_cpus" | |||
763 | version = "1.10.0" | 763 | version = "1.10.0" |
764 | source = "registry+https://github.com/rust-lang/crates.io-index" | 764 | source = "registry+https://github.com/rust-lang/crates.io-index" |
765 | dependencies = [ | 765 | dependencies = [ |
766 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 766 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
767 | ] | 767 | ] |
768 | 768 | ||
769 | [[package]] | 769 | [[package]] |
@@ -796,11 +796,11 @@ name = "parking_lot_core" | |||
796 | version = "0.4.0" | 796 | version = "0.4.0" |
797 | source = "registry+https://github.com/rust-lang/crates.io-index" | 797 | source = "registry+https://github.com/rust-lang/crates.io-index" |
798 | dependencies = [ | 798 | dependencies = [ |
799 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 799 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
800 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", | 800 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", |
801 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", | 801 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", |
802 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", | 802 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", |
803 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 803 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
804 | ] | 804 | ] |
805 | 805 | ||
806 | [[package]] | 806 | [[package]] |
@@ -834,7 +834,7 @@ dependencies = [ | |||
834 | "pest_meta 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | 834 | "pest_meta 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
835 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", | 835 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", |
836 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", | 836 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", |
837 | "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", | 837 | "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", |
838 | ] | 838 | ] |
839 | 839 | ||
840 | [[package]] | 840 | [[package]] |
@@ -869,7 +869,7 @@ dependencies = [ | |||
869 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", | 869 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", |
870 | "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | 870 | "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |
871 | "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | 871 | "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |
872 | "regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", | 872 | "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", |
873 | ] | 873 | ] |
874 | 874 | ||
875 | [[package]] | 875 | [[package]] |
@@ -924,13 +924,14 @@ version = "0.1.0" | |||
924 | dependencies = [ | 924 | dependencies = [ |
925 | "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", | 925 | "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", |
926 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | 926 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", |
927 | "flexi_logger 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", | 927 | "flexi_logger 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)", |
928 | "indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", | 928 | "indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", |
929 | "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", | 929 | "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", |
930 | "ra_batch 0.1.0", | 930 | "ra_batch 0.1.0", |
931 | "ra_db 0.1.0", | 931 | "ra_db 0.1.0", |
932 | "ra_hir 0.1.0", | 932 | "ra_hir 0.1.0", |
933 | "ra_ide_api 0.1.0", | 933 | "ra_ide_api 0.1.0", |
934 | "ra_prof 0.1.0", | ||
934 | "ra_syntax 0.1.0", | 935 | "ra_syntax 0.1.0", |
935 | "tools 0.1.0", | 936 | "tools 0.1.0", |
936 | ] | 937 | ] |
@@ -944,7 +945,7 @@ dependencies = [ | |||
944 | "ra_syntax 0.1.0", | 945 | "ra_syntax 0.1.0", |
945 | "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | 946 | "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", |
946 | "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", | 947 | "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", |
947 | "salsa 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", | 948 | "salsa 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", |
948 | "test_utils 0.1.0", | 949 | "test_utils 0.1.0", |
949 | ] | 950 | ] |
950 | 951 | ||
@@ -962,7 +963,7 @@ version = "0.1.0" | |||
962 | dependencies = [ | 963 | dependencies = [ |
963 | "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", | 964 | "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", |
964 | "ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", | 965 | "ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", |
965 | "flexi_logger 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", | 966 | "flexi_logger 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)", |
966 | "insta 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", | 967 | "insta 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", |
967 | "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", | 968 | "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", |
968 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | 969 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -970,6 +971,7 @@ dependencies = [ | |||
970 | "ra_arena 0.1.0", | 971 | "ra_arena 0.1.0", |
971 | "ra_db 0.1.0", | 972 | "ra_db 0.1.0", |
972 | "ra_mbe 0.1.0", | 973 | "ra_mbe 0.1.0", |
974 | "ra_prof 0.1.0", | ||
973 | "ra_syntax 0.1.0", | 975 | "ra_syntax 0.1.0", |
974 | "ra_tt 0.1.0", | 976 | "ra_tt 0.1.0", |
975 | "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | 977 | "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -1011,20 +1013,21 @@ dependencies = [ | |||
1011 | "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", | 1013 | "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", |
1012 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | 1014 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", |
1013 | "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | 1015 | "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", |
1014 | "flexi_logger 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", | 1016 | "flexi_logger 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)", |
1015 | "gen_lsp_server 0.1.0", | 1017 | "gen_lsp_server 0.1.0", |
1016 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1018 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", |
1017 | "lsp-types 0.56.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1019 | "lsp-types 0.56.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1018 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1020 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1019 | "ra_arena 0.1.0", | 1021 | "ra_arena 0.1.0", |
1020 | "ra_ide_api 0.1.0", | 1022 | "ra_ide_api 0.1.0", |
1023 | "ra_prof 0.1.0", | ||
1021 | "ra_project_model 0.1.0", | 1024 | "ra_project_model 0.1.0", |
1022 | "ra_syntax 0.1.0", | 1025 | "ra_syntax 0.1.0", |
1023 | "ra_text_edit 0.1.0", | 1026 | "ra_text_edit 0.1.0", |
1024 | "ra_vfs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1027 | "ra_vfs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1025 | "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1028 | "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1026 | "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1029 | "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1027 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1030 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1028 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", | 1031 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", |
1029 | "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", | 1032 | "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1030 | "test_utils 0.1.0", | 1033 | "test_utils 0.1.0", |
@@ -1037,6 +1040,7 @@ dependencies = [ | |||
1037 | name = "ra_mbe" | 1040 | name = "ra_mbe" |
1038 | version = "0.1.0" | 1041 | version = "0.1.0" |
1039 | dependencies = [ | 1042 | dependencies = [ |
1043 | "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1040 | "ra_parser 0.1.0", | 1044 | "ra_parser 0.1.0", |
1041 | "ra_syntax 0.1.0", | 1045 | "ra_syntax 0.1.0", |
1042 | "ra_tt 0.1.0", | 1046 | "ra_tt 0.1.0", |
@@ -1051,6 +1055,13 @@ dependencies = [ | |||
1051 | ] | 1055 | ] |
1052 | 1056 | ||
1053 | [[package]] | 1057 | [[package]] |
1058 | name = "ra_prof" | ||
1059 | version = "0.1.0" | ||
1060 | dependencies = [ | ||
1061 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1062 | ] | ||
1063 | |||
1064 | [[package]] | ||
1054 | name = "ra_project_model" | 1065 | name = "ra_project_model" |
1055 | version = "0.1.0" | 1066 | version = "0.1.0" |
1056 | dependencies = [ | 1067 | dependencies = [ |
@@ -1061,7 +1072,7 @@ dependencies = [ | |||
1061 | "ra_db 0.1.0", | 1072 | "ra_db 0.1.0", |
1062 | "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1073 | "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1063 | "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1074 | "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1064 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1075 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1065 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", | 1076 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", |
1066 | "test_utils 0.1.0", | 1077 | "test_utils 0.1.0", |
1067 | "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", | 1078 | "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -1121,7 +1132,7 @@ version = "0.6.5" | |||
1121 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1132 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1122 | dependencies = [ | 1133 | dependencies = [ |
1123 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | 1134 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", |
1124 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 1135 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
1125 | "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1136 | "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1126 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1137 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1127 | "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1138 | "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -1130,7 +1141,7 @@ dependencies = [ | |||
1130 | "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", | 1141 | "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", |
1131 | "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | 1142 | "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", |
1132 | "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1143 | "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1133 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1144 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1134 | ] | 1145 | ] |
1135 | 1146 | ||
1136 | [[package]] | 1147 | [[package]] |
@@ -1176,9 +1187,9 @@ name = "rand_jitter" | |||
1176 | version = "0.1.3" | 1187 | version = "0.1.3" |
1177 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1188 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1178 | dependencies = [ | 1189 | dependencies = [ |
1179 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 1190 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
1180 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1191 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1181 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1192 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1182 | ] | 1193 | ] |
1183 | 1194 | ||
1184 | [[package]] | 1195 | [[package]] |
@@ -1188,10 +1199,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1188 | dependencies = [ | 1199 | dependencies = [ |
1189 | "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", | 1200 | "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", |
1190 | "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1201 | "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1191 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 1202 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
1192 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1203 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1193 | "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1204 | "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1194 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1205 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1195 | ] | 1206 | ] |
1196 | 1207 | ||
1197 | [[package]] | 1208 | [[package]] |
@@ -1217,7 +1228,7 @@ version = "1.0.3" | |||
1217 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1228 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1218 | dependencies = [ | 1229 | dependencies = [ |
1219 | "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1230 | "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1220 | "either 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1231 | "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", |
1221 | "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1232 | "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1222 | ] | 1233 | ] |
1223 | 1234 | ||
@@ -1228,7 +1239,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1228 | dependencies = [ | 1239 | dependencies = [ |
1229 | "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1240 | "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1230 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1241 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1231 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 1242 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
1232 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1243 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1233 | ] | 1244 | ] |
1234 | 1245 | ||
@@ -1242,7 +1253,7 @@ dependencies = [ | |||
1242 | 1253 | ||
1243 | [[package]] | 1254 | [[package]] |
1244 | name = "redox_syscall" | 1255 | name = "redox_syscall" |
1245 | version = "0.1.51" | 1256 | version = "0.1.52" |
1246 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1257 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1247 | 1258 | ||
1248 | [[package]] | 1259 | [[package]] |
@@ -1250,24 +1261,24 @@ name = "redox_termios" | |||
1250 | version = "0.1.1" | 1261 | version = "0.1.1" |
1251 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1262 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1252 | dependencies = [ | 1263 | dependencies = [ |
1253 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", | 1264 | "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", |
1254 | ] | 1265 | ] |
1255 | 1266 | ||
1256 | [[package]] | 1267 | [[package]] |
1257 | name = "regex" | 1268 | name = "regex" |
1258 | version = "1.1.2" | 1269 | version = "1.1.5" |
1259 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1270 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1260 | dependencies = [ | 1271 | dependencies = [ |
1261 | "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", | 1272 | "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", |
1262 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1273 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1263 | "regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", | 1274 | "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", |
1264 | "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1275 | "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", |
1265 | "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", | 1276 | "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", |
1266 | ] | 1277 | ] |
1267 | 1278 | ||
1268 | [[package]] | 1279 | [[package]] |
1269 | name = "regex-syntax" | 1280 | name = "regex-syntax" |
1270 | version = "0.6.5" | 1281 | version = "0.6.6" |
1271 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1282 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1272 | dependencies = [ | 1283 | dependencies = [ |
1273 | "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", | 1284 | "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -1283,7 +1294,7 @@ name = "remove_dir_all" | |||
1283 | version = "0.5.1" | 1294 | version = "0.5.1" |
1284 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1295 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1285 | dependencies = [ | 1296 | dependencies = [ |
1286 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1297 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1287 | ] | 1298 | ] |
1288 | 1299 | ||
1289 | [[package]] | 1300 | [[package]] |
@@ -1293,7 +1304,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1293 | dependencies = [ | 1304 | dependencies = [ |
1294 | "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1305 | "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1295 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | 1306 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", |
1296 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1307 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1297 | ] | 1308 | ] |
1298 | 1309 | ||
1299 | [[package]] | 1310 | [[package]] |
@@ -1335,7 +1346,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1335 | 1346 | ||
1336 | [[package]] | 1347 | [[package]] |
1337 | name = "salsa" | 1348 | name = "salsa" |
1338 | version = "0.11.1" | 1349 | version = "0.12.0" |
1339 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1350 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1340 | dependencies = [ | 1351 | dependencies = [ |
1341 | "derive-new 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1352 | "derive-new 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -1344,19 +1355,19 @@ dependencies = [ | |||
1344 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1355 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", |
1345 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1356 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1346 | "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1357 | "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1347 | "salsa-macros 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1358 | "salsa-macros 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1348 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", | 1359 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", |
1349 | ] | 1360 | ] |
1350 | 1361 | ||
1351 | [[package]] | 1362 | [[package]] |
1352 | name = "salsa-macros" | 1363 | name = "salsa-macros" |
1353 | version = "0.11.1" | 1364 | version = "0.12.0" |
1354 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1365 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1355 | dependencies = [ | 1366 | dependencies = [ |
1356 | "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1367 | "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1357 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", | 1368 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", |
1358 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", | 1369 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", |
1359 | "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", | 1370 | "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", |
1360 | ] | 1371 | ] |
1361 | 1372 | ||
1362 | [[package]] | 1373 | [[package]] |
@@ -1378,7 +1389,7 @@ version = "0.9.0" | |||
1378 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1389 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1379 | dependencies = [ | 1390 | dependencies = [ |
1380 | "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1391 | "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1381 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1392 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1382 | ] | 1393 | ] |
1383 | 1394 | ||
1384 | [[package]] | 1395 | [[package]] |
@@ -1388,20 +1399,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1388 | 1399 | ||
1389 | [[package]] | 1400 | [[package]] |
1390 | name = "serde" | 1401 | name = "serde" |
1391 | version = "1.0.89" | 1402 | version = "1.0.90" |
1392 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1403 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1393 | dependencies = [ | 1404 | dependencies = [ |
1394 | "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1405 | "serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1395 | ] | 1406 | ] |
1396 | 1407 | ||
1397 | [[package]] | 1408 | [[package]] |
1398 | name = "serde_derive" | 1409 | name = "serde_derive" |
1399 | version = "1.0.89" | 1410 | version = "1.0.90" |
1400 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1411 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1401 | dependencies = [ | 1412 | dependencies = [ |
1402 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", | 1413 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", |
1403 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", | 1414 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", |
1404 | "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", | 1415 | "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", |
1405 | ] | 1416 | ] |
1406 | 1417 | ||
1407 | [[package]] | 1418 | [[package]] |
@@ -1411,7 +1422,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1411 | dependencies = [ | 1422 | dependencies = [ |
1412 | "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", | 1423 | "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", |
1413 | "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", | 1424 | "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1414 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1425 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1415 | ] | 1426 | ] |
1416 | 1427 | ||
1417 | [[package]] | 1428 | [[package]] |
@@ -1421,7 +1432,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1421 | dependencies = [ | 1432 | dependencies = [ |
1422 | "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", | 1433 | "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", |
1423 | "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", | 1434 | "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", |
1424 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1435 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1425 | "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", | 1436 | "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", |
1426 | ] | 1437 | ] |
1427 | 1438 | ||
@@ -1459,7 +1470,7 @@ name = "smol_str" | |||
1459 | version = "0.1.10" | 1470 | version = "0.1.10" |
1460 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1471 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1461 | dependencies = [ | 1472 | dependencies = [ |
1462 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1473 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1463 | ] | 1474 | ] |
1464 | 1475 | ||
1465 | [[package]] | 1476 | [[package]] |
@@ -1479,7 +1490,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1479 | 1490 | ||
1480 | [[package]] | 1491 | [[package]] |
1481 | name = "syn" | 1492 | name = "syn" |
1482 | version = "0.15.29" | 1493 | version = "0.15.30" |
1483 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1494 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1484 | dependencies = [ | 1495 | dependencies = [ |
1485 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", | 1496 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -1494,7 +1505,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1494 | dependencies = [ | 1505 | dependencies = [ |
1495 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", | 1506 | "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", |
1496 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", | 1507 | "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", |
1497 | "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)", | 1508 | "syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)", |
1498 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1509 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1499 | ] | 1510 | ] |
1500 | 1511 | ||
@@ -1504,11 +1515,11 @@ version = "3.0.7" | |||
1504 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1515 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1505 | dependencies = [ | 1516 | dependencies = [ |
1506 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", | 1517 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1507 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 1518 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
1508 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", | 1519 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", |
1509 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", | 1520 | "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", |
1510 | "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1521 | "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1511 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1522 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1512 | ] | 1523 | ] |
1513 | 1524 | ||
1514 | [[package]] | 1525 | [[package]] |
@@ -1523,8 +1534,8 @@ dependencies = [ | |||
1523 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1534 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1524 | "pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1535 | "pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1525 | "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1536 | "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1526 | "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | 1537 | "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", |
1527 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1538 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1528 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", | 1539 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", |
1529 | "slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", | 1540 | "slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", |
1530 | "unic-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1541 | "unic-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -1547,8 +1558,8 @@ name = "termion" | |||
1547 | version = "1.5.1" | 1558 | version = "1.5.1" |
1548 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1559 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1549 | dependencies = [ | 1560 | dependencies = [ |
1550 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 1561 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
1551 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", | 1562 | "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", |
1552 | "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | 1563 | "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |
1553 | ] | 1564 | ] |
1554 | 1565 | ||
@@ -1557,7 +1568,7 @@ name = "termios" | |||
1557 | version = "0.3.1" | 1568 | version = "0.3.1" |
1558 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1569 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1559 | dependencies = [ | 1570 | dependencies = [ |
1560 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 1571 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
1561 | ] | 1572 | ] |
1562 | 1573 | ||
1563 | [[package]] | 1574 | [[package]] |
@@ -1575,7 +1586,7 @@ name = "text_unit" | |||
1575 | version = "0.1.6" | 1586 | version = "0.1.6" |
1576 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1587 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1577 | dependencies = [ | 1588 | dependencies = [ |
1578 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1589 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1579 | ] | 1590 | ] |
1580 | 1591 | ||
1581 | [[package]] | 1592 | [[package]] |
@@ -1615,9 +1626,9 @@ name = "time" | |||
1615 | version = "0.1.42" | 1626 | version = "0.1.42" |
1616 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1627 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1617 | dependencies = [ | 1628 | dependencies = [ |
1618 | "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)", | 1629 | "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", |
1619 | "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", | 1630 | "redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)", |
1620 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1631 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1621 | ] | 1632 | ] |
1622 | 1633 | ||
1623 | [[package]] | 1634 | [[package]] |
@@ -1744,7 +1755,7 @@ name = "url_serde" | |||
1744 | version = "0.2.0" | 1755 | version = "0.2.0" |
1745 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1756 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1746 | dependencies = [ | 1757 | dependencies = [ |
1747 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1758 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1748 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", | 1759 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", |
1749 | ] | 1760 | ] |
1750 | 1761 | ||
@@ -1755,11 +1766,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1755 | 1766 | ||
1756 | [[package]] | 1767 | [[package]] |
1757 | name = "uuid" | 1768 | name = "uuid" |
1758 | version = "0.7.3" | 1769 | version = "0.7.4" |
1759 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1770 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1760 | dependencies = [ | 1771 | dependencies = [ |
1761 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", | 1772 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", |
1762 | "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", | 1773 | "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", |
1763 | ] | 1774 | ] |
1764 | 1775 | ||
1765 | [[package]] | 1776 | [[package]] |
@@ -1778,7 +1789,7 @@ version = "2.2.7" | |||
1778 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1789 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1779 | dependencies = [ | 1790 | dependencies = [ |
1780 | "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | 1791 | "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", |
1781 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1792 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1782 | "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | 1793 | "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", |
1783 | ] | 1794 | ] |
1784 | 1795 | ||
@@ -1789,7 +1800,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | |||
1789 | 1800 | ||
1790 | [[package]] | 1801 | [[package]] |
1791 | name = "winapi" | 1802 | name = "winapi" |
1792 | version = "0.3.6" | 1803 | version = "0.3.7" |
1793 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1804 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1794 | dependencies = [ | 1805 | dependencies = [ |
1795 | "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1806 | "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", |
@@ -1811,7 +1822,7 @@ name = "winapi-util" | |||
1811 | version = "0.1.2" | 1822 | version = "0.1.2" |
1812 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1823 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1813 | dependencies = [ | 1824 | dependencies = [ |
1814 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | 1825 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", |
1815 | ] | 1826 | ] |
1816 | 1827 | ||
1817 | [[package]] | 1828 | [[package]] |
@@ -1837,13 +1848,13 @@ dependencies = [ | |||
1837 | ] | 1848 | ] |
1838 | 1849 | ||
1839 | [metadata] | 1850 | [metadata] |
1840 | "checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" | 1851 | "checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" |
1841 | "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" | 1852 | "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" |
1842 | "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" | 1853 | "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" |
1843 | "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" | 1854 | "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" |
1844 | "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" | 1855 | "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" |
1845 | "checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" | 1856 | "checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" |
1846 | "checksum backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "cd5a90e2b463010cd0e0ce9a11d4a9d5d58d9f41d4a6ba3dcaf9e68b466e88b4" | 1857 | "checksum backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f106c02a3604afcdc0df5d36cc47b44b55917dbaf3d808f71c163a0ddba64637" |
1847 | "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" | 1858 | "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" |
1848 | "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" | 1859 | "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" |
1849 | "checksum bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80" | 1860 | "checksum bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80" |
@@ -1854,7 +1865,7 @@ dependencies = [ | |||
1854 | "checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" | 1865 | "checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" |
1855 | "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" | 1866 | "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" |
1856 | "checksum cargo_metadata 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "178d62b240c34223f265a4c1e275e37d62da163d421fc8d7f7e3ee340f803c57" | 1867 | "checksum cargo_metadata 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "178d62b240c34223f265a4c1e275e37d62da163d421fc8d7f7e3ee340f803c57" |
1857 | "checksum cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "c9ce8bb087aacff865633f0bd5aeaed910fe2fe55b55f4739527f2e023a2e53d" | 1868 | "checksum cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)" = "30f813bf45048a18eda9190fd3c6b78644146056740c43172a5a3699118588fd" |
1858 | "checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4" | 1869 | "checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4" |
1859 | "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" | 1870 | "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" |
1860 | "checksum ci_info 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e5e881307a989a3a5e20d52a32cc05950e3c2178cccfcc9428271a6cde09f902" | 1871 | "checksum ci_info 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e5e881307a989a3a5e20d52a32cc05950e3c2178cccfcc9428271a6cde09f902" |
@@ -1874,7 +1885,7 @@ dependencies = [ | |||
1874 | "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" | 1885 | "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" |
1875 | "checksum drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "69b26e475fd29098530e709294e94e661974c851aed42512793f120fed4e199f" | 1886 | "checksum drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "69b26e475fd29098530e709294e94e661974c851aed42512793f120fed4e199f" |
1876 | "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" | 1887 | "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" |
1877 | "checksum either 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c67353c641dc847124ea1902d69bd753dee9bb3beff9aa3662ecf86c971d1fac" | 1888 | "checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b" |
1878 | "checksum ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f56c93cc076508c549d9bb747f79aa9b4eb098be7b8cad8830c3137ef52d1e00" | 1889 | "checksum ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f56c93cc076508c549d9bb747f79aa9b4eb098be7b8cad8830c3137ef52d1e00" |
1879 | "checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" | 1890 | "checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" |
1880 | "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" | 1891 | "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" |
@@ -1882,7 +1893,7 @@ dependencies = [ | |||
1882 | "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" | 1893 | "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" |
1883 | "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" | 1894 | "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" |
1884 | "checksum filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df5c1a8c4be27e7707789dc42ae65976e60b394afd293d1419ab915833e646" | 1895 | "checksum filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df5c1a8c4be27e7707789dc42ae65976e60b394afd293d1419ab915833e646" |
1885 | "checksum flexi_logger 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)" = "005c01dd6942ca46283b7304d14c6d04ec2c87a62f6e62e17c06fb812a574f4a" | 1896 | "checksum flexi_logger 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)" = "73de04baa435682b03677bb28f7b3e9d72b0489a551da5ba413c9b29f7979a19" |
1886 | "checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674" | 1897 | "checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674" |
1887 | "checksum fsevent 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c4bbbf71584aeed076100b5665ac14e3d85eeb31fdbb45fbd41ef9a682b5ec05" | 1898 | "checksum fsevent 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c4bbbf71584aeed076100b5665ac14e3d85eeb31fdbb45fbd41ef9a682b5ec05" |
1888 | "checksum fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a772d36c338d07a032d5375a36f15f9a7043bf0cb8ce7cee658e037c6032874" | 1899 | "checksum fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a772d36c338d07a032d5375a36f15f9a7043bf0cb8ce7cee658e037c6032874" |
@@ -1911,7 +1922,7 @@ dependencies = [ | |||
1911 | "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" | 1922 | "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" |
1912 | "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" | 1923 | "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" |
1913 | "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" | 1924 | "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" |
1914 | "checksum libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "aab692d7759f5cd8c859e169db98ae5b52c924add2af5fbbca11d12fefb567c1" | 1925 | "checksum libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)" = "bedcc7a809076656486ffe045abeeac163da1b558e963a31e29fbfbeba916917" |
1915 | "checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" | 1926 | "checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" |
1916 | "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" | 1927 | "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" |
1917 | "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" | 1928 | "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" |
@@ -1957,10 +1968,10 @@ dependencies = [ | |||
1957 | "checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" | 1968 | "checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" |
1958 | "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" | 1969 | "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" |
1959 | "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" | 1970 | "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" |
1960 | "checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85" | 1971 | "checksum redox_syscall 0.1.52 (registry+https://github.com/rust-lang/crates.io-index)" = "d32b3053e5ced86e4bc0411fec997389532bf56b000e66cb4884eeeb41413d69" |
1961 | "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" | 1972 | "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" |
1962 | "checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f" | 1973 | "checksum regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "559008764a17de49a3146b234641644ed37d118d1ef641a0bb573d146edc6ce0" |
1963 | "checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861" | 1974 | "checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96" |
1964 | "checksum relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0e7790c7f1cc73d831d28dc5a7deb316a006e7848e6a7f467cdb10a0a9e0fb1c" | 1975 | "checksum relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0e7790c7f1cc73d831d28dc5a7deb316a006e7848e6a7f467cdb10a0a9e0fb1c" |
1965 | "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" | 1976 | "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" |
1966 | "checksum ron 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "17f52a24414403f81528b67488cf8edc4eda977d3af1646bb6b106a600ead78f" | 1977 | "checksum ron 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "17f52a24414403f81528b67488cf8edc4eda977d3af1646bb6b106a600ead78f" |
@@ -1969,14 +1980,14 @@ dependencies = [ | |||
1969 | "checksum rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7540fc8b0c49f096ee9c961cda096467dce8084bec6bdca2fc83895fd9b28cb8" | 1980 | "checksum rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7540fc8b0c49f096ee9c961cda096467dce8084bec6bdca2fc83895fd9b28cb8" |
1970 | "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" | 1981 | "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" |
1971 | "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" | 1982 | "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" |
1972 | "checksum salsa 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "94f14bbb013866db2fbeceb97ed82cf35f42020edd39d35268f0b11f89399c79" | 1983 | "checksum salsa 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "249290390580a2ccdc1aa8256989733978a7c3e11e508abc529055ae4866e3a3" |
1973 | "checksum salsa-macros 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1ad27cbae189e9739a96e469d37c6a6deafec36f1282d4fdf4681eae67c9dd39" | 1984 | "checksum salsa-macros 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9120ba92eda59ebd3a39e8245531df9a3805468bf38fe57fdfc30f14d0fdbea9" |
1974 | "checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" | 1985 | "checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" |
1975 | "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" | 1986 | "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" |
1976 | "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" | 1987 | "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" |
1977 | "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" | 1988 | "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" |
1978 | "checksum serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "92514fb95f900c9b5126e32d020f5c6d40564c27a5ea6d1d7d9f157a96623560" | 1989 | "checksum serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)" = "aa5f7c20820475babd2c077c3ab5f8c77a31c15e16ea38687b4c02d3e48680f4" |
1979 | "checksum serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6eabf4b5914e88e24eea240bb7c9f9a2cbc1bbbe8d961d381975ec3c6b806c" | 1990 | "checksum serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)" = "58fc82bec244f168b23d1963b45c8bf5726e9a15a9d146a067f9081aeed2de79" |
1980 | "checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" | 1991 | "checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" |
1981 | "checksum serde_yaml 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0887a8e097a69559b56aa2526bf7aff7c3048cf627dff781f0b56a6001534593" | 1992 | "checksum serde_yaml 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0887a8e097a69559b56aa2526bf7aff7c3048cf627dff781f0b56a6001534593" |
1982 | "checksum sha-1 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9d1f3b5de8a167ab06834a7c883bd197f2191e1dda1a22d9ccfeedbf9aded" | 1993 | "checksum sha-1 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9d1f3b5de8a167ab06834a7c883bd197f2191e1dda1a22d9ccfeedbf9aded" |
@@ -1987,7 +1998,7 @@ dependencies = [ | |||
1987 | "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" | 1998 | "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" |
1988 | "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" | 1999 | "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" |
1989 | "checksum superslice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f" | 2000 | "checksum superslice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f" |
1990 | "checksum syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1825685f977249735d510a242a6727b46efe914bb67e38d30c071b1b72b1d5c2" | 2001 | "checksum syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)" = "66c8865bf5a7cbb662d8b011950060b3c8743dca141b054bf7195b20d314d8e2" |
1991 | "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" | 2002 | "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" |
1992 | "checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" | 2003 | "checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" |
1993 | "checksum tera 0.11.20 (registry+https://github.com/rust-lang/crates.io-index)" = "4b505279e19d8f7d24b1a9dc58327c9c36174b1a2c7ebdeac70792d017cb64f3" | 2004 | "checksum tera 0.11.20 (registry+https://github.com/rust-lang/crates.io-index)" = "4b505279e19d8f7d24b1a9dc58327c9c36174b1a2c7ebdeac70792d017cb64f3" |
@@ -2017,12 +2028,12 @@ dependencies = [ | |||
2017 | "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" | 2028 | "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" |
2018 | "checksum url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea" | 2029 | "checksum url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea" |
2019 | "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" | 2030 | "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" |
2020 | "checksum uuid 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "600ef8213e9f8a0ac1f876e470e90780ae0478eabce7f76aff41b0f4ef0fd5c0" | 2031 | "checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" |
2021 | "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" | 2032 | "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" |
2022 | "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" | 2033 | "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" |
2023 | "checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" | 2034 | "checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" |
2024 | "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" | 2035 | "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" |
2025 | "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" | 2036 | "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" |
2026 | "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" | 2037 | "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" |
2027 | "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" | 2038 | "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" |
2028 | "checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" | 2039 | "checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" |
diff --git a/crates/ra_batch/src/lib.rs b/crates/ra_batch/src/lib.rs index 3bbcdb0b8..5bb47afb2 100644 --- a/crates/ra_batch/src/lib.rs +++ b/crates/ra_batch/src/lib.rs | |||
@@ -126,10 +126,7 @@ mod tests { | |||
126 | 126 | ||
127 | #[test] | 127 | #[test] |
128 | fn test_loading_rust_analyzer() { | 128 | fn test_loading_rust_analyzer() { |
129 | let mut path = std::env::current_exe().unwrap(); | 129 | let path = Path::new(env!("CARGO_MANIFEST_DIR")).parent().unwrap().parent().unwrap(); |
130 | while !path.join("Cargo.toml").is_file() { | ||
131 | path = path.parent().unwrap().to_owned(); | ||
132 | } | ||
133 | let (db, roots) = BatchDatabase::load_cargo(path).unwrap(); | 130 | let (db, roots) = BatchDatabase::load_cargo(path).unwrap(); |
134 | let mut n_crates = 0; | 131 | let mut n_crates = 0; |
135 | for root in roots { | 132 | for root in roots { |
diff --git a/crates/ra_cli/Cargo.toml b/crates/ra_cli/Cargo.toml index 467628236..328b2436f 100644 --- a/crates/ra_cli/Cargo.toml +++ b/crates/ra_cli/Cargo.toml | |||
@@ -18,3 +18,4 @@ tools = { path = "../tools" } | |||
18 | ra_batch = { path = "../ra_batch" } | 18 | ra_batch = { path = "../ra_batch" } |
19 | ra_hir = { path = "../ra_hir" } | 19 | ra_hir = { path = "../ra_hir" } |
20 | ra_db = { path = "../ra_db" } | 20 | ra_db = { path = "../ra_db" } |
21 | ra_prof = { path = "../ra_prof" } | ||
diff --git a/crates/ra_cli/src/main.rs b/crates/ra_cli/src/main.rs index 1f2750d89..45555be6e 100644 --- a/crates/ra_cli/src/main.rs +++ b/crates/ra_cli/src/main.rs | |||
@@ -1,12 +1,13 @@ | |||
1 | mod analysis_stats; | 1 | mod analysis_stats; |
2 | 2 | ||
3 | use std::{fs, io::Read, path::Path, time::Instant}; | 3 | use std::{fs, io::Read, path::Path}; |
4 | 4 | ||
5 | use clap::{App, Arg, SubCommand}; | 5 | use clap::{App, Arg, SubCommand}; |
6 | use ra_ide_api::file_structure; | 6 | use ra_ide_api::file_structure; |
7 | use ra_syntax::{SourceFile, TreeArc, AstNode}; | 7 | use ra_syntax::{SourceFile, TreeArc, AstNode}; |
8 | use tools::collect_tests; | 8 | use tools::collect_tests; |
9 | use flexi_logger::Logger; | 9 | use flexi_logger::Logger; |
10 | use ra_prof::profile; | ||
10 | 11 | ||
11 | type Result<T> = ::std::result::Result<T, failure::Error>; | 12 | type Result<T> = ::std::result::Result<T, failure::Error>; |
12 | 13 | ||
@@ -27,13 +28,11 @@ fn main() -> Result<()> { | |||
27 | .get_matches(); | 28 | .get_matches(); |
28 | match matches.subcommand() { | 29 | match matches.subcommand() { |
29 | ("parse", Some(matches)) => { | 30 | ("parse", Some(matches)) => { |
30 | let start = Instant::now(); | 31 | let _p = profile("parsing"); |
31 | let file = file()?; | 32 | let file = file()?; |
32 | let elapsed = start.elapsed(); | ||
33 | if !matches.is_present("no-dump") { | 33 | if !matches.is_present("no-dump") { |
34 | println!("{}", file.syntax().debug_dump()); | 34 | println!("{}", file.syntax().debug_dump()); |
35 | } | 35 | } |
36 | eprintln!("parsing: {:?}", elapsed); | ||
37 | ::std::mem::forget(file); | 36 | ::std::mem::forget(file); |
38 | } | 37 | } |
39 | ("symbols", _) => { | 38 | ("symbols", _) => { |
diff --git a/crates/ra_db/Cargo.toml b/crates/ra_db/Cargo.toml index 581cd32fd..08aef9bf5 100644 --- a/crates/ra_db/Cargo.toml +++ b/crates/ra_db/Cargo.toml | |||
@@ -5,7 +5,7 @@ version = "0.1.0" | |||
5 | authors = ["rust-analyzer developers"] | 5 | authors = ["rust-analyzer developers"] |
6 | 6 | ||
7 | [dependencies] | 7 | [dependencies] |
8 | salsa = "0.11.1" | 8 | salsa = "0.12.0" |
9 | relative-path = "0.4.0" | 9 | relative-path = "0.4.0" |
10 | rustc-hash = "1.0" | 10 | rustc-hash = "1.0" |
11 | parking_lot = "0.7.0" | 11 | parking_lot = "0.7.0" |
diff --git a/crates/ra_hir/Cargo.toml b/crates/ra_hir/Cargo.toml index 501308acc..a2858dad9 100644 --- a/crates/ra_hir/Cargo.toml +++ b/crates/ra_hir/Cargo.toml | |||
@@ -19,6 +19,7 @@ ra_db = { path = "../ra_db" } | |||
19 | mbe = { path = "../ra_mbe", package = "ra_mbe" } | 19 | mbe = { path = "../ra_mbe", package = "ra_mbe" } |
20 | tt = { path = "../ra_tt", package = "ra_tt" } | 20 | tt = { path = "../ra_tt", package = "ra_tt" } |
21 | test_utils = { path = "../test_utils" } | 21 | test_utils = { path = "../test_utils" } |
22 | ra_prof = {path = "../ra_prof" } | ||
22 | 23 | ||
23 | [dev-dependencies] | 24 | [dev-dependencies] |
24 | flexi_logger = "0.11.0" | 25 | flexi_logger = "0.11.0" |
diff --git a/crates/ra_hir/src/nameres.rs b/crates/ra_hir/src/nameres.rs index 6f049acfc..4ae04514a 100644 --- a/crates/ra_hir/src/nameres.rs +++ b/crates/ra_hir/src/nameres.rs | |||
@@ -60,6 +60,7 @@ use ra_arena::{Arena, RawId, impl_arena_id}; | |||
60 | use ra_db::{FileId, Edition}; | 60 | use ra_db::{FileId, Edition}; |
61 | use test_utils::tested_by; | 61 | use test_utils::tested_by; |
62 | use ra_syntax::ast; | 62 | use ra_syntax::ast; |
63 | use ra_prof::profile; | ||
63 | 64 | ||
64 | use crate::{ | 65 | use crate::{ |
65 | ModuleDef, Name, Crate, Module, | 66 | ModuleDef, Name, Crate, Module, |
@@ -181,7 +182,7 @@ enum ReachedFixedPoint { | |||
181 | 182 | ||
182 | impl CrateDefMap { | 183 | impl CrateDefMap { |
183 | pub(crate) fn crate_def_map_query(db: &impl DefDatabase, krate: Crate) -> Arc<CrateDefMap> { | 184 | pub(crate) fn crate_def_map_query(db: &impl DefDatabase, krate: Crate) -> Arc<CrateDefMap> { |
184 | let start = std::time::Instant::now(); | 185 | let _p = profile("crate_def_map_query"); |
185 | let def_map = { | 186 | let def_map = { |
186 | let edition = krate.edition(db); | 187 | let edition = krate.edition(db); |
187 | let mut modules: Arena<CrateModuleId, ModuleData> = Arena::default(); | 188 | let mut modules: Arena<CrateModuleId, ModuleData> = Arena::default(); |
@@ -198,7 +199,6 @@ impl CrateDefMap { | |||
198 | } | 199 | } |
199 | }; | 200 | }; |
200 | let def_map = collector::collect_defs(db, def_map); | 201 | let def_map = collector::collect_defs(db, def_map); |
201 | log::info!("crate_def_map_query: {:?}", start.elapsed()); | ||
202 | Arc::new(def_map) | 202 | Arc::new(def_map) |
203 | } | 203 | } |
204 | 204 | ||
diff --git a/crates/ra_lsp_server/Cargo.toml b/crates/ra_lsp_server/Cargo.toml index d82410700..bc181e4eb 100644 --- a/crates/ra_lsp_server/Cargo.toml +++ b/crates/ra_lsp_server/Cargo.toml | |||
@@ -27,6 +27,7 @@ ra_ide_api = { path = "../ra_ide_api" } | |||
27 | ra_arena = { path = "../ra_arena" } | 27 | ra_arena = { path = "../ra_arena" } |
28 | gen_lsp_server = { path = "../gen_lsp_server" } | 28 | gen_lsp_server = { path = "../gen_lsp_server" } |
29 | ra_project_model = { path = "../ra_project_model" } | 29 | ra_project_model = { path = "../ra_project_model" } |
30 | ra_prof = { path = "../ra_prof" } | ||
30 | 31 | ||
31 | [dev-dependencies] | 32 | [dev-dependencies] |
32 | tempfile = "3" | 33 | tempfile = "3" |
diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs index 5a2905207..eb4091a3d 100644 --- a/crates/ra_lsp_server/src/main.rs +++ b/crates/ra_lsp_server/src/main.rs | |||
@@ -3,6 +3,7 @@ use flexi_logger::{Duplicate, Logger}; | |||
3 | use gen_lsp_server::{run_server, stdio_transport}; | 3 | use gen_lsp_server::{run_server, stdio_transport}; |
4 | 4 | ||
5 | use ra_lsp_server::{Result, InitializationOptions}; | 5 | use ra_lsp_server::{Result, InitializationOptions}; |
6 | use ra_prof; | ||
6 | 7 | ||
7 | fn main() -> Result<()> { | 8 | fn main() -> Result<()> { |
8 | ::std::env::set_var("RUST_BACKTRACE", "short"); | 9 | ::std::env::set_var("RUST_BACKTRACE", "short"); |
@@ -11,6 +12,15 @@ fn main() -> Result<()> { | |||
11 | Ok(ref v) if v == "1" => logger.log_to_file().directory("log").start()?, | 12 | Ok(ref v) if v == "1" => logger.log_to_file().directory("log").start()?, |
12 | _ => logger.start()?, | 13 | _ => logger.start()?, |
13 | }; | 14 | }; |
15 | let prof_depth = match ::std::env::var("RA_PROFILE_DEPTH") { | ||
16 | Ok(ref d) => d.parse()?, | ||
17 | _ => 0, | ||
18 | }; | ||
19 | let profile_allowed = match ::std::env::var("RA_PROFILE") { | ||
20 | Ok(ref p) => p.split(";").map(String::from).collect(), | ||
21 | _ => Vec::new(), | ||
22 | }; | ||
23 | ra_prof::set_filter(ra_prof::Filter::new(prof_depth, profile_allowed)); | ||
14 | log::info!("lifecycle: server started"); | 24 | log::info!("lifecycle: server started"); |
15 | match ::std::panic::catch_unwind(main_inner) { | 25 | match ::std::panic::catch_unwind(main_inner) { |
16 | Ok(res) => { | 26 | Ok(res) => { |
diff --git a/crates/ra_lsp_server/src/main_loop.rs b/crates/ra_lsp_server/src/main_loop.rs index eecf278a8..82410bee3 100644 --- a/crates/ra_lsp_server/src/main_loop.rs +++ b/crates/ra_lsp_server/src/main_loop.rs | |||
@@ -24,6 +24,7 @@ use crate::{ | |||
24 | Result, | 24 | Result, |
25 | InitializationOptions, | 25 | InitializationOptions, |
26 | }; | 26 | }; |
27 | use ra_prof::profile; | ||
27 | 28 | ||
28 | #[derive(Debug, Fail)] | 29 | #[derive(Debug, Fail)] |
29 | #[fail(display = "Language Server request failed with {}. ({})", code, message)] | 30 | #[fail(display = "Language Server request failed with {}. ({})", code, message)] |
@@ -181,7 +182,7 @@ fn main_loop_inner( | |||
181 | recv(libdata_receiver) -> data => Event::Lib(data.unwrap()) | 182 | recv(libdata_receiver) -> data => Event::Lib(data.unwrap()) |
182 | }; | 183 | }; |
183 | log::info!("loop_turn = {:?}", event); | 184 | log::info!("loop_turn = {:?}", event); |
184 | let start = std::time::Instant::now(); | 185 | let _p = profile("loop_turn"); |
185 | let mut state_changed = false; | 186 | let mut state_changed = false; |
186 | match event { | 187 | match event { |
187 | Event::Task(task) => on_task(task, msg_sender, pending_requests), | 188 | Event::Task(task) => on_task(task, msg_sender, pending_requests), |
@@ -235,10 +236,9 @@ fn main_loop_inner( | |||
235 | in_flight_libraries += 1; | 236 | in_flight_libraries += 1; |
236 | let sender = libdata_sender.clone(); | 237 | let sender = libdata_sender.clone(); |
237 | pool.execute(move || { | 238 | pool.execute(move || { |
238 | let start = ::std::time::Instant::now(); | ||
239 | log::info!("indexing {:?} ... ", root); | 239 | log::info!("indexing {:?} ... ", root); |
240 | let _p = profile(&format!("indexed {:?}", root)); | ||
240 | let data = LibraryData::prepare(root, files); | 241 | let data = LibraryData::prepare(root, files); |
241 | log::info!("indexed {:?} {:?}", start.elapsed(), root); | ||
242 | sender.send(data).unwrap(); | 242 | sender.send(data).unwrap(); |
243 | }); | 243 | }); |
244 | } | 244 | } |
@@ -266,7 +266,6 @@ fn main_loop_inner( | |||
266 | subs.subscriptions(), | 266 | subs.subscriptions(), |
267 | ) | 267 | ) |
268 | } | 268 | } |
269 | log::info!("loop_turn = {:?}", start.elapsed()); | ||
270 | } | 269 | } |
271 | } | 270 | } |
272 | 271 | ||
diff --git a/crates/ra_mbe/Cargo.toml b/crates/ra_mbe/Cargo.toml index 6e785f570..1d0c2a340 100644 --- a/crates/ra_mbe/Cargo.toml +++ b/crates/ra_mbe/Cargo.toml | |||
@@ -8,5 +8,5 @@ authors = ["rust-analyzer developers"] | |||
8 | ra_syntax = { path = "../ra_syntax" } | 8 | ra_syntax = { path = "../ra_syntax" } |
9 | ra_parser = { path = "../ra_parser" } | 9 | ra_parser = { path = "../ra_parser" } |
10 | tt = { path = "../ra_tt", package = "ra_tt" } | 10 | tt = { path = "../ra_tt", package = "ra_tt" } |
11 | 11 | itertools = "0.8.0" | |
12 | rustc-hash = "1.0.0" | 12 | rustc-hash = "1.0.0" |
diff --git a/crates/ra_mbe/src/lib.rs b/crates/ra_mbe/src/lib.rs index 93246f54a..4203929d4 100644 --- a/crates/ra_mbe/src/lib.rs +++ b/crates/ra_mbe/src/lib.rs | |||
@@ -167,7 +167,7 @@ impl_froms!(TokenTree: Leaf, Subtree); | |||
167 | ) | 167 | ) |
168 | } | 168 | } |
169 | 169 | ||
170 | fn create_rules(macro_definition: &str) -> MacroRules { | 170 | pub(crate) fn create_rules(macro_definition: &str) -> MacroRules { |
171 | let source_file = ast::SourceFile::parse(macro_definition); | 171 | let source_file = ast::SourceFile::parse(macro_definition); |
172 | let macro_definition = | 172 | let macro_definition = |
173 | source_file.syntax().descendants().find_map(ast::MacroCall::cast).unwrap(); | 173 | source_file.syntax().descendants().find_map(ast::MacroCall::cast).unwrap(); |
@@ -176,7 +176,7 @@ impl_froms!(TokenTree: Leaf, Subtree); | |||
176 | crate::MacroRules::parse(&definition_tt).unwrap() | 176 | crate::MacroRules::parse(&definition_tt).unwrap() |
177 | } | 177 | } |
178 | 178 | ||
179 | fn expand(rules: &MacroRules, invocation: &str) -> tt::Subtree { | 179 | pub(crate) fn expand(rules: &MacroRules, invocation: &str) -> tt::Subtree { |
180 | let source_file = ast::SourceFile::parse(invocation); | 180 | let source_file = ast::SourceFile::parse(invocation); |
181 | let macro_invocation = | 181 | let macro_invocation = |
182 | source_file.syntax().descendants().find_map(ast::MacroCall::cast).unwrap(); | 182 | source_file.syntax().descendants().find_map(ast::MacroCall::cast).unwrap(); |
@@ -186,7 +186,7 @@ impl_froms!(TokenTree: Leaf, Subtree); | |||
186 | rules.expand(&invocation_tt).unwrap() | 186 | rules.expand(&invocation_tt).unwrap() |
187 | } | 187 | } |
188 | 188 | ||
189 | fn assert_expansion(rules: &MacroRules, invocation: &str, expansion: &str) { | 189 | pub(crate) fn assert_expansion(rules: &MacroRules, invocation: &str, expansion: &str) { |
190 | let expanded = expand(rules, invocation); | 190 | let expanded = expand(rules, invocation); |
191 | assert_eq!(expanded.to_string(), expansion); | 191 | assert_eq!(expanded.to_string(), expansion); |
192 | } | 192 | } |
@@ -337,4 +337,46 @@ SOURCE_FILE@[0; 40) | |||
337 | ); | 337 | ); |
338 | } | 338 | } |
339 | 339 | ||
340 | #[test] | ||
341 | fn expand_literals_to_token_tree() { | ||
342 | fn to_subtree(tt: &tt::TokenTree) -> &tt::Subtree { | ||
343 | if let tt::TokenTree::Subtree(subtree) = tt { | ||
344 | return &subtree; | ||
345 | } | ||
346 | unreachable!("It is not a subtree"); | ||
347 | } | ||
348 | |||
349 | fn to_literal(tt: &tt::TokenTree) -> &tt::Literal { | ||
350 | if let tt::TokenTree::Leaf(tt::Leaf::Literal(lit)) = tt { | ||
351 | return lit; | ||
352 | } | ||
353 | unreachable!("It is not a literal"); | ||
354 | } | ||
355 | |||
356 | let rules = create_rules( | ||
357 | r#" | ||
358 | macro_rules! literals { | ||
359 | ($i:ident) => { | ||
360 | { | ||
361 | let a = 'c'; | ||
362 | let c = 1000; | ||
363 | let f = 12E+99_f64; | ||
364 | let s = "rust1"; | ||
365 | } | ||
366 | } | ||
367 | } | ||
368 | "#, | ||
369 | ); | ||
370 | let expansion = expand(&rules, "literals!(foo)"); | ||
371 | let stm_tokens = &to_subtree(&expansion.token_trees[0]).token_trees; | ||
372 | |||
373 | // [let] [a] [=] ['c'] [;] | ||
374 | assert_eq!(to_literal(&stm_tokens[3]).text, "'c'"); | ||
375 | // [let] [c] [=] [1000] [;] | ||
376 | assert_eq!(to_literal(&stm_tokens[5 + 3]).text, "1000"); | ||
377 | // [let] [f] [=] [12E+99_f64] [;] | ||
378 | assert_eq!(to_literal(&stm_tokens[10 + 3]).text, "12E+99_f64"); | ||
379 | // [let] [s] [=] ["rust1"] [;] | ||
380 | assert_eq!(to_literal(&stm_tokens[15 + 3]).text, "\"rust1\""); | ||
381 | } | ||
340 | } | 382 | } |
diff --git a/crates/ra_mbe/src/syntax_bridge.rs b/crates/ra_mbe/src/syntax_bridge.rs index 05f9817da..139a0fd33 100644 --- a/crates/ra_mbe/src/syntax_bridge.rs +++ b/crates/ra_mbe/src/syntax_bridge.rs | |||
@@ -1,7 +1,7 @@ | |||
1 | use ra_parser::{TokenSource, TreeSink, ParseError}; | 1 | use ra_parser::{TokenSource, TreeSink, ParseError}; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | AstNode, SyntaxNode, TextRange, SyntaxKind, SmolStr, SyntaxTreeBuilder, TreeArc, SyntaxElement, | 3 | AstNode, SyntaxNode, TextRange, SyntaxKind, SmolStr, SyntaxTreeBuilder, TreeArc, SyntaxElement, |
4 | ast, SyntaxKind::*, TextUnit | 4 | ast, SyntaxKind::*, TextUnit, classify_literal |
5 | }; | 5 | }; |
6 | 6 | ||
7 | /// Maps `tt::TokenId` to the relative range of the original token. | 7 | /// Maps `tt::TokenId` to the relative range of the original token. |
@@ -103,16 +103,63 @@ fn convert_tt( | |||
103 | Some(res) | 103 | Some(res) |
104 | } | 104 | } |
105 | 105 | ||
106 | #[derive(Debug)] | ||
106 | struct TtTokenSource { | 107 | struct TtTokenSource { |
107 | tokens: Vec<TtToken>, | 108 | tokens: Vec<TtToken>, |
108 | } | 109 | } |
109 | 110 | ||
111 | #[derive(Debug)] | ||
110 | struct TtToken { | 112 | struct TtToken { |
111 | kind: SyntaxKind, | 113 | kind: SyntaxKind, |
112 | is_joint_to_next: bool, | 114 | is_joint_to_next: bool, |
113 | text: SmolStr, | 115 | text: SmolStr, |
114 | } | 116 | } |
115 | 117 | ||
118 | // Some helper functions | ||
119 | fn to_punct(tt: &tt::TokenTree) -> Option<&tt::Punct> { | ||
120 | if let tt::TokenTree::Leaf(tt::Leaf::Punct(pp)) = tt { | ||
121 | return Some(pp); | ||
122 | } | ||
123 | None | ||
124 | } | ||
125 | |||
126 | struct TokenPeek<'a, I> | ||
127 | where | ||
128 | I: Iterator<Item = &'a tt::TokenTree>, | ||
129 | { | ||
130 | iter: itertools::MultiPeek<I>, | ||
131 | } | ||
132 | |||
133 | impl<'a, I> TokenPeek<'a, I> | ||
134 | where | ||
135 | I: Iterator<Item = &'a tt::TokenTree>, | ||
136 | { | ||
137 | fn next(&mut self) -> Option<&tt::TokenTree> { | ||
138 | self.iter.next() | ||
139 | } | ||
140 | |||
141 | fn current_punct2(&mut self, p: &tt::Punct) -> Option<((char, char), bool)> { | ||
142 | if p.spacing != tt::Spacing::Joint { | ||
143 | return None; | ||
144 | } | ||
145 | |||
146 | self.iter.reset_peek(); | ||
147 | let p1 = to_punct(self.iter.peek()?)?; | ||
148 | Some(((p.char, p1.char), p1.spacing == tt::Spacing::Joint)) | ||
149 | } | ||
150 | |||
151 | fn current_punct3(&mut self, p: &tt::Punct) -> Option<((char, char, char), bool)> { | ||
152 | self.current_punct2(p).and_then(|((p0, p1), last_joint)| { | ||
153 | if !last_joint { | ||
154 | None | ||
155 | } else { | ||
156 | let p2 = to_punct(*self.iter.peek()?)?; | ||
157 | Some(((p0, p1, p2.char), p2.spacing == tt::Spacing::Joint)) | ||
158 | } | ||
159 | }) | ||
160 | } | ||
161 | } | ||
162 | |||
116 | impl TtTokenSource { | 163 | impl TtTokenSource { |
117 | fn new(tt: &tt::Subtree) -> TtTokenSource { | 164 | fn new(tt: &tt::Subtree) -> TtTokenSource { |
118 | let mut res = TtTokenSource { tokens: Vec::new() }; | 165 | let mut res = TtTokenSource { tokens: Vec::new() }; |
@@ -121,38 +168,53 @@ impl TtTokenSource { | |||
121 | } | 168 | } |
122 | fn convert_subtree(&mut self, sub: &tt::Subtree) { | 169 | fn convert_subtree(&mut self, sub: &tt::Subtree) { |
123 | self.push_delim(sub.delimiter, false); | 170 | self.push_delim(sub.delimiter, false); |
124 | sub.token_trees.iter().for_each(|tt| self.convert_tt(tt)); | 171 | let mut peek = TokenPeek { iter: itertools::multipeek(sub.token_trees.iter()) }; |
172 | while let Some(tt) = peek.iter.next() { | ||
173 | self.convert_tt(tt, &mut peek); | ||
174 | } | ||
125 | self.push_delim(sub.delimiter, true) | 175 | self.push_delim(sub.delimiter, true) |
126 | } | 176 | } |
127 | fn convert_tt(&mut self, tt: &tt::TokenTree) { | 177 | |
178 | fn convert_tt<'a, I>(&mut self, tt: &tt::TokenTree, iter: &mut TokenPeek<'a, I>) | ||
179 | where | ||
180 | I: Iterator<Item = &'a tt::TokenTree>, | ||
181 | { | ||
128 | match tt { | 182 | match tt { |
129 | tt::TokenTree::Leaf(token) => self.convert_token(token), | 183 | tt::TokenTree::Leaf(token) => self.convert_token(token, iter), |
130 | tt::TokenTree::Subtree(sub) => self.convert_subtree(sub), | 184 | tt::TokenTree::Subtree(sub) => self.convert_subtree(sub), |
131 | } | 185 | } |
132 | } | 186 | } |
133 | fn convert_token(&mut self, token: &tt::Leaf) { | 187 | |
188 | fn convert_token<'a, I>(&mut self, token: &tt::Leaf, iter: &mut TokenPeek<'a, I>) | ||
189 | where | ||
190 | I: Iterator<Item = &'a tt::TokenTree>, | ||
191 | { | ||
134 | let tok = match token { | 192 | let tok = match token { |
135 | tt::Leaf::Literal(l) => TtToken { | 193 | tt::Leaf::Literal(l) => TtToken { |
136 | kind: SyntaxKind::INT_NUMBER, // FIXME | 194 | kind: classify_literal(&l.text).unwrap().kind, |
137 | is_joint_to_next: false, | 195 | is_joint_to_next: false, |
138 | text: l.text.clone(), | 196 | text: l.text.clone(), |
139 | }, | 197 | }, |
140 | tt::Leaf::Punct(p) => { | 198 | tt::Leaf::Punct(p) => { |
141 | let kind = match p.char { | 199 | if let Some(tt) = Self::convert_multi_char_punct(p, iter) { |
142 | // lexer may produce combpund tokens for these ones | 200 | tt |
143 | '.' => DOT, | 201 | } else { |
144 | ':' => COLON, | 202 | let kind = match p.char { |
145 | '=' => EQ, | 203 | // lexer may produce combpund tokens for these ones |
146 | '!' => EXCL, | 204 | '.' => DOT, |
147 | '-' => MINUS, | 205 | ':' => COLON, |
148 | c => SyntaxKind::from_char(c).unwrap(), | 206 | '=' => EQ, |
149 | }; | 207 | '!' => EXCL, |
150 | let text = { | 208 | '-' => MINUS, |
151 | let mut buf = [0u8; 4]; | 209 | c => SyntaxKind::from_char(c).unwrap(), |
152 | let s: &str = p.char.encode_utf8(&mut buf); | 210 | }; |
153 | SmolStr::new(s) | 211 | let text = { |
154 | }; | 212 | let mut buf = [0u8; 4]; |
155 | TtToken { kind, is_joint_to_next: p.spacing == tt::Spacing::Joint, text } | 213 | let s: &str = p.char.encode_utf8(&mut buf); |
214 | SmolStr::new(s) | ||
215 | }; | ||
216 | TtToken { kind, is_joint_to_next: p.spacing == tt::Spacing::Joint, text } | ||
217 | } | ||
156 | } | 218 | } |
157 | tt::Leaf::Ident(ident) => { | 219 | tt::Leaf::Ident(ident) => { |
158 | let kind = SyntaxKind::from_keyword(ident.text.as_str()).unwrap_or(IDENT); | 220 | let kind = SyntaxKind::from_keyword(ident.text.as_str()).unwrap_or(IDENT); |
@@ -161,6 +223,64 @@ impl TtTokenSource { | |||
161 | }; | 223 | }; |
162 | self.tokens.push(tok) | 224 | self.tokens.push(tok) |
163 | } | 225 | } |
226 | |||
227 | fn convert_multi_char_punct<'a, I>( | ||
228 | p: &tt::Punct, | ||
229 | iter: &mut TokenPeek<'a, I>, | ||
230 | ) -> Option<TtToken> | ||
231 | where | ||
232 | I: Iterator<Item = &'a tt::TokenTree>, | ||
233 | { | ||
234 | if let Some((m, is_joint_to_next)) = iter.current_punct3(p) { | ||
235 | if let Some((kind, text)) = match m { | ||
236 | ('<', '<', '=') => Some((SHLEQ, "<<=")), | ||
237 | ('>', '>', '=') => Some((SHREQ, ">>=")), | ||
238 | ('.', '.', '.') => Some((DOTDOTDOT, "...")), | ||
239 | ('.', '.', '=') => Some((DOTDOTEQ, "..=")), | ||
240 | _ => None, | ||
241 | } { | ||
242 | iter.next(); | ||
243 | iter.next(); | ||
244 | return Some(TtToken { kind, is_joint_to_next, text: text.into() }); | ||
245 | } | ||
246 | } | ||
247 | |||
248 | if let Some((m, is_joint_to_next)) = iter.current_punct2(p) { | ||
249 | if let Some((kind, text)) = match m { | ||
250 | ('<', '<') => Some((SHL, "<<")), | ||
251 | ('>', '>') => Some((SHR, ">>")), | ||
252 | |||
253 | ('|', '|') => Some((PIPEPIPE, "||")), | ||
254 | ('&', '&') => Some((AMPAMP, "&&")), | ||
255 | ('%', '=') => Some((PERCENTEQ, "%=")), | ||
256 | ('*', '=') => Some((STAREQ, "*=")), | ||
257 | ('/', '=') => Some((SLASHEQ, "/=")), | ||
258 | ('^', '=') => Some((CARETEQ, "^=")), | ||
259 | |||
260 | ('&', '=') => Some((AMPEQ, "&=")), | ||
261 | ('|', '=') => Some((PIPEEQ, "|=")), | ||
262 | ('-', '=') => Some((MINUSEQ, "-=")), | ||
263 | ('+', '=') => Some((PLUSEQ, "+=")), | ||
264 | ('>', '=') => Some((GTEQ, ">=")), | ||
265 | ('<', '=') => Some((LTEQ, "<=")), | ||
266 | |||
267 | ('-', '>') => Some((THIN_ARROW, "->")), | ||
268 | ('!', '=') => Some((NEQ, "!=")), | ||
269 | ('=', '>') => Some((FAT_ARROW, "=>")), | ||
270 | ('=', '=') => Some((EQEQ, "==")), | ||
271 | ('.', '.') => Some((DOTDOT, "..")), | ||
272 | (':', ':') => Some((COLONCOLON, "::")), | ||
273 | |||
274 | _ => None, | ||
275 | } { | ||
276 | iter.next(); | ||
277 | return Some(TtToken { kind, is_joint_to_next, text: text.into() }); | ||
278 | } | ||
279 | } | ||
280 | |||
281 | None | ||
282 | } | ||
283 | |||
164 | fn push_delim(&mut self, d: tt::Delimiter, closing: bool) { | 284 | fn push_delim(&mut self, d: tt::Delimiter, closing: bool) { |
165 | let (kinds, texts) = match d { | 285 | let (kinds, texts) = match d { |
166 | tt::Delimiter::Parenthesis => ([L_PAREN, R_PAREN], "()"), | 286 | tt::Delimiter::Parenthesis => ([L_PAREN, R_PAREN], "()"), |
@@ -237,3 +357,44 @@ impl<'a> TreeSink for TtTreeSink<'a> { | |||
237 | self.inner.error(error, self.text_pos) | 357 | self.inner.error(error, self.text_pos) |
238 | } | 358 | } |
239 | } | 359 | } |
360 | |||
361 | #[cfg(test)] | ||
362 | mod tests { | ||
363 | use super::*; | ||
364 | use crate::tests::{expand, create_rules}; | ||
365 | |||
366 | #[test] | ||
367 | fn convert_tt_token_source() { | ||
368 | let rules = create_rules( | ||
369 | r#" | ||
370 | macro_rules! literals { | ||
371 | ($i:ident) => { | ||
372 | { | ||
373 | let a = 'c'; | ||
374 | let c = 1000; | ||
375 | let f = 12E+99_f64; | ||
376 | let s = "rust1"; | ||
377 | } | ||
378 | } | ||
379 | } | ||
380 | "#, | ||
381 | ); | ||
382 | let expansion = expand(&rules, "literals!(foo)"); | ||
383 | let tt_src = TtTokenSource::new(&expansion); | ||
384 | |||
385 | // [{] | ||
386 | // [let] [a] [=] ['c'] [;] | ||
387 | assert_eq!(tt_src.tokens[1 + 3].text, "'c'"); | ||
388 | assert_eq!(tt_src.tokens[1 + 3].kind, CHAR); | ||
389 | // [let] [c] [=] [1000] [;] | ||
390 | assert_eq!(tt_src.tokens[1 + 5 + 3].text, "1000"); | ||
391 | assert_eq!(tt_src.tokens[1 + 5 + 3].kind, INT_NUMBER); | ||
392 | // [let] [f] [=] [12E+99_f64] [;] | ||
393 | assert_eq!(tt_src.tokens[1 + 10 + 3].text, "12E+99_f64"); | ||
394 | assert_eq!(tt_src.tokens[1 + 10 + 3].kind, FLOAT_NUMBER); | ||
395 | |||
396 | // [let] [s] [=] ["rust1"] [;] | ||
397 | assert_eq!(tt_src.tokens[1 + 15 + 3].text, "\"rust1\""); | ||
398 | assert_eq!(tt_src.tokens[1 + 15 + 3].kind, STRING); | ||
399 | } | ||
400 | } | ||
diff --git a/crates/ra_parser/src/grammar/items.rs b/crates/ra_parser/src/grammar/items.rs index c4b8ef3c7..318fd69a1 100644 --- a/crates/ra_parser/src/grammar/items.rs +++ b/crates/ra_parser/src/grammar/items.rs | |||
@@ -79,19 +79,22 @@ pub(super) fn maybe_item(p: &mut Parser, m: Marker, flavor: ItemFlavor) -> Resul | |||
79 | let mut has_mods = false; | 79 | let mut has_mods = false; |
80 | 80 | ||
81 | // modifiers | 81 | // modifiers |
82 | // test_err async_without_semicolon | ||
83 | // fn foo() { let _ = async {} } | ||
84 | has_mods |= p.eat(CONST_KW); | 82 | has_mods |= p.eat(CONST_KW); |
85 | if p.at(ASYNC_KW) && p.nth(1) != L_CURLY && p.nth(1) != MOVE_KW && p.nth(1) != PIPE { | 83 | |
86 | p.eat(ASYNC_KW); | ||
87 | has_mods = true; | ||
88 | } | ||
89 | // test_err unsafe_block_in_mod | 84 | // test_err unsafe_block_in_mod |
90 | // fn foo(){} unsafe { } fn bar(){} | 85 | // fn foo(){} unsafe { } fn bar(){} |
91 | if p.at(UNSAFE_KW) && p.nth(1) != L_CURLY { | 86 | if p.at(UNSAFE_KW) && p.nth(1) != L_CURLY { |
92 | p.eat(UNSAFE_KW); | 87 | p.eat(UNSAFE_KW); |
93 | has_mods = true; | 88 | has_mods = true; |
94 | } | 89 | } |
90 | |||
91 | // test_err async_without_semicolon | ||
92 | // fn foo() { let _ = async {} } | ||
93 | if p.at(ASYNC_KW) && p.nth(1) != L_CURLY && p.nth(1) != MOVE_KW && p.nth(1) != PIPE { | ||
94 | p.eat(ASYNC_KW); | ||
95 | has_mods = true; | ||
96 | } | ||
97 | |||
95 | if p.at(EXTERN_KW) { | 98 | if p.at(EXTERN_KW) { |
96 | has_mods = true; | 99 | has_mods = true; |
97 | abi(p); | 100 | abi(p); |
@@ -124,6 +127,14 @@ pub(super) fn maybe_item(p: &mut Parser, m: Marker, flavor: ItemFlavor) -> Resul | |||
124 | 127 | ||
125 | // test unsafe_fn | 128 | // test unsafe_fn |
126 | // unsafe fn foo() {} | 129 | // unsafe fn foo() {} |
130 | |||
131 | // test combined_fns | ||
132 | // unsafe async fn foo() {} | ||
133 | // const unsafe fn bar() {} | ||
134 | |||
135 | // test_err wrong_order_fns | ||
136 | // async unsafe fn foo() {} | ||
137 | // unsafe const fn bar() {} | ||
127 | FN_KW => { | 138 | FN_KW => { |
128 | fn_def(p, flavor); | 139 | fn_def(p, flavor); |
129 | m.complete(p, FN_DEF); | 140 | m.complete(p, FN_DEF); |
diff --git a/crates/ra_prof/Cargo.toml b/crates/ra_prof/Cargo.toml new file mode 100644 index 000000000..19ce21783 --- /dev/null +++ b/crates/ra_prof/Cargo.toml | |||
@@ -0,0 +1,9 @@ | |||
1 | [package] | ||
2 | edition = "2018" | ||
3 | name = "ra_prof" | ||
4 | version = "0.1.0" | ||
5 | authors = ["rust-analyzer developers"] | ||
6 | publish = false | ||
7 | |||
8 | [dependencies] | ||
9 | lazy_static = "1.3.0" \ No newline at end of file | ||
diff --git a/crates/ra_prof/src/lib.rs b/crates/ra_prof/src/lib.rs new file mode 100644 index 000000000..1cc8e361d --- /dev/null +++ b/crates/ra_prof/src/lib.rs | |||
@@ -0,0 +1,198 @@ | |||
1 | use std::cell::RefCell; | ||
2 | use std::time::{Duration, Instant}; | ||
3 | use std::mem; | ||
4 | use std::io::{stderr, Write}; | ||
5 | use std::iter::repeat; | ||
6 | use std::collections::{HashSet}; | ||
7 | use std::default::Default; | ||
8 | use std::iter::FromIterator; | ||
9 | use std::sync::RwLock; | ||
10 | use lazy_static::lazy_static; | ||
11 | |||
12 | /// Set profiling filter. It specifies descriptions allowed to profile. | ||
13 | /// This is helpful when call stack has too many nested profiling scopes. | ||
14 | /// Additionally filter can specify maximum depth of profiling scopes nesting. | ||
15 | /// | ||
16 | /// #Example | ||
17 | /// ``` | ||
18 | /// use ra_prof::set_filter; | ||
19 | /// use ra_prof::Filter; | ||
20 | /// let max_depth = 2; | ||
21 | /// let allowed = vec!["profile1".to_string(), "profile2".to_string()]; | ||
22 | /// let f = Filter::new( max_depth, allowed ); | ||
23 | /// set_filter(f); | ||
24 | /// ``` | ||
25 | /// | ||
26 | pub fn set_filter(f: Filter) { | ||
27 | let set = HashSet::from_iter(f.allowed.iter().cloned()); | ||
28 | let mut old = FILTER.write().unwrap(); | ||
29 | let filter_data = FilterData { depth: f.depth, allowed: set, version: old.version + 1 }; | ||
30 | *old = filter_data; | ||
31 | } | ||
32 | |||
33 | /// This function starts a profiling scope in the current execution stack with a given description. | ||
34 | /// It returns a Profile structure and measure elapsed time between this method invocation and Profile structure drop. | ||
35 | /// It supports nested profiling scopes in case when this function invoked multiple times at the execution stack. In this case the profiling information will be nested at the output. | ||
36 | /// Profiling information is being printed in the stderr. | ||
37 | /// | ||
38 | /// #Example | ||
39 | /// ``` | ||
40 | /// use ra_prof::profile; | ||
41 | /// use ra_prof::set_filter; | ||
42 | /// use ra_prof::Filter; | ||
43 | /// | ||
44 | /// let allowed = vec!["profile1".to_string(), "profile2".to_string()]; | ||
45 | /// let f = Filter::new(2, allowed); | ||
46 | /// set_filter(f); | ||
47 | /// profiling_function1(); | ||
48 | /// | ||
49 | /// fn profiling_function1() { | ||
50 | /// let _p = profile("profile1"); | ||
51 | /// profiling_function2(); | ||
52 | /// } | ||
53 | /// | ||
54 | /// fn profiling_function2() { | ||
55 | /// let _p = profile("profile2"); | ||
56 | /// } | ||
57 | /// ``` | ||
58 | /// This will print in the stderr the following: | ||
59 | /// ```text | ||
60 | /// 0ms - profile | ||
61 | /// 0ms - profile2 | ||
62 | /// ``` | ||
63 | /// | ||
64 | pub fn profile(desc: &str) -> Profiler { | ||
65 | PROFILE_STACK.with(|stack| { | ||
66 | let mut stack = stack.borrow_mut(); | ||
67 | if stack.starts.len() == 0 { | ||
68 | match FILTER.try_read() { | ||
69 | Ok(f) => { | ||
70 | if f.version > stack.filter_data.version { | ||
71 | stack.filter_data = f.clone(); | ||
72 | } | ||
73 | } | ||
74 | Err(_) => (), | ||
75 | }; | ||
76 | } | ||
77 | let desc_str = desc.to_string(); | ||
78 | if desc_str.is_empty() { | ||
79 | Profiler { desc: None } | ||
80 | } else if stack.starts.len() < stack.filter_data.depth | ||
81 | && stack.filter_data.allowed.contains(&desc_str) | ||
82 | { | ||
83 | stack.starts.push(Instant::now()); | ||
84 | Profiler { desc: Some(desc_str) } | ||
85 | } else { | ||
86 | Profiler { desc: None } | ||
87 | } | ||
88 | }) | ||
89 | } | ||
90 | |||
91 | pub struct Profiler { | ||
92 | desc: Option<String>, | ||
93 | } | ||
94 | |||
95 | pub struct Filter { | ||
96 | depth: usize, | ||
97 | allowed: Vec<String>, | ||
98 | } | ||
99 | |||
100 | impl Filter { | ||
101 | pub fn new(depth: usize, allowed: Vec<String>) -> Filter { | ||
102 | Filter { depth, allowed } | ||
103 | } | ||
104 | } | ||
105 | |||
106 | struct ProfileStack { | ||
107 | starts: Vec<Instant>, | ||
108 | messages: Vec<Message>, | ||
109 | filter_data: FilterData, | ||
110 | } | ||
111 | |||
112 | struct Message { | ||
113 | level: usize, | ||
114 | duration: Duration, | ||
115 | message: String, | ||
116 | } | ||
117 | |||
118 | impl ProfileStack { | ||
119 | fn new() -> ProfileStack { | ||
120 | ProfileStack { starts: Vec::new(), messages: Vec::new(), filter_data: Default::default() } | ||
121 | } | ||
122 | } | ||
123 | |||
124 | #[derive(Default, Clone)] | ||
125 | struct FilterData { | ||
126 | depth: usize, | ||
127 | version: usize, | ||
128 | allowed: HashSet<String>, | ||
129 | } | ||
130 | |||
131 | lazy_static! { | ||
132 | static ref FILTER: RwLock<FilterData> = RwLock::new(Default::default()); | ||
133 | } | ||
134 | |||
135 | thread_local!(static PROFILE_STACK: RefCell<ProfileStack> = RefCell::new(ProfileStack::new())); | ||
136 | |||
137 | impl Drop for Profiler { | ||
138 | fn drop(&mut self) { | ||
139 | match self { | ||
140 | Profiler { desc: Some(desc) } => { | ||
141 | PROFILE_STACK.with(|stack| { | ||
142 | let mut stack = stack.borrow_mut(); | ||
143 | let start = stack.starts.pop().unwrap(); | ||
144 | let duration = start.elapsed(); | ||
145 | let level = stack.starts.len(); | ||
146 | let message = mem::replace(desc, String::new()); | ||
147 | stack.messages.push(Message { level, duration, message }); | ||
148 | if level == 0 { | ||
149 | let stdout = stderr(); | ||
150 | print(0, &stack.messages, &mut stdout.lock()); | ||
151 | stack.messages.clear(); | ||
152 | } | ||
153 | }); | ||
154 | } | ||
155 | Profiler { desc: None } => (), | ||
156 | } | ||
157 | } | ||
158 | } | ||
159 | |||
160 | fn print(lvl: usize, msgs: &[Message], out: &mut impl Write) { | ||
161 | let mut last = 0; | ||
162 | let indent = repeat(" ").take(lvl + 1).collect::<String>(); | ||
163 | for (i, &Message { level: l, duration: dur, message: ref msg }) in msgs.iter().enumerate() { | ||
164 | if l != lvl { | ||
165 | continue; | ||
166 | } | ||
167 | writeln!(out, "{} {:6}ms - {}", indent, dur.as_millis(), msg) | ||
168 | .expect("printing profiling info to stdout"); | ||
169 | |||
170 | print(lvl + 1, &msgs[last..i], out); | ||
171 | last = i; | ||
172 | } | ||
173 | } | ||
174 | |||
175 | #[cfg(test)] | ||
176 | mod tests { | ||
177 | |||
178 | use super::profile; | ||
179 | use super::set_filter; | ||
180 | use super::Filter; | ||
181 | |||
182 | #[test] | ||
183 | fn test_basic_profile() { | ||
184 | let s = vec!["profile1".to_string(), "profile2".to_string()]; | ||
185 | let f = Filter::new(2, s); | ||
186 | set_filter(f); | ||
187 | profiling_function1(); | ||
188 | } | ||
189 | |||
190 | fn profiling_function1() { | ||
191 | let _p = profile("profile1"); | ||
192 | profiling_function2(); | ||
193 | } | ||
194 | |||
195 | fn profiling_function2() { | ||
196 | let _p = profile("profile2"); | ||
197 | } | ||
198 | } | ||
diff --git a/crates/ra_syntax/src/lib.rs b/crates/ra_syntax/src/lib.rs index e1088e296..c56bc9f16 100644 --- a/crates/ra_syntax/src/lib.rs +++ b/crates/ra_syntax/src/lib.rs | |||
@@ -40,7 +40,7 @@ pub use crate::{ | |||
40 | syntax_text::SyntaxText, | 40 | syntax_text::SyntaxText, |
41 | syntax_node::{Direction, SyntaxNode, WalkEvent, TreeArc, SyntaxTreeBuilder, SyntaxElement, SyntaxToken}, | 41 | syntax_node::{Direction, SyntaxNode, WalkEvent, TreeArc, SyntaxTreeBuilder, SyntaxElement, SyntaxToken}, |
42 | ptr::{SyntaxNodePtr, AstPtr}, | 42 | ptr::{SyntaxNodePtr, AstPtr}, |
43 | parsing::{tokenize, Token}, | 43 | parsing::{tokenize, classify_literal, Token}, |
44 | }; | 44 | }; |
45 | 45 | ||
46 | use ra_text_edit::AtomTextEdit; | 46 | use ra_text_edit::AtomTextEdit; |
diff --git a/crates/ra_syntax/src/parsing.rs b/crates/ra_syntax/src/parsing.rs index ad5668a65..15d69c5ab 100644 --- a/crates/ra_syntax/src/parsing.rs +++ b/crates/ra_syntax/src/parsing.rs | |||
@@ -11,7 +11,7 @@ use crate::{ | |||
11 | syntax_node::GreenNode, | 11 | syntax_node::GreenNode, |
12 | }; | 12 | }; |
13 | 13 | ||
14 | pub use self::lexer::{tokenize, Token}; | 14 | pub use self::lexer::{tokenize, classify_literal, Token}; |
15 | 15 | ||
16 | pub(crate) use self::reparsing::incremental_reparse; | 16 | pub(crate) use self::reparsing::incremental_reparse; |
17 | 17 | ||
diff --git a/crates/ra_syntax/src/parsing/lexer.rs b/crates/ra_syntax/src/parsing/lexer.rs index 36e841609..3ae42912c 100644 --- a/crates/ra_syntax/src/parsing/lexer.rs +++ b/crates/ra_syntax/src/parsing/lexer.rs | |||
@@ -214,3 +214,12 @@ fn scan_literal_suffix(ptr: &mut Ptr) { | |||
214 | } | 214 | } |
215 | ptr.bump_while(is_ident_continue); | 215 | ptr.bump_while(is_ident_continue); |
216 | } | 216 | } |
217 | |||
218 | pub fn classify_literal(text: &str) -> Option<Token> { | ||
219 | let tkn = next_token(text); | ||
220 | if !tkn.kind.is_literal() || tkn.len.to_usize() != text.len() { | ||
221 | return None; | ||
222 | } | ||
223 | |||
224 | Some(tkn) | ||
225 | } | ||
diff --git a/crates/ra_syntax/tests/data/parser/inline/err/0010_wrong_order_fns.rs b/crates/ra_syntax/tests/data/parser/inline/err/0010_wrong_order_fns.rs new file mode 100644 index 000000000..16edee95d --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/err/0010_wrong_order_fns.rs | |||
@@ -0,0 +1,2 @@ | |||
1 | async unsafe fn foo() {} | ||
2 | unsafe const fn bar() {} | ||
diff --git a/crates/ra_syntax/tests/data/parser/inline/err/0010_wrong_order_fns.txt b/crates/ra_syntax/tests/data/parser/inline/err/0010_wrong_order_fns.txt new file mode 100644 index 000000000..220191ffa --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/err/0010_wrong_order_fns.txt | |||
@@ -0,0 +1,39 @@ | |||
1 | SOURCE_FILE@[0; 50) | ||
2 | ERROR@[0; 5) | ||
3 | ASYNC_KW@[0; 5) "async" | ||
4 | err: `expected fn, trait or impl` | ||
5 | WHITESPACE@[5; 6) " " | ||
6 | FN_DEF@[6; 24) | ||
7 | UNSAFE_KW@[6; 12) "unsafe" | ||
8 | WHITESPACE@[12; 13) " " | ||
9 | FN_KW@[13; 15) "fn" | ||
10 | WHITESPACE@[15; 16) " " | ||
11 | NAME@[16; 19) | ||
12 | IDENT@[16; 19) "foo" | ||
13 | PARAM_LIST@[19; 21) | ||
14 | L_PAREN@[19; 20) "(" | ||
15 | R_PAREN@[20; 21) ")" | ||
16 | WHITESPACE@[21; 22) " " | ||
17 | BLOCK@[22; 24) | ||
18 | L_CURLY@[22; 23) "{" | ||
19 | R_CURLY@[23; 24) "}" | ||
20 | WHITESPACE@[24; 25) "\n" | ||
21 | ERROR@[25; 31) | ||
22 | UNSAFE_KW@[25; 31) "unsafe" | ||
23 | err: `expected fn, trait or impl` | ||
24 | WHITESPACE@[31; 32) " " | ||
25 | FN_DEF@[32; 49) | ||
26 | CONST_KW@[32; 37) "const" | ||
27 | WHITESPACE@[37; 38) " " | ||
28 | FN_KW@[38; 40) "fn" | ||
29 | WHITESPACE@[40; 41) " " | ||
30 | NAME@[41; 44) | ||
31 | IDENT@[41; 44) "bar" | ||
32 | PARAM_LIST@[44; 46) | ||
33 | L_PAREN@[44; 45) "(" | ||
34 | R_PAREN@[45; 46) ")" | ||
35 | WHITESPACE@[46; 47) " " | ||
36 | BLOCK@[47; 49) | ||
37 | L_CURLY@[47; 48) "{" | ||
38 | R_CURLY@[48; 49) "}" | ||
39 | WHITESPACE@[49; 50) "\n" | ||
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0128_combined_fns.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0128_combined_fns.rs new file mode 100644 index 000000000..46af91b82 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0128_combined_fns.rs | |||
@@ -0,0 +1,2 @@ | |||
1 | unsafe async fn foo() {} | ||
2 | const unsafe fn bar() {} | ||
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0128_combined_fns.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0128_combined_fns.txt new file mode 100644 index 000000000..2a16aeb61 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0128_combined_fns.txt | |||
@@ -0,0 +1,35 @@ | |||
1 | SOURCE_FILE@[0; 50) | ||
2 | FN_DEF@[0; 24) | ||
3 | UNSAFE_KW@[0; 6) "unsafe" | ||
4 | WHITESPACE@[6; 7) " " | ||
5 | ASYNC_KW@[7; 12) "async" | ||
6 | WHITESPACE@[12; 13) " " | ||
7 | FN_KW@[13; 15) "fn" | ||
8 | WHITESPACE@[15; 16) " " | ||
9 | NAME@[16; 19) | ||
10 | IDENT@[16; 19) "foo" | ||
11 | PARAM_LIST@[19; 21) | ||
12 | L_PAREN@[19; 20) "(" | ||
13 | R_PAREN@[20; 21) ")" | ||
14 | WHITESPACE@[21; 22) " " | ||
15 | BLOCK@[22; 24) | ||
16 | L_CURLY@[22; 23) "{" | ||
17 | R_CURLY@[23; 24) "}" | ||
18 | WHITESPACE@[24; 25) "\n" | ||
19 | FN_DEF@[25; 49) | ||
20 | CONST_KW@[25; 30) "const" | ||
21 | WHITESPACE@[30; 31) " " | ||
22 | UNSAFE_KW@[31; 37) "unsafe" | ||
23 | WHITESPACE@[37; 38) " " | ||
24 | FN_KW@[38; 40) "fn" | ||
25 | WHITESPACE@[40; 41) " " | ||
26 | NAME@[41; 44) | ||
27 | IDENT@[41; 44) "bar" | ||
28 | PARAM_LIST@[44; 46) | ||
29 | L_PAREN@[44; 45) "(" | ||
30 | R_PAREN@[45; 46) ")" | ||
31 | WHITESPACE@[46; 47) " " | ||
32 | BLOCK@[47; 49) | ||
33 | L_CURLY@[47; 48) "{" | ||
34 | R_CURLY@[48; 49) "}" | ||
35 | WHITESPACE@[49; 50) "\n" | ||
diff --git a/docs/dev/README.md b/docs/dev/README.md index d81c2f70d..7bb323f3f 100644 --- a/docs/dev/README.md +++ b/docs/dev/README.md | |||
@@ -45,7 +45,7 @@ mandatory), add yourself to the list! | |||
45 | [E-medium](https://github.com/rust-analyzer/rust-analyzer/issues?q=is%3Aopen+is%3Aissue+label%3AE-medium), | 45 | [E-medium](https://github.com/rust-analyzer/rust-analyzer/issues?q=is%3Aopen+is%3Aissue+label%3AE-medium), |
46 | [E-hard](https://github.com/rust-analyzer/rust-analyzer/issues?q=is%3Aopen+is%3Aissue+label%3AE-hard), | 46 | [E-hard](https://github.com/rust-analyzer/rust-analyzer/issues?q=is%3Aopen+is%3Aissue+label%3AE-hard), |
47 | labels are *estimates* for how hard would be to write a fix. | 47 | labels are *estimates* for how hard would be to write a fix. |
48 | * [E-fun](https://github.com/rust-analyzer/rust-analyzer/issues?q=is%3Aopen+is%3Aissue+label%3AE-fun) | 48 | * [fun](https://github.com/rust-analyzer/rust-analyzer/issues?q=is%3Aopen+is%3Aissue+label%3Afun) |
49 | is for cool, but probably hard stuff. | 49 | is for cool, but probably hard stuff. |
50 | 50 | ||
51 | # CI | 51 | # CI |
diff --git a/editors/code/src/commands/cargo_watch.ts b/editors/code/src/commands/cargo_watch.ts index d45d0e7d1..32bd38a1c 100644 --- a/editors/code/src/commands/cargo_watch.ts +++ b/editors/code/src/commands/cargo_watch.ts | |||
@@ -46,12 +46,15 @@ export class CargoWatchProvider { | |||
46 | 'Cargo Watch Trace' | 46 | 'Cargo Watch Trace' |
47 | ); | 47 | ); |
48 | 48 | ||
49 | let args = '"check --message-format json'; | 49 | let args = 'check --message-format json'; |
50 | if (Server.config.cargoWatchOptions.checkArguments.length > 0) { | 50 | if (Server.config.cargoWatchOptions.checkArguments.length > 0) { |
51 | // Excape the double quote string: | 51 | // Excape the double quote string: |
52 | args += ' ' + Server.config.cargoWatchOptions.checkArguments; | 52 | args += ' ' + Server.config.cargoWatchOptions.checkArguments; |
53 | } | 53 | } |
54 | args += '"'; | 54 | // Windows handles arguments differently than the unix-likes, so we need to wrap the args in double quotes |
55 | if (process.platform === 'win32') { | ||
56 | args = '"' + args + '"'; | ||
57 | } | ||
55 | 58 | ||
56 | // Start the cargo watch with json message | 59 | // Start the cargo watch with json message |
57 | this.cargoProcess = child_process.spawn( | 60 | this.cargoProcess = child_process.spawn( |