Skip to content

Commit d3040c0

Browse files
bors[bot]matklad
andauthored
Merge #3305
3305: Simplify r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
2 parents 7763f42 + d7da42b commit d3040c0

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

crates/ra_ide/src/extend_selection.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -145,25 +145,25 @@ fn extend_tokens_from_range(
145145
let src = db.parse_or_expand(expanded.file_id)?;
146146
let parent = shallowest_node(&find_covering_element(&src, expanded.value))?.parent()?;
147147

148-
let validate = |token: SyntaxToken| {
148+
let validate = |token: &SyntaxToken| {
149149
let node = descend_into_macros(db, file_id, token.clone());
150-
if node.file_id == expanded.file_id
150+
node.file_id == expanded.file_id
151151
&& node.value.text_range().is_subrange(&parent.text_range())
152-
{
153-
Some(token)
154-
} else {
155-
None
156-
}
157152
};
158153

159154
// Find the first and last text range under expanded parent
160155
let first = successors(Some(first_token), |token| {
161-
validate(skip_whitespace(token.prev_token()?, Direction::Prev)?)
156+
let token = token.prev_token()?;
157+
skip_whitespace(token, Direction::Prev)
162158
})
159+
.take_while(validate)
163160
.last()?;
161+
164162
let last = successors(Some(last_token), |token| {
165-
validate(skip_whitespace(token.next_token()?, Direction::Next)?)
163+
let token = token.next_token()?;
164+
skip_whitespace(token, Direction::Next)
166165
})
166+
.take_while(validate)
167167
.last()?;
168168

169169
let range = union_range(first.text_range(), last.text_range());
@@ -334,10 +334,12 @@ fn adj_comments(comment: &ast::Comment, dir: Direction) -> ast::Comment {
334334

335335
#[cfg(test)]
336336
mod tests {
337-
use super::*;
338-
use crate::mock_analysis::single_file;
339337
use test_utils::extract_offset;
340338

339+
use crate::mock_analysis::single_file;
340+
341+
use super::*;
342+
341343
fn do_check(before: &str, afters: &[&str]) {
342344
let (cursor, before) = extract_offset(before);
343345
let (analysis, file_id) = single_file(&before);

0 commit comments

Comments
 (0)