aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock99
-rw-r--r--crates/ra_db/Cargo.toml2
-rw-r--r--crates/ra_db/src/input.rs65
-rw-r--r--crates/ra_db/src/lib.rs10
-rw-r--r--crates/ra_hir/Cargo.toml1
-rw-r--r--crates/ra_hir/src/db.rs174
-rw-r--r--crates/ra_hir/src/mock.rs10
-rw-r--r--crates/ra_hir/src/nameres/tests.rs3
-rw-r--r--crates/ra_hir/src/ty/tests.rs4
-rw-r--r--crates/ra_ide_api/Cargo.toml1
-rw-r--r--crates/ra_ide_api/src/db.rs19
-rw-r--r--crates/ra_ide_api/src/imp.rs9
-rw-r--r--crates/ra_ide_api/src/lib.rs6
-rw-r--r--crates/ra_ide_api/src/symbol_index.rs21
14 files changed, 190 insertions, 234 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 56fb4aad3..e0a41e258 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -39,7 +39,7 @@ dependencies = [
39 39
40[[package]] 40[[package]]
41name = "autocfg" 41name = "autocfg"
42version = "0.1.1" 42version = "0.1.2"
43source = "registry+https://github.com/rust-lang/crates.io-index" 43source = "registry+https://github.com/rust-lang/crates.io-index"
44 44
45[[package]] 45[[package]]
@@ -47,7 +47,7 @@ name = "backtrace"
47version = "0.3.13" 47version = "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.2 (registry+https://github.com/rust-lang/crates.io-index)",
51 "backtrace-sys 0.1.28 (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.47 (registry+https://github.com/rust-lang/crates.io-index)", 53 "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -118,7 +118,7 @@ dependencies = [
118 "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 118 "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
119 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", 119 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)",
120 "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", 120 "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)",
121 "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 121 "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
122] 122]
123 123
124[[package]] 124[[package]]
@@ -246,9 +246,9 @@ name = "derive-new"
246version = "0.5.6" 246version = "0.5.6"
247source = "registry+https://github.com/rust-lang/crates.io-index" 247source = "registry+https://github.com/rust-lang/crates.io-index"
248dependencies = [ 248dependencies = [
249 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 249 "proc-macro2 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
250 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 250 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
251 "syn 0.15.25 (registry+https://github.com/rust-lang/crates.io-index)", 251 "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
252] 252]
253 253
254[[package]] 254[[package]]
@@ -314,9 +314,9 @@ name = "failure_derive"
314version = "0.1.5" 314version = "0.1.5"
315source = "registry+https://github.com/rust-lang/crates.io-index" 315source = "registry+https://github.com/rust-lang/crates.io-index"
316dependencies = [ 316dependencies = [
317 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 317 "proc-macro2 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
318 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 318 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
319 "syn 0.15.25 (registry+https://github.com/rust-lang/crates.io-index)", 319 "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
320 "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", 320 "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
321] 321]
322 322
@@ -327,7 +327,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
327 327
328[[package]] 328[[package]]
329name = "flexi_logger" 329name = "flexi_logger"
330version = "0.10.4" 330version = "0.10.5"
331source = "registry+https://github.com/rust-lang/crates.io-index" 331source = "registry+https://github.com/rust-lang/crates.io-index"
332dependencies = [ 332dependencies = [
333 "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 333 "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -373,7 +373,7 @@ dependencies = [
373 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 373 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
374 "lsp-types 0.54.0 (registry+https://github.com/rust-lang/crates.io-index)", 374 "lsp-types 0.54.0 (registry+https://github.com/rust-lang/crates.io-index)",
375 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", 375 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)",
376 "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 376 "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
377] 377]
378 378
379[[package]] 379[[package]]
@@ -414,7 +414,7 @@ dependencies = [
414 414
415[[package]] 415[[package]]
416name = "im" 416name = "im"
417version = "12.2.0" 417version = "12.3.0"
418source = "registry+https://github.com/rust-lang/crates.io-index" 418source = "registry+https://github.com/rust-lang/crates.io-index"
419dependencies = [ 419dependencies = [
420 "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 420 "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -437,7 +437,7 @@ dependencies = [
437 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 437 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
438 "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 438 "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
439 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", 439 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)",
440 "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 440 "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
441] 441]
442 442
443[[package]] 443[[package]]
@@ -495,7 +495,7 @@ dependencies = [
495 "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 495 "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
496 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", 496 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)",
497 "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", 497 "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)",
498 "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 498 "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
499 "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 499 "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
500 "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 500 "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
501] 501]
@@ -545,9 +545,9 @@ version = "0.2.3"
545source = "registry+https://github.com/rust-lang/crates.io-index" 545source = "registry+https://github.com/rust-lang/crates.io-index"
546dependencies = [ 546dependencies = [
547 "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 547 "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
548 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 548 "proc-macro2 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
549 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 549 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
550 "syn 0.15.25 (registry+https://github.com/rust-lang/crates.io-index)", 550 "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
551] 551]
552 552
553[[package]] 553[[package]]
@@ -629,9 +629,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
629dependencies = [ 629dependencies = [
630 "pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 630 "pest 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
631 "pest_meta 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 631 "pest_meta 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
632 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 632 "proc-macro2 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
633 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 633 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
634 "syn 0.15.25 (registry+https://github.com/rust-lang/crates.io-index)", 634 "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
635] 635]
636 636
637[[package]] 637[[package]]
@@ -646,7 +646,7 @@ dependencies = [
646 646
647[[package]] 647[[package]]
648name = "proc-macro2" 648name = "proc-macro2"
649version = "0.4.24" 649version = "0.4.25"
650source = "registry+https://github.com/rust-lang/crates.io-index" 650source = "registry+https://github.com/rust-lang/crates.io-index"
651dependencies = [ 651dependencies = [
652 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 652 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -679,7 +679,7 @@ name = "quote"
679version = "0.6.10" 679version = "0.6.10"
680source = "registry+https://github.com/rust-lang/crates.io-index" 680source = "registry+https://github.com/rust-lang/crates.io-index"
681dependencies = [ 681dependencies = [
682 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 682 "proc-macro2 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
683] 683]
684 684
685[[package]] 685[[package]]
@@ -707,7 +707,7 @@ dependencies = [
707 "ra_syntax 0.1.0", 707 "ra_syntax 0.1.0",
708 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 708 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
709 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 709 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
710 "salsa 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", 710 "salsa 0.10.0-alpha1 (registry+https://github.com/rust-lang/crates.io-index)",
711 "test_utils 0.1.0", 711 "test_utils 0.1.0",
712] 712]
713 713
@@ -717,7 +717,7 @@ version = "0.1.0"
717dependencies = [ 717dependencies = [
718 "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 718 "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
719 "ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 719 "ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
720 "flexi_logger 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", 720 "flexi_logger 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)",
721 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 721 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
722 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 722 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
723 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 723 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -726,7 +726,6 @@ dependencies = [
726 "ra_syntax 0.1.0", 726 "ra_syntax 0.1.0",
727 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 727 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
728 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 728 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
729 "salsa 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
730 "test_utils 0.1.0", 729 "test_utils 0.1.0",
731] 730]
732 731
@@ -747,7 +746,6 @@ dependencies = [
747 "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 746 "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
748 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 747 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
749 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 748 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
750 "salsa 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
751 "test_utils 0.1.0", 749 "test_utils 0.1.0",
752 "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 750 "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
753] 751]
@@ -776,9 +774,9 @@ dependencies = [
776 "drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 774 "drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
777 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 775 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
778 "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 776 "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
779 "flexi_logger 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", 777 "flexi_logger 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)",
780 "gen_lsp_server 0.1.0", 778 "gen_lsp_server 0.1.0",
781 "im 12.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 779 "im 12.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
782 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 780 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
783 "lsp-types 0.54.0 (registry+https://github.com/rust-lang/crates.io-index)", 781 "lsp-types 0.54.0 (registry+https://github.com/rust-lang/crates.io-index)",
784 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 782 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -791,7 +789,7 @@ dependencies = [
791 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 789 "relative-path 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
792 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 790 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
793 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", 791 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)",
794 "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 792 "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
795 "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", 793 "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
796 "test_utils 0.1.0", 794 "test_utils 0.1.0",
797 "thread_worker 0.1.0", 795 "thread_worker 0.1.0",
@@ -857,7 +855,7 @@ name = "rand"
857version = "0.6.4" 855version = "0.6.4"
858source = "registry+https://github.com/rust-lang/crates.io-index" 856source = "registry+https://github.com/rust-lang/crates.io-index"
859dependencies = [ 857dependencies = [
860 "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 858 "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
861 "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", 859 "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)",
862 "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 860 "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
863 "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 861 "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -874,7 +872,7 @@ name = "rand_chacha"
874version = "0.1.1" 872version = "0.1.1"
875source = "registry+https://github.com/rust-lang/crates.io-index" 873source = "registry+https://github.com/rust-lang/crates.io-index"
876dependencies = [ 874dependencies = [
877 "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 875 "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
878 "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 876 "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
879] 877]
880 878
@@ -1071,7 +1069,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1071 1069
1072[[package]] 1070[[package]]
1073name = "salsa" 1071name = "salsa"
1074version = "0.9.2" 1072version = "0.10.0-alpha1"
1075source = "registry+https://github.com/rust-lang/crates.io-index" 1073source = "registry+https://github.com/rust-lang/crates.io-index"
1076dependencies = [ 1074dependencies = [
1077 "derive-new 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", 1075 "derive-new 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1080,10 +1078,22 @@ dependencies = [
1080 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1078 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
1081 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 1079 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
1082 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1080 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1081 "salsa-macros 0.10.0-alpha1 (registry+https://github.com/rust-lang/crates.io-index)",
1083 "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 1082 "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
1084] 1083]
1085 1084
1086[[package]] 1085[[package]]
1086name = "salsa-macros"
1087version = "0.10.0-alpha1"
1088source = "registry+https://github.com/rust-lang/crates.io-index"
1089dependencies = [
1090 "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
1091 "proc-macro2 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
1092 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
1093 "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
1094]
1095
1096[[package]]
1087name = "same-file" 1097name = "same-file"
1088version = "1.0.4" 1098version = "1.0.4"
1089source = "registry+https://github.com/rust-lang/crates.io-index" 1099source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1123,14 +1133,14 @@ name = "serde_derive"
1123version = "1.0.84" 1133version = "1.0.84"
1124source = "registry+https://github.com/rust-lang/crates.io-index" 1134source = "registry+https://github.com/rust-lang/crates.io-index"
1125dependencies = [ 1135dependencies = [
1126 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 1136 "proc-macro2 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
1127 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 1137 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
1128 "syn 0.15.25 (registry+https://github.com/rust-lang/crates.io-index)", 1138 "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
1129] 1139]
1130 1140
1131[[package]] 1141[[package]]
1132name = "serde_json" 1142name = "serde_json"
1133version = "1.0.35" 1143version = "1.0.36"
1134source = "registry+https://github.com/rust-lang/crates.io-index" 1144source = "registry+https://github.com/rust-lang/crates.io-index"
1135dependencies = [ 1145dependencies = [
1136 "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 1146 "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1190,10 +1200,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1190 1200
1191[[package]] 1201[[package]]
1192name = "syn" 1202name = "syn"
1193version = "0.15.25" 1203version = "0.15.26"
1194source = "registry+https://github.com/rust-lang/crates.io-index" 1204source = "registry+https://github.com/rust-lang/crates.io-index"
1195dependencies = [ 1205dependencies = [
1196 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 1206 "proc-macro2 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
1197 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 1207 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
1198 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1208 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1199] 1209]
@@ -1203,9 +1213,9 @@ name = "synstructure"
1203version = "0.10.1" 1213version = "0.10.1"
1204source = "registry+https://github.com/rust-lang/crates.io-index" 1214source = "registry+https://github.com/rust-lang/crates.io-index"
1205dependencies = [ 1215dependencies = [
1206 "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 1216 "proc-macro2 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
1207 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 1217 "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
1208 "syn 0.15.25 (registry+https://github.com/rust-lang/crates.io-index)", 1218 "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
1209 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1219 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1210] 1220]
1211 1221
@@ -1236,7 +1246,7 @@ dependencies = [
1236 "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1246 "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1237 "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1247 "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1238 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", 1248 "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)",
1239 "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 1249 "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
1240 "slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 1250 "slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
1241 "unic-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 1251 "unic-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
1242 "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 1252 "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1277,7 +1287,7 @@ version = "0.1.0"
1277dependencies = [ 1287dependencies = [
1278 "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 1288 "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
1279 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1289 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1280 "serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", 1290 "serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
1281 "text_unit 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1291 "text_unit 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
1282] 1292]
1283 1293
@@ -1536,7 +1546,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1536"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" 1546"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
1537"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" 1547"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71"
1538"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" 1548"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
1539"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" 1549"checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799"
1540"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" 1550"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5"
1541"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" 1551"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
1542"checksum base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "621fc7ecb8008f86d7fb9b95356cd692ce9514b80a86d85b397f32a22da7b9e2" 1552"checksum base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "621fc7ecb8008f86d7fb9b95356cd692ce9514b80a86d85b397f32a22da7b9e2"
@@ -1571,7 +1581,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1571"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" 1581"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2"
1572"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" 1582"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1"
1573"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" 1583"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
1574"checksum flexi_logger 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7d3681306880a7ce87740ceb3d1ce98ca92ae636ff30a629494488cbbcf85ff8" 1584"checksum flexi_logger 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bbd731387787f54fa333fa426e173fe42ea3d1123636b2b27ad802025fc5d182"
1575"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 1585"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
1576"checksum fst 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "db72126ca7dff566cdbbdd54af44668c544897d9d3862b198141f176f1238bdf" 1586"checksum fst 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "db72126ca7dff566cdbbdd54af44668c544897d9d3862b198141f176f1238bdf"
1577"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 1587"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
@@ -1581,7 +1591,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1581"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" 1591"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
1582"checksum humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e" 1592"checksum humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
1583"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 1593"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
1584"checksum im 12.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ae9c7f9bb8aee47fc16d535a705f7867a9fc83bb822e5e1043bb98e77ffeed3c" 1594"checksum im 12.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0627d417829c1d763d602687634869f254fc79f7e22dea6c824dab993db857e4"
1585"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" 1595"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
1586"checksum insta 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "60e94ba6dd3521d953caeed96f6ba06f4cdc9e30e398b3ee7acdd680294f87dc" 1596"checksum insta 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "60e94ba6dd3521d953caeed96f6ba06f4cdc9e30e398b3ee7acdd680294f87dc"
1587"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358" 1597"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
@@ -1610,7 +1620,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1610"checksum pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" 1620"checksum pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
1611"checksum pest_generator 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63120576c4efd69615b5537d3d052257328a4ca82876771d6944424ccfd9f646" 1621"checksum pest_generator 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63120576c4efd69615b5537d3d052257328a4ca82876771d6944424ccfd9f646"
1612"checksum pest_meta 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5a3492a4ed208ffc247adcdcc7ba2a95be3104f58877d0d02f0df39bf3efb5e" 1622"checksum pest_meta 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5a3492a4ed208ffc247adcdcc7ba2a95be3104f58877d0d02f0df39bf3efb5e"
1613"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" 1623"checksum proc-macro2 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)" = "d3797b7142c9aa74954e351fc089bbee7958cebbff6bf2815e7ffff0b19f547d"
1614"checksum proptest 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "926d0604475349f463fe44130aae73f2294b5309ab2ca0310b998bd334ef191f" 1624"checksum proptest 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "926d0604475349f463fe44130aae73f2294b5309ab2ca0310b998bd334ef191f"
1615"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" 1625"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
1616"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" 1626"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c"
@@ -1640,14 +1650,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1640"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 1650"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
1641"checksum rusty-fork 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9591f190d2852720b679c21f66ad929f9f1d7bb09d1193c26167586029d8489c" 1651"checksum rusty-fork 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9591f190d2852720b679c21f66ad929f9f1d7bb09d1193c26167586029d8489c"
1642"checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" 1652"checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7"
1643"checksum salsa 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c73fd43ecb8ec5fbe64828ced981075b828109f011620d0fa1b66e9e983ceb84" 1653"checksum salsa 0.10.0-alpha1 (registry+https://github.com/rust-lang/crates.io-index)" = "4cc048429df53bf0720b93cfa5fa8c3fc3dc7dd65ab41b3f754a8870e7b5c834"
1654"checksum salsa-macros 0.10.0-alpha1 (registry+https://github.com/rust-lang/crates.io-index)" = "0d5a1aeb618da4b1a00d2885d045154ac30deb04109f3ce73c1fd789caba4fb1"
1644"checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" 1655"checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267"
1645"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" 1656"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
1646"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 1657"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
1647"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 1658"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
1648"checksum serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "0e732ed5a5592c17d961555e3b552985baf98d50ce418b7b655f31f6ba7eb1b7" 1659"checksum serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "0e732ed5a5592c17d961555e3b552985baf98d50ce418b7b655f31f6ba7eb1b7"
1649"checksum serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d6115a3ca25c224e409185325afc16a0d5aaaabc15c42b09587d6f1ba39a5b" 1660"checksum serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d6115a3ca25c224e409185325afc16a0d5aaaabc15c42b09587d6f1ba39a5b"
1650"checksum serde_json 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)" = "dfb1277d4d0563e4593e0b8b5d23d744d277b55d2bc0bf1c38d0d8a6589d38aa" 1661"checksum serde_json 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)" = "574378d957d6dcdf1bbb5d562a15cbd5e644159432f84634b94e485267abbcc7"
1651"checksum sha-1 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9d1f3b5de8a167ab06834a7c883bd197f2191e1dda1a22d9ccfeedbf9aded" 1662"checksum sha-1 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9d1f3b5de8a167ab06834a7c883bd197f2191e1dda1a22d9ccfeedbf9aded"
1652"checksum slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373" 1663"checksum slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373"
1653"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" 1664"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db"
@@ -1655,7 +1666,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1655"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" 1666"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
1656"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" 1667"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
1657"checksum superslice 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b50b13d42370e0f5fc62eafdd5c2d20065eaf5458dab215ff3e20e63eea96b30" 1668"checksum superslice 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b50b13d42370e0f5fc62eafdd5c2d20065eaf5458dab215ff3e20e63eea96b30"
1658"checksum syn 0.15.25 (registry+https://github.com/rust-lang/crates.io-index)" = "71b7693d9626935a362a3d1d4e59380800a919ebfa478d77a4f49e2a6d2c3ad5" 1669"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9"
1659"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" 1670"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
1660"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" 1671"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2"
1661"checksum tera 0.11.20 (registry+https://github.com/rust-lang/crates.io-index)" = "4b505279e19d8f7d24b1a9dc58327c9c36174b1a2c7ebdeac70792d017cb64f3" 1672"checksum tera 0.11.20 (registry+https://github.com/rust-lang/crates.io-index)" = "4b505279e19d8f7d24b1a9dc58327c9c36174b1a2c7ebdeac70792d017cb64f3"
diff --git a/crates/ra_db/Cargo.toml b/crates/ra_db/Cargo.toml
index 21d987688..bb1b5eae7 100644
--- a/crates/ra_db/Cargo.toml
+++ b/crates/ra_db/Cargo.toml
@@ -6,7 +6,7 @@ authors = ["Aleksey Kladov <[email protected]>"]
6 6
7[dependencies] 7[dependencies]
8relative-path = "0.4.0" 8relative-path = "0.4.0"
9salsa = "0.9.2" 9salsa = "0.10.0-alpha1"
10rustc-hash = "1.0" 10rustc-hash = "1.0"
11parking_lot = "0.7.0" 11parking_lot = "0.7.0"
12ra_arena = { path = "../ra_arena" } 12ra_arena = { path = "../ra_arena" }
diff --git a/crates/ra_db/src/input.rs b/crates/ra_db/src/input.rs
index 2b761ea0c..b5d63e820 100644
--- a/crates/ra_db/src/input.rs
+++ b/crates/ra_db/src/input.rs
@@ -146,46 +146,31 @@ impl CrateGraph {
146 } 146 }
147} 147}
148 148
149salsa::query_group! { 149#[salsa::query_group]
150 pub trait FilesDatabase: salsa::Database { 150pub trait FilesDatabase: salsa::Database {
151 /// Text of the file. 151 /// Text of the file.
152 fn file_text(file_id: FileId) -> Arc<String> { 152 #[salsa::input]
153 type FileTextQuery; 153 fn file_text(&self, file_id: FileId) -> Arc<String>;
154 storage input; 154 /// Path to a file, relative to the root of its source root.
155 } 155 #[salsa::input]
156 /// Path to a file, relative to the root of its source root. 156 fn file_relative_path(&self, file_id: FileId) -> RelativePathBuf;
157 fn file_relative_path(file_id: FileId) -> RelativePathBuf { 157 /// Source root of the file.
158 type FileRelativePathQuery; 158 #[salsa::input]
159 storage input; 159 fn file_source_root(&self, file_id: FileId) -> SourceRootId;
160 } 160 /// Contents of the source root.
161 /// Source root of the file. 161 #[salsa::input]
162 fn file_source_root(file_id: FileId) -> SourceRootId { 162 fn source_root(&self, id: SourceRootId) -> Arc<SourceRoot>;
163 type FileSourceRootQuery; 163 /// The set of "local" (that is, from the current workspace) roots.
164 storage input; 164 /// Files in local roots are assumed to change frequently.
165 } 165 #[salsa::input]
166 /// Contents of the source root. 166 fn local_roots(&self) -> Arc<Vec<SourceRootId>>;
167 fn source_root(id: SourceRootId) -> Arc<SourceRoot> { 167 /// The set of roots for crates.io libraries.
168 type SourceRootQuery; 168 /// Files in libraries are assumed to never change.
169 storage input; 169 #[salsa::input]
170 } 170 fn library_roots(&self) -> Arc<Vec<SourceRootId>>;
171 /// The set of "local" (that is, from the current workspace) roots. 171 /// The crate graph.
172 /// Files in local roots are assumed to change frequently. 172 #[salsa::input]
173 fn local_roots() -> Arc<Vec<SourceRootId>> { 173 fn crate_graph(&self) -> Arc<CrateGraph>;
174 type LocalRootsQuery;
175 storage input;
176 }
177 /// The set of roots for crates.io libraries.
178 /// Files in libraries are assumed to never change.
179 fn library_roots() -> Arc<Vec<SourceRootId>> {
180 type LibraryRootsQuery;
181 storage input;
182 }
183 /// The crate graph.
184 fn crate_graph() -> Arc<CrateGraph> {
185 type CrateGraphQuery;
186 storage input;
187 }
188 }
189} 174}
190 175
191#[cfg(test)] 176#[cfg(test)]
diff --git a/crates/ra_db/src/lib.rs b/crates/ra_db/src/lib.rs
index 89113e7a6..dbeb9ec71 100644
--- a/crates/ra_db/src/lib.rs
+++ b/crates/ra_db/src/lib.rs
@@ -9,6 +9,7 @@ use std::panic;
9 9
10use ra_syntax::{TextUnit, TextRange, SourceFile, TreeArc}; 10use ra_syntax::{TextUnit, TextRange, SourceFile, TreeArc};
11 11
12pub use ::salsa as salsa;
12pub use crate::{ 13pub use crate::{
13 cancellation::Canceled, 14 cancellation::Canceled,
14 syntax_ptr::LocalSyntaxPtr, 15 syntax_ptr::LocalSyntaxPtr,
@@ -51,12 +52,9 @@ pub trait BaseDatabase: salsa::Database + panic::RefUnwindSafe {
51 } 52 }
52} 53}
53 54
54salsa::query_group! { 55#[salsa::query_group]
55 pub trait SyntaxDatabase: crate::input::FilesDatabase + BaseDatabase { 56pub trait SyntaxDatabase: crate::input::FilesDatabase + BaseDatabase {
56 fn source_file(file_id: FileId) -> TreeArc<SourceFile> { 57 fn source_file(&self, file_id: FileId) -> TreeArc<SourceFile>;
57 type SourceFileQuery;
58 }
59 }
60} 58}
61 59
62fn source_file(db: &impl SyntaxDatabase, file_id: FileId) -> TreeArc<SourceFile> { 60fn source_file(db: &impl SyntaxDatabase, file_id: FileId) -> TreeArc<SourceFile> {
diff --git a/crates/ra_hir/Cargo.toml b/crates/ra_hir/Cargo.toml
index 415848f09..87d2e98e9 100644
--- a/crates/ra_hir/Cargo.toml
+++ b/crates/ra_hir/Cargo.toml
@@ -8,7 +8,6 @@ authors = ["Aleksey Kladov <[email protected]>"]
8arrayvec = "0.4.10" 8arrayvec = "0.4.10"
9log = "0.4.5" 9log = "0.4.5"
10relative-path = "0.4.0" 10relative-path = "0.4.0"
11salsa = "0.9.2"
12rustc-hash = "1.0" 11rustc-hash = "1.0"
13parking_lot = "0.7.0" 12parking_lot = "0.7.0"
14ena = "0.11" 13ena = "0.11"
diff --git a/crates/ra_hir/src/db.rs b/crates/ra_hir/src/db.rs
index 0a0994f5f..b42f10071 100644
--- a/crates/ra_hir/src/db.rs
+++ b/crates/ra_hir/src/db.rs
@@ -1,7 +1,7 @@
1use std::sync::Arc; 1use std::sync::Arc;
2 2
3use ra_syntax::{SyntaxNode, TreeArc, SourceFile}; 3use ra_syntax::{SyntaxNode, TreeArc, SourceFile};
4use ra_db::{SourceRootId, LocationIntener, SyntaxDatabase}; 4use ra_db::{SourceRootId, LocationIntener, SyntaxDatabase, salsa};
5 5
6use crate::{ 6use crate::{
7 DefLoc, DefId, MacroCallLoc, MacroCallId, Name, HirFileId, 7 DefLoc, DefId, MacroCallLoc, MacroCallId, Name, HirFileId,
@@ -16,111 +16,77 @@ use crate::{
16 impl_block::ModuleImplBlocks, 16 impl_block::ModuleImplBlocks,
17}; 17};
18 18
19salsa::query_group! { 19#[salsa::query_group]
20 20pub trait HirDatabase:
21pub trait HirDatabase: SyntaxDatabase 21 SyntaxDatabase
22 + AsRef<LocationIntener<DefLoc, DefId>> 22 + AsRef<LocationIntener<DefLoc, DefId>>
23 + AsRef<LocationIntener<MacroCallLoc, MacroCallId>> 23 + AsRef<LocationIntener<MacroCallLoc, MacroCallId>>
24{ 24{
25 fn hir_source_file(file_id: HirFileId) -> TreeArc<SourceFile> { 25 #[salsa::invoke(HirFileId::hir_source_file)]
26 type HirSourceFileQuery; 26 fn hir_source_file(&self, file_id: HirFileId) -> TreeArc<SourceFile>;
27 use fn HirFileId::hir_source_file; 27
28 } 28 #[salsa::invoke(crate::macros::expand_macro_invocation)]
29 29 fn expand_macro_invocation(&self, invoc: MacroCallId) -> Option<Arc<MacroExpansion>>;
30 fn expand_macro_invocation(invoc: MacroCallId) -> Option<Arc<MacroExpansion>> { 30
31 type ExpandMacroCallQuery; 31 #[salsa::invoke(query_definitions::fn_scopes)]
32 use fn crate::macros::expand_macro_invocation; 32 fn fn_scopes(&self, def_id: DefId) -> Arc<FnScopes>;
33 } 33
34 34 #[salsa::invoke(crate::adt::StructData::struct_data_query)]
35 fn fn_scopes(def_id: DefId) -> Arc<FnScopes> { 35 fn struct_data(&self, def_id: DefId) -> Arc<StructData>;
36 type FnScopesQuery; 36
37 use fn query_definitions::fn_scopes; 37 #[salsa::invoke(crate::adt::EnumData::enum_data_query)]
38 } 38 fn enum_data(&self, def_id: DefId) -> Arc<EnumData>;
39 39
40 fn struct_data(def_id: DefId) -> Arc<StructData> { 40 #[salsa::invoke(crate::adt::EnumVariantData::enum_variant_data_query)]
41 type StructDataQuery; 41 fn enum_variant_data(&self, def_id: DefId) -> Arc<EnumVariantData>;
42 use fn crate::adt::StructData::struct_data_query; 42
43 } 43 #[salsa::invoke(crate::ty::infer)]
44 44 fn infer(&self, def_id: DefId) -> Arc<InferenceResult>;
45 fn enum_data(def_id: DefId) -> Arc<EnumData> { 45
46 type EnumDataQuery; 46 #[salsa::invoke(crate::ty::type_for_def)]
47 use fn crate::adt::EnumData::enum_data_query; 47 fn type_for_def(&self, def_id: DefId) -> Ty;
48 } 48
49 49 #[salsa::invoke(crate::ty::type_for_field)]
50 fn enum_variant_data(def_id: DefId) -> Arc<EnumVariantData> { 50 fn type_for_field(&self, def_id: DefId, field: Name) -> Option<Ty>;
51 type EnumVariantDataQuery; 51
52 use fn crate::adt::EnumVariantData::enum_variant_data_query; 52 #[salsa::invoke(query_definitions::file_items)]
53 } 53 fn file_items(&self, file_id: HirFileId) -> Arc<SourceFileItems>;
54 54
55 fn infer(def_id: DefId) -> Arc<InferenceResult> { 55 #[salsa::invoke(query_definitions::file_item)]
56 type InferQuery; 56 fn file_item(&self, source_item_id: SourceItemId) -> TreeArc<SyntaxNode>;
57 use fn crate::ty::infer; 57
58 } 58 #[salsa::invoke(crate::module_tree::Submodule::submodules_query)]
59 59 fn submodules(&self, source: SourceItemId) -> Arc<Vec<crate::module_tree::Submodule>>;
60 fn type_for_def(def_id: DefId) -> Ty { 60
61 type TypeForDefQuery; 61 #[salsa::invoke(query_definitions::input_module_items)]
62 use fn crate::ty::type_for_def; 62 fn input_module_items(
63 } 63 &self,
64 64 source_root_id: SourceRootId,
65 fn type_for_field(def_id: DefId, field: Name) -> Option<Ty> { 65 module_id: ModuleId,
66 type TypeForFieldQuery; 66 ) -> Arc<InputModuleItems>;
67 use fn crate::ty::type_for_field; 67
68 } 68 #[salsa::invoke(query_definitions::item_map)]
69 69 fn item_map(&self, source_root_id: SourceRootId) -> Arc<ItemMap>;
70 fn file_items(file_id: HirFileId) -> Arc<SourceFileItems> { 70
71 type SourceFileItemsQuery; 71 #[salsa::invoke(crate::module_tree::ModuleTree::module_tree_query)]
72 use fn query_definitions::file_items; 72 fn module_tree(&self, source_root_id: SourceRootId) -> Arc<ModuleTree>;
73 } 73
74 74 #[salsa::invoke(crate::impl_block::impls_in_module)]
75 fn file_item(source_item_id: SourceItemId) -> TreeArc<SyntaxNode> { 75 fn impls_in_module(
76 type FileItemQuery; 76 &self,
77 use fn query_definitions::file_item; 77 source_root_id: SourceRootId,
78 } 78 module_id: ModuleId,
79 79 ) -> Arc<ModuleImplBlocks>;
80 fn submodules(source: SourceItemId) -> Arc<Vec<crate::module_tree::Submodule>> { 80
81 type SubmodulesQuery; 81 #[salsa::invoke(crate::ty::method_resolution::CrateImplBlocks::impls_in_crate_query)]
82 use fn crate::module_tree::Submodule::submodules_query; 82 fn impls_in_crate(&self, krate: Crate) -> Arc<CrateImplBlocks>;
83 } 83
84 84 #[salsa::invoke(crate::expr::body_hir)]
85 fn input_module_items(source_root_id: SourceRootId, module_id: ModuleId) -> Arc<InputModuleItems> { 85 fn body_hir(&self, def_id: DefId) -> Arc<crate::expr::Body>;
86 type InputModuleItemsQuery; 86
87 use fn query_definitions::input_module_items; 87 #[salsa::invoke(crate::expr::body_syntax_mapping)]
88 } 88 fn body_syntax_mapping(&self, def_id: DefId) -> Arc<crate::expr::BodySyntaxMapping>;
89
90 fn item_map(source_root_id: SourceRootId) -> Arc<ItemMap> {
91 type ItemMapQuery;
92 use fn query_definitions::item_map;
93 }
94
95 fn module_tree(source_root_id: SourceRootId) -> Arc<ModuleTree> {
96 type ModuleTreeQuery;
97 use fn crate::module_tree::ModuleTree::module_tree_query;
98 }
99
100 fn impls_in_module(source_root_id: SourceRootId, module_id: ModuleId) -> Arc<ModuleImplBlocks> {
101 type ImplsInModuleQuery;
102 use fn crate::impl_block::impls_in_module;
103 }
104
105 fn impls_in_crate(krate: Crate) -> Arc<CrateImplBlocks> {
106 type ImplsInCrateQuery;
107 use fn crate::ty::method_resolution::CrateImplBlocks::impls_in_crate_query;
108 }
109
110 fn body_hir(def_id: DefId) -> Arc<crate::expr::Body> {
111 type BodyHirQuery;
112 use fn crate::expr::body_hir;
113 }
114
115 fn body_syntax_mapping(def_id: DefId) -> Arc<crate::expr::BodySyntaxMapping> {
116 type BodySyntaxMappingQuery;
117 use fn crate::expr::body_syntax_mapping;
118 }
119
120 fn fn_signature(def_id: DefId) -> Arc<FnSignature> {
121 type FnSignatureQuery;
122 use fn crate::FnSignature::fn_signature_query;
123 }
124}
125 89
90 #[salsa::invoke(crate::FnSignature::fn_signature_query)]
91 fn fn_signature(&self, def_id: DefId) -> Arc<FnSignature>;
126} 92}
diff --git a/crates/ra_hir/src/mock.rs b/crates/ra_hir/src/mock.rs
index 9371c5a0d..a83a5c6cc 100644
--- a/crates/ra_hir/src/mock.rs
+++ b/crates/ra_hir/src/mock.rs
@@ -1,8 +1,10 @@
1use std::{sync::Arc, panic}; 1use std::{sync::Arc, panic};
2 2
3use parking_lot::Mutex; 3use parking_lot::Mutex;
4use salsa::{self, Database}; 4use ra_db::{
5use ra_db::{LocationIntener, BaseDatabase, FilePosition, FileId, CrateGraph, SourceRoot, SourceRootId}; 5 LocationIntener, BaseDatabase, FilePosition, FileId, CrateGraph, SourceRoot, SourceRootId,
6 salsa::{self, Database},
7};
6use relative_path::RelativePathBuf; 8use relative_path::RelativePathBuf;
7use test_utils::{parse_fixture, CURSOR_MARKER, extract_offset}; 9use test_utils::{parse_fixture, CURSOR_MARKER, extract_offset};
8 10
@@ -220,10 +222,10 @@ salsa::database_storage! {
220 } 222 }
221 impl db::HirDatabase { 223 impl db::HirDatabase {
222 fn hir_source_file() for db::HirSourceFileQuery; 224 fn hir_source_file() for db::HirSourceFileQuery;
223 fn expand_macro_invocation() for db::ExpandMacroCallQuery; 225 fn expand_macro_invocation() for db::ExpandMacroInvocationQuery;
224 fn module_tree() for db::ModuleTreeQuery; 226 fn module_tree() for db::ModuleTreeQuery;
225 fn fn_scopes() for db::FnScopesQuery; 227 fn fn_scopes() for db::FnScopesQuery;
226 fn file_items() for db::SourceFileItemsQuery; 228 fn file_items() for db::FileItemsQuery;
227 fn file_item() for db::FileItemQuery; 229 fn file_item() for db::FileItemQuery;
228 fn input_module_items() for db::InputModuleItemsQuery; 230 fn input_module_items() for db::InputModuleItemsQuery;
229 fn item_map() for db::ItemMapQuery; 231 fn item_map() for db::ItemMapQuery;
diff --git a/crates/ra_hir/src/nameres/tests.rs b/crates/ra_hir/src/nameres/tests.rs
index 9a0474045..0ec11ec12 100644
--- a/crates/ra_hir/src/nameres/tests.rs
+++ b/crates/ra_hir/src/nameres/tests.rs
@@ -1,7 +1,6 @@
1use std::sync::Arc; 1use std::sync::Arc;
2 2
3use salsa::Database; 3use ra_db::{FilesDatabase, CrateGraph, SourceRootId, salsa::Database};
4use ra_db::{FilesDatabase, CrateGraph, SourceRootId};
5use relative_path::RelativePath; 4use relative_path::RelativePath;
6use test_utils::assert_eq_text; 5use test_utils::assert_eq_text;
7 6
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs
index affd63a85..a430cbe88 100644
--- a/crates/ra_hir/src/ty/tests.rs
+++ b/crates/ra_hir/src/ty/tests.rs
@@ -3,9 +3,7 @@ use std::fmt::Write;
3use std::path::{PathBuf, Path}; 3use std::path::{PathBuf, Path};
4use std::fs; 4use std::fs;
5 5
6use salsa::Database; 6use ra_db::{SyntaxDatabase, salsa::Database};
7
8use ra_db::SyntaxDatabase;
9use ra_syntax::ast::{self, AstNode}; 7use ra_syntax::ast::{self, AstNode};
10use test_utils::{project_dir, assert_eq_text, read_text}; 8use test_utils::{project_dir, assert_eq_text, read_text};
11 9
diff --git a/crates/ra_ide_api/Cargo.toml b/crates/ra_ide_api/Cargo.toml
index 022cbd5a3..702c11932 100644
--- a/crates/ra_ide_api/Cargo.toml
+++ b/crates/ra_ide_api/Cargo.toml
@@ -10,7 +10,6 @@ log = "0.4.5"
10relative-path = "0.4.0" 10relative-path = "0.4.0"
11rayon = "1.0.2" 11rayon = "1.0.2"
12fst = "0.3.1" 12fst = "0.3.1"
13salsa = "0.9.2"
14rustc-hash = "1.0" 13rustc-hash = "1.0"
15parking_lot = "0.7.0" 14parking_lot = "0.7.0"
16unicase = "2.2.0" 15unicase = "2.2.0"
diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs
index 60f84675d..36778b955 100644
--- a/crates/ra_ide_api/src/db.rs
+++ b/crates/ra_ide_api/src/db.rs
@@ -1,7 +1,9 @@
1use std::{fmt, sync::Arc}; 1use std::{fmt, sync::Arc};
2 2
3use salsa::{self, Database}; 3use ra_db::{
4use ra_db::{LocationIntener, BaseDatabase, FileId, Canceled}; 4 LocationIntener, BaseDatabase, FileId, Canceled,
5 salsa::{self, Database},
6};
5 7
6use crate::{symbol_index, LineIndex}; 8use crate::{symbol_index, LineIndex};
7 9
@@ -73,12 +75,9 @@ impl AsRef<LocationIntener<hir::MacroCallLoc, hir::MacroCallId>> for RootDatabas
73 } 75 }
74} 76}
75 77
76salsa::query_group! { 78#[salsa::query_group]
77 pub(crate) trait LineIndexDatabase: ra_db::FilesDatabase + BaseDatabase { 79pub(crate) trait LineIndexDatabase: ra_db::FilesDatabase + BaseDatabase {
78 fn line_index(file_id: FileId) -> Arc<LineIndex> { 80 fn line_index(&self, file_id: FileId) -> Arc<LineIndex>;
79 type LineIndexQuery;
80 }
81 }
82} 81}
83 82
84fn line_index(db: &impl ra_db::FilesDatabase, file_id: FileId) -> Arc<LineIndex> { 83fn line_index(db: &impl ra_db::FilesDatabase, file_id: FileId) -> Arc<LineIndex> {
@@ -109,10 +108,10 @@ salsa::database_storage! {
109 } 108 }
110 impl hir::db::HirDatabase { 109 impl hir::db::HirDatabase {
111 fn hir_source_file() for hir::db::HirSourceFileQuery; 110 fn hir_source_file() for hir::db::HirSourceFileQuery;
112 fn expand_macro_invocation() for hir::db::ExpandMacroCallQuery; 111 fn expand_macro_invocation() for hir::db::ExpandMacroInvocationQuery;
113 fn module_tree() for hir::db::ModuleTreeQuery; 112 fn module_tree() for hir::db::ModuleTreeQuery;
114 fn fn_scopes() for hir::db::FnScopesQuery; 113 fn fn_scopes() for hir::db::FnScopesQuery;
115 fn file_items() for hir::db::SourceFileItemsQuery; 114 fn file_items() for hir::db::FileItemsQuery;
116 fn file_item() for hir::db::FileItemQuery; 115 fn file_item() for hir::db::FileItemQuery;
117 fn input_module_items() for hir::db::InputModuleItemsQuery; 116 fn input_module_items() for hir::db::InputModuleItemsQuery;
118 fn item_map() for hir::db::ItemMapQuery; 117 fn item_map() for hir::db::ItemMapQuery;
diff --git a/crates/ra_ide_api/src/imp.rs b/crates/ra_ide_api/src/imp.rs
index 61771ed40..28e497965 100644
--- a/crates/ra_ide_api/src/imp.rs
+++ b/crates/ra_ide_api/src/imp.rs
@@ -1,11 +1,12 @@
1use std::sync::Arc; 1use std::sync::Arc;
2 2
3use salsa::Database;
4
5use hir::{ 3use hir::{
6 self, Problem, source_binder, 4 self, Problem, source_binder,
7}; 5};
8use ra_db::{FilesDatabase, SourceRoot, SourceRootId, SyntaxDatabase}; 6use ra_db::{
7 FilesDatabase, SourceRoot, SourceRootId, SyntaxDatabase,
8 salsa::{self, Database},
9};
9use ra_ide_api_light::{self, assists, LocalEdit, Severity}; 10use ra_ide_api_light::{self, assists, LocalEdit, Severity};
10use ra_syntax::{ 11use ra_syntax::{
11 TextRange, AstNode, SourceFile, 12 TextRange, AstNode, SourceFile,
@@ -89,7 +90,7 @@ impl db::RootDatabase {
89 fn gc_syntax_trees(&mut self) { 90 fn gc_syntax_trees(&mut self) {
90 self.query(ra_db::SourceFileQuery) 91 self.query(ra_db::SourceFileQuery)
91 .sweep(salsa::SweepStrategy::default().discard_values()); 92 .sweep(salsa::SweepStrategy::default().discard_values());
92 self.query(hir::db::SourceFileItemsQuery) 93 self.query(hir::db::FileItemsQuery)
93 .sweep(salsa::SweepStrategy::default().discard_values()); 94 .sweep(salsa::SweepStrategy::default().discard_values());
94 self.query(hir::db::FileItemQuery) 95 self.query(hir::db::FileItemQuery)
95 .sweep(salsa::SweepStrategy::default().discard_values()); 96 .sweep(salsa::SweepStrategy::default().discard_values());
diff --git a/crates/ra_ide_api/src/lib.rs b/crates/ra_ide_api/src/lib.rs
index 3a0d2dbbe..7b47d7b6d 100644
--- a/crates/ra_ide_api/src/lib.rs
+++ b/crates/ra_ide_api/src/lib.rs
@@ -28,11 +28,13 @@ use std::{fmt, sync::Arc};
28 28
29use ra_syntax::{SourceFile, TreeArc, TextRange, TextUnit}; 29use ra_syntax::{SourceFile, TreeArc, TextRange, TextUnit};
30use ra_text_edit::TextEdit; 30use ra_text_edit::TextEdit;
31use ra_db::{SyntaxDatabase, FilesDatabase, BaseDatabase}; 31use ra_db::{
32 SyntaxDatabase, FilesDatabase, BaseDatabase,
33 salsa::{self, ParallelDatabase},
34};
32use rayon::prelude::*; 35use rayon::prelude::*;
33use relative_path::RelativePathBuf; 36use relative_path::RelativePathBuf;
34use rustc_hash::FxHashMap; 37use rustc_hash::FxHashMap;
35use salsa::ParallelDatabase;
36 38
37use crate::{ 39use crate::{
38 symbol_index::{FileSymbol, SymbolIndex}, 40 symbol_index::{FileSymbol, SymbolIndex},
diff --git a/crates/ra_ide_api/src/symbol_index.rs b/crates/ra_ide_api/src/symbol_index.rs
index 74165d68f..bfa2f3469 100644
--- a/crates/ra_ide_api/src/symbol_index.rs
+++ b/crates/ra_ide_api/src/symbol_index.rs
@@ -32,8 +32,10 @@ use ra_syntax::{
32 SyntaxKind::{self, *}, 32 SyntaxKind::{self, *},
33 ast::{self, NameOwner}, 33 ast::{self, NameOwner},
34}; 34};
35use ra_db::{SourceRootId, FilesDatabase, LocalSyntaxPtr}; 35use ra_db::{
36use salsa::ParallelDatabase; 36 SourceRootId, FilesDatabase, LocalSyntaxPtr,
37 salsa::{self, ParallelDatabase},
38};
37use rayon::prelude::*; 39use rayon::prelude::*;
38 40
39use crate::{ 41use crate::{
@@ -41,16 +43,11 @@ use crate::{
41 db::RootDatabase, 43 db::RootDatabase,
42}; 44};
43 45
44salsa::query_group! { 46#[salsa::query_group]
45 pub(crate) trait SymbolsDatabase: hir::db::HirDatabase { 47pub(crate) trait SymbolsDatabase: hir::db::HirDatabase {
46 fn file_symbols(file_id: FileId) -> Arc<SymbolIndex> { 48 fn file_symbols(&self, file_id: FileId) -> Arc<SymbolIndex>;
47 type FileSymbolsQuery; 49 #[salsa::input]
48 } 50 fn library_symbols(&self, id: SourceRootId) -> Arc<SymbolIndex>;
49 fn library_symbols(id: SourceRootId) -> Arc<SymbolIndex> {
50 type LibrarySymbolsQuery;
51 storage input;
52 }
53 }
54} 51}
55 52
56fn file_symbols(db: &impl SymbolsDatabase, file_id: FileId) -> Arc<SymbolIndex> { 53fn file_symbols(db: &impl SymbolsDatabase, file_id: FileId) -> Arc<SymbolIndex> {