From 4c745d219ffdb445606047fa476159b836209bf7 Mon Sep 17 00:00:00 2001 From: Zac Pullar-Strecker Date: Sat, 1 Aug 2020 11:47:27 +1200 Subject: [PATCH] remove some crates.io deps --- Cargo.lock | 85 +------------------------------------- crates/ra_ide/Cargo.toml | 4 +- crates/ra_ide/src/hover.rs | 44 +++++++++++++------- 3 files changed, 31 insertions(+), 102 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 572fb868e60..9bd5fac2dda 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -408,17 +408,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "getrandom" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - [[package]] name = "gimli" version = "0.22.0" @@ -639,12 +628,6 @@ dependencies = [ "url", ] -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - [[package]] name = "matchers" version = "0.0.1" @@ -907,12 +890,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" -[[package]] -name = "ppv-lite86" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" - [[package]] name = "proc-macro2" version = "1.0.19" @@ -1105,9 +1082,8 @@ dependencies = [ "expect", "indexmap", "itertools", - "lazy_static", "log", - "maplit", + "once_cell", "oorandom", "pulldown-cmark", "pulldown-cmark-to-cmark", @@ -1124,11 +1100,9 @@ dependencies = [ "ra_syntax", "ra_text_edit", "ra_tt", - "rand", "rustc-hash", "stdx", "test_utils", - "url", ] [[package]] @@ -1288,57 +1262,6 @@ dependencies = [ "stdx", ] -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom", - "libc", - "rand_chacha", - "rand_core", - "rand_hc", - "rand_pcg", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core", -] - [[package]] name = "rayon" version = "1.3.1" @@ -1923,12 +1846,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "winapi" version = "0.2.8" diff --git a/crates/ra_ide/Cargo.toml b/crates/ra_ide/Cargo.toml index 4e2ba6d619b..6d5c9daf574 100644 --- a/crates/ra_ide/Cargo.toml +++ b/crates/ra_ide/Cargo.toml @@ -17,13 +17,11 @@ indexmap = "1.3.2" itertools = "0.9.0" log = "0.4.8" rustc-hash = "1.1.0" -rand = { version = "0.7.3", features = ["small_rng"] } url = "*" -maplit = "*" -lazy_static = "*" pulldown-cmark-to-cmark = "4.0.2" pulldown-cmark = "0.7.0" oorandom = "11.1.2" +once_cell = "1" stdx = { path = "../stdx" } diff --git a/crates/ra_ide/src/hover.rs b/crates/ra_ide/src/hover.rs index a82fe6714bb..1531aca2ea4 100644 --- a/crates/ra_ide/src/hover.rs +++ b/crates/ra_ide/src/hover.rs @@ -1,5 +1,8 @@ use std::collections::{HashMap, HashSet}; -use std::iter::once; +use std::{ + iter::{once, FromIterator}, + sync::Mutex, +}; use hir::{ db::DefDatabase, Adt, AsAssocItem, AsName, AssocItemContainer, AttrDef, Crate, Documentation, @@ -7,8 +10,7 @@ use hir::{ ModuleSource, Semantics, }; use itertools::Itertools; -use lazy_static::lazy_static; -use maplit::{hashmap, hashset}; +use once_cell::sync::Lazy; use pulldown_cmark::{CowStr, Event, Options, Parser, Tag}; use pulldown_cmark_to_cmark::cmark; use ra_db::SourceDatabase; @@ -419,14 +421,26 @@ enum Namespace { Macros, } -lazy_static!( - /// Map of namespaces to identifying prefixes and suffixes as defined by RFC1946. - static ref NS_MAP: HashMap, HashSet<&'static str>)> = hashmap!{ - Namespace::Types => (hashset!{"type", "struct", "enum", "mod", "trait", "union", "module"}, hashset!{}), - Namespace::Values => (hashset!{"value", "function", "fn", "method", "const", "static", "mod", "module"}, hashset!{"()"}), - Namespace::Macros => (hashset!{"macro"}, hashset!{"!"}) - }; -); +static NS_MAP: Lazy< + HashMap, HashSet<&'static &'static str>)>, +> = Lazy::new(|| { + let mut map = HashMap::new(); + map.insert(Namespace::Types, (HashSet::new(), HashSet::new())); + map.insert( + Namespace::Values, + ( + HashSet::from_iter( + ["value", "function", "fn", "method", "const", "static", "mod", "module"].iter(), + ), + HashSet::from_iter(["()"].iter()), + ), + ); + map.insert( + Namespace::Macros, + (HashSet::from_iter(["macro"].iter()), HashSet::from_iter(["!"].iter())), + ); + map +}); impl Namespace { /// Extract the specified namespace from an intra-doc-link if one exists. @@ -437,7 +451,7 @@ impl Namespace { prefixes .iter() .map(|prefix| { - s.starts_with(prefix) + s.starts_with(*prefix) && s.chars() .nth(prefix.len() + 1) .map(|c| c == '@' || c == ' ') @@ -447,7 +461,7 @@ impl Namespace { || suffixes .iter() .map(|suffix| { - s.starts_with(suffix) + s.starts_with(*suffix) && s.chars() .nth(suffix.len() + 1) .map(|c| c == '@' || c == ' ') @@ -464,8 +478,8 @@ impl Namespace { fn strip_prefixes_suffixes(mut s: &str) -> &str { s = s.trim_matches('`'); NS_MAP.iter().for_each(|(_, (prefixes, suffixes))| { - prefixes.iter().for_each(|prefix| s = s.trim_start_matches(prefix)); - suffixes.iter().for_each(|suffix| s = s.trim_end_matches(suffix)); + prefixes.iter().for_each(|prefix| s = s.trim_start_matches(*prefix)); + suffixes.iter().for_each(|suffix| s = s.trim_end_matches(*suffix)); }); s.trim_start_matches("@").trim() }