aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/expect/src/lib.rs2
-rw-r--r--crates/flycheck/src/lib.rs6
-rw-r--r--crates/ra_arena/src/map.rs10
-rw-r--r--crates/ra_mbe/src/mbe_expander/matcher.rs2
-rw-r--r--crates/ra_parser/src/grammar/expressions/atom.rs8
-rw-r--r--crates/ra_proc_macro/src/process.rs2
-rw-r--r--crates/ra_text_edit/src/lib.rs13
-rw-r--r--crates/ra_tt/src/lib.rs2
-rw-r--r--crates/stdx/src/lib.rs4
-rw-r--r--crates/vfs/src/file_set.rs3
10 files changed, 29 insertions, 23 deletions
diff --git a/crates/expect/src/lib.rs b/crates/expect/src/lib.rs
index 21a458d47..bd83895f7 100644
--- a/crates/expect/src/lib.rs
+++ b/crates/expect/src/lib.rs
@@ -74,7 +74,7 @@ impl fmt::Display for Position {
74impl Expect { 74impl Expect {
75 pub fn assert_eq(&self, actual: &str) { 75 pub fn assert_eq(&self, actual: &str) {
76 let trimmed = self.trimmed(); 76 let trimmed = self.trimmed();
77 if &trimmed == actual { 77 if trimmed == actual {
78 return; 78 return;
79 } 79 }
80 Runtime::fail_expect(self, &trimmed, actual); 80 Runtime::fail_expect(self, &trimmed, actual);
diff --git a/crates/flycheck/src/lib.rs b/crates/flycheck/src/lib.rs
index 7c38f5ef9..36e0e085a 100644
--- a/crates/flycheck/src/lib.rs
+++ b/crates/flycheck/src/lib.rs
@@ -108,7 +108,7 @@ struct FlycheckActor {
108 108
109enum Event { 109enum Event {
110 Restart(Restart), 110 Restart(Restart),
111 CheckEvent(Option<cargo_metadata::Message>), 111 CheckEvent(Option<Box<cargo_metadata::Message>>),
112} 112}
113 113
114impl FlycheckActor { 114impl FlycheckActor {
@@ -123,7 +123,7 @@ impl FlycheckActor {
123 let check_chan = self.cargo_handle.as_ref().map(|cargo| &cargo.receiver); 123 let check_chan = self.cargo_handle.as_ref().map(|cargo| &cargo.receiver);
124 select! { 124 select! {
125 recv(inbox) -> msg => msg.ok().map(Event::Restart), 125 recv(inbox) -> msg => msg.ok().map(Event::Restart),
126 recv(check_chan.unwrap_or(&never())) -> msg => Some(Event::CheckEvent(msg.ok())), 126 recv(check_chan.unwrap_or(&never())) -> msg => Some(Event::CheckEvent(msg.ok().map(Box::new))),
127 } 127 }
128 } 128 }
129 fn run(mut self, inbox: Receiver<Restart>) { 129 fn run(mut self, inbox: Receiver<Restart>) {
@@ -149,7 +149,7 @@ impl FlycheckActor {
149 let res = cargo_handle.join(); 149 let res = cargo_handle.join();
150 self.send(Message::Progress(Progress::DidFinish(res))); 150 self.send(Message::Progress(Progress::DidFinish(res)));
151 } 151 }
152 Event::CheckEvent(Some(message)) => match message { 152 Event::CheckEvent(Some(message)) => match *message {
153 cargo_metadata::Message::CompilerArtifact(msg) => { 153 cargo_metadata::Message::CompilerArtifact(msg) => {
154 self.send(Message::Progress(Progress::DidCheckCrate(msg.target.name))); 154 self.send(Message::Progress(Progress::DidCheckCrate(msg.target.name)));
155 } 155 }
diff --git a/crates/ra_arena/src/map.rs b/crates/ra_arena/src/map.rs
index 0f33907c0..c1b58712c 100644
--- a/crates/ra_arena/src/map.rs
+++ b/crates/ra_arena/src/map.rs
@@ -13,18 +13,18 @@ pub struct ArenaMap<ID, V> {
13 13
14impl<T, V> ArenaMap<Idx<T>, V> { 14impl<T, V> ArenaMap<Idx<T>, V> {
15 pub fn insert(&mut self, id: Idx<T>, t: V) { 15 pub fn insert(&mut self, id: Idx<T>, t: V) {
16 let idx = Self::to_idx(id); 16 let idx = Self::into_idx(id);
17 17
18 self.v.resize_with((idx + 1).max(self.v.len()), || None); 18 self.v.resize_with((idx + 1).max(self.v.len()), || None);
19 self.v[idx] = Some(t); 19 self.v[idx] = Some(t);
20 } 20 }
21 21
22 pub fn get(&self, id: Idx<T>) -> Option<&V> { 22 pub fn get(&self, id: Idx<T>) -> Option<&V> {
23 self.v.get(Self::to_idx(id)).and_then(|it| it.as_ref()) 23 self.v.get(Self::into_idx(id)).and_then(|it| it.as_ref())
24 } 24 }
25 25
26 pub fn get_mut(&mut self, id: Idx<T>) -> Option<&mut V> { 26 pub fn get_mut(&mut self, id: Idx<T>) -> Option<&mut V> {
27 self.v.get_mut(Self::to_idx(id)).and_then(|it| it.as_mut()) 27 self.v.get_mut(Self::into_idx(id)).and_then(|it| it.as_mut())
28 } 28 }
29 29
30 pub fn values(&self) -> impl Iterator<Item = &V> { 30 pub fn values(&self) -> impl Iterator<Item = &V> {
@@ -39,7 +39,7 @@ impl<T, V> ArenaMap<Idx<T>, V> {
39 self.v.iter().enumerate().filter_map(|(idx, o)| Some((Self::from_idx(idx), o.as_ref()?))) 39 self.v.iter().enumerate().filter_map(|(idx, o)| Some((Self::from_idx(idx), o.as_ref()?)))
40 } 40 }
41 41
42 fn to_idx(id: Idx<T>) -> usize { 42 fn into_idx(id: Idx<T>) -> usize {
43 u32::from(id.into_raw()) as usize 43 u32::from(id.into_raw()) as usize
44 } 44 }
45 45
@@ -51,7 +51,7 @@ impl<T, V> ArenaMap<Idx<T>, V> {
51impl<T, V> std::ops::Index<Idx<V>> for ArenaMap<Idx<V>, T> { 51impl<T, V> std::ops::Index<Idx<V>> for ArenaMap<Idx<V>, T> {
52 type Output = T; 52 type Output = T;
53 fn index(&self, id: Idx<V>) -> &T { 53 fn index(&self, id: Idx<V>) -> &T {
54 self.v[Self::to_idx(id)].as_ref().unwrap() 54 self.v[Self::into_idx(id)].as_ref().unwrap()
55 } 55 }
56} 56}
57 57
diff --git a/crates/ra_mbe/src/mbe_expander/matcher.rs b/crates/ra_mbe/src/mbe_expander/matcher.rs
index f9e515b81..933a3a3b5 100644
--- a/crates/ra_mbe/src/mbe_expander/matcher.rs
+++ b/crates/ra_mbe/src/mbe_expander/matcher.rs
@@ -276,7 +276,7 @@ impl<'a> TtIter<'a> {
276 Ok(tt::Subtree { 276 Ok(tt::Subtree {
277 delimiter: None, 277 delimiter: None,
278 token_trees: vec![ 278 token_trees: vec![
279 tt::Leaf::Punct(punct.clone()).into(), 279 tt::Leaf::Punct(*punct).into(),
280 tt::Leaf::Ident(ident.clone()).into(), 280 tt::Leaf::Ident(ident.clone()).into(),
281 ], 281 ],
282 } 282 }
diff --git a/crates/ra_parser/src/grammar/expressions/atom.rs b/crates/ra_parser/src/grammar/expressions/atom.rs
index 0b01d3bc6..ca6569c9f 100644
--- a/crates/ra_parser/src/grammar/expressions/atom.rs
+++ b/crates/ra_parser/src/grammar/expressions/atom.rs
@@ -243,12 +243,10 @@ fn lambda_expr(p: &mut Parser) -> CompletedMarker {
243 // test lambda_ret_block 243 // test lambda_ret_block
244 // fn main() { || -> i32 { 92 }(); } 244 // fn main() { || -> i32 { 92 }(); }
245 block_expr(p); 245 block_expr(p);
246 } else if p.at_ts(EXPR_FIRST) {
247 expr(p);
246 } else { 248 } else {
247 if p.at_ts(EXPR_FIRST) { 249 p.error("expected expression");
248 expr(p);
249 } else {
250 p.error("expected expression");
251 }
252 } 250 }
253 m.complete(p, CLOSURE_EXPR) 251 m.complete(p, CLOSURE_EXPR)
254} 252}
diff --git a/crates/ra_proc_macro/src/process.rs b/crates/ra_proc_macro/src/process.rs
index 5bcdacb48..37dd3f496 100644
--- a/crates/ra_proc_macro/src/process.rs
+++ b/crates/ra_proc_macro/src/process.rs
@@ -90,7 +90,7 @@ impl ProcMacroProcessSrv {
90 } 90 }
91 Some(it) => it, 91 Some(it) => it,
92 }; 92 };
93 sender.send(Task { req: req.into(), result_tx }).unwrap(); 93 sender.send(Task { req, result_tx }).unwrap();
94 let res = result_rx 94 let res = result_rx
95 .recv() 95 .recv()
96 .map_err(|_| ra_tt::ExpansionError::Unknown("Proc macro thread is closed.".into()))?; 96 .map_err(|_| ra_tt::ExpansionError::Unknown("Proc macro thread is closed.".into()))?;
diff --git a/crates/ra_text_edit/src/lib.rs b/crates/ra_text_edit/src/lib.rs
index 25554f583..d68791cf1 100644
--- a/crates/ra_text_edit/src/lib.rs
+++ b/crates/ra_text_edit/src/lib.rs
@@ -76,10 +76,6 @@ impl TextEdit {
76 self.indels.iter() 76 self.indels.iter()
77 } 77 }
78 78
79 pub fn into_iter(self) -> vec::IntoIter<Indel> {
80 self.indels.into_iter()
81 }
82
83 pub fn apply(&self, text: &mut String) { 79 pub fn apply(&self, text: &mut String) {
84 match self.len() { 80 match self.len() {
85 0 => return, 81 0 => return,
@@ -141,6 +137,15 @@ impl TextEdit {
141 } 137 }
142} 138}
143 139
140impl IntoIterator for TextEdit {
141 type Item = Indel;
142 type IntoIter = vec::IntoIter<Self::Item>;
143
144 fn into_iter(self) -> Self::IntoIter {
145 self.indels.into_iter()
146 }
147}
148
144impl TextEditBuilder { 149impl TextEditBuilder {
145 pub fn replace(&mut self, range: TextRange, replace_with: String) { 150 pub fn replace(&mut self, range: TextRange, replace_with: String) {
146 self.indels.push(Indel::replace(range, replace_with)) 151 self.indels.push(Indel::replace(range, replace_with))
diff --git a/crates/ra_tt/src/lib.rs b/crates/ra_tt/src/lib.rs
index 8faf1cc67..20c3f5eab 100644
--- a/crates/ra_tt/src/lib.rs
+++ b/crates/ra_tt/src/lib.rs
@@ -107,7 +107,7 @@ fn print_debug_subtree(f: &mut fmt::Formatter<'_>, subtree: &Subtree, level: usi
107 for (idx, child) in subtree.token_trees.iter().enumerate() { 107 for (idx, child) in subtree.token_trees.iter().enumerate() {
108 print_debug_token(f, child, level + 1)?; 108 print_debug_token(f, child, level + 1)?;
109 if idx != subtree.token_trees.len() - 1 { 109 if idx != subtree.token_trees.len() - 1 {
110 writeln!(f, "")?; 110 writeln!(f)?;
111 } 111 }
112 } 112 }
113 } 113 }
diff --git a/crates/stdx/src/lib.rs b/crates/stdx/src/lib.rs
index b65875c96..00bfcd29e 100644
--- a/crates/stdx/src/lib.rs
+++ b/crates/stdx/src/lib.rs
@@ -10,7 +10,7 @@ pub fn is_ci() -> bool {
10 10
11pub trait SepBy: Sized { 11pub trait SepBy: Sized {
12 /// Returns an `impl fmt::Display`, which joins elements via a separator. 12 /// Returns an `impl fmt::Display`, which joins elements via a separator.
13 fn sep_by<'a>(self, sep: &'a str) -> SepByBuilder<'a, Self>; 13 fn sep_by(self, sep: &str) -> SepByBuilder<'_, Self>;
14} 14}
15 15
16impl<I> SepBy for I 16impl<I> SepBy for I
@@ -18,7 +18,7 @@ where
18 I: Iterator, 18 I: Iterator,
19 I::Item: fmt::Display, 19 I::Item: fmt::Display,
20{ 20{
21 fn sep_by<'a>(self, sep: &'a str) -> SepByBuilder<'a, Self> { 21 fn sep_by(self, sep: &str) -> SepByBuilder<'_, Self> {
22 SepByBuilder::new(sep, self) 22 SepByBuilder::new(sep, self)
23 } 23 }
24} 24}
diff --git a/crates/vfs/src/file_set.rs b/crates/vfs/src/file_set.rs
index e9196fcd2..9f11268ee 100644
--- a/crates/vfs/src/file_set.rs
+++ b/crates/vfs/src/file_set.rs
@@ -19,6 +19,9 @@ impl FileSet {
19 pub fn len(&self) -> usize { 19 pub fn len(&self) -> usize {
20 self.files.len() 20 self.files.len()
21 } 21 }
22 pub fn is_empty(&self) -> bool {
23 self.len() == 0
24 }
22 pub fn resolve_path(&self, anchor: FileId, path: &str) -> Option<FileId> { 25 pub fn resolve_path(&self, anchor: FileId, path: &str) -> Option<FileId> {
23 let mut base = self.paths[&anchor].clone(); 26 let mut base = self.paths[&anchor].clone();
24 base.pop(); 27 base.pop();