aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2019-07-15 07:50:36 +0100
committerbors[bot] <26634292+bors[bot]@users.noreply.github.com>2019-07-15 07:50:36 +0100
commit8de56ec43e44ee227617de27ba8eddc328a90f5d (patch)
tree81f3523f2d78ac65697489a3ca43c03a768d05bc
parentc4e2e36e4c3cdaf5243a4d481221804e2d71bc8e (diff)
parentc8284d8424691dc348af8708abfc2172b7dd5dc5 (diff)
Merge #1532
1532: Some refactorings & update Chalk r=flodiebold a=flodiebold This does some of the renamings proposed in #1515, refactors `InferenceContext` a bit, and does a Cargo update, including fixing the build since I broke it by already pushing an updated branch to my Chalk fork :disappointed: We could also consider switching back to Chalk master; I couldn't reproduce any hangs with the floundering even on the rustc repo... Co-authored-by: Florian Diebold <[email protected]>
-rw-r--r--Cargo.lock288
-rw-r--r--crates/ra_hir/Cargo.toml6
-rw-r--r--crates/ra_hir/src/db.rs8
-rw-r--r--crates/ra_hir/src/ty.rs2
-rw-r--r--crates/ra_hir/src/ty/autoderef.rs2
-rw-r--r--crates/ra_hir/src/ty/infer.rs63
-rw-r--r--crates/ra_hir/src/ty/lower.rs7
-rw-r--r--crates/ra_hir/src/ty/method_resolution.rs6
-rw-r--r--crates/ra_hir/src/ty/traits.rs16
-rw-r--r--crates/ra_hir/src/ty/traits/chalk.rs24
-rw-r--r--crates/ra_ide_api/src/change.rs2
11 files changed, 198 insertions, 226 deletions
diff --git a/Cargo.lock b/Cargo.lock
index e42a564db..dd6dade6c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -18,7 +18,7 @@ dependencies = [
18 18
19[[package]] 19[[package]]
20name = "arrayvec" 20name = "arrayvec"
21version = "0.4.10" 21version = "0.4.11"
22source = "registry+https://github.com/rust-lang/crates.io-index" 22source = "registry+https://github.com/rust-lang/crates.io-index"
23dependencies = [ 23dependencies = [
24 "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 24 "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -26,11 +26,10 @@ dependencies = [
26 26
27[[package]] 27[[package]]
28name = "atty" 28name = "atty"
29version = "0.2.11" 29version = "0.2.12"
30source = "registry+https://github.com/rust-lang/crates.io-index" 30source = "registry+https://github.com/rust-lang/crates.io-index"
31dependencies = [ 31dependencies = [
32 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 32 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
33 "termion 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
34 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 33 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
35] 34]
36 35
@@ -48,7 +47,7 @@ dependencies = [
48 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 47 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
49 "dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 48 "dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
50 "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 49 "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
51 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 50 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
52 "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", 51 "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
53 "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 52 "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
54] 53]
@@ -60,7 +59,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
60dependencies = [ 59dependencies = [
61 "backtrace-sys 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", 60 "backtrace-sys 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)",
62 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 61 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
63 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 62 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
64 "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", 63 "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
65] 64]
66 65
@@ -70,7 +69,7 @@ version = "0.1.30"
70source = "registry+https://github.com/rust-lang/crates.io-index" 69source = "registry+https://github.com/rust-lang/crates.io-index"
71dependencies = [ 70dependencies = [
72 "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", 71 "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
73 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 72 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
74] 73]
75 74
76[[package]] 75[[package]]
@@ -162,9 +161,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
162[[package]] 161[[package]]
163name = "chalk-engine" 162name = "chalk-engine"
164version = "0.9.0" 163version = "0.9.0"
165source = "git+https://github.com/flodiebold/chalk.git?branch=fuel#fba97af88ff2e0266db12490e2baf47d17e557e3" 164source = "git+https://github.com/rust-lang/chalk.git#201775c47e4cefeb71d7f415c605e09c02e33b22"
166dependencies = [ 165dependencies = [
167 "chalk-macros 0.1.1 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 166 "chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)",
168 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 167 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
169 "stacker 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 168 "stacker 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
170] 169]
@@ -172,17 +171,17 @@ dependencies = [
172[[package]] 171[[package]]
173name = "chalk-ir" 172name = "chalk-ir"
174version = "0.1.0" 173version = "0.1.0"
175source = "git+https://github.com/flodiebold/chalk.git?branch=fuel#fba97af88ff2e0266db12490e2baf47d17e557e3" 174source = "git+https://github.com/rust-lang/chalk.git#201775c47e4cefeb71d7f415c605e09c02e33b22"
176dependencies = [ 175dependencies = [
177 "chalk-engine 0.9.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 176 "chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)",
178 "chalk-macros 0.1.1 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 177 "chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)",
179 "lalrpop-intern 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", 178 "lalrpop-intern 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
180] 179]
181 180
182[[package]] 181[[package]]
183name = "chalk-macros" 182name = "chalk-macros"
184version = "0.1.1" 183version = "0.1.1"
185source = "git+https://github.com/flodiebold/chalk.git?branch=fuel#fba97af88ff2e0266db12490e2baf47d17e557e3" 184source = "git+https://github.com/rust-lang/chalk.git#201775c47e4cefeb71d7f415c605e09c02e33b22"
186dependencies = [ 185dependencies = [
187 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 186 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
188] 187]
@@ -190,26 +189,26 @@ dependencies = [
190[[package]] 189[[package]]
191name = "chalk-rust-ir" 190name = "chalk-rust-ir"
192version = "0.1.0" 191version = "0.1.0"
193source = "git+https://github.com/flodiebold/chalk.git?branch=fuel#fba97af88ff2e0266db12490e2baf47d17e557e3" 192source = "git+https://github.com/rust-lang/chalk.git#201775c47e4cefeb71d7f415c605e09c02e33b22"
194dependencies = [ 193dependencies = [
195 "chalk-engine 0.9.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 194 "chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)",
196 "chalk-ir 0.1.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 195 "chalk-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)",
197 "chalk-macros 0.1.1 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 196 "chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)",
198] 197]
199 198
200[[package]] 199[[package]]
201name = "chalk-solve" 200name = "chalk-solve"
202version = "0.1.0" 201version = "0.1.0"
203source = "git+https://github.com/flodiebold/chalk.git?branch=fuel#fba97af88ff2e0266db12490e2baf47d17e557e3" 202source = "git+https://github.com/rust-lang/chalk.git#201775c47e4cefeb71d7f415c605e09c02e33b22"
204dependencies = [ 203dependencies = [
205 "chalk-engine 0.9.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 204 "chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)",
206 "chalk-ir 0.1.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 205 "chalk-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)",
207 "chalk-macros 0.1.1 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 206 "chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)",
208 "chalk-rust-ir 0.1.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 207 "chalk-rust-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)",
209 "derive-new 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", 208 "derive-new 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
210 "ena 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", 209 "ena 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
211 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 210 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
212 "itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", 211 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
213 "petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", 212 "petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)",
214 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 213 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
215] 214]
@@ -219,7 +218,7 @@ name = "chrono"
219version = "0.4.7" 218version = "0.4.7"
220source = "registry+https://github.com/rust-lang/crates.io-index" 219source = "registry+https://github.com/rust-lang/crates.io-index"
221dependencies = [ 220dependencies = [
222 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 221 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
223 "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", 222 "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
224 "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 223 "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
225 "serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)", 224 "serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -237,7 +236,7 @@ version = "2.33.0"
237source = "registry+https://github.com/rust-lang/crates.io-index" 236source = "registry+https://github.com/rust-lang/crates.io-index"
238dependencies = [ 237dependencies = [
239 "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 238 "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
240 "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 239 "atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
241 "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 240 "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
242 "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 241 "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
243 "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 242 "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -250,9 +249,9 @@ name = "clicolors-control"
250version = "1.0.0" 249version = "1.0.0"
251source = "registry+https://github.com/rust-lang/crates.io-index" 250source = "registry+https://github.com/rust-lang/crates.io-index"
252dependencies = [ 251dependencies = [
253 "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 252 "atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
254 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 253 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
255 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 254 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
256 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 255 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
257] 256]
258 257
@@ -274,12 +273,12 @@ name = "console"
274version = "0.7.7" 273version = "0.7.7"
275source = "registry+https://github.com/rust-lang/crates.io-index" 274source = "registry+https://github.com/rust-lang/crates.io-index"
276dependencies = [ 275dependencies = [
277 "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 276 "atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
278 "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 277 "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
279 "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", 278 "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
280 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 279 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
281 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 280 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
282 "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 281 "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
283 "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 282 "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
284 "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 283 "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
285 "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 284 "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -318,7 +317,7 @@ name = "crossbeam-epoch"
318version = "0.7.1" 317version = "0.7.1"
319source = "registry+https://github.com/rust-lang/crates.io-index" 318source = "registry+https://github.com/rust-lang/crates.io-index"
320dependencies = [ 319dependencies = [
321 "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 320 "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
322 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 321 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
323 "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 322 "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
324 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 323 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -354,11 +353,11 @@ dependencies = [
354 353
355[[package]] 354[[package]]
356name = "derive-new" 355name = "derive-new"
357version = "0.5.6" 356version = "0.5.7"
358source = "registry+https://github.com/rust-lang/crates.io-index" 357source = "registry+https://github.com/rust-lang/crates.io-index"
359dependencies = [ 358dependencies = [
360 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 359 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
361 "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 360 "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
362 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", 361 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)",
363] 362]
364 363
@@ -400,7 +399,7 @@ name = "ena"
400version = "0.10.1" 399version = "0.10.1"
401source = "registry+https://github.com/rust-lang/crates.io-index" 400source = "registry+https://github.com/rust-lang/crates.io-index"
402dependencies = [ 401dependencies = [
403 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 402 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
404] 403]
405 404
406[[package]] 405[[package]]
@@ -408,7 +407,7 @@ name = "ena"
408version = "0.13.0" 407version = "0.13.0"
409source = "registry+https://github.com/rust-lang/crates.io-index" 408source = "registry+https://github.com/rust-lang/crates.io-index"
410dependencies = [ 409dependencies = [
411 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 410 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
412] 411]
413 412
414[[package]] 413[[package]]
@@ -448,7 +447,7 @@ version = "0.1.5"
448source = "registry+https://github.com/rust-lang/crates.io-index" 447source = "registry+https://github.com/rust-lang/crates.io-index"
449dependencies = [ 448dependencies = [
450 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 449 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
451 "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 450 "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
452 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", 451 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)",
453 "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", 452 "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
454] 453]
@@ -464,7 +463,7 @@ version = "0.2.5"
464source = "registry+https://github.com/rust-lang/crates.io-index" 463source = "registry+https://github.com/rust-lang/crates.io-index"
465dependencies = [ 464dependencies = [
466 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 465 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
467 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 466 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
468 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", 467 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
469] 468]
470 469
@@ -475,12 +474,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
475 474
476[[package]] 475[[package]]
477name = "flexi_logger" 476name = "flexi_logger"
478version = "0.13.2" 477version = "0.13.3"
479source = "registry+https://github.com/rust-lang/crates.io-index" 478source = "registry+https://github.com/rust-lang/crates.io-index"
480dependencies = [ 479dependencies = [
481 "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", 480 "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
482 "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 481 "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
483 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 482 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
484 "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 483 "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
485 "yansi 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 484 "yansi 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
486] 485]
@@ -504,7 +503,7 @@ name = "fsevent-sys"
504version = "2.0.1" 503version = "2.0.1"
505source = "registry+https://github.com/rust-lang/crates.io-index" 504source = "registry+https://github.com/rust-lang/crates.io-index"
506dependencies = [ 505dependencies = [
507 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 506 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
508] 507]
509 508
510[[package]] 509[[package]]
@@ -539,8 +538,8 @@ name = "gen_lsp_server"
539version = "0.2.0" 538version = "0.2.0"
540dependencies = [ 539dependencies = [
541 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 540 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
542 "flexi_logger 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", 541 "flexi_logger 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)",
543 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 542 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
544 "lsp-types 0.59.0 (registry+https://github.com/rust-lang/crates.io-index)", 543 "lsp-types 0.59.0 (registry+https://github.com/rust-lang/crates.io-index)",
545 "serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)", 544 "serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
546 "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", 545 "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -560,7 +559,7 @@ version = "0.1.6"
560source = "registry+https://github.com/rust-lang/crates.io-index" 559source = "registry+https://github.com/rust-lang/crates.io-index"
561dependencies = [ 560dependencies = [
562 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 561 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
563 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 562 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
564] 563]
565 564
566[[package]] 565[[package]]
@@ -609,7 +608,7 @@ dependencies = [
609 "console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", 608 "console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
610 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 609 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
611 "number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 610 "number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
612 "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 611 "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
613 "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 612 "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
614] 613]
615 614
@@ -620,7 +619,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
620dependencies = [ 619dependencies = [
621 "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 620 "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
622 "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 621 "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
623 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 622 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
624] 623]
625 624
626[[package]] 625[[package]]
@@ -628,7 +627,7 @@ name = "inotify-sys"
628version = "0.1.3" 627version = "0.1.3"
629source = "registry+https://github.com/rust-lang/crates.io-index" 628source = "registry+https://github.com/rust-lang/crates.io-index"
630dependencies = [ 629dependencies = [
631 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 630 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
632] 631]
633 632
634[[package]] 633[[package]]
@@ -656,20 +655,12 @@ name = "iovec"
656version = "0.1.2" 655version = "0.1.2"
657source = "registry+https://github.com/rust-lang/crates.io-index" 656source = "registry+https://github.com/rust-lang/crates.io-index"
658dependencies = [ 657dependencies = [
659 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 658 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
660 "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 659 "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
661] 660]
662 661
663[[package]] 662[[package]]
664name = "itertools" 663name = "itertools"
665version = "0.7.11"
666source = "registry+https://github.com/rust-lang/crates.io-index"
667dependencies = [
668 "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
669]
670
671[[package]]
672name = "itertools"
673version = "0.8.0" 664version = "0.8.0"
674source = "registry+https://github.com/rust-lang/crates.io-index" 665source = "registry+https://github.com/rust-lang/crates.io-index"
675dependencies = [ 666dependencies = [
@@ -687,7 +678,7 @@ version = "0.2.0"
687source = "registry+https://github.com/rust-lang/crates.io-index" 678source = "registry+https://github.com/rust-lang/crates.io-index"
688dependencies = [ 679dependencies = [
689 "jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 680 "jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
690 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 681 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
691] 682]
692 683
693[[package]] 684[[package]]
@@ -697,7 +688,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
697dependencies = [ 688dependencies = [
698 "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", 689 "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
699 "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 690 "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
700 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 691 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
701] 692]
702 693
703[[package]] 694[[package]]
@@ -706,7 +697,7 @@ version = "0.1.9"
706source = "registry+https://github.com/rust-lang/crates.io-index" 697source = "registry+https://github.com/rust-lang/crates.io-index"
707dependencies = [ 698dependencies = [
708 "jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 699 "jemalloc-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
709 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 700 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
710] 701]
711 702
712[[package]] 703[[package]]
@@ -748,7 +739,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
748 739
749[[package]] 740[[package]]
750name = "libc" 741name = "libc"
751version = "0.2.58" 742version = "0.2.59"
752source = "registry+https://github.com/rust-lang/crates.io-index" 743source = "registry+https://github.com/rust-lang/crates.io-index"
753 744
754[[package]] 745[[package]]
@@ -765,8 +756,16 @@ dependencies = [
765] 756]
766 757
767[[package]] 758[[package]]
759name = "lock_api"
760version = "0.3.1"
761source = "registry+https://github.com/rust-lang/crates.io-index"
762dependencies = [
763 "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
764]
765
766[[package]]
768name = "log" 767name = "log"
769version = "0.4.6" 768version = "0.4.7"
770source = "registry+https://github.com/rust-lang/crates.io-index" 769source = "registry+https://github.com/rust-lang/crates.io-index"
771dependencies = [ 770dependencies = [
772 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 771 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -816,8 +815,8 @@ dependencies = [
816 "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 815 "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
817 "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 816 "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
818 "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 817 "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
819 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 818 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
820 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 819 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
821 "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 820 "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
822 "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 821 "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
823 "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 822 "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -830,7 +829,7 @@ version = "2.0.5"
830source = "registry+https://github.com/rust-lang/crates.io-index" 829source = "registry+https://github.com/rust-lang/crates.io-index"
831dependencies = [ 830dependencies = [
832 "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 831 "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
833 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 832 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
834 "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)", 833 "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
835 "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 834 "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
836] 835]
@@ -852,7 +851,7 @@ version = "0.2.33"
852source = "registry+https://github.com/rust-lang/crates.io-index" 851source = "registry+https://github.com/rust-lang/crates.io-index"
853dependencies = [ 852dependencies = [
854 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 853 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
855 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 854 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
856 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 855 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
857] 856]
858 857
@@ -872,7 +871,7 @@ dependencies = [
872 "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 871 "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
873 "inotify 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 872 "inotify 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
874 "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 873 "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
875 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 874 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
876 "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)", 875 "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
877 "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", 876 "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
878 "walkdir 2.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 877 "walkdir 2.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -885,7 +884,7 @@ version = "0.2.5"
885source = "registry+https://github.com/rust-lang/crates.io-index" 884source = "registry+https://github.com/rust-lang/crates.io-index"
886dependencies = [ 885dependencies = [
887 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 886 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
888 "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 887 "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
889 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", 888 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)",
890] 889]
891 890
@@ -911,7 +910,7 @@ name = "num_cpus"
911version = "1.10.1" 910version = "1.10.1"
912source = "registry+https://github.com/rust-lang/crates.io-index" 911source = "registry+https://github.com/rust-lang/crates.io-index"
913dependencies = [ 912dependencies = [
914 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 913 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
915] 914]
916 915
917[[package]] 916[[package]]
@@ -923,13 +922,8 @@ dependencies = [
923] 922]
924 923
925[[package]] 924[[package]]
926name = "numtoa"
927version = "0.1.0"
928source = "registry+https://github.com/rust-lang/crates.io-index"
929
930[[package]]
931name = "once_cell" 925name = "once_cell"
932version = "0.2.1" 926version = "0.2.2"
933source = "registry+https://github.com/rust-lang/crates.io-index" 927source = "registry+https://github.com/rust-lang/crates.io-index"
934dependencies = [ 928dependencies = [
935 "lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 929 "lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -957,13 +951,23 @@ dependencies = [
957] 951]
958 952
959[[package]] 953[[package]]
954name = "parking_lot"
955version = "0.9.0"
956source = "registry+https://github.com/rust-lang/crates.io-index"
957dependencies = [
958 "lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
959 "parking_lot_core 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
960 "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
961]
962
963[[package]]
960name = "parking_lot_core" 964name = "parking_lot_core"
961version = "0.5.0" 965version = "0.5.0"
962source = "registry+https://github.com/rust-lang/crates.io-index" 966source = "registry+https://github.com/rust-lang/crates.io-index"
963dependencies = [ 967dependencies = [
964 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 968 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
965 "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 969 "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
966 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 970 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
967 "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 971 "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
968 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", 972 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
969 "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 973 "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -972,6 +976,20 @@ dependencies = [
972] 976]
973 977
974[[package]] 978[[package]]
979name = "parking_lot_core"
980version = "0.6.0"
981source = "registry+https://github.com/rust-lang/crates.io-index"
982dependencies = [
983 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
984 "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
985 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
986 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
987 "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
988 "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
989 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
990]
991
992[[package]]
975name = "percent-encoding" 993name = "percent-encoding"
976version = "1.0.1" 994version = "1.0.1"
977source = "registry+https://github.com/rust-lang/crates.io-index" 995source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1001,7 +1019,7 @@ dependencies = [
1001 "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1019 "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1002 "pest_meta 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1020 "pest_meta 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1003 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1021 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
1004 "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1022 "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
1005 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", 1023 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)",
1006] 1024]
1007 1025
@@ -1061,7 +1079,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1061 1079
1062[[package]] 1080[[package]]
1063name = "quote" 1081name = "quote"
1064version = "0.6.12" 1082version = "0.6.13"
1065source = "registry+https://github.com/rust-lang/crates.io-index" 1083source = "registry+https://github.com/rust-lang/crates.io-index"
1066dependencies = [ 1084dependencies = [
1067 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1085 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1075,10 +1093,10 @@ version = "0.1.0"
1075name = "ra_assists" 1093name = "ra_assists"
1076version = "0.1.0" 1094version = "0.1.0"
1077dependencies = [ 1095dependencies = [
1078 "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 1096 "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
1079 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1097 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1080 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1098 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
1081 "once_cell 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 1099 "once_cell 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
1082 "ra_db 0.1.0", 1100 "ra_db 0.1.0",
1083 "ra_fmt 0.1.0", 1101 "ra_fmt 0.1.0",
1084 "ra_hir 0.1.0", 1102 "ra_hir 0.1.0",
@@ -1091,7 +1109,7 @@ dependencies = [
1091name = "ra_batch" 1109name = "ra_batch"
1092version = "0.1.0" 1110version = "0.1.0"
1093dependencies = [ 1111dependencies = [
1094 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1112 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
1095 "ra_db 0.1.0", 1113 "ra_db 0.1.0",
1096 "ra_hir 0.1.0", 1114 "ra_hir 0.1.0",
1097 "ra_ide_api 0.1.0", 1115 "ra_ide_api 0.1.0",
@@ -1105,7 +1123,7 @@ name = "ra_cli"
1105version = "0.1.0" 1123version = "0.1.0"
1106dependencies = [ 1124dependencies = [
1107 "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", 1125 "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
1108 "flexi_logger 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", 1126 "flexi_logger 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)",
1109 "indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 1127 "indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
1110 "ra_batch 0.1.0", 1128 "ra_batch 0.1.0",
1111 "ra_db 0.1.0", 1129 "ra_db 0.1.0",
@@ -1138,15 +1156,15 @@ dependencies = [
1138name = "ra_hir" 1156name = "ra_hir"
1139version = "0.1.0" 1157version = "0.1.0"
1140dependencies = [ 1158dependencies = [
1141 "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 1159 "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
1142 "chalk-ir 0.1.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 1160 "chalk-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)",
1143 "chalk-rust-ir 0.1.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 1161 "chalk-rust-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)",
1144 "chalk-solve 0.1.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)", 1162 "chalk-solve 0.1.0 (git+https://github.com/rust-lang/chalk.git)",
1145 "ena 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", 1163 "ena 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
1146 "insta 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 1164 "insta 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
1147 "lalrpop-intern 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", 1165 "lalrpop-intern 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
1148 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1166 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
1149 "once_cell 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 1167 "once_cell 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
1150 "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1168 "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1151 "ra_arena 0.1.0", 1169 "ra_arena 0.1.0",
1152 "ra_db 0.1.0", 1170 "ra_db 0.1.0",
@@ -1167,7 +1185,7 @@ dependencies = [
1167 "insta 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 1185 "insta 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
1168 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1186 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1169 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1187 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
1170 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1188 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
1171 "proptest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)", 1189 "proptest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
1172 "ra_assists 0.1.0", 1190 "ra_assists 0.1.0",
1173 "ra_db 0.1.0", 1191 "ra_db 0.1.0",
@@ -1190,9 +1208,9 @@ name = "ra_lsp_server"
1190version = "0.1.0" 1208version = "0.1.0"
1191dependencies = [ 1209dependencies = [
1192 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 1210 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1193 "flexi_logger 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", 1211 "flexi_logger 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)",
1194 "gen_lsp_server 0.2.0", 1212 "gen_lsp_server 0.2.0",
1195 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1213 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
1196 "lsp-types 0.59.0 (registry+https://github.com/rust-lang/crates.io-index)", 1214 "lsp-types 0.59.0 (registry+https://github.com/rust-lang/crates.io-index)",
1197 "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1215 "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1198 "ra_ide_api 0.1.0", 1216 "ra_ide_api 0.1.0",
@@ -1217,7 +1235,7 @@ name = "ra_mbe"
1217version = "0.1.0" 1235version = "0.1.0"
1218dependencies = [ 1236dependencies = [
1219 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1237 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1220 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1238 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
1221 "ra_parser 0.1.0", 1239 "ra_parser 0.1.0",
1222 "ra_syntax 0.1.0", 1240 "ra_syntax 0.1.0",
1223 "ra_tt 0.1.0", 1241 "ra_tt 0.1.0",
@@ -1241,7 +1259,7 @@ dependencies = [
1241 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1259 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1242 "jemalloc-ctl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1260 "jemalloc-ctl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
1243 "jemallocator 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1261 "jemallocator 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
1244 "once_cell 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 1262 "once_cell 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
1245] 1263]
1246 1264
1247[[package]] 1265[[package]]
@@ -1249,7 +1267,7 @@ name = "ra_project_model"
1249version = "0.1.0" 1267version = "0.1.0"
1250dependencies = [ 1268dependencies = [
1251 "cargo_metadata 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1269 "cargo_metadata 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1252 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1270 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
1253 "ra_arena 0.1.0", 1271 "ra_arena 0.1.0",
1254 "ra_db 0.1.0", 1272 "ra_db 0.1.0",
1255 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1273 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1304,7 +1322,7 @@ version = "0.2.5"
1304source = "registry+https://github.com/rust-lang/crates.io-index" 1322source = "registry+https://github.com/rust-lang/crates.io-index"
1305dependencies = [ 1323dependencies = [
1306 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 1324 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1307 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1325 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
1308 "notify 4.0.12 (registry+https://github.com/rust-lang/crates.io-index)", 1326 "notify 4.0.12 (registry+https://github.com/rust-lang/crates.io-index)",
1309 "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1327 "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1310 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1328 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1318,7 +1336,7 @@ version = "0.6.5"
1318source = "registry+https://github.com/rust-lang/crates.io-index" 1336source = "registry+https://github.com/rust-lang/crates.io-index"
1319dependencies = [ 1337dependencies = [
1320 "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 1338 "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
1321 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 1339 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
1322 "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1340 "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1323 "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1341 "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1324 "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1342 "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1336,7 +1354,7 @@ version = "0.7.0"
1336source = "registry+https://github.com/rust-lang/crates.io-index" 1354source = "registry+https://github.com/rust-lang/crates.io-index"
1337dependencies = [ 1355dependencies = [
1338 "getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1356 "getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
1339 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 1357 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
1340 "rand_chacha 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1358 "rand_chacha 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
1341 "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 1359 "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
1342 "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1360 "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1412,7 +1430,7 @@ name = "rand_jitter"
1412version = "0.1.4" 1430version = "0.1.4"
1413source = "registry+https://github.com/rust-lang/crates.io-index" 1431source = "registry+https://github.com/rust-lang/crates.io-index"
1414dependencies = [ 1432dependencies = [
1415 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 1433 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
1416 "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1434 "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1417 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1435 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
1418] 1436]
@@ -1424,7 +1442,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1424dependencies = [ 1442dependencies = [
1425 "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 1443 "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
1426 "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1444 "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1427 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 1445 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
1428 "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1446 "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1429 "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1447 "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1430 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1448 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1492,14 +1510,6 @@ version = "0.1.56"
1492source = "registry+https://github.com/rust-lang/crates.io-index" 1510source = "registry+https://github.com/rust-lang/crates.io-index"
1493 1511
1494[[package]] 1512[[package]]
1495name = "redox_termios"
1496version = "0.1.1"
1497source = "registry+https://github.com/rust-lang/crates.io-index"
1498dependencies = [
1499 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
1500]
1501
1502[[package]]
1503name = "regex" 1513name = "regex"
1504version = "1.1.9" 1514version = "1.1.9"
1505source = "registry+https://github.com/rust-lang/crates.io-index" 1515source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1585,11 +1595,11 @@ name = "salsa"
1585version = "0.12.3" 1595version = "0.12.3"
1586source = "registry+https://github.com/rust-lang/crates.io-index" 1596source = "registry+https://github.com/rust-lang/crates.io-index"
1587dependencies = [ 1597dependencies = [
1588 "derive-new 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", 1598 "derive-new 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
1589 "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 1599 "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
1590 "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 1600 "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
1591 "lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1601 "lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
1592 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1602 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
1593 "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1603 "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1594 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1604 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1595 "salsa-macros 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", 1605 "salsa-macros 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1603,7 +1613,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1603dependencies = [ 1613dependencies = [
1604 "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1614 "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
1605 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1615 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
1606 "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1616 "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
1607 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", 1617 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)",
1608] 1618]
1609 1619
@@ -1653,7 +1663,7 @@ version = "1.0.94"
1653source = "registry+https://github.com/rust-lang/crates.io-index" 1663source = "registry+https://github.com/rust-lang/crates.io-index"
1654dependencies = [ 1664dependencies = [
1655 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1665 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
1656 "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1666 "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
1657 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", 1667 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)",
1658] 1668]
1659 1669
@@ -1727,7 +1737,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1727dependencies = [ 1737dependencies = [
1728 "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", 1738 "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
1729 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1739 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
1730 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 1740 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
1731 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1741 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
1732] 1742]
1733 1743
@@ -1747,7 +1757,7 @@ version = "0.15.39"
1747source = "registry+https://github.com/rust-lang/crates.io-index" 1757source = "registry+https://github.com/rust-lang/crates.io-index"
1748dependencies = [ 1758dependencies = [
1749 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1759 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
1750 "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1760 "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
1751 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1761 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1752] 1762]
1753 1763
@@ -1757,7 +1767,7 @@ version = "0.10.2"
1757source = "registry+https://github.com/rust-lang/crates.io-index" 1767source = "registry+https://github.com/rust-lang/crates.io-index"
1758dependencies = [ 1768dependencies = [
1759 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1769 "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
1760 "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1770 "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
1761 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", 1771 "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)",
1762 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1772 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1763] 1773]
@@ -1768,7 +1778,7 @@ version = "3.1.0"
1768source = "registry+https://github.com/rust-lang/crates.io-index" 1778source = "registry+https://github.com/rust-lang/crates.io-index"
1769dependencies = [ 1779dependencies = [
1770 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1780 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
1771 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 1781 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
1772 "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 1782 "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
1773 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", 1783 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
1774 "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 1784 "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1806,22 +1816,11 @@ dependencies = [
1806] 1816]
1807 1817
1808[[package]] 1818[[package]]
1809name = "termion"
1810version = "1.5.3"
1811source = "registry+https://github.com/rust-lang/crates.io-index"
1812dependencies = [
1813 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
1814 "numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1815 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
1816 "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1817]
1818
1819[[package]]
1820name = "termios" 1819name = "termios"
1821version = "0.3.1" 1820version = "0.3.1"
1822source = "registry+https://github.com/rust-lang/crates.io-index" 1821source = "registry+https://github.com/rust-lang/crates.io-index"
1823dependencies = [ 1822dependencies = [
1824 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 1823 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
1825] 1824]
1826 1825
1827[[package]] 1826[[package]]
@@ -1859,7 +1858,7 @@ name = "thread_worker"
1859version = "0.1.0" 1858version = "0.1.0"
1860dependencies = [ 1859dependencies = [
1861 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 1860 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1862 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1861 "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
1863] 1862]
1864 1863
1865[[package]] 1864[[package]]
@@ -1875,7 +1874,7 @@ name = "time"
1875version = "0.1.42" 1874version = "0.1.42"
1876source = "registry+https://github.com/rust-lang/crates.io-index" 1875source = "registry+https://github.com/rust-lang/crates.io-index"
1877dependencies = [ 1876dependencies = [
1878 "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 1877 "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
1879 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", 1878 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
1880 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1879 "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
1881] 1880]
@@ -2093,8 +2092,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2093[metadata] 2092[metadata]
2094"checksum aho-corasick 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "36b7aa1ccb7d7ea3f437cf025a2ab1c47cc6c1bc9fc84918ff449def12f5e282" 2093"checksum aho-corasick 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "36b7aa1ccb7d7ea3f437cf025a2ab1c47cc6c1bc9fc84918ff449def12f5e282"
2095"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" 2094"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
2096"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" 2095"checksum arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba"
2097"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" 2096"checksum atty 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ecaaea69f52b3b18633611ec0007d188517d0366f47ff703d400fa6879d6f8d5"
2098"checksum autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf" 2097"checksum autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf"
2099"checksum backtrace 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "346d7644f0b5f9bc73082d3b2236b69a05fd35cce0cfa3724e184e6a5c9e2a2f" 2098"checksum backtrace 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "346d7644f0b5f9bc73082d3b2236b69a05fd35cce0cfa3724e184e6a5c9e2a2f"
2100"checksum backtrace 0.3.32 (registry+https://github.com/rust-lang/crates.io-index)" = "18b50f5258d1a9ad8396d2d345827875de4261b158124d4c819d9b351454fae5" 2099"checksum backtrace 0.3.32 (registry+https://github.com/rust-lang/crates.io-index)" = "18b50f5258d1a9ad8396d2d345827875de4261b158124d4c819d9b351454fae5"
@@ -2111,11 +2110,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2111"checksum cargo_metadata 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "929766d993a2fde7a0ae962ee82429069cd7b68839cd9375b98efd719df65d3a" 2110"checksum cargo_metadata 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "929766d993a2fde7a0ae962ee82429069cd7b68839cd9375b98efd719df65d3a"
2112"checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d" 2111"checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d"
2113"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" 2112"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
2114"checksum chalk-engine 0.9.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)" = "<none>" 2113"checksum chalk-engine 0.9.0 (git+https://github.com/rust-lang/chalk.git)" = "<none>"
2115"checksum chalk-ir 0.1.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)" = "<none>" 2114"checksum chalk-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)" = "<none>"
2116"checksum chalk-macros 0.1.1 (git+https://github.com/flodiebold/chalk.git?branch=fuel)" = "<none>" 2115"checksum chalk-macros 0.1.1 (git+https://github.com/rust-lang/chalk.git)" = "<none>"
2117"checksum chalk-rust-ir 0.1.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)" = "<none>" 2116"checksum chalk-rust-ir 0.1.0 (git+https://github.com/rust-lang/chalk.git)" = "<none>"
2118"checksum chalk-solve 0.1.0 (git+https://github.com/flodiebold/chalk.git?branch=fuel)" = "<none>" 2117"checksum chalk-solve 0.1.0 (git+https://github.com/rust-lang/chalk.git)" = "<none>"
2119"checksum chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "77d81f58b7301084de3b958691458a53c3f7e0b1d702f77e550b6a88e3a88abe" 2118"checksum chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "77d81f58b7301084de3b958691458a53c3f7e0b1d702f77e550b6a88e3a88abe"
2120"checksum ci_info 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e5e881307a989a3a5e20d52a32cc05950e3c2178cccfcc9428271a6cde09f902" 2119"checksum ci_info 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e5e881307a989a3a5e20d52a32cc05950e3c2178cccfcc9428271a6cde09f902"
2121"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" 2120"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
@@ -2130,7 +2129,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2130"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" 2129"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
2131"checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" 2130"checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c"
2132"checksum dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850" 2131"checksum dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850"
2133"checksum derive-new 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "6ca414e896ae072546f4d789f452daaecf60ddee4c9df5dc6d5936d769e3d87c" 2132"checksum derive-new 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)" = "c3fd04571b29c91cfbe1e7c9a228e069ac8635f180ffb4ccd6a6907617ee8bb0"
2134"checksum deunicode 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690" 2133"checksum deunicode 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690"
2135"checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" 2134"checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
2136"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" 2135"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
@@ -2147,7 +2146,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2147"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" 2146"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
2148"checksum filetime 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2f8c63033fcba1f51ef744505b3cad42510432b904c062afa67ad7ece008429d" 2147"checksum filetime 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2f8c63033fcba1f51ef744505b3cad42510432b904c062afa67ad7ece008429d"
2149"checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" 2148"checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33"
2150"checksum flexi_logger 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e651f7ca90e082144feeb1b158603457d6704ba96b87530ba135bb55306064b1" 2149"checksum flexi_logger 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e9d3c4470d1ff8446baa0c13202646722886dde8dc4c5d33cb8242d70ece79d5"
2151"checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674" 2150"checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
2152"checksum fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" 2151"checksum fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
2153"checksum fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" 2152"checksum fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0"
@@ -2168,7 +2167,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2168"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0" 2167"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
2169"checksum insta 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8bbbb69ec4557c37b2bf4d525d106d828e0c2fbd6c44bc98cd3798da13c73b9f" 2168"checksum insta 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8bbbb69ec4557c37b2bf4d525d106d828e0c2fbd6c44bc98cd3798da13c73b9f"
2170"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" 2169"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
2171"checksum itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0d47946d458e94a1b7bcabbf6521ea7c037062c81f534615abcad76e84d4970d"
2172"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358" 2170"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
2173"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" 2171"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
2174"checksum jemalloc-ctl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4e93b0f37e7d735c6b610176d5b1bde8e1621ff3f6f7ac23cdfa4e7f7d0111b5" 2172"checksum jemalloc-ctl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4e93b0f37e7d735c6b610176d5b1bde8e1621ff3f6f7ac23cdfa4e7f7d0111b5"
@@ -2180,10 +2178,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2180"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" 2178"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
2181"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" 2179"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
2182"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" 2180"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
2183"checksum libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "6281b86796ba5e4366000be6e9e18bf35580adf9e63fbe2294aadb587613a319" 2181"checksum libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)" = "3262021842bf00fe07dbd6cf34ff25c99d7a7ebef8deea84db72be3ea3bb0aff"
2184"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" 2182"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83"
2185"checksum lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed946d4529956a20f2d63ebe1b69996d5a2137c91913fe3ebbeff957f5bca7ff" 2183"checksum lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed946d4529956a20f2d63ebe1b69996d5a2137c91913fe3ebbeff957f5bca7ff"
2186"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" 2184"checksum lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc"
2185"checksum log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "c275b6ad54070ac2d665eef9197db647b32239c9d244bfb6f041a766d00da5b3"
2187"checksum lsp-types 0.59.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8961cde7f6f856771910edf37ff0729e59e02d2a8592a94c27495b746320e6ed" 2186"checksum lsp-types 0.59.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8961cde7f6f856771910edf37ff0729e59e02d2a8592a94c27495b746320e6ed"
2188"checksum maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08cbb6b4fef96b6d77bfc40ec491b1690c779e77b05cd9f07f787ed376fd4c43" 2187"checksum maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08cbb6b4fef96b6d77bfc40ec491b1690c779e77b05cd9f07f787ed376fd4c43"
2189"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 2188"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
@@ -2200,12 +2199,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2200"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32" 2199"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
2201"checksum num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273" 2200"checksum num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273"
2202"checksum number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbf9993e59c894e3c08aa1c2712914e9e6bf1fcbfc6bef283e2183df345a4fee" 2201"checksum number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbf9993e59c894e3c08aa1c2712914e9e6bf1fcbfc6bef283e2183df345a4fee"
2203"checksum numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" 2202"checksum once_cell 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6959fb95e7164b7707aa016c65652f9f5a29a9210aa1800e64f51c6ac9988d51"
2204"checksum once_cell 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4c7118943e044e53fb4f0400ba153201e7b3e1ee61f137d47aa45367223caa19"
2205"checksum opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409" 2203"checksum opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409"
2206"checksum ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" 2204"checksum ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063"
2207"checksum parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa7767817701cce701d5585b9c4db3cdd02086398322c1d7e8bf5094a96a2ce7" 2205"checksum parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa7767817701cce701d5585b9c4db3cdd02086398322c1d7e8bf5094a96a2ce7"
2206"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
2208"checksum parking_lot_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cb88cb1cb3790baa6776844f968fea3be44956cf184fa1be5a03341f5491278c" 2207"checksum parking_lot_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cb88cb1cb3790baa6776844f968fea3be44956cf184fa1be5a03341f5491278c"
2208"checksum parking_lot_core 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "67812d70a819b886655846594086c00ac1f3e8b77c36ef494aa730c620b19d57"
2209"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 2209"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
2210"checksum pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "933085deae3f32071f135d799d75667b63c8dc1f4537159756e3d4ceab41868c" 2210"checksum pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "933085deae3f32071f135d799d75667b63c8dc1f4537159756e3d4ceab41868c"
2211"checksum pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" 2211"checksum pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
@@ -2216,7 +2216,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2216"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" 2216"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
2217"checksum proptest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cf147e022eacf0c8a054ab864914a7602618adba841d800a9a9868a5237a529f" 2217"checksum proptest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cf147e022eacf0c8a054ab864914a7602618adba841d800a9a9868a5237a529f"
2218"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" 2218"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
2219"checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db" 2219"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
2220"checksum ra_vfs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fb7cd4e302032c5ab514f1c01c89727cd96fd950dd36f9ebee9252df45d9fb1a" 2220"checksum ra_vfs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fb7cd4e302032c5ab514f1c01c89727cd96fd950dd36f9ebee9252df45d9fb1a"
2221"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" 2221"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
2222"checksum rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d47eab0e83d9693d40f825f86948aa16eff6750ead4bdffc4ab95b8b3a7f052c" 2222"checksum rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d47eab0e83d9693d40f825f86948aa16eff6750ead4bdffc4ab95b8b3a7f052c"
@@ -2237,7 +2237,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2237"checksum rayon-core 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ebbe0df8435ac0c397d467b6cad6d25543d06e8a019ef3f6af3c384597515bd2" 2237"checksum rayon-core 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ebbe0df8435ac0c397d467b6cad6d25543d06e8a019ef3f6af3c384597515bd2"
2238"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" 2238"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
2239"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" 2239"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
2240"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
2241"checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad" 2240"checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad"
2242"checksum regex-syntax 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9b01330cce219c1c6b2e209e5ed64ccd587ae5c67bed91c0b49eecf02ae40e21" 2241"checksum regex-syntax 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9b01330cce219c1c6b2e209e5ed64ccd587ae5c67bed91c0b49eecf02ae40e21"
2243"checksum relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0e7790c7f1cc73d831d28dc5a7deb316a006e7848e6a7f467cdb10a0a9e0fb1c" 2242"checksum relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0e7790c7f1cc73d831d28dc5a7deb316a006e7848e6a7f467cdb10a0a9e0fb1c"
@@ -2273,7 +2272,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2273"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" 2272"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
2274"checksum tera 0.11.20 (registry+https://github.com/rust-lang/crates.io-index)" = "4b505279e19d8f7d24b1a9dc58327c9c36174b1a2c7ebdeac70792d017cb64f3" 2273"checksum tera 0.11.20 (registry+https://github.com/rust-lang/crates.io-index)" = "4b505279e19d8f7d24b1a9dc58327c9c36174b1a2c7ebdeac70792d017cb64f3"
2275"checksum teraron 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9a447d012fef5c222f4b11a98fcef2a7e347a57f28be9957c5c390ac9a0e41e0" 2274"checksum teraron 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9a447d012fef5c222f4b11a98fcef2a7e347a57f28be9957c5c390ac9a0e41e0"
2276"checksum termion 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a8fb22f7cde82c8220e5aeacb3258ed7ce996142c77cba193f203515e26c330"
2277"checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" 2275"checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625"
2278"checksum text_unit 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e08bbcb7a3adbda0eb23431206b653bdad3d8dea311e72d36bf2215e27a42579" 2276"checksum text_unit 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e08bbcb7a3adbda0eb23431206b653bdad3d8dea311e72d36bf2215e27a42579"
2279"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" 2277"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
diff --git a/crates/ra_hir/Cargo.toml b/crates/ra_hir/Cargo.toml
index de2c2dbec..833956ce8 100644
--- a/crates/ra_hir/Cargo.toml
+++ b/crates/ra_hir/Cargo.toml
@@ -21,9 +21,9 @@ tt = { path = "../ra_tt", package = "ra_tt" }
21test_utils = { path = "../test_utils" } 21test_utils = { path = "../test_utils" }
22ra_prof = { path = "../ra_prof" } 22ra_prof = { path = "../ra_prof" }
23 23
24chalk-solve = { git = "https://github.com/flodiebold/chalk.git", branch = "fuel" } 24chalk-solve = { git = "https://github.com/rust-lang/chalk.git" }
25chalk-rust-ir = { git = "https://github.com/flodiebold/chalk.git", branch = "fuel" } 25chalk-rust-ir = { git = "https://github.com/rust-lang/chalk.git" }
26chalk-ir = { git = "https://github.com/flodiebold/chalk.git", branch = "fuel" } 26chalk-ir = { git = "https://github.com/rust-lang/chalk.git" }
27lalrpop-intern = "0.15.1" 27lalrpop-intern = "0.15.1"
28 28
29[dev-dependencies] 29[dev-dependencies]
diff --git a/crates/ra_hir/src/db.rs b/crates/ra_hir/src/db.rs
index b0c027631..040c782e6 100644
--- a/crates/ra_hir/src/db.rs
+++ b/crates/ra_hir/src/db.rs
@@ -189,9 +189,9 @@ pub trait HirDatabase: DefDatabase + AstDatabase {
189 /// because Chalk does its own internal caching, the solver is wrapped in a 189 /// because Chalk does its own internal caching, the solver is wrapped in a
190 /// Mutex and the query is marked volatile, to make sure the cached state is 190 /// Mutex and the query is marked volatile, to make sure the cached state is
191 /// thrown away when input facts change. 191 /// thrown away when input facts change.
192 #[salsa::invoke(crate::ty::traits::solver_query)] 192 #[salsa::invoke(crate::ty::traits::trait_solver_query)]
193 #[salsa::volatile] 193 #[salsa::volatile]
194 fn solver(&self, krate: Crate) -> Arc<Mutex<crate::ty::traits::Solver>>; 194 fn trait_solver(&self, krate: Crate) -> Arc<Mutex<crate::ty::traits::Solver>>;
195 195
196 #[salsa::invoke(crate::ty::traits::chalk::associated_ty_data_query)] 196 #[salsa::invoke(crate::ty::traits::chalk::associated_ty_data_query)]
197 fn associated_ty_data(&self, id: chalk_ir::TypeId) -> Arc<chalk_rust_ir::AssociatedTyDatum>; 197 fn associated_ty_data(&self, id: chalk_ir::TypeId) -> Arc<chalk_rust_ir::AssociatedTyDatum>;
@@ -213,8 +213,8 @@ pub trait HirDatabase: DefDatabase + AstDatabase {
213 #[salsa::invoke(crate::ty::traits::chalk::impl_datum_query)] 213 #[salsa::invoke(crate::ty::traits::chalk::impl_datum_query)]
214 fn impl_datum(&self, krate: Crate, impl_id: chalk_ir::ImplId) -> Arc<chalk_rust_ir::ImplDatum>; 214 fn impl_datum(&self, krate: Crate, impl_id: chalk_ir::ImplId) -> Arc<chalk_rust_ir::ImplDatum>;
215 215
216 #[salsa::invoke(crate::ty::traits::solve_query)] 216 #[salsa::invoke(crate::ty::traits::trait_solve_query)]
217 fn solve( 217 fn trait_solve(
218 &self, 218 &self,
219 krate: Crate, 219 krate: Crate,
220 goal: crate::ty::Canonical<crate::ty::InEnvironment<crate::ty::Obligation>>, 220 goal: crate::ty::Canonical<crate::ty::InEnvironment<crate::ty::Obligation>>,
diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs
index 9accffcbc..4cf714f5d 100644
--- a/crates/ra_hir/src/ty.rs
+++ b/crates/ra_hir/src/ty.rs
@@ -26,7 +26,7 @@ pub(crate) use lower::{
26 callable_item_sig, generic_defaults_query, generic_predicates_query, type_for_def, 26 callable_item_sig, generic_defaults_query, generic_predicates_query, type_for_def,
27 type_for_field, TypableDef, 27 type_for_field, TypableDef,
28}; 28};
29pub(crate) use traits::{Environment, InEnvironment, Obligation, ProjectionPredicate}; 29pub(crate) use traits::{InEnvironment, Obligation, ProjectionPredicate, TraitEnvironment};
30 30
31/// A type constructor or type name: this might be something like the primitive 31/// A type constructor or type name: this might be something like the primitive
32/// type `bool`, a struct like `Vec`, or things like function pointers or 32/// type `bool`, a struct like `Vec`, or things like function pointers or
diff --git a/crates/ra_hir/src/ty/autoderef.rs b/crates/ra_hir/src/ty/autoderef.rs
index c26513871..2535d4ae7 100644
--- a/crates/ra_hir/src/ty/autoderef.rs
+++ b/crates/ra_hir/src/ty/autoderef.rs
@@ -68,7 +68,7 @@ fn deref_by_trait(
68 68
69 let canonical = super::Canonical { num_vars: 1 + ty.num_vars, value: in_env }; 69 let canonical = super::Canonical { num_vars: 1 + ty.num_vars, value: in_env };
70 70
71 let solution = db.solve(krate, canonical)?; 71 let solution = db.trait_solve(krate, canonical)?;
72 72
73 match &solution { 73 match &solution {
74 Solution::Unique(vars) => { 74 Solution::Unique(vars) => {
diff --git a/crates/ra_hir/src/ty/infer.rs b/crates/ra_hir/src/ty/infer.rs
index 5ad4f73ec..0e030576d 100644
--- a/crates/ra_hir/src/ty/infer.rs
+++ b/crates/ra_hir/src/ty/infer.rs
@@ -29,8 +29,8 @@ use test_utils::tested_by;
29use super::{ 29use super::{
30 autoderef, lower, method_resolution, op, primitive, 30 autoderef, lower, method_resolution, op, primitive,
31 traits::{Guidance, Obligation, ProjectionPredicate, Solution}, 31 traits::{Guidance, Obligation, ProjectionPredicate, Solution},
32 ApplicationTy, CallableDef, Environment, InEnvironment, ProjectionTy, Substs, TraitRef, Ty, 32 ApplicationTy, CallableDef, InEnvironment, ProjectionTy, Substs, TraitEnvironment, TraitRef,
33 TypableDef, TypeCtor, 33 Ty, TypableDef, TypeCtor,
34}; 34};
35use crate::{ 35use crate::{
36 adt::VariantDef, 36 adt::VariantDef,
@@ -107,7 +107,7 @@ impl Default for BindingMode {
107} 107}
108 108
109/// The result of type inference: A mapping from expressions and patterns to types. 109/// The result of type inference: A mapping from expressions and patterns to types.
110#[derive(Clone, PartialEq, Eq, Debug)] 110#[derive(Clone, PartialEq, Eq, Debug, Default)]
111pub struct InferenceResult { 111pub struct InferenceResult {
112 /// For each method call expr, records the function it resolves to. 112 /// For each method call expr, records the function it resolves to.
113 method_resolutions: FxHashMap<ExprId, Function>, 113 method_resolutions: FxHashMap<ExprId, Function>,
@@ -170,15 +170,9 @@ struct InferenceContext<'a, D: HirDatabase> {
170 body: Arc<Body>, 170 body: Arc<Body>,
171 resolver: Resolver, 171 resolver: Resolver,
172 var_unification_table: InPlaceUnificationTable<TypeVarId>, 172 var_unification_table: InPlaceUnificationTable<TypeVarId>,
173 trait_env: Arc<Environment>, 173 trait_env: Arc<TraitEnvironment>,
174 obligations: Vec<Obligation>, 174 obligations: Vec<Obligation>,
175 method_resolutions: FxHashMap<ExprId, Function>, 175 result: InferenceResult,
176 field_resolutions: FxHashMap<ExprId, StructField>,
177 variant_resolutions: FxHashMap<ExprId, VariantDef>,
178 assoc_resolutions: FxHashMap<ExprOrPatId, ImplItem>,
179 type_of_expr: ArenaMap<ExprId, Ty>,
180 type_of_pat: ArenaMap<PatId, Ty>,
181 diagnostics: Vec<InferenceDiagnostic>,
182 /// The return type of the function being inferred. 176 /// The return type of the function being inferred.
183 return_ty: Ty, 177 return_ty: Ty,
184} 178}
@@ -186,13 +180,7 @@ struct InferenceContext<'a, D: HirDatabase> {
186impl<'a, D: HirDatabase> InferenceContext<'a, D> { 180impl<'a, D: HirDatabase> InferenceContext<'a, D> {
187 fn new(db: &'a D, body: Arc<Body>, resolver: Resolver) -> Self { 181 fn new(db: &'a D, body: Arc<Body>, resolver: Resolver) -> Self {
188 InferenceContext { 182 InferenceContext {
189 method_resolutions: FxHashMap::default(), 183 result: InferenceResult::default(),
190 field_resolutions: FxHashMap::default(),
191 variant_resolutions: FxHashMap::default(),
192 assoc_resolutions: FxHashMap::default(),
193 type_of_expr: ArenaMap::default(),
194 type_of_pat: ArenaMap::default(),
195 diagnostics: Vec::default(),
196 var_unification_table: InPlaceUnificationTable::new(), 184 var_unification_table: InPlaceUnificationTable::new(),
197 obligations: Vec::default(), 185 obligations: Vec::default(),
198 return_ty: Ty::Unknown, // set in collect_fn_signature 186 return_ty: Ty::Unknown, // set in collect_fn_signature
@@ -205,50 +193,45 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
205 193
206 fn resolve_all(mut self) -> InferenceResult { 194 fn resolve_all(mut self) -> InferenceResult {
207 // FIXME resolve obligations as well (use Guidance if necessary) 195 // FIXME resolve obligations as well (use Guidance if necessary)
196 let mut result = mem::replace(&mut self.result, InferenceResult::default());
208 let mut tv_stack = Vec::new(); 197 let mut tv_stack = Vec::new();
209 let mut expr_types = mem::replace(&mut self.type_of_expr, ArenaMap::default()); 198 for ty in result.type_of_expr.values_mut() {
210 for ty in expr_types.values_mut() {
211 let resolved = self.resolve_ty_completely(&mut tv_stack, mem::replace(ty, Ty::Unknown)); 199 let resolved = self.resolve_ty_completely(&mut tv_stack, mem::replace(ty, Ty::Unknown));
212 *ty = resolved; 200 *ty = resolved;
213 } 201 }
214 let mut pat_types = mem::replace(&mut self.type_of_pat, ArenaMap::default()); 202 for ty in result.type_of_pat.values_mut() {
215 for ty in pat_types.values_mut() {
216 let resolved = self.resolve_ty_completely(&mut tv_stack, mem::replace(ty, Ty::Unknown)); 203 let resolved = self.resolve_ty_completely(&mut tv_stack, mem::replace(ty, Ty::Unknown));
217 *ty = resolved; 204 *ty = resolved;
218 } 205 }
219 InferenceResult { 206 result
220 method_resolutions: self.method_resolutions,
221 field_resolutions: self.field_resolutions,
222 variant_resolutions: self.variant_resolutions,
223 assoc_resolutions: self.assoc_resolutions,
224 type_of_expr: expr_types,
225 type_of_pat: pat_types,
226 diagnostics: self.diagnostics,
227 }
228 } 207 }
229 208
230 fn write_expr_ty(&mut self, expr: ExprId, ty: Ty) { 209 fn write_expr_ty(&mut self, expr: ExprId, ty: Ty) {
231 self.type_of_expr.insert(expr, ty); 210 self.result.type_of_expr.insert(expr, ty);
232 } 211 }
233 212
234 fn write_method_resolution(&mut self, expr: ExprId, func: Function) { 213 fn write_method_resolution(&mut self, expr: ExprId, func: Function) {
235 self.method_resolutions.insert(expr, func); 214 self.result.method_resolutions.insert(expr, func);
236 } 215 }
237 216
238 fn write_field_resolution(&mut self, expr: ExprId, field: StructField) { 217 fn write_field_resolution(&mut self, expr: ExprId, field: StructField) {
239 self.field_resolutions.insert(expr, field); 218 self.result.field_resolutions.insert(expr, field);
240 } 219 }
241 220
242 fn write_variant_resolution(&mut self, expr: ExprId, variant: VariantDef) { 221 fn write_variant_resolution(&mut self, expr: ExprId, variant: VariantDef) {
243 self.variant_resolutions.insert(expr, variant); 222 self.result.variant_resolutions.insert(expr, variant);
244 } 223 }
245 224
246 fn write_assoc_resolution(&mut self, id: ExprOrPatId, item: ImplItem) { 225 fn write_assoc_resolution(&mut self, id: ExprOrPatId, item: ImplItem) {
247 self.assoc_resolutions.insert(id, item); 226 self.result.assoc_resolutions.insert(id, item);
248 } 227 }
249 228
250 fn write_pat_ty(&mut self, pat: PatId, ty: Ty) { 229 fn write_pat_ty(&mut self, pat: PatId, ty: Ty) {
251 self.type_of_pat.insert(pat, ty); 230 self.result.type_of_pat.insert(pat, ty);
231 }
232
233 fn push_diagnostic(&mut self, diagnostic: InferenceDiagnostic) {
234 self.result.diagnostics.push(diagnostic);
252 } 235 }
253 236
254 fn make_ty(&mut self, type_ref: &TypeRef) -> Ty { 237 fn make_ty(&mut self, type_ref: &TypeRef) -> Ty {
@@ -345,7 +328,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
345 let in_env = InEnvironment::new(self.trait_env.clone(), obligation.clone()); 328 let in_env = InEnvironment::new(self.trait_env.clone(), obligation.clone());
346 let canonicalized = self.canonicalizer().canonicalize_obligation(in_env); 329 let canonicalized = self.canonicalizer().canonicalize_obligation(in_env);
347 let solution = 330 let solution =
348 self.db.solve(self.resolver.krate().unwrap(), canonicalized.value.clone()); 331 self.db.trait_solve(self.resolver.krate().unwrap(), canonicalized.value.clone());
349 332
350 match solution { 333 match solution {
351 Some(Solution::Unique(substs)) => { 334 Some(Solution::Unique(substs)) => {
@@ -565,7 +548,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
565 Some(ty) 548 Some(ty)
566 } 549 }
567 Resolution::LocalBinding(pat) => { 550 Resolution::LocalBinding(pat) => {
568 let ty = self.type_of_pat.get(pat)?.clone(); 551 let ty = self.result.type_of_pat.get(pat)?.clone();
569 let ty = self.resolve_ty_as_possible(&mut vec![], ty); 552 let ty = self.resolve_ty_as_possible(&mut vec![], ty);
570 Some(ty) 553 Some(ty)
571 } 554 }
@@ -1090,7 +1073,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
1090 .and_then(|it| match it.field(self.db, &field.name) { 1073 .and_then(|it| match it.field(self.db, &field.name) {
1091 Some(field) => Some(field), 1074 Some(field) => Some(field),
1092 None => { 1075 None => {
1093 self.diagnostics.push(InferenceDiagnostic::NoSuchField { 1076 self.push_diagnostic(InferenceDiagnostic::NoSuchField {
1094 expr: tgt_expr, 1077 expr: tgt_expr,
1095 field: field_idx, 1078 field: field_idx,
1096 }); 1079 });
diff --git a/crates/ra_hir/src/ty/lower.rs b/crates/ra_hir/src/ty/lower.rs
index ca47d6e96..894ba0695 100644
--- a/crates/ra_hir/src/ty/lower.rs
+++ b/crates/ra_hir/src/ty/lower.rs
@@ -317,7 +317,10 @@ pub(crate) fn type_for_field(db: &impl HirDatabase, field: StructField) -> Ty {
317 Ty::from_hir(db, &resolver, type_ref) 317 Ty::from_hir(db, &resolver, type_ref)
318} 318}
319 319
320pub(crate) fn trait_env(db: &impl HirDatabase, resolver: &Resolver) -> Arc<super::Environment> { 320pub(crate) fn trait_env(
321 db: &impl HirDatabase,
322 resolver: &Resolver,
323) -> Arc<super::TraitEnvironment> {
321 let predicates = resolver 324 let predicates = resolver
322 .where_predicates_in_scope() 325 .where_predicates_in_scope()
323 .map(|pred| { 326 .map(|pred| {
@@ -326,7 +329,7 @@ pub(crate) fn trait_env(db: &impl HirDatabase, resolver: &Resolver) -> Arc<super
326 }) 329 })
327 .collect::<Vec<_>>(); 330 .collect::<Vec<_>>();
328 331
329 Arc::new(super::Environment { predicates }) 332 Arc::new(super::TraitEnvironment { predicates })
330} 333}
331 334
332/// Resolve the where clause(s) of an item with generics. 335/// Resolve the where clause(s) of an item with generics.
diff --git a/crates/ra_hir/src/ty/method_resolution.rs b/crates/ra_hir/src/ty/method_resolution.rs
index 353820436..d421bf9ef 100644
--- a/crates/ra_hir/src/ty/method_resolution.rs
+++ b/crates/ra_hir/src/ty/method_resolution.rs
@@ -7,7 +7,7 @@ use std::sync::Arc;
7use arrayvec::ArrayVec; 7use arrayvec::ArrayVec;
8use rustc_hash::FxHashMap; 8use rustc_hash::FxHashMap;
9 9
10use super::{autoderef, lower, Canonical, Environment, InEnvironment, TraitRef}; 10use super::{autoderef, lower, Canonical, InEnvironment, TraitEnvironment, TraitRef};
11use crate::{ 11use crate::{
12 generics::HasGenericParams, 12 generics::HasGenericParams,
13 impl_block::{ImplBlock, ImplId, ImplItem}, 13 impl_block::{ImplBlock, ImplId, ImplItem},
@@ -214,7 +214,7 @@ fn iterate_trait_method_candidates<T>(
214 if name.map_or(true, |name| data.name() == name) && data.has_self_param() { 214 if name.map_or(true, |name| data.name() == name) && data.has_self_param() {
215 if !known_implemented { 215 if !known_implemented {
216 let goal = generic_implements_goal(db, env.clone(), t, ty.clone()); 216 let goal = generic_implements_goal(db, env.clone(), t, ty.clone());
217 if db.solve(krate, goal).is_none() { 217 if db.trait_solve(krate, goal).is_none() {
218 continue 'traits; 218 continue 'traits;
219 } 219 }
220 } 220 }
@@ -283,7 +283,7 @@ impl Ty {
283/// for all other parameters, to query Chalk with it. 283/// for all other parameters, to query Chalk with it.
284fn generic_implements_goal( 284fn generic_implements_goal(
285 db: &impl HirDatabase, 285 db: &impl HirDatabase,
286 env: Arc<Environment>, 286 env: Arc<TraitEnvironment>,
287 trait_: Trait, 287 trait_: Trait,
288 self_ty: Canonical<Ty>, 288 self_ty: Canonical<Ty>,
289) -> Canonical<InEnvironment<super::Obligation>> { 289) -> Canonical<InEnvironment<super::Obligation>> {
diff --git a/crates/ra_hir/src/ty/traits.rs b/crates/ra_hir/src/ty/traits.rs
index 2817c9e71..0769e6e17 100644
--- a/crates/ra_hir/src/ty/traits.rs
+++ b/crates/ra_hir/src/ty/traits.rs
@@ -27,7 +27,7 @@ struct ChalkContext<'a, DB> {
27 krate: Crate, 27 krate: Crate,
28} 28}
29 29
30pub(crate) fn solver_query(_db: &impl HirDatabase, _krate: Crate) -> Arc<Mutex<Solver>> { 30pub(crate) fn trait_solver_query(_db: &impl HirDatabase, _krate: Crate) -> Arc<Mutex<Solver>> {
31 // krate parameter is just so we cache a unique solver per crate 31 // krate parameter is just so we cache a unique solver per crate
32 let solver_choice = chalk_solve::SolverChoice::SLG { max_size: CHALK_SOLVER_MAX_SIZE }; 32 let solver_choice = chalk_solve::SolverChoice::SLG { max_size: CHALK_SOLVER_MAX_SIZE };
33 debug!("Creating new solver for crate {:?}", _krate); 33 debug!("Creating new solver for crate {:?}", _krate);
@@ -60,9 +60,9 @@ fn solve(
60 goal: &chalk_ir::UCanonical<chalk_ir::InEnvironment<chalk_ir::Goal>>, 60 goal: &chalk_ir::UCanonical<chalk_ir::InEnvironment<chalk_ir::Goal>>,
61) -> Option<chalk_solve::Solution> { 61) -> Option<chalk_solve::Solution> {
62 let context = ChalkContext { db, krate }; 62 let context = ChalkContext { db, krate };
63 let solver = db.solver(krate); 63 let solver = db.trait_solver(krate);
64 debug!("solve goal: {:?}", goal); 64 debug!("solve goal: {:?}", goal);
65 let solution = solver.lock().solve_with_fuel(&context, goal, Some(1000)); 65 let solution = solver.lock().solve(&context, goal);
66 debug!("solve({:?}) => {:?}", goal, solution); 66 debug!("solve({:?}) => {:?}", goal, solution);
67 solution 67 solution
68} 68}
@@ -73,19 +73,19 @@ fn solve(
73/// ``` 73/// ```
74/// we assume that `T: Default`. 74/// we assume that `T: Default`.
75#[derive(Clone, Debug, PartialEq, Eq, Hash)] 75#[derive(Clone, Debug, PartialEq, Eq, Hash)]
76pub struct Environment { 76pub struct TraitEnvironment {
77 pub predicates: Vec<GenericPredicate>, 77 pub predicates: Vec<GenericPredicate>,
78} 78}
79 79
80/// Something (usually a goal), along with an environment. 80/// Something (usually a goal), along with an environment.
81#[derive(Clone, Debug, PartialEq, Eq, Hash)] 81#[derive(Clone, Debug, PartialEq, Eq, Hash)]
82pub struct InEnvironment<T> { 82pub struct InEnvironment<T> {
83 pub environment: Arc<Environment>, 83 pub environment: Arc<TraitEnvironment>,
84 pub value: T, 84 pub value: T,
85} 85}
86 86
87impl<T> InEnvironment<T> { 87impl<T> InEnvironment<T> {
88 pub fn new(environment: Arc<Environment>, value: T) -> InEnvironment<T> { 88 pub fn new(environment: Arc<TraitEnvironment>, value: T) -> InEnvironment<T> {
89 InEnvironment { environment, value } 89 InEnvironment { environment, value }
90 } 90 }
91} 91}
@@ -117,12 +117,12 @@ pub struct ProjectionPredicate {
117} 117}
118 118
119/// Solve a trait goal using Chalk. 119/// Solve a trait goal using Chalk.
120pub(crate) fn solve_query( 120pub(crate) fn trait_solve_query(
121 db: &impl HirDatabase, 121 db: &impl HirDatabase,
122 krate: Crate, 122 krate: Crate,
123 trait_ref: Canonical<InEnvironment<Obligation>>, 123 trait_ref: Canonical<InEnvironment<Obligation>>,
124) -> Option<Solution> { 124) -> Option<Solution> {
125 let _p = profile("solve_query"); 125 let _p = profile("trait_solve_query");
126 let canonical = trait_ref.to_chalk(db).cast(); 126 let canonical = trait_ref.to_chalk(db).cast();
127 // We currently don't deal with universes (I think / hope they're not yet 127 // We currently don't deal with universes (I think / hope they're not yet
128 // relevant for our use cases?) 128 // relevant for our use cases?)
diff --git a/crates/ra_hir/src/ty/traits/chalk.rs b/crates/ra_hir/src/ty/traits/chalk.rs
index 2df4dd13f..9e7ae0724 100644
--- a/crates/ra_hir/src/ty/traits/chalk.rs
+++ b/crates/ra_hir/src/ty/traits/chalk.rs
@@ -266,7 +266,7 @@ where
266 } 266 }
267} 267}
268 268
269impl ToChalk for Arc<super::Environment> { 269impl ToChalk for Arc<super::TraitEnvironment> {
270 type Chalk = Arc<chalk_ir::Environment>; 270 type Chalk = Arc<chalk_ir::Environment>;
271 271
272 fn to_chalk(self, db: &impl HirDatabase) -> Arc<chalk_ir::Environment> { 272 fn to_chalk(self, db: &impl HirDatabase) -> Arc<chalk_ir::Environment> {
@@ -276,11 +276,6 @@ impl ToChalk for Arc<super::Environment> {
276 // for env, we just ignore errors 276 // for env, we just ignore errors
277 continue; 277 continue;
278 } 278 }
279 if let GenericPredicate::Implemented(trait_ref) = pred {
280 if blacklisted_trait(db, trait_ref.trait_) {
281 continue;
282 }
283 }
284 clauses.push(pred.clone().to_chalk(db).cast()); 279 clauses.push(pred.clone().to_chalk(db).cast());
285 } 280 }
286 chalk_ir::Environment::new().add_clauses(clauses) 281 chalk_ir::Environment::new().add_clauses(clauses)
@@ -289,7 +284,7 @@ impl ToChalk for Arc<super::Environment> {
289 fn from_chalk( 284 fn from_chalk(
290 _db: &impl HirDatabase, 285 _db: &impl HirDatabase,
291 _env: Arc<chalk_ir::Environment>, 286 _env: Arc<chalk_ir::Environment>,
292 ) -> Arc<super::Environment> { 287 ) -> Arc<super::TraitEnvironment> {
293 unimplemented!() 288 unimplemented!()
294 } 289 }
295} 290}
@@ -322,10 +317,10 @@ fn make_binders<T>(value: T, num_vars: usize) -> chalk_ir::Binders<T> {
322 } 317 }
323} 318}
324 319
325fn blacklisted_trait(db: &impl HirDatabase, trait_: Trait) -> bool { 320fn is_non_enumerable_trait(db: &impl HirDatabase, trait_: Trait) -> bool {
326 let name = trait_.name(db).unwrap_or_else(crate::Name::missing).to_string(); 321 let name = trait_.name(db).unwrap_or_else(crate::Name::missing).to_string();
327 match &*name { 322 match &*name {
328 "Send" | "Sync" | "Sized" | "Fn" | "FnMut" | "FnOnce" => true, 323 "Sized" => true,
329 _ => false, 324 _ => false,
330 } 325 }
331} 326}
@@ -343,11 +338,6 @@ fn convert_where_clauses(
343 // anyway), otherwise Chalk can easily get into slow situations 338 // anyway), otherwise Chalk can easily get into slow situations
344 return vec![pred.clone().subst(substs).to_chalk(db)]; 339 return vec![pred.clone().subst(substs).to_chalk(db)];
345 } 340 }
346 if let GenericPredicate::Implemented(trait_ref) = pred {
347 if blacklisted_trait(db, trait_ref.trait_) {
348 continue;
349 }
350 }
351 result.push(pred.clone().subst(substs).to_chalk(db)); 341 result.push(pred.clone().subst(substs).to_chalk(db));
352 } 342 }
353 result 343 result
@@ -375,10 +365,6 @@ where
375 return Vec::new(); 365 return Vec::new();
376 } 366 }
377 let trait_: Trait = from_chalk(self.db, trait_id); 367 let trait_: Trait = from_chalk(self.db, trait_id);
378 let blacklisted = blacklisted_trait(self.db, trait_);
379 if blacklisted {
380 return Vec::new();
381 }
382 let result: Vec<_> = self 368 let result: Vec<_> = self
383 .db 369 .db
384 .impls_for_trait(self.krate, trait_) 370 .impls_for_trait(self.krate, trait_)
@@ -460,6 +446,7 @@ pub(crate) fn trait_datum_query(
460 associated_ty_ids: Vec::new(), 446 associated_ty_ids: Vec::new(),
461 where_clauses: Vec::new(), 447 where_clauses: Vec::new(),
462 flags: chalk_rust_ir::TraitFlags { 448 flags: chalk_rust_ir::TraitFlags {
449 non_enumerable: false,
463 auto: false, 450 auto: false,
464 marker: false, 451 marker: false,
465 upstream: true, 452 upstream: true,
@@ -476,6 +463,7 @@ pub(crate) fn trait_datum_query(
476 let flags = chalk_rust_ir::TraitFlags { 463 let flags = chalk_rust_ir::TraitFlags {
477 auto: trait_.is_auto(db), 464 auto: trait_.is_auto(db),
478 upstream: trait_.module(db).krate(db) != Some(krate), 465 upstream: trait_.module(db).krate(db) != Some(krate),
466 non_enumerable: is_non_enumerable_trait(db, trait_),
479 // FIXME set these flags correctly 467 // FIXME set these flags correctly
480 marker: false, 468 marker: false,
481 fundamental: false, 469 fundamental: false,
diff --git a/crates/ra_ide_api/src/change.rs b/crates/ra_ide_api/src/change.rs
index 1ba818197..147d2b21d 100644
--- a/crates/ra_ide_api/src/change.rs
+++ b/crates/ra_ide_api/src/change.rs
@@ -302,7 +302,7 @@ impl RootDatabase {
302 hir::db::TraitDatumQuery 302 hir::db::TraitDatumQuery
303 hir::db::StructDatumQuery 303 hir::db::StructDatumQuery
304 hir::db::ImplDatumQuery 304 hir::db::ImplDatumQuery
305 hir::db::SolveQuery 305 hir::db::TraitSolveQuery
306 ]; 306 ];
307 acc.sort_by_key(|it| std::cmp::Reverse(it.1)); 307 acc.sort_by_key(|it| std::cmp::Reverse(it.1));
308 acc 308 acc