aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml5
-rw-r--r--Cargo.lock116
-rw-r--r--crates/gen_lsp_server/Cargo.toml4
-rw-r--r--crates/ra_analysis/src/imp.rs26
-rw-r--r--crates/ra_analysis/src/lib.rs7
-rw-r--r--crates/ra_analysis/tests/tests.rs93
-rw-r--r--crates/ra_cli/Cargo.toml2
-rw-r--r--crates/ra_db/Cargo.toml1
-rw-r--r--crates/ra_db/src/cancelation.rs49
-rw-r--r--crates/ra_lsp_server/Cargo.toml6
-rw-r--r--crates/ra_lsp_server/src/main_loop.rs2
-rw-r--r--crates/ra_lsp_server/src/main_loop/handlers.rs21
-rw-r--r--crates/test_utils/Cargo.toml2
-rw-r--r--crates/tools/Cargo.toml2
14 files changed, 197 insertions, 139 deletions
diff --git a/.travis.yml b/.travis.yml
index 183409acd..04bb3be37 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,9 +4,6 @@ before_cache:
4 - rm -fr ./target/debug/{deps,.fingerprint}/{*ra_*,*test*,*tools*,*gen_lsp*,*thread_worker*} 4 - rm -fr ./target/debug/{deps,.fingerprint}/{*ra_*,*test*,*tools*,*gen_lsp*,*thread_worker*}
5 - rm -f ./target/.rustc_info.json 5 - rm -f ./target/.rustc_info.json
6 6
7env:
8 - CARGO_INCREMENTAL=0
9
10build: &rust_build 7build: &rust_build
11 language: rust 8 language: rust
12 rust: 1.31.1 9 rust: 1.31.1
@@ -15,7 +12,7 @@ build: &rust_build
15 - cargo gen-syntax --verify 12 - cargo gen-syntax --verify
16 - cargo test 13 - cargo test
17 env: 14 env:
18 - RUSTFLAGS="-D warnings" 15 - RUSTFLAGS="-D warnings", CARGO_INCREMENTAL=0
19 16
20matrix: 17matrix:
21 include: 18 include:
diff --git a/Cargo.lock b/Cargo.lock
index 150e6d1ea..895e6e62b 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -48,7 +48,7 @@ version = "0.3.13"
48source = "registry+https://github.com/rust-lang/crates.io-index" 48source = "registry+https://github.com/rust-lang/crates.io-index"
49dependencies = [ 49dependencies = [
50 "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 50 "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
51 "backtrace-sys 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", 51 "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
52 "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 52 "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
53 "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", 53 "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
54 "rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", 54 "rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -57,10 +57,10 @@ dependencies = [
57 57
58[[package]] 58[[package]]
59name = "backtrace-sys" 59name = "backtrace-sys"
60version = "0.1.26" 60version = "0.1.28"
61source = "registry+https://github.com/rust-lang/crates.io-index" 61source = "registry+https://github.com/rust-lang/crates.io-index"
62dependencies = [ 62dependencies = [
63 "cc 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", 63 "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)",
64 "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", 64 "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
65] 65]
66 66
@@ -118,13 +118,13 @@ dependencies = [
118 "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", 118 "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
119 "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 119 "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
120 "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)", 120 "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
121 "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", 121 "serde_derive 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
122 "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", 122 "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)",
123] 123]
124 124
125[[package]] 125[[package]]
126name = "cc" 126name = "cc"
127version = "1.0.27" 127version = "1.0.28"
128source = "registry+https://github.com/rust-lang/crates.io-index" 128source = "registry+https://github.com/rust-lang/crates.io-index"
129 129
130[[package]] 130[[package]]
@@ -270,16 +270,16 @@ dependencies = [
270 270
271[[package]] 271[[package]]
272name = "failure" 272name = "failure"
273version = "0.1.3" 273version = "0.1.4"
274source = "registry+https://github.com/rust-lang/crates.io-index" 274source = "registry+https://github.com/rust-lang/crates.io-index"
275dependencies = [ 275dependencies = [
276 "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", 276 "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
277 "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 277 "failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
278] 278]
279 279
280[[package]] 280[[package]]
281name = "failure_derive" 281name = "failure_derive"
282version = "0.1.3" 282version = "0.1.4"
283source = "registry+https://github.com/rust-lang/crates.io-index" 283source = "registry+https://github.com/rust-lang/crates.io-index"
284dependencies = [ 284dependencies = [
285 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 285 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -337,11 +337,11 @@ name = "gen_lsp_server"
337version = "0.1.0" 337version = "0.1.0"
338dependencies = [ 338dependencies = [
339 "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 339 "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
340 "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 340 "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
341 "languageserver-types 0.53.1 (registry+https://github.com/rust-lang/crates.io-index)", 341 "languageserver-types 0.53.1 (registry+https://github.com/rust-lang/crates.io-index)",
342 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 342 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
343 "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)", 343 "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
344 "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", 344 "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)",
345] 345]
346 346
347[[package]] 347[[package]]
@@ -426,8 +426,8 @@ dependencies = [
426 "num-derive 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 426 "num-derive 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
427 "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 427 "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
428 "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)", 428 "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
429 "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", 429 "serde_derive 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
430 "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", 430 "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)",
431 "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 431 "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
432 "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 432 "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
433] 433]
@@ -587,7 +587,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
587 587
588[[package]] 588[[package]]
589name = "pest" 589name = "pest"
590version = "2.0.2" 590version = "2.1.0"
591source = "registry+https://github.com/rust-lang/crates.io-index" 591source = "registry+https://github.com/rust-lang/crates.io-index"
592dependencies = [ 592dependencies = [
593 "ucd-trie 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 593 "ucd-trie 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -595,32 +595,32 @@ dependencies = [
595 595
596[[package]] 596[[package]]
597name = "pest_derive" 597name = "pest_derive"
598version = "2.0.1" 598version = "2.1.0"
599source = "registry+https://github.com/rust-lang/crates.io-index" 599source = "registry+https://github.com/rust-lang/crates.io-index"
600dependencies = [ 600dependencies = [
601 "pest 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 601 "pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
602 "pest_generator 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 602 "pest_generator 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
603] 603]
604 604
605[[package]] 605[[package]]
606name = "pest_generator" 606name = "pest_generator"
607version = "2.0.0" 607version = "2.1.0"
608source = "registry+https://github.com/rust-lang/crates.io-index" 608source = "registry+https://github.com/rust-lang/crates.io-index"
609dependencies = [ 609dependencies = [
610 "pest 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 610 "pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
611 "pest_meta 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 611 "pest_meta 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
612 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 612 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
613 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 613 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
614 "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", 614 "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
615] 615]
616 616
617[[package]] 617[[package]]
618name = "pest_meta" 618name = "pest_meta"
619version = "2.0.3" 619version = "2.1.0"
620source = "registry+https://github.com/rust-lang/crates.io-index" 620source = "registry+https://github.com/rust-lang/crates.io-index"
621dependencies = [ 621dependencies = [
622 "maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 622 "maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
623 "pest 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 623 "pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
624 "sha-1 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 624 "sha-1 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
625] 625]
626 626
@@ -686,7 +686,7 @@ name = "ra_cli"
686version = "0.1.0" 686version = "0.1.0"
687dependencies = [ 687dependencies = [
688 "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", 688 "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
689 "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 689 "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
690 "join_to_string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 690 "join_to_string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
691 "ra_editor 0.1.0", 691 "ra_editor 0.1.0",
692 "ra_syntax 0.1.0", 692 "ra_syntax 0.1.0",
@@ -697,7 +697,6 @@ dependencies = [
697name = "ra_db" 697name = "ra_db"
698version = "0.1.0" 698version = "0.1.0"
699dependencies = [ 699dependencies = [
700 "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
701 "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 700 "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
702 "ra_editor 0.1.0", 701 "ra_editor 0.1.0",
703 "ra_syntax 0.1.0", 702 "ra_syntax 0.1.0",
@@ -747,8 +746,8 @@ dependencies = [
747 "cargo_metadata 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", 746 "cargo_metadata 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
748 "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 747 "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
749 "drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 748 "drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
750 "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 749 "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
751 "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 750 "failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
752 "flexi_logger 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", 751 "flexi_logger 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
753 "gen_lsp_server 0.1.0", 752 "gen_lsp_server 0.1.0",
754 "im 12.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 753 "im 12.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -764,7 +763,7 @@ dependencies = [
764 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 763 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
765 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 764 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
766 "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)", 765 "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
767 "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", 766 "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)",
768 "smol_str 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 767 "smol_str 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
769 "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", 768 "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
770 "test_utils 0.1.0", 769 "test_utils 0.1.0",
@@ -922,7 +921,7 @@ dependencies = [
922 921
923[[package]] 922[[package]]
924name = "redox_syscall" 923name = "redox_syscall"
925version = "0.1.44" 924version = "0.1.49"
926source = "registry+https://github.com/rust-lang/crates.io-index" 925source = "registry+https://github.com/rust-lang/crates.io-index"
927 926
928[[package]] 927[[package]]
@@ -930,7 +929,7 @@ name = "redox_termios"
930version = "0.1.1" 929version = "0.1.1"
931source = "registry+https://github.com/rust-lang/crates.io-index" 930source = "registry+https://github.com/rust-lang/crates.io-index"
932dependencies = [ 931dependencies = [
933 "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 932 "redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)",
934] 933]
935 934
936[[package]] 935[[package]]
@@ -1074,12 +1073,12 @@ name = "serde"
1074version = "1.0.83" 1073version = "1.0.83"
1075source = "registry+https://github.com/rust-lang/crates.io-index" 1074source = "registry+https://github.com/rust-lang/crates.io-index"
1076dependencies = [ 1075dependencies = [
1077 "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", 1076 "serde_derive 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
1078] 1077]
1079 1078
1080[[package]] 1079[[package]]
1081name = "serde_derive" 1080name = "serde_derive"
1082version = "1.0.82" 1081version = "1.0.83"
1083source = "registry+https://github.com/rust-lang/crates.io-index" 1082source = "registry+https://github.com/rust-lang/crates.io-index"
1084dependencies = [ 1083dependencies = [
1085 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 1084 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1089,7 +1088,7 @@ dependencies = [
1089 1088
1090[[package]] 1089[[package]]
1091name = "serde_json" 1090name = "serde_json"
1092version = "1.0.33" 1091version = "1.0.34"
1093source = "registry+https://github.com/rust-lang/crates.io-index" 1092source = "registry+https://github.com/rust-lang/crates.io-index"
1094dependencies = [ 1093dependencies = [
1095 "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 1094 "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1149,16 +1148,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1149 1148
1150[[package]] 1149[[package]]
1151name = "syn" 1150name = "syn"
1152version = "0.14.9"
1153source = "registry+https://github.com/rust-lang/crates.io-index"
1154dependencies = [
1155 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
1156 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
1157 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1158]
1159
1160[[package]]
1161name = "syn"
1162version = "0.15.23" 1151version = "0.15.23"
1163source = "registry+https://github.com/rust-lang/crates.io-index" 1152source = "registry+https://github.com/rust-lang/crates.io-index"
1164dependencies = [ 1153dependencies = [
@@ -1186,7 +1175,7 @@ dependencies = [
1186 "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1175 "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
1187 "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", 1176 "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
1188 "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 1177 "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
1189 "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 1178 "redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)",
1190 "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1179 "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
1191 "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1180 "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
1192] 1181]
@@ -1201,11 +1190,11 @@ dependencies = [
1201 "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 1190 "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
1202 "humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1191 "humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1203 "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1192 "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
1204 "pest 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 1193 "pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1205 "pest_derive 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1194 "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1206 "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1195 "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1207 "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)", 1196 "serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)",
1208 "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", 1197 "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)",
1209 "slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 1198 "slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
1210 "unic-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 1199 "unic-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
1211 "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 1200 "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1216,7 +1205,7 @@ name = "teraron"
1216version = "0.0.1" 1205version = "0.0.1"
1217source = "registry+https://github.com/rust-lang/crates.io-index" 1206source = "registry+https://github.com/rust-lang/crates.io-index"
1218dependencies = [ 1207dependencies = [
1219 "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1208 "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
1220 "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1209 "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
1221 "ron 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1210 "ron 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1222 "tera 0.11.20 (registry+https://github.com/rust-lang/crates.io-index)", 1211 "tera 0.11.20 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1228,7 +1217,7 @@ version = "1.5.1"
1228source = "registry+https://github.com/rust-lang/crates.io-index" 1217source = "registry+https://github.com/rust-lang/crates.io-index"
1229dependencies = [ 1218dependencies = [
1230 "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", 1219 "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
1231 "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 1220 "redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)",
1232 "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1221 "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1233] 1222]
1234 1223
@@ -1238,7 +1227,7 @@ version = "0.1.0"
1238dependencies = [ 1227dependencies = [
1239 "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 1228 "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
1240 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1229 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1241 "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", 1230 "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)",
1242 "text_unit 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1231 "text_unit 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
1243] 1232]
1244 1233
@@ -1289,7 +1278,7 @@ version = "0.1.41"
1289source = "registry+https://github.com/rust-lang/crates.io-index" 1278source = "registry+https://github.com/rust-lang/crates.io-index"
1290dependencies = [ 1279dependencies = [
1291 "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", 1280 "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
1292 "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 1281 "redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)",
1293 "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1282 "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
1294] 1283]
1295 1284
@@ -1298,7 +1287,7 @@ name = "tools"
1298version = "0.1.0" 1287version = "0.1.0"
1299dependencies = [ 1288dependencies = [
1300 "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", 1289 "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
1301 "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1290 "failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
1302 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1291 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1303 "teraron 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1292 "teraron 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1304 "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 1293 "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1491,7 +1480,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1491"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" 1480"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
1492"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" 1481"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727"
1493"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" 1482"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5"
1494"checksum backtrace-sys 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "3fcce89e5ad5c8949caa9434501f7b55415b3e7ad5270cb88c75a8d35e8f1279" 1483"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
1495"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" 1484"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
1496"checksum bit-set 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6f1efcc46c18245a69c38fcc5cc650f16d3a59d034f3106e9ed63748f695730a" 1485"checksum bit-set 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6f1efcc46c18245a69c38fcc5cc650f16d3a59d034f3106e9ed63748f695730a"
1497"checksum bit-vec 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4440d5cb623bb7390ae27fec0bb6c61111969860f8e3ae198bfa0663645e67cf" 1486"checksum bit-vec 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4440d5cb623bb7390ae27fec0bb6c61111969860f8e3ae198bfa0663645e67cf"
@@ -1500,7 +1489,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1500"checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" 1489"checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40"
1501"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" 1490"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d"
1502"checksum cargo_metadata 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e5d1b4d380e1bab994591a24c2bdd1b054f64b60bef483a8c598c7c345bc3bbe" 1491"checksum cargo_metadata 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e5d1b4d380e1bab994591a24c2bdd1b054f64b60bef483a8c598c7c345bc3bbe"
1503"checksum cc 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)" = "155ed195f7bd722d1dfeb30365b9d0c1f6a078fa7ca4014497e5935d90993d6f" 1492"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749"
1504"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" 1493"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
1505"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" 1494"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"
1506"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" 1495"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
@@ -1518,8 +1507,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1518"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" 1507"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0"
1519"checksum ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f56c93cc076508c549d9bb747f79aa9b4eb098be7b8cad8830c3137ef52d1e00" 1508"checksum ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f56c93cc076508c549d9bb747f79aa9b4eb098be7b8cad8830c3137ef52d1e00"
1520"checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" 1509"checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02"
1521"checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" 1510"checksum failure 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e945b93ec214c6e97b520ec6c5d80267fc97af327658ee5b9f35984626e51fbf"
1522"checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596" 1511"checksum failure_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7c395a14ab27b42704e85bf2435c5c51f334ad7a96e16fe23c6e63a1cad6cc12"
1523"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" 1512"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
1524"checksum flexi_logger 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4dda06444ccc8b0a6da19d939989b4a4e83f328710ada449eedaed48c8b903cd" 1513"checksum flexi_logger 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4dda06444ccc8b0a6da19d939989b4a4e83f328710ada449eedaed48c8b903cd"
1525"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 1514"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
@@ -1558,10 +1547,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1558"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" 1547"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c"
1559"checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" 1548"checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9"
1560"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 1549"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
1561"checksum pest 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a677051ad923732bb5c70f2d45f8985a96e3eee2e2bff86697e3b11b0c3fcfde" 1550"checksum pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "54f0c72a98d8ab3c99560bfd16df8059cc10e1f9a8e83e6e3b97718dd766e9c3"
1562"checksum pest_derive 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b76f477146419bc539a63f4ef40e902166cb43b3e51cecc71d9136fd12c567e7" 1551"checksum pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
1563"checksum pest_generator 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ebee4e9680be4fd162e6f3394ae4192a6b60b1e4d17d845e631f0c68d1a3386" 1552"checksum pest_generator 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63120576c4efd69615b5537d3d052257328a4ca82876771d6944424ccfd9f646"
1564"checksum pest_meta 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1f6d5f6f0e6082578c86af197d780dc38328e3f768cec06aac9bc46d714e8221" 1553"checksum pest_meta 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5a3492a4ed208ffc247adcdcc7ba2a95be3104f58877d0d02f0df39bf3efb5e"
1565"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" 1554"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09"
1566"checksum proptest 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "926d0604475349f463fe44130aae73f2294b5309ab2ca0310b998bd334ef191f" 1555"checksum proptest 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "926d0604475349f463fe44130aae73f2294b5309ab2ca0310b998bd334ef191f"
1567"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" 1556"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
@@ -1577,7 +1566,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1577"checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" 1566"checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3"
1578"checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" 1567"checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473"
1579"checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" 1568"checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356"
1580"checksum redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "a84bcd297b87a545980a2d25a0beb72a1f490c31f0a9fde52fca35bfbb1ceb70" 1569"checksum redox_syscall 0.1.49 (registry+https://github.com/rust-lang/crates.io-index)" = "f22c50afdcf3f0a31ebb6b47697f6a7c5e5a24967e842858118bce0615f0afad"
1581"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" 1570"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
1582"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" 1571"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f"
1583"checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" 1572"checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1"
@@ -1597,8 +1586,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1597"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 1586"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
1598"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 1587"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
1599"checksum serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)" = "157e12af46859e968da75dea9845530e13d03bcab2009a41b9b7bb3cf4eb3ec2" 1588"checksum serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)" = "157e12af46859e968da75dea9845530e13d03bcab2009a41b9b7bb3cf4eb3ec2"
1600"checksum serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "96a7f9496ac65a2db5929afa087b54f8fc5008dcfbe48a8874ed20049b0d6154" 1589"checksum serde_derive 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)" = "9469829702497daf2daf3c190e130c3fa72f719920f73c86160d43e8f8d76951"
1601"checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811" 1590"checksum serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)" = "bdf540260cfee6da923831f4776ddc495ada940c30117977c70f1313a6130545"
1602"checksum sha-1 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9d1f3b5de8a167ab06834a7c883bd197f2191e1dda1a22d9ccfeedbf9aded" 1591"checksum sha-1 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9d1f3b5de8a167ab06834a7c883bd197f2191e1dda1a22d9ccfeedbf9aded"
1603"checksum slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373" 1592"checksum slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373"
1604"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" 1593"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db"
@@ -1606,7 +1595,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1606"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" 1595"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
1607"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" 1596"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
1608"checksum superslice 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b50b13d42370e0f5fc62eafdd5c2d20065eaf5458dab215ff3e20e63eea96b30" 1597"checksum superslice 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b50b13d42370e0f5fc62eafdd5c2d20065eaf5458dab215ff3e20e63eea96b30"
1609"checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741"
1610"checksum syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc" 1598"checksum syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc"
1611"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" 1599"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
1612"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" 1600"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2"
diff --git a/crates/gen_lsp_server/Cargo.toml b/crates/gen_lsp_server/Cargo.toml
index 2aee4ea16..a421a3e0b 100644
--- a/crates/gen_lsp_server/Cargo.toml
+++ b/crates/gen_lsp_server/Cargo.toml
@@ -10,7 +10,7 @@ description = "Generic LSP server scaffold."
10[dependencies] 10[dependencies]
11languageserver-types = "0.53.1" 11languageserver-types = "0.53.1"
12log = "0.4.3" 12log = "0.4.3"
13failure = "0.1.2" 13failure = "0.1.4"
14serde_json = "1.0.24" 14serde_json = "1.0.34"
15serde = { version = "1.0.83", features = ["derive"] } 15serde = { version = "1.0.83", features = ["derive"] }
16crossbeam-channel = "0.3.5" 16crossbeam-channel = "0.3.5"
diff --git a/crates/ra_analysis/src/imp.rs b/crates/ra_analysis/src/imp.rs
index bff2e00c9..5ed374c79 100644
--- a/crates/ra_analysis/src/imp.rs
+++ b/crates/ra_analysis/src/imp.rs
@@ -288,7 +288,11 @@ impl AnalysisImpl {
288 Some(it) => it, 288 Some(it) => it,
289 }; 289 };
290 290
291 let mut ret = vec![(position.file_id, binding.syntax().range())]; 291 let mut ret = binding
292 .name()
293 .into_iter()
294 .map(|name| (position.file_id, name.syntax().range()))
295 .collect::<Vec<_>>();
292 ret.extend( 296 ret.extend(
293 descr 297 descr
294 .scopes(&*self.db) 298 .scopes(&*self.db)
@@ -505,7 +509,25 @@ impl AnalysisImpl {
505 let infer = function.infer(&*self.db)?; 509 let infer = function.infer(&*self.db)?;
506 Ok(infer.type_of_node(node).map(|t| t.to_string())) 510 Ok(infer.type_of_node(node).map(|t| t.to_string()))
507 } 511 }
508 512 pub fn rename(
513 &self,
514 position: FilePosition,
515 new_name: &str,
516 ) -> Cancelable<Vec<SourceFileEdit>> {
517 let res = self
518 .find_all_refs(position)?
519 .iter()
520 .map(|(file_id, text_range)| SourceFileEdit {
521 file_id: *file_id,
522 edit: {
523 let mut builder = ra_text_edit::TextEditBuilder::new();
524 builder.replace(*text_range, new_name.into());
525 builder.finish()
526 },
527 })
528 .collect::<Vec<_>>();
529 Ok(res)
530 }
509 fn index_resolve(&self, name_ref: ast::NameRef) -> Cancelable<Vec<(FileId, FileSymbol)>> { 531 fn index_resolve(&self, name_ref: ast::NameRef) -> Cancelable<Vec<(FileId, FileSymbol)>> {
510 let name = name_ref.text(); 532 let name = name_ref.text();
511 let mut query = Query::new(name.to_string()); 533 let mut query = Query::new(name.to_string());
diff --git a/crates/ra_analysis/src/lib.rs b/crates/ra_analysis/src/lib.rs
index 9f5e9f358..e56168510 100644
--- a/crates/ra_analysis/src/lib.rs
+++ b/crates/ra_analysis/src/lib.rs
@@ -367,6 +367,13 @@ impl Analysis {
367 pub fn type_of(&self, frange: FileRange) -> Cancelable<Option<String>> { 367 pub fn type_of(&self, frange: FileRange) -> Cancelable<Option<String>> {
368 self.imp.type_of(frange) 368 self.imp.type_of(frange)
369 } 369 }
370 pub fn rename(
371 &self,
372 position: FilePosition,
373 new_name: &str,
374 ) -> Cancelable<Vec<SourceFileEdit>> {
375 self.imp.rename(position, new_name)
376 }
370} 377}
371 378
372pub struct LibraryData { 379pub struct LibraryData {
diff --git a/crates/ra_analysis/tests/tests.rs b/crates/ra_analysis/tests/tests.rs
index 210fa2a13..a314fbc40 100644
--- a/crates/ra_analysis/tests/tests.rs
+++ b/crates/ra_analysis/tests/tests.rs
@@ -1,5 +1,5 @@
1use ra_syntax::TextRange; 1use ra_syntax::TextRange;
2use test_utils::assert_eq_dbg; 2use test_utils::{assert_eq_dbg, assert_eq_text};
3 3
4use ra_analysis::{ 4use ra_analysis::{
5 mock_analysis::{analysis_and_position, single_file, single_file_with_position, MockAnalysis}, 5 mock_analysis::{analysis_and_position, single_file, single_file_with_position, MockAnalysis},
@@ -453,3 +453,94 @@ fn test_find_all_refs_for_fn_param() {
453 let refs = get_all_refs(code); 453 let refs = get_all_refs(code);
454 assert_eq!(refs.len(), 2); 454 assert_eq!(refs.len(), 2);
455} 455}
456#[test]
457fn test_rename_for_local() {
458 test_rename(
459 r#"
460 fn main() {
461 let mut i = 1;
462 let j = 1;
463 i = i<|> + j;
464
465 {
466 i = 0;
467 }
468
469 i = 5;
470 }"#,
471 "k",
472 r#"
473 fn main() {
474 let mut k = 1;
475 let j = 1;
476 k = k + j;
477
478 {
479 k = 0;
480 }
481
482 k = 5;
483 }"#,
484 );
485}
486
487#[test]
488fn test_rename_for_param_inside() {
489 test_rename(
490 r#"
491 fn foo(i : u32) -> u32 {
492 i<|>
493 }"#,
494 "j",
495 r#"
496 fn foo(j : u32) -> u32 {
497 j
498 }"#,
499 );
500}
501
502#[test]
503fn test_rename_refs_for_fn_param() {
504 test_rename(
505 r#"
506 fn foo(i<|> : u32) -> u32 {
507 i
508 }"#,
509 "new_name",
510 r#"
511 fn foo(new_name : u32) -> u32 {
512 new_name
513 }"#,
514 );
515}
516
517#[test]
518fn test_rename_for_mut_param() {
519 test_rename(
520 r#"
521 fn foo(mut i<|> : u32) -> u32 {
522 i
523 }"#,
524 "new_name",
525 r#"
526 fn foo(mut new_name : u32) -> u32 {
527 new_name
528 }"#,
529 );
530}
531fn test_rename(text: &str, new_name: &str, expected: &str) {
532 let (analysis, position) = single_file_with_position(text);
533 let edits = analysis.rename(position, new_name).unwrap();
534 let mut text_edit_bulder = ra_text_edit::TextEditBuilder::new();
535 let mut file_id: Option<FileId> = None;
536 for edit in edits {
537 file_id = Some(edit.file_id);
538 for atom in edit.edit.as_atoms() {
539 text_edit_bulder.replace(atom.delete, atom.insert.clone());
540 }
541 }
542 let result = text_edit_bulder
543 .finish()
544 .apply(&*analysis.file_text(file_id.unwrap()));
545 assert_eq_text!(expected, &*result);
546}
diff --git a/crates/ra_cli/Cargo.toml b/crates/ra_cli/Cargo.toml
index 0b8d6f3dd..83f1d91e0 100644
--- a/crates/ra_cli/Cargo.toml
+++ b/crates/ra_cli/Cargo.toml
@@ -7,7 +7,7 @@ publish = false
7 7
8[dependencies] 8[dependencies]
9clap = "2.32.0" 9clap = "2.32.0"
10failure = "0.1.1" 10failure = "0.1.4"
11join_to_string = "0.1.1" 11join_to_string = "0.1.1"
12ra_syntax = { path = "../ra_syntax" } 12ra_syntax = { path = "../ra_syntax" }
13ra_editor = { path = "../ra_editor" } 13ra_editor = { path = "../ra_editor" }
diff --git a/crates/ra_db/Cargo.toml b/crates/ra_db/Cargo.toml
index 75bcf2b39..ecc56d953 100644
--- a/crates/ra_db/Cargo.toml
+++ b/crates/ra_db/Cargo.toml
@@ -5,7 +5,6 @@ version = "0.1.0"
5authors = ["Aleksey Kladov <[email protected]>"] 5authors = ["Aleksey Kladov <[email protected]>"]
6 6
7[dependencies] 7[dependencies]
8backtrace = "0.3.1"
9relative-path = "0.4.0" 8relative-path = "0.4.0"
10salsa = "0.9.0" 9salsa = "0.9.0"
11rustc-hash = "1.0" 10rustc-hash = "1.0"
diff --git a/crates/ra_db/src/cancelation.rs b/crates/ra_db/src/cancelation.rs
index 73444b015..56ce27bff 100644
--- a/crates/ra_db/src/cancelation.rs
+++ b/crates/ra_db/src/cancelation.rs
@@ -15,29 +15,17 @@
15//! any background processing (this bit is handled by salsa, see 15//! any background processing (this bit is handled by salsa, see
16//! `BaseDatabase::check_canceled` method). 16//! `BaseDatabase::check_canceled` method).
17 17
18use std::{
19 cmp,
20 hash::{Hash, Hasher},
21 sync::Arc,
22};
23
24use backtrace::Backtrace;
25use parking_lot::Mutex;
26
27/// An "error" signifing that the operation was canceled. 18/// An "error" signifing that the operation was canceled.
28#[derive(Clone)] 19#[derive(Clone, PartialEq, Eq, Hash)]
29pub struct Canceled { 20pub struct Canceled {
30 backtrace: Arc<Mutex<Backtrace>>, 21 _private: (),
31} 22}
32 23
33pub type Cancelable<T> = Result<T, Canceled>; 24pub type Cancelable<T> = Result<T, Canceled>;
34 25
35impl Canceled { 26impl Canceled {
36 pub(crate) fn new() -> Canceled { 27 pub(crate) fn new() -> Canceled {
37 let bt = Backtrace::new_unresolved(); 28 Canceled { _private: () }
38 Canceled {
39 backtrace: Arc::new(Mutex::new(bt)),
40 }
41 } 29 }
42} 30}
43 31
@@ -49,37 +37,8 @@ impl std::fmt::Display for Canceled {
49 37
50impl std::fmt::Debug for Canceled { 38impl std::fmt::Debug for Canceled {
51 fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 39 fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
52 let mut bt = self.backtrace.lock(); 40 write!(fmt, "Canceled")
53 let bt: &mut Backtrace = &mut *bt;
54 bt.resolve();
55 write!(fmt, "canceled at:\n{:?}", bt)
56 } 41 }
57} 42}
58 43
59impl std::error::Error for Canceled {} 44impl std::error::Error for Canceled {}
60
61impl PartialEq for Canceled {
62 fn eq(&self, _: &Canceled) -> bool {
63 true
64 }
65}
66
67impl Eq for Canceled {}
68
69impl Hash for Canceled {
70 fn hash<H: Hasher>(&self, hasher: &mut H) {
71 ().hash(hasher)
72 }
73}
74
75impl cmp::Ord for Canceled {
76 fn cmp(&self, _: &Canceled) -> cmp::Ordering {
77 cmp::Ordering::Equal
78 }
79}
80
81impl cmp::PartialOrd for Canceled {
82 fn partial_cmp(&self, other: &Canceled) -> Option<cmp::Ordering> {
83 Some(self.cmp(other))
84 }
85}
diff --git a/crates/ra_lsp_server/Cargo.toml b/crates/ra_lsp_server/Cargo.toml
index 22a26b844..8bd4caa53 100644
--- a/crates/ra_lsp_server/Cargo.toml
+++ b/crates/ra_lsp_server/Cargo.toml
@@ -8,9 +8,9 @@ authors = ["Aleksey Kladov <[email protected]>"]
8rayon = "1.0.2" 8rayon = "1.0.2"
9threadpool = "1.7.1" 9threadpool = "1.7.1"
10relative-path = "0.4.0" 10relative-path = "0.4.0"
11failure = "0.1.2" 11failure = "0.1.4"
12failure_derive = "0.1.2" 12failure_derive = "0.1.4"
13serde_json = "1.0.24" 13serde_json = "1.0.34"
14serde = "1.0.83" 14serde = "1.0.83"
15drop_bomb = "0.1.0" 15drop_bomb = "0.1.0"
16crossbeam-channel = "0.3.5" 16crossbeam-channel = "0.3.5"
diff --git a/crates/ra_lsp_server/src/main_loop.rs b/crates/ra_lsp_server/src/main_loop.rs
index 46b48830d..06dd373c0 100644
--- a/crates/ra_lsp_server/src/main_loop.rs
+++ b/crates/ra_lsp_server/src/main_loop.rs
@@ -433,7 +433,7 @@ impl<'a> PoolDispatcher<'a> {
433 RawResponse::err( 433 RawResponse::err(
434 id, 434 id,
435 ErrorCode::ContentModified as i32, 435 ErrorCode::ContentModified as i32,
436 format!("content modified: {:?}", e), 436 "content modified".to_string(),
437 ) 437 )
438 } else { 438 } else {
439 RawResponse::err( 439 RawResponse::err(
diff --git a/crates/ra_lsp_server/src/main_loop/handlers.rs b/crates/ra_lsp_server/src/main_loop/handlers.rs
index 228eb7ce5..012f74270 100644
--- a/crates/ra_lsp_server/src/main_loop/handlers.rs
+++ b/crates/ra_lsp_server/src/main_loop/handlers.rs
@@ -556,24 +556,19 @@ pub fn handle_rename(world: ServerWorld, params: RenameParams) -> Result<Option<
556 .into()); 556 .into());
557 } 557 }
558 558
559 let refs = world 559 let renames = world
560 .analysis() 560 .analysis()
561 .find_all_refs(FilePosition { file_id, offset })?; 561 .rename(FilePosition { file_id, offset }, &*params.new_name)?;
562 if refs.is_empty() { 562 if renames.is_empty() {
563 return Ok(None); 563 return Ok(None);
564 } 564 }
565 565
566 let mut changes = HashMap::new(); 566 let mut changes = HashMap::new();
567 for r in refs { 567 for edit in renames {
568 if let Ok(loc) = to_location(r.0, r.1, &world, &line_index) { 568 changes
569 changes 569 .entry(file_id.try_conv_with(&world)?)
570 .entry(loc.uri) 570 .or_insert_with(Vec::new)
571 .or_insert_with(Vec::new) 571 .extend(edit.edit.conv_with(&line_index));
572 .push(TextEdit {
573 range: loc.range,
574 new_text: params.new_name.clone(),
575 });
576 }
577 } 572 }
578 573
579 Ok(Some(WorkspaceEdit { 574 Ok(Some(WorkspaceEdit {
diff --git a/crates/test_utils/Cargo.toml b/crates/test_utils/Cargo.toml
index 02727993e..963491128 100644
--- a/crates/test_utils/Cargo.toml
+++ b/crates/test_utils/Cargo.toml
@@ -8,4 +8,4 @@ authors = ["Aleksey Kladov <[email protected]>"]
8difference = "2.0.0" 8difference = "2.0.0"
9itertools = "0.8.0" 9itertools = "0.8.0"
10text_unit = "0.1.2" 10text_unit = "0.1.2"
11serde_json = "1.0.24" 11serde_json = "1.0.34"
diff --git a/crates/tools/Cargo.toml b/crates/tools/Cargo.toml
index 4795b1387..9d6707a59 100644
--- a/crates/tools/Cargo.toml
+++ b/crates/tools/Cargo.toml
@@ -10,4 +10,4 @@ teraron = "0.0.1"
10walkdir = "2.1.3" 10walkdir = "2.1.3"
11itertools = "0.8.0" 11itertools = "0.8.0"
12clap = "2.32.0" 12clap = "2.32.0"
13failure = "0.1.1" 13failure = "0.1.4"