diff options
Diffstat (limited to 'crates')
-rw-r--r-- | crates/ra_arena/src/lib.rs | 5 | ||||
-rw-r--r-- | crates/ra_parser/src/grammar/expressions.rs | 12 | ||||
-rw-r--r-- | crates/ra_prof/src/lib.rs | 17 |
3 files changed, 17 insertions, 17 deletions
diff --git a/crates/ra_arena/src/lib.rs b/crates/ra_arena/src/lib.rs index 1c97c2662..26641e690 100644 --- a/crates/ra_arena/src/lib.rs +++ b/crates/ra_arena/src/lib.rs | |||
@@ -71,12 +71,15 @@ impl<ID: ArenaId, T> Arena<ID, T> { | |||
71 | pub fn len(&self) -> usize { | 71 | pub fn len(&self) -> usize { |
72 | self.data.len() | 72 | self.data.len() |
73 | } | 73 | } |
74 | pub fn is_empty(&self) -> bool { | ||
75 | self.data.is_empty() | ||
76 | } | ||
74 | pub fn alloc(&mut self, value: T) -> ID { | 77 | pub fn alloc(&mut self, value: T) -> ID { |
75 | let id = RawId(self.data.len() as u32); | 78 | let id = RawId(self.data.len() as u32); |
76 | self.data.push(value); | 79 | self.data.push(value); |
77 | ID::from_raw(id) | 80 | ID::from_raw(id) |
78 | } | 81 | } |
79 | pub fn iter<'a>(&'a self) -> impl Iterator<Item = (ID, &'a T)> { | 82 | pub fn iter(&self) -> impl Iterator<Item = (ID, &T)> { |
80 | self.data.iter().enumerate().map(|(idx, value)| (ID::from_raw(RawId(idx as u32)), value)) | 83 | self.data.iter().enumerate().map(|(idx, value)| (ID::from_raw(RawId(idx as u32)), value)) |
81 | } | 84 | } |
82 | } | 85 | } |
diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs index 8df9035e9..9fe529f53 100644 --- a/crates/ra_parser/src/grammar/expressions.rs +++ b/crates/ra_parser/src/grammar/expressions.rs | |||
@@ -252,12 +252,12 @@ fn expr_bp( | |||
252 | // `newly_dollar_open` is a flag indicated that dollar is just closed after lhs, e.g. | 252 | // `newly_dollar_open` is a flag indicated that dollar is just closed after lhs, e.g. |
253 | // `$1$ + a` | 253 | // `$1$ + a` |
254 | // We use this flag to skip handling it. | 254 | // We use this flag to skip handling it. |
255 | let mut newly_dollar_open = false; | 255 | let mut newly_dollar_open = if p.at_l_dollar() { |
256 | |||
257 | if p.at_l_dollar() { | ||
258 | *dollar_lvl += p.eat_l_dollars(); | 256 | *dollar_lvl += p.eat_l_dollars(); |
259 | newly_dollar_open = true; | 257 | true |
260 | } | 258 | } else { |
259 | false | ||
260 | }; | ||
261 | 261 | ||
262 | let mut lhs = match lhs(p, r, dollar_lvl) { | 262 | let mut lhs = match lhs(p, r, dollar_lvl) { |
263 | Some((lhs, blocklike)) => { | 263 | Some((lhs, blocklike)) => { |
@@ -535,7 +535,7 @@ fn path_expr(p: &mut Parser, r: Restrictions) -> (CompletedMarker, BlockLike) { | |||
535 | } | 535 | } |
536 | EXCL => { | 536 | EXCL => { |
537 | let block_like = items::macro_call_after_excl(p); | 537 | let block_like = items::macro_call_after_excl(p); |
538 | return (m.complete(p, MACRO_CALL), block_like); | 538 | (m.complete(p, MACRO_CALL), block_like) |
539 | } | 539 | } |
540 | _ => (m.complete(p, PATH_EXPR), BlockLike::NotBlock), | 540 | _ => (m.complete(p, PATH_EXPR), BlockLike::NotBlock), |
541 | } | 541 | } |
diff --git a/crates/ra_prof/src/lib.rs b/crates/ra_prof/src/lib.rs index 402c719b1..9ecb8e744 100644 --- a/crates/ra_prof/src/lib.rs +++ b/crates/ra_prof/src/lib.rs | |||
@@ -67,14 +67,11 @@ pub fn profile(desc: &str) -> Profiler { | |||
67 | 67 | ||
68 | PROFILE_STACK.with(|stack| { | 68 | PROFILE_STACK.with(|stack| { |
69 | let mut stack = stack.borrow_mut(); | 69 | let mut stack = stack.borrow_mut(); |
70 | if stack.starts.len() == 0 { | 70 | if stack.starts.is_empty() { |
71 | match FILTER.try_read() { | 71 | if let Ok(f) = FILTER.try_read() { |
72 | Ok(f) => { | 72 | if f.version > stack.filter_data.version { |
73 | if f.version > stack.filter_data.version { | 73 | stack.filter_data = f.clone(); |
74 | stack.filter_data = f.clone(); | ||
75 | } | ||
76 | } | 74 | } |
77 | Err(_) => (), | ||
78 | }; | 75 | }; |
79 | } | 76 | } |
80 | 77 | ||
@@ -107,7 +104,7 @@ impl Filter { | |||
107 | // env RA_PROFILE=foo|bar|baz // enabled only selected entries | 104 | // env RA_PROFILE=foo|bar|baz // enabled only selected entries |
108 | // env RA_PROFILE=*@3>10 // dump everything, up to depth 3, if it takes more than 10 ms | 105 | // env RA_PROFILE=*@3>10 // dump everything, up to depth 3, if it takes more than 10 ms |
109 | pub fn from_spec(mut spec: &str) -> Filter { | 106 | pub fn from_spec(mut spec: &str) -> Filter { |
110 | let longer_than = if let Some(idx) = spec.rfind(">") { | 107 | let longer_than = if let Some(idx) = spec.rfind('>') { |
111 | let longer_than = spec[idx + 1..].parse().expect("invalid profile longer_than"); | 108 | let longer_than = spec[idx + 1..].parse().expect("invalid profile longer_than"); |
112 | spec = &spec[..idx]; | 109 | spec = &spec[..idx]; |
113 | Duration::from_millis(longer_than) | 110 | Duration::from_millis(longer_than) |
@@ -115,7 +112,7 @@ impl Filter { | |||
115 | Duration::new(0, 0) | 112 | Duration::new(0, 0) |
116 | }; | 113 | }; |
117 | 114 | ||
118 | let depth = if let Some(idx) = spec.rfind("@") { | 115 | let depth = if let Some(idx) = spec.rfind('@') { |
119 | let depth: usize = spec[idx + 1..].parse().expect("invalid profile depth"); | 116 | let depth: usize = spec[idx + 1..].parse().expect("invalid profile depth"); |
120 | spec = &spec[..idx]; | 117 | spec = &spec[..idx]; |
121 | depth | 118 | depth |
@@ -123,7 +120,7 @@ impl Filter { | |||
123 | 999 | 120 | 999 |
124 | }; | 121 | }; |
125 | let allowed = | 122 | let allowed = |
126 | if spec == "*" { Vec::new() } else { spec.split("|").map(String::from).collect() }; | 123 | if spec == "*" { Vec::new() } else { spec.split('|').map(String::from).collect() }; |
127 | Filter::new(depth, allowed, longer_than) | 124 | Filter::new(depth, allowed, longer_than) |
128 | } | 125 | } |
129 | 126 | ||