aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--Cargo.lock93
-rw-r--r--crates/ra_cli/Cargo.toml1
-rw-r--r--crates/ra_cli/src/main.rs2
-rw-r--r--crates/ra_ide_api/Cargo.toml1
-rw-r--r--crates/ra_ide_api/src/lib.rs11
-rw-r--r--crates/ra_ide_api/src/snapshots/tests__file_structure.snap (renamed from crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap)2
-rw-r--r--crates/ra_ide_api/src/structure.rs (renamed from crates/ra_ide_api_light/src/structure.rs)0
-rw-r--r--crates/ra_ide_api_light/Cargo.toml26
-rw-r--r--crates/ra_ide_api_light/src/lib.rs12
-rw-r--r--crates/ra_syntax/src/ast.rs71
-rw-r--r--docs/dev/architecture.md13
12 files changed, 78 insertions, 156 deletions
diff --git a/.travis.yml b/.travis.yml
index 4dffdea34..940435172 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,7 +19,7 @@ matrix:
19 19
20 - os: linux 20 - os: linux
21 if: branch = master AND type = push 21 if: branch = master AND type = push
22 before_stript: 22 before_script:
23 - DEPLOY_DOCS=1 23 - DEPLOY_DOCS=1
24 language: rust 24 language: rust
25 rust: stable 25 rust: stable
diff --git a/Cargo.lock b/Cargo.lock
index 1b5de271e..3bc5f261c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -76,15 +76,15 @@ dependencies = [
76 76
77[[package]] 77[[package]]
78name = "bit-set" 78name = "bit-set"
79version = "0.5.0" 79version = "0.5.1"
80source = "registry+https://github.com/rust-lang/crates.io-index" 80source = "registry+https://github.com/rust-lang/crates.io-index"
81dependencies = [ 81dependencies = [
82 "bit-vec 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 82 "bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
83] 83]
84 84
85[[package]] 85[[package]]
86name = "bit-vec" 86name = "bit-vec"
87version = "0.5.0" 87version = "0.5.1"
88source = "registry+https://github.com/rust-lang/crates.io-index" 88source = "registry+https://github.com/rust-lang/crates.io-index"
89 89
90[[package]] 90[[package]]
@@ -118,7 +118,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
118 118
119[[package]] 119[[package]]
120name = "cargo_metadata" 120name = "cargo_metadata"
121version = "0.7.3" 121version = "0.7.4"
122source = "registry+https://github.com/rust-lang/crates.io-index" 122source = "registry+https://github.com/rust-lang/crates.io-index"
123dependencies = [ 123dependencies = [
124 "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", 124 "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -359,11 +359,11 @@ dependencies = [
359 359
360[[package]] 360[[package]]
361name = "flexi_logger" 361name = "flexi_logger"
362version = "0.11.1" 362version = "0.11.2"
363source = "registry+https://github.com/rust-lang/crates.io-index" 363source = "registry+https://github.com/rust-lang/crates.io-index"
364dependencies = [ 364dependencies = [
365 "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 365 "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
366 "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 366 "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
367 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 367 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
368 "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 368 "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
369] 369]
@@ -444,6 +444,11 @@ version = "0.2.11"
444source = "registry+https://github.com/rust-lang/crates.io-index" 444source = "registry+https://github.com/rust-lang/crates.io-index"
445 445
446[[package]] 446[[package]]
447name = "glob"
448version = "0.3.0"
449source = "registry+https://github.com/rust-lang/crates.io-index"
450
451[[package]]
447name = "heck" 452name = "heck"
448version = "0.3.1" 453version = "0.3.1"
449source = "registry+https://github.com/rust-lang/crates.io-index" 454source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -503,7 +508,7 @@ dependencies = [
503 508
504[[package]] 509[[package]]
505name = "insta" 510name = "insta"
506version = "0.7.1" 511version = "0.7.4"
507source = "registry+https://github.com/rust-lang/crates.io-index" 512source = "registry+https://github.com/rust-lang/crates.io-index"
508dependencies = [ 513dependencies = [
509 "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 514 "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -518,7 +523,7 @@ dependencies = [
518 "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 523 "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
519 "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 524 "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
520 "serde_yaml 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", 525 "serde_yaml 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)",
521 "uuid 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 526 "uuid 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
522] 527]
523 528
524[[package]] 529[[package]]
@@ -589,9 +594,6 @@ dependencies = [
589name = "lazy_static" 594name = "lazy_static"
590version = "1.3.0" 595version = "1.3.0"
591source = "registry+https://github.com/rust-lang/crates.io-index" 596source = "registry+https://github.com/rust-lang/crates.io-index"
592dependencies = [
593 "spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
594]
595 597
596[[package]] 598[[package]]
597name = "lazycell" 599name = "lazycell"
@@ -605,7 +607,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
605 607
606[[package]] 608[[package]]
607name = "linked-hash-map" 609name = "linked-hash-map"
608version = "0.5.1" 610version = "0.5.2"
609source = "registry+https://github.com/rust-lang/crates.io-index" 611source = "registry+https://github.com/rust-lang/crates.io-index"
610 612
611[[package]] 613[[package]]
@@ -855,10 +857,10 @@ dependencies = [
855 857
856[[package]] 858[[package]]
857name = "proptest" 859name = "proptest"
858version = "0.9.1" 860version = "0.9.2"
859source = "registry+https://github.com/rust-lang/crates.io-index" 861source = "registry+https://github.com/rust-lang/crates.io-index"
860dependencies = [ 862dependencies = [
861 "bit-set 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", 863 "bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
862 "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 864 "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
863 "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 865 "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
864 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 866 "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -922,14 +924,13 @@ version = "0.1.0"
922dependencies = [ 924dependencies = [
923 "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", 925 "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
924 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 926 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
925 "flexi_logger 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", 927 "flexi_logger 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
926 "indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 928 "indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
927 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 929 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
928 "ra_batch 0.1.0", 930 "ra_batch 0.1.0",
929 "ra_db 0.1.0", 931 "ra_db 0.1.0",
930 "ra_hir 0.1.0", 932 "ra_hir 0.1.0",
931 "ra_ide_api 0.1.0", 933 "ra_ide_api 0.1.0",
932 "ra_ide_api_light 0.1.0",
933 "ra_syntax 0.1.0", 934 "ra_syntax 0.1.0",
934 "tools 0.1.0", 935 "tools 0.1.0",
935] 936]
@@ -961,8 +962,8 @@ version = "0.1.0"
961dependencies = [ 962dependencies = [
962 "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 963 "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
963 "ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 964 "ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
964 "flexi_logger 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", 965 "flexi_logger 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
965 "insta 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 966 "insta 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
966 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 967 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
967 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 968 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
968 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 969 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -981,19 +982,18 @@ name = "ra_ide_api"
981version = "0.1.0" 982version = "0.1.0"
982dependencies = [ 983dependencies = [
983 "fst 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 984 "fst 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
984 "insta 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 985 "insta 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
985 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 986 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
986 "jemalloc-ctl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 987 "jemalloc-ctl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
987 "jemallocator 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 988 "jemallocator 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
988 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 989 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
989 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 990 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
990 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 991 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
991 "proptest 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", 992 "proptest 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
992 "ra_assists 0.1.0", 993 "ra_assists 0.1.0",
993 "ra_db 0.1.0", 994 "ra_db 0.1.0",
994 "ra_fmt 0.1.0", 995 "ra_fmt 0.1.0",
995 "ra_hir 0.1.0", 996 "ra_hir 0.1.0",
996 "ra_ide_api_light 0.1.0",
997 "ra_syntax 0.1.0", 997 "ra_syntax 0.1.0",
998 "ra_text_edit 0.1.0", 998 "ra_text_edit 0.1.0",
999 "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 999 "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1005,29 +1005,13 @@ dependencies = [
1005] 1005]
1006 1006
1007[[package]] 1007[[package]]
1008name = "ra_ide_api_light"
1009version = "0.1.0"
1010dependencies = [
1011 "insta 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
1012 "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1013 "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
1014 "proptest 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
1015 "ra_fmt 0.1.0",
1016 "ra_syntax 0.1.0",
1017 "ra_text_edit 0.1.0",
1018 "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1019 "superslice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
1020 "test_utils 0.1.0",
1021]
1022
1023[[package]]
1024name = "ra_lsp_server" 1008name = "ra_lsp_server"
1025version = "0.1.0" 1009version = "0.1.0"
1026dependencies = [ 1010dependencies = [
1027 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 1011 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
1028 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1012 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
1029 "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1013 "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
1030 "flexi_logger 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", 1014 "flexi_logger 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
1031 "gen_lsp_server 0.1.0", 1015 "gen_lsp_server 0.1.0",
1032 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1016 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
1033 "lsp-types 0.56.0 (registry+https://github.com/rust-lang/crates.io-index)", 1017 "lsp-types 0.56.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1070,7 +1054,7 @@ dependencies = [
1070name = "ra_project_model" 1054name = "ra_project_model"
1071version = "0.1.0" 1055version = "0.1.0"
1072dependencies = [ 1056dependencies = [
1073 "cargo_metadata 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", 1057 "cargo_metadata 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
1074 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1058 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
1075 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1059 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
1076 "ra_arena 0.1.0", 1060 "ra_arena 0.1.0",
@@ -1105,7 +1089,7 @@ dependencies = [
1105name = "ra_text_edit" 1089name = "ra_text_edit"
1106version = "0.1.0" 1090version = "0.1.0"
1107dependencies = [ 1091dependencies = [
1108 "proptest 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", 1092 "proptest 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
1109 "test_utils 0.1.0", 1093 "test_utils 0.1.0",
1110 "text_unit 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1094 "text_unit 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
1111] 1095]
@@ -1436,7 +1420,7 @@ version = "0.8.8"
1436source = "registry+https://github.com/rust-lang/crates.io-index" 1420source = "registry+https://github.com/rust-lang/crates.io-index"
1437dependencies = [ 1421dependencies = [
1438 "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 1422 "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
1439 "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1423 "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
1440 "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", 1424 "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
1441 "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 1425 "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
1442] 1426]
@@ -1479,11 +1463,6 @@ dependencies = [
1479] 1463]
1480 1464
1481[[package]] 1465[[package]]
1482name = "spin"
1483version = "0.5.0"
1484source = "registry+https://github.com/rust-lang/crates.io-index"
1485
1486[[package]]
1487name = "stable_deref_trait" 1466name = "stable_deref_trait"
1488version = "1.1.1" 1467version = "1.1.1"
1489source = "registry+https://github.com/rust-lang/crates.io-index" 1468source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1776,7 +1755,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1776 1755
1777[[package]] 1756[[package]]
1778name = "uuid" 1757name = "uuid"
1779version = "0.7.2" 1758version = "0.7.3"
1780source = "registry+https://github.com/rust-lang/crates.io-index" 1759source = "registry+https://github.com/rust-lang/crates.io-index"
1781dependencies = [ 1760dependencies = [
1782 "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1761 "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1854,7 +1833,7 @@ name = "yaml-rust"
1854version = "0.4.3" 1833version = "0.4.3"
1855source = "registry+https://github.com/rust-lang/crates.io-index" 1834source = "registry+https://github.com/rust-lang/crates.io-index"
1856dependencies = [ 1835dependencies = [
1857 "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1836 "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
1858] 1837]
1859 1838
1860[metadata] 1839[metadata]
@@ -1867,14 +1846,14 @@ dependencies = [
1867"checksum backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "cd5a90e2b463010cd0e0ce9a11d4a9d5d58d9f41d4a6ba3dcaf9e68b466e88b4" 1846"checksum backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "cd5a90e2b463010cd0e0ce9a11d4a9d5d58d9f41d4a6ba3dcaf9e68b466e88b4"
1868"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" 1847"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
1869"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" 1848"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
1870"checksum bit-set 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6f1efcc46c18245a69c38fcc5cc650f16d3a59d034f3106e9ed63748f695730a" 1849"checksum bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80"
1871"checksum bit-vec 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4440d5cb623bb7390ae27fec0bb6c61111969860f8e3ae198bfa0663645e67cf" 1850"checksum bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb"
1872"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" 1851"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
1873"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" 1852"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
1874"checksum block-buffer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a076c298b9ecdb530ed9d967e74a6027d6a7478924520acddcddc24c1c8ab3ab" 1853"checksum block-buffer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a076c298b9ecdb530ed9d967e74a6027d6a7478924520acddcddc24c1c8ab3ab"
1875"checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" 1854"checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40"
1876"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" 1855"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb"
1877"checksum cargo_metadata 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bc796c7161c220089dfc7159e13324979181532850a237576b8fb907dd087c0d" 1856"checksum cargo_metadata 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "178d62b240c34223f265a4c1e275e37d62da163d421fc8d7f7e3ee340f803c57"
1878"checksum cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "c9ce8bb087aacff865633f0bd5aeaed910fe2fe55b55f4739527f2e023a2e53d" 1857"checksum cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "c9ce8bb087aacff865633f0bd5aeaed910fe2fe55b55f4739527f2e023a2e53d"
1879"checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4" 1858"checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4"
1880"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" 1859"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"
@@ -1903,7 +1882,7 @@ dependencies = [
1903"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" 1882"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1"
1904"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" 1883"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
1905"checksum filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df5c1a8c4be27e7707789dc42ae65976e60b394afd293d1419ab915833e646" 1884"checksum filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df5c1a8c4be27e7707789dc42ae65976e60b394afd293d1419ab915833e646"
1906"checksum flexi_logger 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4a7878fc9e06c948c6f9cddf571758e0c44786a509e646a094ef13ade3b1aab7" 1885"checksum flexi_logger 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)" = "005c01dd6942ca46283b7304d14c6d04ec2c87a62f6e62e17c06fb812a574f4a"
1907"checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674" 1886"checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
1908"checksum fsevent 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c4bbbf71584aeed076100b5665ac14e3d85eeb31fdbb45fbd41ef9a682b5ec05" 1887"checksum fsevent 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c4bbbf71584aeed076100b5665ac14e3d85eeb31fdbb45fbd41ef9a682b5ec05"
1909"checksum fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a772d36c338d07a032d5375a36f15f9a7043bf0cb8ce7cee658e037c6032874" 1888"checksum fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a772d36c338d07a032d5375a36f15f9a7043bf0cb8ce7cee658e037c6032874"
@@ -1913,6 +1892,7 @@ dependencies = [
1913"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 1892"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
1914"checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d" 1893"checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d"
1915"checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" 1894"checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
1895"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
1916"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" 1896"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
1917"checksum humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e" 1897"checksum humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
1918"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 1898"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
@@ -1920,7 +1900,7 @@ dependencies = [
1920"checksum indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2c60da1c9abea75996b70a931bba6c750730399005b61ccd853cee50ef3d0d0c" 1900"checksum indicatif 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2c60da1c9abea75996b70a931bba6c750730399005b61ccd853cee50ef3d0d0c"
1921"checksum inotify 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40b54539f3910d6f84fbf9a643efd6e3aa6e4f001426c0329576128255994718" 1901"checksum inotify 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40b54539f3910d6f84fbf9a643efd6e3aa6e4f001426c0329576128255994718"
1922"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0" 1902"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
1923"checksum insta 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be9f00370d23dc7bd32a4d4506b1a14fb922fa39c576c3300fd25ce5b5dab18f" 1903"checksum insta 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "03e7d88a87d342ce8bd698516151be43e6eb2e84b683db528696cb4a382f734a"
1924"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" 1904"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
1925"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358" 1905"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
1926"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" 1906"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
@@ -1932,7 +1912,7 @@ dependencies = [
1932"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" 1912"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
1933"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" 1913"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
1934"checksum libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "aab692d7759f5cd8c859e169db98ae5b52c924add2af5fbbca11d12fefb567c1" 1914"checksum libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "aab692d7759f5cd8c859e169db98ae5b52c924add2af5fbbca11d12fefb567c1"
1935"checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" 1915"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83"
1936"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" 1916"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
1937"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" 1917"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
1938"checksum lsp-types 0.56.0 (registry+https://github.com/rust-lang/crates.io-index)" = "31954f2cf354421e6f99a48fdcfd5c3113c675a0db311960ffdac0b8d45cf09c" 1918"checksum lsp-types 0.56.0 (registry+https://github.com/rust-lang/crates.io-index)" = "31954f2cf354421e6f99a48fdcfd5c3113c675a0db311960ffdac0b8d45cf09c"
@@ -1960,7 +1940,7 @@ dependencies = [
1960"checksum pest_generator 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63120576c4efd69615b5537d3d052257328a4ca82876771d6944424ccfd9f646" 1940"checksum pest_generator 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63120576c4efd69615b5537d3d052257328a4ca82876771d6944424ccfd9f646"
1961"checksum pest_meta 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5a3492a4ed208ffc247adcdcc7ba2a95be3104f58877d0d02f0df39bf3efb5e" 1941"checksum pest_meta 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5a3492a4ed208ffc247adcdcc7ba2a95be3104f58877d0d02f0df39bf3efb5e"
1962"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915" 1942"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915"
1963"checksum proptest 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea66c78d75f2c6e9f304269eaef90899798daecc69f1a625d5a3dd793ff3522" 1943"checksum proptest 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "24f5844db2f839e97e3021980975f6ebf8691d9b9b2ca67ed3feb38dc3edb52c"
1964"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" 1944"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
1965"checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" 1945"checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1"
1966"checksum ra_vfs 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1839e4e003d865b58b8b6c231aae6c463dfcd01bfbbddffbdb7662a7b5a627" 1946"checksum ra_vfs 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1839e4e003d865b58b8b6c231aae6c463dfcd01bfbbddffbdb7662a7b5a627"
@@ -2004,7 +1984,6 @@ dependencies = [
2004"checksum slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373" 1984"checksum slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373"
2005"checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be" 1985"checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be"
2006"checksum smol_str 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9af1035bc5d742ab6b7ab16713e41cc2ffe78cb474f6f43cd696b2d16052007e" 1986"checksum smol_str 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9af1035bc5d742ab6b7ab16713e41cc2ffe78cb474f6f43cd696b2d16052007e"
2007"checksum spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44363f6f51401c34e7be73db0db371c04705d35efbe9f7d6082e03a921a32c55"
2008"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" 1987"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
2009"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" 1988"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
2010"checksum superslice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f" 1989"checksum superslice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f"
@@ -2038,7 +2017,7 @@ dependencies = [
2038"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" 2017"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
2039"checksum url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea" 2018"checksum url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea"
2040"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" 2019"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
2041"checksum uuid 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0238db0c5b605dd1cf51de0f21766f97fba2645897024461d6a00c036819a768" 2020"checksum uuid 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "600ef8213e9f8a0ac1f876e470e90780ae0478eabce7f76aff41b0f4ef0fd5c0"
2042"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" 2021"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
2043"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" 2022"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
2044"checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" 2023"checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1"
diff --git a/crates/ra_cli/Cargo.toml b/crates/ra_cli/Cargo.toml
index 4c666f556..467628236 100644
--- a/crates/ra_cli/Cargo.toml
+++ b/crates/ra_cli/Cargo.toml
@@ -14,7 +14,6 @@ indicatif = "0.11.0"
14 14
15ra_syntax = { path = "../ra_syntax" } 15ra_syntax = { path = "../ra_syntax" }
16ra_ide_api = { path = "../ra_ide_api" } 16ra_ide_api = { path = "../ra_ide_api" }
17ra_ide_api_light = { path = "../ra_ide_api_light" }
18tools = { path = "../tools" } 17tools = { path = "../tools" }
19ra_batch = { path = "../ra_batch" } 18ra_batch = { path = "../ra_batch" }
20ra_hir = { path = "../ra_hir" } 19ra_hir = { path = "../ra_hir" }
diff --git a/crates/ra_cli/src/main.rs b/crates/ra_cli/src/main.rs
index 5285f1f28..11f5541eb 100644
--- a/crates/ra_cli/src/main.rs
+++ b/crates/ra_cli/src/main.rs
@@ -5,7 +5,7 @@ use std::{fs, io::Read, path::Path, time::Instant};
5use clap::{App, Arg, SubCommand}; 5use clap::{App, Arg, SubCommand};
6use join_to_string::join; 6use join_to_string::join;
7use ra_ide_api::{Analysis, FileRange}; 7use ra_ide_api::{Analysis, FileRange};
8use ra_ide_api_light::file_structure; 8use ra_ide_api::file_structure;
9use ra_syntax::{SourceFile, TextRange, TreeArc, AstNode}; 9use ra_syntax::{SourceFile, TextRange, TreeArc, AstNode};
10use tools::collect_tests; 10use tools::collect_tests;
11use flexi_logger::Logger; 11use flexi_logger::Logger;
diff --git a/crates/ra_ide_api/Cargo.toml b/crates/ra_ide_api/Cargo.toml
index c64226801..45bab4e28 100644
--- a/crates/ra_ide_api/Cargo.toml
+++ b/crates/ra_ide_api/Cargo.toml
@@ -20,7 +20,6 @@ jemallocator = { version = "0.1.9", optional = true }
20jemalloc-ctl = { version = "0.2.0", optional = true } 20jemalloc-ctl = { version = "0.2.0", optional = true }
21 21
22ra_syntax = { path = "../ra_syntax" } 22ra_syntax = { path = "../ra_syntax" }
23ra_ide_api_light = { path = "../ra_ide_api_light" }
24ra_text_edit = { path = "../ra_text_edit" } 23ra_text_edit = { path = "../ra_text_edit" }
25ra_db = { path = "../ra_db" } 24ra_db = { path = "../ra_db" }
26ra_fmt = { path = "../ra_fmt" } 25ra_fmt = { path = "../ra_fmt" }
diff --git a/crates/ra_ide_api/src/lib.rs b/crates/ra_ide_api/src/lib.rs
index 8aa3eb088..9063f78a9 100644
--- a/crates/ra_ide_api/src/lib.rs
+++ b/crates/ra_ide_api/src/lib.rs
@@ -6,9 +6,6 @@
6//! database, and the `ra_hir` crate, where majority of the analysis happens. 6//! database, and the `ra_hir` crate, where majority of the analysis happens.
7//! However, IDE specific bits of the analysis (most notably completion) happen 7//! However, IDE specific bits of the analysis (most notably completion) happen
8//! in this crate. 8//! in this crate.
9//!
10//! The sibling `ra_ide_api_light` handles those bits of IDE functionality
11//! which are restricted to a single file and need only syntax.
12 9
13// For proving that RootDatabase is RefUnwindSafe. 10// For proving that RootDatabase is RefUnwindSafe.
14#![recursion_limit = "128"] 11#![recursion_limit = "128"]
@@ -33,10 +30,11 @@ mod impls;
33mod assists; 30mod assists;
34mod diagnostics; 31mod diagnostics;
35mod syntax_tree; 32mod syntax_tree;
36mod line_index;
37mod folding_ranges; 33mod folding_ranges;
34mod line_index;
38mod line_index_utils; 35mod line_index_utils;
39mod join_lines; 36mod join_lines;
37mod structure;
40mod typing; 38mod typing;
41mod matching_brace; 39mod matching_brace;
42 40
@@ -72,9 +70,10 @@ pub use crate::{
72 line_index_utils::translate_offset_with_edit, 70 line_index_utils::translate_offset_with_edit,
73 folding_ranges::{Fold, FoldKind}, 71 folding_ranges::{Fold, FoldKind},
74 syntax_highlighting::HighlightedRange, 72 syntax_highlighting::HighlightedRange,
73 structure::{StructureNode, file_structure},
75 diagnostics::Severity, 74 diagnostics::Severity,
76}; 75};
77pub use ra_ide_api_light::StructureNode; 76
78pub use ra_db::{ 77pub use ra_db::{
79 Canceled, CrateGraph, CrateId, FileId, FilePosition, FileRange, SourceRootId, 78 Canceled, CrateGraph, CrateId, FileId, FilePosition, FileRange, SourceRootId,
80 Edition 79 Edition
@@ -388,7 +387,7 @@ impl Analysis {
388 /// file outline. 387 /// file outline.
389 pub fn file_structure(&self, file_id: FileId) -> Vec<StructureNode> { 388 pub fn file_structure(&self, file_id: FileId) -> Vec<StructureNode> {
390 let file = self.db.parse(file_id); 389 let file = self.db.parse(file_id);
391 ra_ide_api_light::file_structure(&file) 390 structure::file_structure(&file)
392 } 391 }
393 392
394 /// Returns the set of folding ranges. 393 /// Returns the set of folding ranges.
diff --git a/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap b/crates/ra_ide_api/src/snapshots/tests__file_structure.snap
index 8e4184b31..2efa8e22c 100644
--- a/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap
+++ b/crates/ra_ide_api/src/snapshots/tests__file_structure.snap
@@ -1,7 +1,7 @@
1--- 1---
2created: "2019-02-05T22:03:50.763530100Z" 2created: "2019-02-05T22:03:50.763530100Z"
3creator: [email protected] 3creator: [email protected]
4source: crates/ra_ide_api_light/src/structure.rs 4source: crates/ra_ide_api/src/structure.rs
5expression: structure 5expression: structure
6--- 6---
7[ 7[
diff --git a/crates/ra_ide_api_light/src/structure.rs b/crates/ra_ide_api/src/structure.rs
index ec2c9bbc6..ec2c9bbc6 100644
--- a/crates/ra_ide_api_light/src/structure.rs
+++ b/crates/ra_ide_api/src/structure.rs
diff --git a/crates/ra_ide_api_light/Cargo.toml b/crates/ra_ide_api_light/Cargo.toml
deleted file mode 100644
index 4e69f5325..000000000
--- a/crates/ra_ide_api_light/Cargo.toml
+++ /dev/null
@@ -1,26 +0,0 @@
1[package]
2edition = "2018"
3name = "ra_ide_api_light"
4version = "0.1.0"
5authors = ["rust-analyzer developers"]
6publish = false
7
8[dependencies]
9itertools = "0.8.0"
10superslice = "1.0.0"
11join_to_string = "0.1.1"
12rustc-hash = "1.0"
13
14ra_syntax = { path = "../ra_syntax" }
15ra_text_edit = { path = "../ra_text_edit" }
16ra_fmt = { path = "../ra_fmt" }
17
18[dev-dependencies]
19test_utils = { path = "../test_utils" }
20insta = "0.7.0"
21
22[dev-dependencies.proptest]
23version = "0.9.0"
24# Disable `fork` feature to allow compiling on webassembly
25default-features = false
26features = ["std", "bit-set", "break-dead-code"]
diff --git a/crates/ra_ide_api_light/src/lib.rs b/crates/ra_ide_api_light/src/lib.rs
deleted file mode 100644
index df7f144b6..000000000
--- a/crates/ra_ide_api_light/src/lib.rs
+++ /dev/null
@@ -1,12 +0,0 @@
1//! This crate provides those IDE features which use only a single file.
2//!
3//! This usually means functions which take syntax tree as an input and produce
4//! an edit or some auxiliary info.
5
6mod structure;
7
8use ra_syntax::TextRange;
9
10pub use crate::{
11 structure::{file_structure, StructureNode},
12};
diff --git a/crates/ra_syntax/src/ast.rs b/crates/ra_syntax/src/ast.rs
index 226208700..a6fac07c4 100644
--- a/crates/ra_syntax/src/ast.rs
+++ b/crates/ra_syntax/src/ast.rs
@@ -603,43 +603,40 @@ pub enum BinOp {
603 603
604impl BinExpr { 604impl BinExpr {
605 fn op_details(&self) -> Option<(&SyntaxNode, BinOp)> { 605 fn op_details(&self) -> Option<(&SyntaxNode, BinOp)> {
606 self.syntax() 606 self.syntax().children().find_map(|c| match c.kind() {
607 .children() 607 PIPEPIPE => Some((c, BinOp::BooleanOr)),
608 .filter_map(|c| match c.kind() { 608 AMPAMP => Some((c, BinOp::BooleanAnd)),
609 PIPEPIPE => Some((c, BinOp::BooleanOr)), 609 EQEQ => Some((c, BinOp::EqualityTest)),
610 AMPAMP => Some((c, BinOp::BooleanAnd)), 610 NEQ => Some((c, BinOp::NegatedEqualityTest)),
611 EQEQ => Some((c, BinOp::EqualityTest)), 611 LTEQ => Some((c, BinOp::LesserEqualTest)),
612 NEQ => Some((c, BinOp::NegatedEqualityTest)), 612 GTEQ => Some((c, BinOp::GreaterEqualTest)),
613 LTEQ => Some((c, BinOp::LesserEqualTest)), 613 L_ANGLE => Some((c, BinOp::LesserTest)),
614 GTEQ => Some((c, BinOp::GreaterEqualTest)), 614 R_ANGLE => Some((c, BinOp::GreaterTest)),
615 L_ANGLE => Some((c, BinOp::LesserTest)), 615 PLUS => Some((c, BinOp::Addition)),
616 R_ANGLE => Some((c, BinOp::GreaterTest)), 616 STAR => Some((c, BinOp::Multiplication)),
617 PLUS => Some((c, BinOp::Addition)), 617 MINUS => Some((c, BinOp::Subtraction)),
618 STAR => Some((c, BinOp::Multiplication)), 618 SLASH => Some((c, BinOp::Division)),
619 MINUS => Some((c, BinOp::Subtraction)), 619 PERCENT => Some((c, BinOp::Remainder)),
620 SLASH => Some((c, BinOp::Division)), 620 SHL => Some((c, BinOp::LeftShift)),
621 PERCENT => Some((c, BinOp::Remainder)), 621 SHR => Some((c, BinOp::RightShift)),
622 SHL => Some((c, BinOp::LeftShift)), 622 CARET => Some((c, BinOp::BitwiseXor)),
623 SHR => Some((c, BinOp::RightShift)), 623 PIPE => Some((c, BinOp::BitwiseOr)),
624 CARET => Some((c, BinOp::BitwiseXor)), 624 AMP => Some((c, BinOp::BitwiseAnd)),
625 PIPE => Some((c, BinOp::BitwiseOr)), 625 DOTDOT => Some((c, BinOp::RangeRightOpen)),
626 AMP => Some((c, BinOp::BitwiseAnd)), 626 DOTDOTEQ => Some((c, BinOp::RangeRightClosed)),
627 DOTDOT => Some((c, BinOp::RangeRightOpen)), 627 EQ => Some((c, BinOp::Assignment)),
628 DOTDOTEQ => Some((c, BinOp::RangeRightClosed)), 628 PLUSEQ => Some((c, BinOp::AddAssign)),
629 EQ => Some((c, BinOp::Assignment)), 629 SLASHEQ => Some((c, BinOp::DivAssign)),
630 PLUSEQ => Some((c, BinOp::AddAssign)), 630 STAREQ => Some((c, BinOp::MulAssign)),
631 SLASHEQ => Some((c, BinOp::DivAssign)), 631 PERCENTEQ => Some((c, BinOp::RemAssign)),
632 STAREQ => Some((c, BinOp::MulAssign)), 632 SHREQ => Some((c, BinOp::ShrAssign)),
633 PERCENTEQ => Some((c, BinOp::RemAssign)), 633 SHLEQ => Some((c, BinOp::ShlAssign)),
634 SHREQ => Some((c, BinOp::ShrAssign)), 634 MINUSEQ => Some((c, BinOp::SubAssign)),
635 SHLEQ => Some((c, BinOp::ShlAssign)), 635 PIPEEQ => Some((c, BinOp::BitOrAssign)),
636 MINUSEQ => Some((c, BinOp::SubAssign)), 636 AMPEQ => Some((c, BinOp::BitAndAssign)),
637 PIPEEQ => Some((c, BinOp::BitOrAssign)), 637 CARETEQ => Some((c, BinOp::BitXorAssign)),
638 AMPEQ => Some((c, BinOp::BitAndAssign)), 638 _ => None,
639 CARETEQ => Some((c, BinOp::BitXorAssign)), 639 })
640 _ => None,
641 })
642 .next()
643 } 640 }
644 641
645 pub fn op_kind(&self) -> Option<BinOp> { 642 pub fn op_kind(&self) -> Option<BinOp> {
diff --git a/docs/dev/architecture.md b/docs/dev/architecture.md
index f990d5bf0..890b18fcd 100644
--- a/docs/dev/architecture.md
+++ b/docs/dev/architecture.md
@@ -130,19 +130,6 @@ APIs in this crate are IDE centric: they take text offsets as input and produce
130offsets and strings as output. This works on top of rich code model powered by 130offsets and strings as output. This works on top of rich code model powered by
131`hir`. 131`hir`.
132 132
133### `crates/ra_ide_api_light`
134
135All IDE features which can be implemented if you only have access to a single
136file. `ra_ide_api_light` could be used to enhance editing of Rust code without
137the need to fiddle with build-systems, file synchronization and such.
138
139In a sense, `ra_ide_api_light` is just a bunch of pure functions which take a
140syntax tree as input.
141
142The tests for `ra_ide_api_light` are `#[cfg(test)] mod tests` unit-tests spread
143throughout its modules.
144
145
146### `crates/ra_lsp_server` 133### `crates/ra_lsp_server`
147 134
148An LSP implementation which wraps `ra_ide_api` into a langauge server protocol. 135An LSP implementation which wraps `ra_ide_api` into a langauge server protocol.