aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock174
-rw-r--r--crates/ra_lsp_server/Cargo.toml5
-rw-r--r--crates/ra_lsp_server/src/lib.rs1
-rw-r--r--crates/ra_lsp_server/src/main.rs74
-rw-r--r--crates/ra_lsp_server/src/main_loop.rs29
-rw-r--r--crates/ra_lsp_server/src/project_model.rs4
-rw-r--r--crates/ra_lsp_server/src/thread_worker.rs (renamed from crates/thread_worker/src/lib.rs)0
-rw-r--r--crates/ra_lsp_server/tests/heavy_tests/support.rs57
-rw-r--r--crates/thread_worker/Cargo.toml10
9 files changed, 161 insertions, 193 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 17e60aa82..9c630f370 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -22,7 +22,7 @@ version = "0.2.13"
22source = "registry+https://github.com/rust-lang/crates.io-index" 22source = "registry+https://github.com/rust-lang/crates.io-index"
23dependencies = [ 23dependencies = [
24 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 24 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
25 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 25 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
26] 26]
27 27
28[[package]] 28[[package]]
@@ -46,7 +46,7 @@ name = "backtrace-sys"
46version = "0.1.31" 46version = "0.1.31"
47source = "registry+https://github.com/rust-lang/crates.io-index" 47source = "registry+https://github.com/rust-lang/crates.io-index"
48dependencies = [ 48dependencies = [
49 "cc 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", 49 "cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
50 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 50 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
51] 51]
52 52
@@ -94,7 +94,7 @@ name = "c2-chacha"
94version = "0.2.2" 94version = "0.2.2"
95source = "registry+https://github.com/rust-lang/crates.io-index" 95source = "registry+https://github.com/rust-lang/crates.io-index"
96dependencies = [ 96dependencies = [
97 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 97 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
98 "ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", 98 "ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
99] 99]
100 100
@@ -111,7 +111,7 @@ dependencies = [
111 111
112[[package]] 112[[package]]
113name = "cc" 113name = "cc"
114version = "1.0.40" 114version = "1.0.41"
115source = "registry+https://github.com/rust-lang/crates.io-index" 115source = "registry+https://github.com/rust-lang/crates.io-index"
116 116
117[[package]] 117[[package]]
@@ -122,7 +122,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
122[[package]] 122[[package]]
123name = "chalk-engine" 123name = "chalk-engine"
124version = "0.9.0" 124version = "0.9.0"
125source = "git+https://github.com/rust-lang/chalk.git#201775c47e4cefeb71d7f415c605e09c02e33b22" 125source = "git+https://github.com/rust-lang/chalk.git#c9314e425e49969c33cabcb8fac7da6eac3c5073"
126dependencies = [ 126dependencies = [
127 "chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)", 127 "chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)",
128 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 128 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -132,7 +132,7 @@ dependencies = [
132[[package]] 132[[package]]
133name = "chalk-ir" 133name = "chalk-ir"
134version = "0.1.0" 134version = "0.1.0"
135source = "git+https://github.com/rust-lang/chalk.git#201775c47e4cefeb71d7f415c605e09c02e33b22" 135source = "git+https://github.com/rust-lang/chalk.git#c9314e425e49969c33cabcb8fac7da6eac3c5073"
136dependencies = [ 136dependencies = [
137 "chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)", 137 "chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)",
138 "chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)", 138 "chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)",
@@ -142,15 +142,15 @@ dependencies = [
142[[package]] 142[[package]]
143name = "chalk-macros" 143name = "chalk-macros"
144version = "0.1.1" 144version = "0.1.1"
145source = "git+https://github.com/rust-lang/chalk.git#201775c47e4cefeb71d7f415c605e09c02e33b22" 145source = "git+https://github.com/rust-lang/chalk.git#c9314e425e49969c33cabcb8fac7da6eac3c5073"
146dependencies = [ 146dependencies = [
147 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 147 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
148] 148]
149 149
150[[package]] 150[[package]]
151name = "chalk-rust-ir" 151name = "chalk-rust-ir"
152version = "0.1.0" 152version = "0.1.0"
153source = "git+https://github.com/rust-lang/chalk.git#201775c47e4cefeb71d7f415c605e09c02e33b22" 153source = "git+https://github.com/rust-lang/chalk.git#c9314e425e49969c33cabcb8fac7da6eac3c5073"
154dependencies = [ 154dependencies = [
155 "chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)", 155 "chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)",
156 "chalk-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)", 156 "chalk-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)",
@@ -160,14 +160,14 @@ dependencies = [
160[[package]] 160[[package]]
161name = "chalk-solve" 161name = "chalk-solve"
162version = "0.1.0" 162version = "0.1.0"
163source = "git+https://github.com/rust-lang/chalk.git#201775c47e4cefeb71d7f415c605e09c02e33b22" 163source = "git+https://github.com/rust-lang/chalk.git#c9314e425e49969c33cabcb8fac7da6eac3c5073"
164dependencies = [ 164dependencies = [
165 "chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)", 165 "chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)",
166 "chalk-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)", 166 "chalk-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)",
167 "chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)", 167 "chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)",
168 "chalk-rust-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)", 168 "chalk-rust-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)",
169 "derive-new 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", 169 "derive-new 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
170 "ena 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", 170 "ena 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
171 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 171 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
172 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 172 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
173 "petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", 173 "petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -197,13 +197,13 @@ dependencies = [
197 197
198[[package]] 198[[package]]
199name = "clicolors-control" 199name = "clicolors-control"
200version = "1.0.0" 200version = "1.0.1"
201source = "registry+https://github.com/rust-lang/crates.io-index" 201source = "registry+https://github.com/rust-lang/crates.io-index"
202dependencies = [ 202dependencies = [
203 "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", 203 "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
204 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 204 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
205 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 205 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
206 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 206 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
207] 207]
208 208
209[[package]] 209[[package]]
@@ -219,14 +219,14 @@ name = "console"
219version = "0.8.0" 219version = "0.8.0"
220source = "registry+https://github.com/rust-lang/crates.io-index" 220source = "registry+https://github.com/rust-lang/crates.io-index"
221dependencies = [ 221dependencies = [
222 "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 222 "clicolors-control 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
223 "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", 223 "encode_unicode 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
224 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 224 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
225 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 225 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
226 "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 226 "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
227 "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 227 "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
228 "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 228 "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
229 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 229 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
230] 230]
231 231
232[[package]] 232[[package]]
@@ -276,7 +276,7 @@ dependencies = [
276 "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 276 "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
277 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 277 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
278 "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", 278 "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
279 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 279 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
280 "memoffset 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 280 "memoffset 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
281 "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 281 "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
282] 282]
@@ -295,7 +295,7 @@ version = "0.6.6"
295source = "registry+https://github.com/rust-lang/crates.io-index" 295source = "registry+https://github.com/rust-lang/crates.io-index"
296dependencies = [ 296dependencies = [
297 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 297 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
298 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 298 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
299] 299]
300 300
301[[package]] 301[[package]]
@@ -305,7 +305,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
305dependencies = [ 305dependencies = [
306 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 306 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
307 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 307 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
308 "syn 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 308 "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
309] 309]
310 310
311[[package]] 311[[package]]
@@ -330,14 +330,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
330 330
331[[package]] 331[[package]]
332name = "ena" 332name = "ena"
333version = "0.10.1"
334source = "registry+https://github.com/rust-lang/crates.io-index"
335dependencies = [
336 "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
337]
338
339[[package]]
340name = "ena"
341version = "0.13.0" 333version = "0.13.0"
342source = "registry+https://github.com/rust-lang/crates.io-index" 334source = "registry+https://github.com/rust-lang/crates.io-index"
343dependencies = [ 335dependencies = [
@@ -346,7 +338,7 @@ dependencies = [
346 338
347[[package]] 339[[package]]
348name = "encode_unicode" 340name = "encode_unicode"
349version = "0.3.5" 341version = "0.3.6"
350source = "registry+https://github.com/rust-lang/crates.io-index" 342source = "registry+https://github.com/rust-lang/crates.io-index"
351 343
352[[package]] 344[[package]]
@@ -386,7 +378,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
386 378
387[[package]] 379[[package]]
388name = "flexi_logger" 380name = "flexi_logger"
389version = "0.14.1" 381version = "0.14.3"
390source = "registry+https://github.com/rust-lang/crates.io-index" 382source = "registry+https://github.com/rust-lang/crates.io-index"
391dependencies = [ 383dependencies = [
392 "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", 384 "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -457,7 +449,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
457 449
458[[package]] 450[[package]]
459name = "getrandom" 451name = "getrandom"
460version = "0.1.10" 452version = "0.1.11"
461source = "registry+https://github.com/rust-lang/crates.io-index" 453source = "registry+https://github.com/rust-lang/crates.io-index"
462dependencies = [ 454dependencies = [
463 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 455 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -511,7 +503,7 @@ version = "0.11.0"
511source = "registry+https://github.com/rust-lang/crates.io-index" 503source = "registry+https://github.com/rust-lang/crates.io-index"
512dependencies = [ 504dependencies = [
513 "console 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 505 "console 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
514 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 506 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
515 "number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 507 "number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
516 "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 508 "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
517 "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 509 "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -542,7 +534,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
542dependencies = [ 534dependencies = [
543 "console 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 535 "console 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
544 "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 536 "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
545 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 537 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
546 "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", 538 "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
547 "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", 539 "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
548 "serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", 540 "serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -586,7 +578,7 @@ name = "jemalloc-sys"
586version = "0.3.2" 578version = "0.3.2"
587source = "registry+https://github.com/rust-lang/crates.io-index" 579source = "registry+https://github.com/rust-lang/crates.io-index"
588dependencies = [ 580dependencies = [
589 "cc 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", 581 "cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
590 "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 582 "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
591 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 583 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
592] 584]
@@ -626,7 +618,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
626 618
627[[package]] 619[[package]]
628name = "lazy_static" 620name = "lazy_static"
629version = "1.3.0" 621version = "1.4.0"
630source = "registry+https://github.com/rust-lang/crates.io-index" 622source = "registry+https://github.com/rust-lang/crates.io-index"
631 623
632[[package]] 624[[package]]
@@ -662,7 +654,7 @@ dependencies = [
662 654
663[[package]] 655[[package]]
664name = "lsp-server" 656name = "lsp-server"
665version = "0.1.0" 657version = "0.2.0"
666source = "registry+https://github.com/rust-lang/crates.io-index" 658source = "registry+https://github.com/rust-lang/crates.io-index"
667dependencies = [ 659dependencies = [
668 "crossbeam-channel 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", 660 "crossbeam-channel 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -747,7 +739,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
747dependencies = [ 739dependencies = [
748 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 740 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
749 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 741 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
750 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 742 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
751] 743]
752 744
753[[package]] 745[[package]]
@@ -770,7 +762,7 @@ dependencies = [
770 "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)", 762 "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
771 "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", 763 "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
772 "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", 764 "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
773 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 765 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
774] 766]
775 767
776[[package]] 768[[package]]
@@ -808,7 +800,7 @@ dependencies = [
808 800
809[[package]] 801[[package]]
810name = "once_cell" 802name = "once_cell"
811version = "0.2.6" 803version = "0.2.7"
812source = "registry+https://github.com/rust-lang/crates.io-index" 804source = "registry+https://github.com/rust-lang/crates.io-index"
813dependencies = [ 805dependencies = [
814 "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 806 "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -840,7 +832,7 @@ dependencies = [
840 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", 832 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
841 "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 833 "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
842 "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 834 "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
843 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 835 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
844] 836]
845 837
846[[package]] 838[[package]]
@@ -860,7 +852,7 @@ dependencies = [
860 "proc-macro-hack 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", 852 "proc-macro-hack 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
861 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 853 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
862 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 854 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
863 "syn 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 855 "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
864] 856]
865 857
866[[package]] 858[[package]]
@@ -889,7 +881,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
889dependencies = [ 881dependencies = [
890 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 882 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
891 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 883 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
892 "syn 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 884 "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
893] 885]
894 886
895[[package]] 887[[package]]
@@ -916,7 +908,7 @@ dependencies = [
916 "bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 908 "bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
917 "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 909 "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
918 "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 910 "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
919 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 911 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
920 "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 912 "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
921 "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 913 "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
922 "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 914 "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -958,7 +950,7 @@ dependencies = [
958 "format-buf 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 950 "format-buf 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
959 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 951 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
960 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 952 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
961 "once_cell 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 953 "once_cell 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
962 "ra_db 0.1.0", 954 "ra_db 0.1.0",
963 "ra_fmt 0.1.0", 955 "ra_fmt 0.1.0",
964 "ra_hir 0.1.0", 956 "ra_hir 0.1.0",
@@ -987,7 +979,7 @@ name = "ra_cli"
987version = "0.1.0" 979version = "0.1.0"
988dependencies = [ 980dependencies = [
989 "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", 981 "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
990 "flexi_logger 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", 982 "flexi_logger 0.14.3 (registry+https://github.com/rust-lang/crates.io-index)",
991 "indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 983 "indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
992 "ra_batch 0.1.0", 984 "ra_batch 0.1.0",
993 "ra_db 0.1.0", 985 "ra_db 0.1.0",
@@ -1028,7 +1020,7 @@ dependencies = [
1028 "insta 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 1020 "insta 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
1029 "lalrpop-intern 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", 1021 "lalrpop-intern 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
1030 "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", 1022 "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
1031 "once_cell 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 1023 "once_cell 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
1032 "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 1024 "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
1033 "ra_arena 0.1.0", 1025 "ra_arena 0.1.0",
1034 "ra_db 0.1.0", 1026 "ra_db 0.1.0",
@@ -1073,9 +1065,10 @@ name = "ra_lsp_server"
1073version = "0.1.0" 1065version = "0.1.0"
1074dependencies = [ 1066dependencies = [
1075 "crossbeam-channel 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", 1067 "crossbeam-channel 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
1076 "flexi_logger 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", 1068 "flexi_logger 0.14.3 (registry+https://github.com/rust-lang/crates.io-index)",
1069 "jod-thread 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1077 "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", 1070 "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
1078 "lsp-server 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1071 "lsp-server 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
1079 "lsp-types 0.60.0 (registry+https://github.com/rust-lang/crates.io-index)", 1072 "lsp-types 0.60.0 (registry+https://github.com/rust-lang/crates.io-index)",
1080 "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 1073 "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
1081 "ra_ide_api 0.1.0", 1074 "ra_ide_api 0.1.0",
@@ -1091,7 +1084,6 @@ dependencies = [
1091 "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", 1084 "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
1092 "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1085 "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1093 "test_utils 0.1.0", 1086 "test_utils 0.1.0",
1094 "thread_worker 0.1.0",
1095 "threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 1087 "threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
1096] 1088]
1097 1089
@@ -1123,7 +1115,7 @@ dependencies = [
1123 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1115 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1124 "jemalloc-ctl 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 1116 "jemalloc-ctl 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
1125 "jemallocator 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 1117 "jemallocator 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
1126 "once_cell 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 1118 "once_cell 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
1127] 1119]
1128 1120
1129[[package]] 1121[[package]]
@@ -1228,7 +1220,7 @@ dependencies = [
1228 "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1220 "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
1229 "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1221 "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
1230 "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1222 "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1231 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1223 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1232] 1224]
1233 1225
1234[[package]] 1226[[package]]
@@ -1236,10 +1228,10 @@ name = "rand"
1236version = "0.7.0" 1228version = "0.7.0"
1237source = "registry+https://github.com/rust-lang/crates.io-index" 1229source = "registry+https://github.com/rust-lang/crates.io-index"
1238dependencies = [ 1230dependencies = [
1239 "getrandom 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1231 "getrandom 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
1240 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 1232 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
1241 "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 1233 "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
1242 "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 1234 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
1243 "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1235 "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
1244 "rand_pcg 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1236 "rand_pcg 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
1245] 1237]
@@ -1259,7 +1251,7 @@ version = "0.2.1"
1259source = "registry+https://github.com/rust-lang/crates.io-index" 1251source = "registry+https://github.com/rust-lang/crates.io-index"
1260dependencies = [ 1252dependencies = [
1261 "c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 1253 "c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
1262 "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 1254 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
1263] 1255]
1264 1256
1265[[package]] 1257[[package]]
@@ -1277,10 +1269,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1277 1269
1278[[package]] 1270[[package]]
1279name = "rand_core" 1271name = "rand_core"
1280version = "0.5.0" 1272version = "0.5.1"
1281source = "registry+https://github.com/rust-lang/crates.io-index" 1273source = "registry+https://github.com/rust-lang/crates.io-index"
1282dependencies = [ 1274dependencies = [
1283 "getrandom 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1275 "getrandom 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
1284] 1276]
1285 1277
1286[[package]] 1278[[package]]
@@ -1296,7 +1288,7 @@ name = "rand_hc"
1296version = "0.2.0" 1288version = "0.2.0"
1297source = "registry+https://github.com/rust-lang/crates.io-index" 1289source = "registry+https://github.com/rust-lang/crates.io-index"
1298dependencies = [ 1290dependencies = [
1299 "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 1291 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
1300] 1292]
1301 1293
1302[[package]] 1294[[package]]
@@ -1314,7 +1306,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1314dependencies = [ 1306dependencies = [
1315 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 1307 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
1316 "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1308 "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
1317 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1309 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1318] 1310]
1319 1311
1320[[package]] 1312[[package]]
@@ -1327,7 +1319,7 @@ dependencies = [
1327 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 1319 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
1328 "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1320 "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
1329 "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1321 "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1330 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1322 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1331] 1323]
1332 1324
1333[[package]] 1325[[package]]
@@ -1345,7 +1337,7 @@ version = "0.2.0"
1345source = "registry+https://github.com/rust-lang/crates.io-index" 1337source = "registry+https://github.com/rust-lang/crates.io-index"
1346dependencies = [ 1338dependencies = [
1347 "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1339 "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
1348 "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 1340 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
1349] 1341]
1350 1342
1351[[package]] 1343[[package]]
@@ -1374,7 +1366,7 @@ dependencies = [
1374 "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", 1366 "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
1375 "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1367 "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
1376 "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", 1368 "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
1377 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1369 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1378 "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", 1370 "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
1379] 1371]
1380 1372
@@ -1417,7 +1409,7 @@ name = "remove_dir_all"
1417version = "0.5.2" 1409version = "0.5.2"
1418source = "registry+https://github.com/rust-lang/crates.io-index" 1410source = "registry+https://github.com/rust-lang/crates.io-index"
1419dependencies = [ 1411dependencies = [
1420 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1412 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1421] 1413]
1422 1414
1423[[package]] 1415[[package]]
@@ -1490,7 +1482,7 @@ dependencies = [
1490 "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1482 "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
1491 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1483 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1492 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 1484 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
1493 "syn 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 1485 "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
1494] 1486]
1495 1487
1496[[package]] 1488[[package]]
@@ -1535,7 +1527,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1535dependencies = [ 1527dependencies = [
1536 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1528 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1537 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 1529 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
1538 "syn 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 1530 "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
1539] 1531]
1540 1532
1541[[package]] 1533[[package]]
@@ -1555,7 +1547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1555dependencies = [ 1547dependencies = [
1556 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1548 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1557 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 1549 "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
1558 "syn 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 1550 "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
1559] 1551]
1560 1552
1561[[package]] 1553[[package]]
@@ -1592,10 +1584,10 @@ name = "stacker"
1592version = "0.1.5" 1584version = "0.1.5"
1593source = "registry+https://github.com/rust-lang/crates.io-index" 1585source = "registry+https://github.com/rust-lang/crates.io-index"
1594dependencies = [ 1586dependencies = [
1595 "cc 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", 1587 "cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
1596 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1588 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
1597 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 1589 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
1598 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1590 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1599] 1591]
1600 1592
1601[[package]] 1593[[package]]
@@ -1615,7 +1607,7 @@ dependencies = [
1615 1607
1616[[package]] 1608[[package]]
1617name = "syn" 1609name = "syn"
1618version = "1.0.3" 1610version = "1.0.5"
1619source = "registry+https://github.com/rust-lang/crates.io-index" 1611source = "registry+https://github.com/rust-lang/crates.io-index"
1620dependencies = [ 1612dependencies = [
1621 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1613 "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1644,7 +1636,7 @@ dependencies = [
1644 "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 1636 "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
1645 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", 1637 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
1646 "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 1638 "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
1647 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1639 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1648] 1640]
1649 1641
1650[[package]] 1642[[package]]
@@ -1682,16 +1674,7 @@ name = "thread_local"
1682version = "0.3.6" 1674version = "0.3.6"
1683source = "registry+https://github.com/rust-lang/crates.io-index" 1675source = "registry+https://github.com/rust-lang/crates.io-index"
1684dependencies = [ 1676dependencies = [
1685 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1677 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1686]
1687
1688[[package]]
1689name = "thread_worker"
1690version = "0.1.0"
1691dependencies = [
1692 "crossbeam-channel 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
1693 "jod-thread 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1694 "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
1695] 1678]
1696 1679
1697[[package]] 1680[[package]]
@@ -1709,7 +1692,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1709dependencies = [ 1692dependencies = [
1710 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)", 1693 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
1711 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", 1694 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
1712 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1695 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1713] 1696]
1714 1697
1715[[package]] 1698[[package]]
@@ -1787,7 +1770,7 @@ version = "2.2.9"
1787source = "registry+https://github.com/rust-lang/crates.io-index" 1770source = "registry+https://github.com/rust-lang/crates.io-index"
1788dependencies = [ 1771dependencies = [
1789 "same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", 1772 "same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
1790 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1773 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1791 "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1774 "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
1792] 1775]
1793 1776
@@ -1803,7 +1786,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1803 1786
1804[[package]] 1787[[package]]
1805name = "winapi" 1788name = "winapi"
1806version = "0.3.7" 1789version = "0.3.8"
1807source = "registry+https://github.com/rust-lang/crates.io-index" 1790source = "registry+https://github.com/rust-lang/crates.io-index"
1808dependencies = [ 1791dependencies = [
1809 "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1792 "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1825,7 +1808,7 @@ name = "winapi-util"
1825version = "0.1.2" 1808version = "0.1.2"
1826source = "registry+https://github.com/rust-lang/crates.io-index" 1809source = "registry+https://github.com/rust-lang/crates.io-index"
1827dependencies = [ 1810dependencies = [
1828 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1811 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1829] 1812]
1830 1813
1831[[package]] 1814[[package]]
@@ -1870,7 +1853,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1870"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" 1853"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
1871"checksum c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101" 1854"checksum c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101"
1872"checksum cargo_metadata 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "700b3731fd7d357223d0000f4dbf1808401b694609035c3c411fbc0cd375c426" 1855"checksum cargo_metadata 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "700b3731fd7d357223d0000f4dbf1808401b694609035c3c411fbc0cd375c426"
1873"checksum cc 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "b548a4ee81fccb95919d4e22cfea83c7693ebfd78f0495493178db20b3139da7" 1856"checksum cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)" = "8dae9c4b8fedcae85592ba623c4fd08cfdab3e3b72d6df780c6ead964a69bfff"
1874"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" 1857"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
1875"checksum chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)" = "<none>" 1858"checksum chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)" = "<none>"
1876"checksum chalk-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)" = "<none>" 1859"checksum chalk-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)" = "<none>"
@@ -1879,7 +1862,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1879"checksum chalk-solve 0.1.0 (git+https://github.com/rust-lang/chalk.git)" = "<none>" 1862"checksum chalk-solve 0.1.0 (git+https://github.com/rust-lang/chalk.git)" = "<none>"
1880"checksum chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "77d81f58b7301084de3b958691458a53c3f7e0b1d702f77e550b6a88e3a88abe" 1863"checksum chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "77d81f58b7301084de3b958691458a53c3f7e0b1d702f77e550b6a88e3a88abe"
1881"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" 1864"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
1882"checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9" 1865"checksum clicolors-control 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90082ee5dcdd64dc4e9e0d37fbf3ee325419e39c0092191e0393df65518f741e"
1883"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" 1866"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
1884"checksum console 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b147390a412132d75d10dd3b7b175a69cf5fd95032f7503c7091b8831ba10242" 1867"checksum console 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b147390a412132d75d10dd3b7b175a69cf5fd95032f7503c7091b8831ba10242"
1885"checksum crossbeam 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2d818a4990769aac0c7ff1360e233ef3a41adcb009ebb2036bf6915eb0f6b23c" 1868"checksum crossbeam 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2d818a4990769aac0c7ff1360e233ef3a41adcb009ebb2036bf6915eb0f6b23c"
@@ -1894,14 +1877,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1894"checksum drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "69b26e475fd29098530e709294e94e661974c851aed42512793f120fed4e199f" 1877"checksum drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "69b26e475fd29098530e709294e94e661974c851aed42512793f120fed4e199f"
1895"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e" 1878"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
1896"checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b" 1879"checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b"
1897"checksum ena 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "25b4e5febb25f08c49f1b07dc33a182729a6b21edfb562b5aef95f78e0dbe5bb"
1898"checksum ena 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3dc01d68e08ca384955a3aeba9217102ca1aa85b6e168639bf27739f1d749d87" 1880"checksum ena 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3dc01d68e08ca384955a3aeba9217102ca1aa85b6e168639bf27739f1d749d87"
1899"checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" 1881"checksum encode_unicode 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
1900"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" 1882"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2"
1901"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" 1883"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1"
1902"checksum filetime 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2f8c63033fcba1f51ef744505b3cad42510432b904c062afa67ad7ece008429d" 1884"checksum filetime 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2f8c63033fcba1f51ef744505b3cad42510432b904c062afa67ad7ece008429d"
1903"checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" 1885"checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33"
1904"checksum flexi_logger 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2be2727ae1f60711d1991788605245e70cc500bd1d92edb909af160634e1a869" 1886"checksum flexi_logger 0.14.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66473c1b6a0d2a72f6ed983d33021a4c744a1d179e6f4265867b7d0a9dd679c5"
1905"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 1887"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
1906"checksum format-buf 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f7aea5a5909a74969507051a3b17adc84737e31a5f910559892aedce026f4d53" 1888"checksum format-buf 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f7aea5a5909a74969507051a3b17adc84737e31a5f910559892aedce026f4d53"
1907"checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674" 1889"checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
@@ -1911,7 +1893,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1911"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" 1893"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
1912"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 1894"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
1913"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 1895"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
1914"checksum getrandom 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "6171a6cc63fbabbe27c2b5ee268e8b7fe5dc1eb0dd2dfad537c1dfed6f69117e" 1896"checksum getrandom 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "fc344b02d3868feb131e8b5fe2b9b0a1cc42942679af493061fc13b853243872"
1915"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" 1897"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
1916"checksum globset 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "925aa2cac82d8834e2b2a4415b6f6879757fb5c0928fc445ae76461a12eed8f2" 1898"checksum globset 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "925aa2cac82d8834e2b2a4415b6f6879757fb5c0928fc445ae76461a12eed8f2"
1917"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" 1899"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
@@ -1931,13 +1913,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1931"checksum join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc7a5290e8c2606ce2be49f456d50f69173cb96d1541e4f66e34ac8b331a98f" 1913"checksum join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc7a5290e8c2606ce2be49f456d50f69173cb96d1541e4f66e34ac8b331a98f"
1932"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 1914"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
1933"checksum lalrpop-intern 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cc4fd87be4a815fd373e02773983940f0d75fb26fde8c098e9e45f7af03154c0" 1915"checksum lalrpop-intern 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cc4fd87be4a815fd373e02773983940f0d75fb26fde8c098e9e45f7af03154c0"
1934"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" 1916"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
1935"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" 1917"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
1936"checksum libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba" 1918"checksum libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
1937"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" 1919"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83"
1938"checksum lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc" 1920"checksum lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc"
1939"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" 1921"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
1940"checksum lsp-server 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "47632ec528046c1a39f14448f1ee7d66d4b7b83e1771590b62e6c08665dea053" 1922"checksum lsp-server 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "148cfb1c0b3295c23d9fb4a20fd1b242f5e6f46c525fdcc7f5c0a65710362012"
1941"checksum lsp-types 0.60.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe3edefcd66dde1f7f1df706f46520a3c93adc5ca4bc5747da6621195e894efd" 1923"checksum lsp-types 0.60.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe3edefcd66dde1f7f1df706f46520a3c93adc5ca4bc5747da6621195e894efd"
1942"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 1924"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
1943"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e" 1925"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
@@ -1952,7 +1934,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1952"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32" 1934"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
1953"checksum num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273" 1935"checksum num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273"
1954"checksum number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbf9993e59c894e3c08aa1c2712914e9e6bf1fcbfc6bef283e2183df345a4fee" 1936"checksum number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbf9993e59c894e3c08aa1c2712914e9e6bf1fcbfc6bef283e2183df345a4fee"
1955"checksum once_cell 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1824583b0e4dc0c1716eea4fb51a9ca2634943f0b07fd929e79af6aeb5a513cc" 1937"checksum once_cell 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d1a13503127ae8c93c0e2c817d74895b0af4df9132ec9be3ea42dd1656cd6e9"
1956"checksum ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" 1938"checksum ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063"
1957"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" 1939"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
1958"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" 1940"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
@@ -1976,7 +1958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1976"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853" 1958"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
1977"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" 1959"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
1978"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" 1960"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
1979"checksum rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "615e683324e75af5d43d8f7a39ffe3ee4a9dc42c5c701167a71dc59c3a493aca" 1961"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
1980"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" 1962"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
1981"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 1963"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
1982"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" 1964"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
@@ -2016,7 +1998,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2016"checksum stacker 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fb79482f57cf598af52094ec4cc3b3c42499d3ce5bd426f2ac41515b7e57404b" 1998"checksum stacker 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fb79482f57cf598af52094ec4cc3b3c42499d3ce5bd426f2ac41515b7e57404b"
2017"checksum superslice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f" 1999"checksum superslice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f"
2018"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" 2000"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
2019"checksum syn 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "158521e6f544e7e3dcfc370ac180794aa38cb34a1b1e07609376d4adcf429b93" 2001"checksum syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf"
2020"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" 2002"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f"
2021"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" 2003"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
2022"checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" 2004"checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625"
@@ -2038,7 +2020,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2038"checksum walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e" 2020"checksum walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e"
2039"checksum wasi 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fd5442abcac6525a045cc8c795aedb60da7a2e5e89c7bf18a0d5357849bb23c7" 2021"checksum wasi 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fd5442abcac6525a045cc8c795aedb60da7a2e5e89c7bf18a0d5357849bb23c7"
2040"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 2022"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
2041"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" 2023"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
2042"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 2024"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
2043"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2025"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
2044"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" 2026"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
diff --git a/crates/ra_lsp_server/Cargo.toml b/crates/ra_lsp_server/Cargo.toml
index 084a20cd9..eb4812633 100644
--- a/crates/ra_lsp_server/Cargo.toml
+++ b/crates/ra_lsp_server/Cargo.toml
@@ -15,13 +15,12 @@ log = "0.4.3"
15lsp-types = { version = "0.60.0", features = ["proposed"] } 15lsp-types = { version = "0.60.0", features = ["proposed"] }
16rustc-hash = "1.0" 16rustc-hash = "1.0"
17parking_lot = "0.9.0" 17parking_lot = "0.9.0"
18 18jod-thread = "0.1.0"
19ra_vfs = "0.3.0" 19ra_vfs = "0.3.0"
20thread_worker = { path = "../thread_worker" }
21ra_syntax = { path = "../ra_syntax" } 20ra_syntax = { path = "../ra_syntax" }
22ra_text_edit = { path = "../ra_text_edit" } 21ra_text_edit = { path = "../ra_text_edit" }
23ra_ide_api = { path = "../ra_ide_api" } 22ra_ide_api = { path = "../ra_ide_api" }
24lsp-server = "0.1.0" 23lsp-server = "0.2.0"
25ra_project_model = { path = "../ra_project_model" } 24ra_project_model = { path = "../ra_project_model" }
26ra_prof = { path = "../ra_prof" } 25ra_prof = { path = "../ra_prof" }
27ra_vfs_glob = { path = "../ra_vfs_glob" } 26ra_vfs_glob = { path = "../ra_vfs_glob" }
diff --git a/crates/ra_lsp_server/src/lib.rs b/crates/ra_lsp_server/src/lib.rs
index 2c5d7c72d..69a577b3e 100644
--- a/crates/ra_lsp_server/src/lib.rs
+++ b/crates/ra_lsp_server/src/lib.rs
@@ -8,6 +8,7 @@ mod project_model;
8pub mod req; 8pub mod req;
9pub mod config; 9pub mod config;
10mod world; 10mod world;
11mod thread_worker;
11 12
12pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>; 13pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;
13pub use crate::{ 14pub use crate::{
diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs
index 1debe7660..88504bb89 100644
--- a/crates/ra_lsp_server/src/main.rs
+++ b/crates/ra_lsp_server/src/main.rs
@@ -1,5 +1,5 @@
1use flexi_logger::{Duplicate, Logger}; 1use flexi_logger::{Duplicate, Logger};
2use lsp_server::{run_server, stdio_transport, LspServerError}; 2use lsp_server::Connection;
3 3
4use ra_lsp_server::{show_message, Result, ServerConfig}; 4use ra_lsp_server::{show_message, Result, ServerConfig};
5use ra_prof; 5use ra_prof;
@@ -29,46 +29,46 @@ fn main() -> Result<()> {
29} 29}
30 30
31fn main_inner() -> Result<()> { 31fn main_inner() -> Result<()> {
32 let (sender, receiver, io_threads) = stdio_transport();
33 let cwd = std::env::current_dir()?; 32 let cwd = std::env::current_dir()?;
34 let caps = serde_json::to_value(ra_lsp_server::server_capabilities()).unwrap(); 33 let (connection, io_threads) = Connection::stdio();
35 run_server(caps, sender, receiver, |params, s, r| { 34 let server_capabilities = serde_json::to_value(ra_lsp_server::server_capabilities()).unwrap();
36 let params: lsp_types::InitializeParams = serde_json::from_value(params)?;
37 let root = params.root_uri.and_then(|it| it.to_file_path().ok()).unwrap_or(cwd);
38 35
39 let workspace_roots = params 36 let initialize_params = connection.initialize(server_capabilities)?;
40 .workspace_folders 37 let initialize_params: lsp_types::InitializeParams = serde_json::from_value(initialize_params)?;
41 .map(|workspaces| {
42 workspaces
43 .into_iter()
44 .filter_map(|it| it.uri.to_file_path().ok())
45 .collect::<Vec<_>>()
46 })
47 .filter(|workspaces| !workspaces.is_empty())
48 .unwrap_or_else(|| vec![root]);
49 38
50 let server_config: ServerConfig = params 39 let root = initialize_params.root_uri.and_then(|it| it.to_file_path().ok()).unwrap_or(cwd);
51 .initialization_options 40
52 .and_then(|v| { 41 let workspace_roots = initialize_params
53 serde_json::from_value(v) 42 .workspace_folders
54 .map_err(|e| { 43 .map(|workspaces| {
55 log::error!("failed to deserialize config: {}", e); 44 workspaces.into_iter().filter_map(|it| it.uri.to_file_path().ok()).collect::<Vec<_>>()
56 show_message( 45 })
57 lsp_types::MessageType::Error, 46 .filter(|workspaces| !workspaces.is_empty())
58 format!("failed to deserialize config: {}", e), 47 .unwrap_or_else(|| vec![root]);
59 s, 48
60 ); 49 let server_config: ServerConfig = initialize_params
61 }) 50 .initialization_options
62 .ok() 51 .and_then(|v| {
63 }) 52 serde_json::from_value(v)
64 .unwrap_or_default(); 53 .map_err(|e| {
54 log::error!("failed to deserialize config: {}", e);
55 show_message(
56 lsp_types::MessageType::Error,
57 format!("failed to deserialize config: {}", e),
58 &connection.sender,
59 );
60 })
61 .ok()
62 })
63 .unwrap_or_default();
64
65 ra_lsp_server::main_loop(
66 workspace_roots,
67 initialize_params.capabilities,
68 server_config,
69 &connection,
70 )?;
65 71
66 ra_lsp_server::main_loop(workspace_roots, params.capabilities, server_config, r, s)
67 })
68 .map_err(|err| match err {
69 LspServerError::ProtocolError(err) => err.into(),
70 LspServerError::ServerError(err) => err,
71 })?;
72 log::info!("shutting down IO..."); 72 log::info!("shutting down IO...");
73 io_threads.join()?; 73 io_threads.join()?;
74 log::info!("... IO is down"); 74 log::info!("... IO is down");
diff --git a/crates/ra_lsp_server/src/main_loop.rs b/crates/ra_lsp_server/src/main_loop.rs
index fb357b36b..42ebb5cdf 100644
--- a/crates/ra_lsp_server/src/main_loop.rs
+++ b/crates/ra_lsp_server/src/main_loop.rs
@@ -5,7 +5,7 @@ pub(crate) mod pending_requests;
5use std::{error::Error, fmt, path::PathBuf, sync::Arc, time::Instant}; 5use std::{error::Error, fmt, path::PathBuf, sync::Arc, time::Instant};
6 6
7use crossbeam_channel::{select, unbounded, Receiver, RecvError, Sender}; 7use crossbeam_channel::{select, unbounded, Receiver, RecvError, Sender};
8use lsp_server::{handle_shutdown, ErrorCode, Message, Notification, Request, RequestId, Response}; 8use lsp_server::{Connection, ErrorCode, Message, Notification, Request, RequestId, Response};
9use lsp_types::{ClientCapabilities, NumberOrString}; 9use lsp_types::{ClientCapabilities, NumberOrString};
10use ra_ide_api::{Canceled, FeatureFlags, FileId, LibraryData}; 10use ra_ide_api::{Canceled, FeatureFlags, FileId, LibraryData};
11use ra_prof::profile; 11use ra_prof::profile;
@@ -51,8 +51,7 @@ pub fn main_loop(
51 ws_roots: Vec<PathBuf>, 51 ws_roots: Vec<PathBuf>,
52 client_caps: ClientCapabilities, 52 client_caps: ClientCapabilities,
53 config: ServerConfig, 53 config: ServerConfig,
54 msg_receiver: &Receiver<Message>, 54 connection: &Connection,
55 msg_sender: &Sender<Message>,
56) -> Result<()> { 55) -> Result<()> {
57 log::info!("server_config: {:#?}", config); 56 log::info!("server_config: {:#?}", config);
58 // FIXME: support dynamic workspace loading. 57 // FIXME: support dynamic workspace loading.
@@ -69,7 +68,7 @@ pub fn main_loop(
69 show_message( 68 show_message(
70 req::MessageType::Error, 69 req::MessageType::Error,
71 format!("rust-analyzer failed to load workspace: {}", e), 70 format!("rust-analyzer failed to load workspace: {}", e),
72 msg_sender, 71 &connection.sender,
73 ); 72 );
74 } 73 }
75 } 74 }
@@ -89,7 +88,7 @@ pub fn main_loop(
89 show_message( 88 show_message(
90 req::MessageType::Error, 89 req::MessageType::Error,
91 format!("unknown feature flag: {:?}", flag), 90 format!("unknown feature flag: {:?}", flag),
92 msg_sender, 91 &connection.sender,
93 ); 92 );
94 } 93 }
95 } 94 }
@@ -119,8 +118,7 @@ pub fn main_loop(
119 log::info!("server initialized, serving requests"); 118 log::info!("server initialized, serving requests");
120 let main_res = main_loop_inner( 119 let main_res = main_loop_inner(
121 &pool, 120 &pool,
122 msg_sender, 121 connection,
123 msg_receiver,
124 task_sender, 122 task_sender,
125 task_receiver.clone(), 123 task_receiver.clone(),
126 &mut state, 124 &mut state,
@@ -130,7 +128,7 @@ pub fn main_loop(
130 log::info!("waiting for tasks to finish..."); 128 log::info!("waiting for tasks to finish...");
131 task_receiver 129 task_receiver
132 .into_iter() 130 .into_iter()
133 .for_each(|task| on_task(task, msg_sender, &mut pending_requests, &mut state)); 131 .for_each(|task| on_task(task, &connection.sender, &mut pending_requests, &mut state));
134 log::info!("...tasks have finished"); 132 log::info!("...tasks have finished");
135 log::info!("joining threadpool..."); 133 log::info!("joining threadpool...");
136 drop(pool); 134 drop(pool);
@@ -196,8 +194,7 @@ impl fmt::Debug for Event {
196 194
197fn main_loop_inner( 195fn main_loop_inner(
198 pool: &ThreadPool, 196 pool: &ThreadPool,
199 msg_sender: &Sender<Message>, 197 connection: &Connection,
200 msg_receiver: &Receiver<Message>,
201 task_sender: Sender<Task>, 198 task_sender: Sender<Task>,
202 task_receiver: Receiver<Task>, 199 task_receiver: Receiver<Task>,
203 state: &mut WorldState, 200 state: &mut WorldState,
@@ -214,7 +211,7 @@ fn main_loop_inner(
214 loop { 211 loop {
215 log::trace!("selecting"); 212 log::trace!("selecting");
216 let event = select! { 213 let event = select! {
217 recv(msg_receiver) -> msg => match msg { 214 recv(&connection.receiver) -> msg => match msg {
218 Ok(msg) => Event::Msg(msg), 215 Ok(msg) => Event::Msg(msg),
219 Err(RecvError) => Err("client exited without shutdown")?, 216 Err(RecvError) => Err("client exited without shutdown")?,
220 }, 217 },
@@ -238,7 +235,7 @@ fn main_loop_inner(
238 let mut state_changed = false; 235 let mut state_changed = false;
239 match event { 236 match event {
240 Event::Task(task) => { 237 Event::Task(task) => {
241 on_task(task, msg_sender, pending_requests, state); 238 on_task(task, &connection.sender, pending_requests, state);
242 state.maybe_collect_garbage(); 239 state.maybe_collect_garbage();
243 } 240 }
244 Event::Vfs(task) => { 241 Event::Vfs(task) => {
@@ -252,7 +249,7 @@ fn main_loop_inner(
252 } 249 }
253 Event::Msg(msg) => match msg { 250 Event::Msg(msg) => match msg {
254 Message::Request(req) => { 251 Message::Request(req) => {
255 if handle_shutdown(&req, msg_sender) { 252 if connection.handle_shutdown(&req)? {
256 return Ok(()); 253 return Ok(());
257 }; 254 };
258 on_request( 255 on_request(
@@ -260,13 +257,13 @@ fn main_loop_inner(
260 pending_requests, 257 pending_requests,
261 pool, 258 pool,
262 &task_sender, 259 &task_sender,
263 msg_sender, 260 &connection.sender,
264 loop_start, 261 loop_start,
265 req, 262 req,
266 )? 263 )?
267 } 264 }
268 Message::Notification(not) => { 265 Message::Notification(not) => {
269 on_notification(msg_sender, state, pending_requests, &mut subs, not)?; 266 on_notification(&connection.sender, state, pending_requests, &mut subs, not)?;
270 state_changed = true; 267 state_changed = true;
271 } 268 }
272 Message::Response(resp) => log::error!("unexpected response: {:?}", resp), 269 Message::Response(resp) => log::error!("unexpected response: {:?}", resp),
@@ -294,7 +291,7 @@ fn main_loop_inner(
294 let n_packages: usize = state.workspaces.iter().map(|it| it.n_packages()).sum(); 291 let n_packages: usize = state.workspaces.iter().map(|it| it.n_packages()).sum();
295 if state.feature_flags().get("notifications.workspace-loaded") { 292 if state.feature_flags().get("notifications.workspace-loaded") {
296 let msg = format!("workspace loaded, {} rust packages", n_packages); 293 let msg = format!("workspace loaded, {} rust packages", n_packages);
297 show_message(req::MessageType::Info, msg, msg_sender); 294 show_message(req::MessageType::Info, msg, &connection.sender);
298 } 295 }
299 // Only send the notification first time 296 // Only send the notification first time
300 send_workspace_notification = false; 297 send_workspace_notification = false;
diff --git a/crates/ra_lsp_server/src/project_model.rs b/crates/ra_lsp_server/src/project_model.rs
index ad59cde64..6234563f2 100644
--- a/crates/ra_lsp_server/src/project_model.rs
+++ b/crates/ra_lsp_server/src/project_model.rs
@@ -1,8 +1,6 @@
1use std::path::PathBuf; 1use std::path::PathBuf;
2 2
3use thread_worker::Worker; 3use crate::{thread_worker::Worker, Result};
4
5use crate::Result;
6 4
7pub use ra_project_model::{ 5pub use ra_project_model::{
8 CargoWorkspace, Package, ProjectWorkspace, Sysroot, Target, TargetKind, 6 CargoWorkspace, Package, ProjectWorkspace, Sysroot, Target, TargetKind,
diff --git a/crates/thread_worker/src/lib.rs b/crates/ra_lsp_server/src/thread_worker.rs
index 68e5c124d..68e5c124d 100644
--- a/crates/thread_worker/src/lib.rs
+++ b/crates/ra_lsp_server/src/thread_worker.rs
diff --git a/crates/ra_lsp_server/tests/heavy_tests/support.rs b/crates/ra_lsp_server/tests/heavy_tests/support.rs
index 45b4cacf6..89f65cef4 100644
--- a/crates/ra_lsp_server/tests/heavy_tests/support.rs
+++ b/crates/ra_lsp_server/tests/heavy_tests/support.rs
@@ -8,16 +8,17 @@ use std::{
8 8
9use crossbeam_channel::{after, select, Receiver}; 9use crossbeam_channel::{after, select, Receiver};
10use flexi_logger::Logger; 10use flexi_logger::Logger;
11use lsp_server::{Message, Notification, Request}; 11use lsp_server::{Connection, Message, Notification, Request};
12use lsp_types::{ 12use lsp_types::{
13 request::Shutdown, ClientCapabilities, DidOpenTextDocumentParams, GotoCapability, 13 notification::{DidOpenTextDocument, Exit},
14 TextDocumentClientCapabilities, TextDocumentIdentifier, TextDocumentItem, Url, 14 request::Shutdown,
15 ClientCapabilities, DidOpenTextDocumentParams, GotoCapability, TextDocumentClientCapabilities,
16 TextDocumentIdentifier, TextDocumentItem, Url,
15}; 17};
16use serde::Serialize; 18use serde::Serialize;
17use serde_json::{to_string_pretty, Value}; 19use serde_json::{to_string_pretty, Value};
18use tempfile::TempDir; 20use tempfile::TempDir;
19use test_utils::{find_mismatch, parse_fixture}; 21use test_utils::{find_mismatch, parse_fixture};
20use thread_worker::Worker;
21 22
22use ra_lsp_server::{main_loop, req, ServerConfig}; 23use ra_lsp_server::{main_loop, req, ServerConfig};
23 24
@@ -83,7 +84,8 @@ pub struct Server {
83 req_id: Cell<u64>, 84 req_id: Cell<u64>,
84 messages: RefCell<Vec<Message>>, 85 messages: RefCell<Vec<Message>>,
85 dir: TempDir, 86 dir: TempDir,
86 worker: Worker<Message, Message>, 87 _thread: jod_thread::JoinHandle<()>,
88 client: Connection,
87} 89}
88 90
89impl Server { 91impl Server {
@@ -96,11 +98,11 @@ impl Server {
96 let path = dir.path().to_path_buf(); 98 let path = dir.path().to_path_buf();
97 99
98 let roots = if roots.is_empty() { vec![path] } else { roots }; 100 let roots = if roots.is_empty() { vec![path] } else { roots };
101 let (connection, client) = Connection::memory();
99 102
100 let worker = Worker::<Message, Message>::spawn( 103 let _thread = jod_thread::Builder::new()
101 "test server", 104 .name("test server".to_string())
102 128, 105 .spawn(move || {
103 move |msg_receiver, msg_sender| {
104 main_loop( 106 main_loop(
105 roots, 107 roots,
106 ClientCapabilities { 108 ClientCapabilities {
@@ -116,26 +118,24 @@ impl Server {
116 experimental: None, 118 experimental: None,
117 }, 119 },
118 ServerConfig { with_sysroot, ..ServerConfig::default() }, 120 ServerConfig { with_sysroot, ..ServerConfig::default() },
119 &msg_receiver, 121 &connection,
120 &msg_sender,
121 ) 122 )
122 .unwrap() 123 .unwrap()
123 }, 124 })
124 ); 125 .expect("failed to spawn a thread");
125 let res = Server { req_id: Cell::new(1), dir, messages: Default::default(), worker }; 126
127 let res =
128 Server { req_id: Cell::new(1), dir, messages: Default::default(), client, _thread };
126 129
127 for (path, text) in files { 130 for (path, text) in files {
128 res.send_notification(Notification::new( 131 res.notification::<DidOpenTextDocument>(DidOpenTextDocumentParams {
129 "textDocument/didOpen".to_string(), 132 text_document: TextDocumentItem {
130 &DidOpenTextDocumentParams { 133 uri: Url::from_file_path(path).unwrap(),
131 text_document: TextDocumentItem { 134 language_id: "rust".to_string(),
132 uri: Url::from_file_path(path).unwrap(), 135 version: 0,
133 language_id: "rust".to_string(), 136 text,
134 version: 0,
135 text,
136 },
137 }, 137 },
138 )) 138 })
139 } 139 }
140 res 140 res
141 } 141 }
@@ -184,7 +184,7 @@ impl Server {
184 } 184 }
185 fn send_request_(&self, r: Request) -> Value { 185 fn send_request_(&self, r: Request) -> Value {
186 let id = r.id.clone(); 186 let id = r.id.clone();
187 self.worker.sender().send(r.into()).unwrap(); 187 self.client.sender.send(r.into()).unwrap();
188 while let Some(msg) = self.recv() { 188 while let Some(msg) = self.recv() {
189 match msg { 189 match msg {
190 Message::Request(req) => panic!("unexpected request: {:?}", req), 190 Message::Request(req) => panic!("unexpected request: {:?}", req),
@@ -225,13 +225,13 @@ impl Server {
225 } 225 }
226 } 226 }
227 fn recv(&self) -> Option<Message> { 227 fn recv(&self) -> Option<Message> {
228 recv_timeout(&self.worker.receiver()).map(|msg| { 228 recv_timeout(&self.client.receiver).map(|msg| {
229 self.messages.borrow_mut().push(msg.clone()); 229 self.messages.borrow_mut().push(msg.clone());
230 msg 230 msg
231 }) 231 })
232 } 232 }
233 fn send_notification(&self, not: Notification) { 233 fn send_notification(&self, not: Notification) {
234 self.worker.sender().send(Message::Notification(not)).unwrap(); 234 self.client.sender.send(Message::Notification(not)).unwrap();
235 } 235 }
236 236
237 pub fn path(&self) -> &Path { 237 pub fn path(&self) -> &Path {
@@ -241,7 +241,8 @@ impl Server {
241 241
242impl Drop for Server { 242impl Drop for Server {
243 fn drop(&mut self) { 243 fn drop(&mut self) {
244 self.send_request::<Shutdown>(()); 244 self.request::<Shutdown>((), Value::Null);
245 self.notification::<Exit>(());
245 } 246 }
246} 247}
247 248
diff --git a/crates/thread_worker/Cargo.toml b/crates/thread_worker/Cargo.toml
deleted file mode 100644
index e3babbf8d..000000000
--- a/crates/thread_worker/Cargo.toml
+++ /dev/null
@@ -1,10 +0,0 @@
1[package]
2edition = "2018"
3name = "thread_worker"
4version = "0.1.0"
5authors = ["rust-analyzer developers"]
6
7[dependencies]
8jod-thread = "0.1.0"
9crossbeam-channel = "0.3.5"
10log = "0.4.3"