diff options
Diffstat (limited to 'crates/ra_syntax')
-rw-r--r-- | crates/ra_syntax/src/algo/mod.rs | 7 | ||||
-rw-r--r-- | crates/ra_syntax/src/ast/mod.rs | 5 | ||||
-rw-r--r-- | crates/ra_syntax/src/grammar/expressions/atom.rs | 5 | ||||
-rw-r--r-- | crates/ra_syntax/src/grammar/items/mod.rs | 6 | ||||
-rw-r--r-- | crates/ra_syntax/src/grammar/patterns.rs | 5 | ||||
-rw-r--r-- | crates/ra_syntax/src/lexer/ptr.rs | 2 | ||||
-rw-r--r-- | crates/ra_syntax/src/reparsing.rs | 11 | ||||
-rw-r--r-- | crates/ra_syntax/src/utils.rs | 4 |
8 files changed, 21 insertions, 24 deletions
diff --git a/crates/ra_syntax/src/algo/mod.rs b/crates/ra_syntax/src/algo/mod.rs index 9d2014bc7..d82c42b3e 100644 --- a/crates/ra_syntax/src/algo/mod.rs +++ b/crates/ra_syntax/src/algo/mod.rs | |||
@@ -30,7 +30,8 @@ pub fn find_leaf_at_offset(node: SyntaxNodeRef, offset: TextUnit) -> LeafAtOffse | |||
30 | let left = children.next().unwrap(); | 30 | let left = children.next().unwrap(); |
31 | let right = children.next(); | 31 | let right = children.next(); |
32 | assert!(children.next().is_none()); | 32 | assert!(children.next().is_none()); |
33 | return if let Some(right) = right { | 33 | |
34 | if let Some(right) = right { | ||
34 | match ( | 35 | match ( |
35 | find_leaf_at_offset(left, offset), | 36 | find_leaf_at_offset(left, offset), |
36 | find_leaf_at_offset(right, offset), | 37 | find_leaf_at_offset(right, offset), |
@@ -42,10 +43,10 @@ pub fn find_leaf_at_offset(node: SyntaxNodeRef, offset: TextUnit) -> LeafAtOffse | |||
42 | } | 43 | } |
43 | } else { | 44 | } else { |
44 | find_leaf_at_offset(left, offset) | 45 | find_leaf_at_offset(left, offset) |
45 | }; | 46 | } |
46 | } | 47 | } |
47 | 48 | ||
48 | #[derive(Clone, Copy, Debug)] | 49 | #[derive(Clone, Debug)] |
49 | pub enum LeafAtOffset<'a> { | 50 | pub enum LeafAtOffset<'a> { |
50 | None, | 51 | None, |
51 | Single(SyntaxNodeRef<'a>), | 52 | Single(SyntaxNodeRef<'a>), |
diff --git a/crates/ra_syntax/src/ast/mod.rs b/crates/ra_syntax/src/ast/mod.rs index 34958b6cb..900426a8a 100644 --- a/crates/ra_syntax/src/ast/mod.rs +++ b/crates/ra_syntax/src/ast/mod.rs | |||
@@ -259,9 +259,8 @@ impl<'a, N: AstNode<'a>> Iterator for AstChildren<'a, N> { | |||
259 | type Item = N; | 259 | type Item = N; |
260 | fn next(&mut self) -> Option<N> { | 260 | fn next(&mut self) -> Option<N> { |
261 | loop { | 261 | loop { |
262 | match N::cast(self.inner.next()?) { | 262 | if let Some(n) = N::cast(self.inner.next()?) { |
263 | Some(n) => return Some(n), | 263 | return Some(n); |
264 | None => (), | ||
265 | } | 264 | } |
266 | } | 265 | } |
267 | } | 266 | } |
diff --git a/crates/ra_syntax/src/grammar/expressions/atom.rs b/crates/ra_syntax/src/grammar/expressions/atom.rs index 11f766d33..04087fd60 100644 --- a/crates/ra_syntax/src/grammar/expressions/atom.rs +++ b/crates/ra_syntax/src/grammar/expressions/atom.rs | |||
@@ -62,9 +62,8 @@ pub(super) const ATOM_EXPR_FIRST: TokenSet = token_set_union![ | |||
62 | const EXPR_RECOVERY_SET: TokenSet = token_set![LET_KW]; | 62 | const EXPR_RECOVERY_SET: TokenSet = token_set![LET_KW]; |
63 | 63 | ||
64 | pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<CompletedMarker> { | 64 | pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<CompletedMarker> { |
65 | match literal(p) { | 65 | if let Some(m) = literal(p) { |
66 | Some(m) => return Some(m), | 66 | return Some(m); |
67 | None => (), | ||
68 | } | 67 | } |
69 | if paths::is_path_start(p) || p.at(L_ANGLE) { | 68 | if paths::is_path_start(p) || p.at(L_ANGLE) { |
70 | return Some(path_expr(p, r)); | 69 | return Some(path_expr(p, r)); |
diff --git a/crates/ra_syntax/src/grammar/items/mod.rs b/crates/ra_syntax/src/grammar/items/mod.rs index dc4742bce..06c6b5e6e 100644 --- a/crates/ra_syntax/src/grammar/items/mod.rs +++ b/crates/ra_syntax/src/grammar/items/mod.rs | |||
@@ -352,7 +352,7 @@ fn macro_call(p: &mut Parser) -> BlockLike { | |||
352 | pub(super) fn macro_call_after_excl(p: &mut Parser) -> BlockLike { | 352 | pub(super) fn macro_call_after_excl(p: &mut Parser) -> BlockLike { |
353 | p.expect(EXCL); | 353 | p.expect(EXCL); |
354 | p.eat(IDENT); | 354 | p.eat(IDENT); |
355 | let flavor = match p.current() { | 355 | match p.current() { |
356 | L_CURLY => { | 356 | L_CURLY => { |
357 | token_tree(p); | 357 | token_tree(p); |
358 | BlockLike::Block | 358 | BlockLike::Block |
@@ -365,9 +365,7 @@ pub(super) fn macro_call_after_excl(p: &mut Parser) -> BlockLike { | |||
365 | p.error("expected `{`, `[`, `(`"); | 365 | p.error("expected `{`, `[`, `(`"); |
366 | BlockLike::NotBlock | 366 | BlockLike::NotBlock |
367 | } | 367 | } |
368 | }; | 368 | } |
369 | |||
370 | flavor | ||
371 | } | 369 | } |
372 | 370 | ||
373 | pub(crate) fn token_tree(p: &mut Parser) { | 371 | pub(crate) fn token_tree(p: &mut Parser) { |
diff --git a/crates/ra_syntax/src/grammar/patterns.rs b/crates/ra_syntax/src/grammar/patterns.rs index 9d35dbb3d..10fa0e0be 100644 --- a/crates/ra_syntax/src/grammar/patterns.rs +++ b/crates/ra_syntax/src/grammar/patterns.rs | |||
@@ -49,9 +49,8 @@ fn atom_pat(p: &mut Parser, recovery_set: TokenSet) -> Option<CompletedMarker> { | |||
49 | // "hello" => (), | 49 | // "hello" => (), |
50 | // } | 50 | // } |
51 | // } | 51 | // } |
52 | match expressions::literal(p) { | 52 | if let Some(m) = expressions::literal(p) { |
53 | Some(m) => return Some(m), | 53 | return Some(m); |
54 | None => (), | ||
55 | } | 54 | } |
56 | 55 | ||
57 | let m = match la0 { | 56 | let m = match la0 { |
diff --git a/crates/ra_syntax/src/lexer/ptr.rs b/crates/ra_syntax/src/lexer/ptr.rs index fa79d8862..4c291b9c4 100644 --- a/crates/ra_syntax/src/lexer/ptr.rs +++ b/crates/ra_syntax/src/lexer/ptr.rs | |||
@@ -31,7 +31,7 @@ impl<'s> Ptr<'s> { | |||
31 | /// For example, 0 will return the current token, 1 will return the next, etc. | 31 | /// For example, 0 will return the current token, 1 will return the next, etc. |
32 | pub fn nth(&self, n: u32) -> Option<char> { | 32 | pub fn nth(&self, n: u32) -> Option<char> { |
33 | let mut chars = self.chars().peekable(); | 33 | let mut chars = self.chars().peekable(); |
34 | chars.by_ref().skip(n as usize).next() | 34 | chars.by_ref().nth(n as usize) |
35 | } | 35 | } |
36 | 36 | ||
37 | /// Checks whether the current character is `c`. | 37 | /// Checks whether the current character is `c`. |
diff --git a/crates/ra_syntax/src/reparsing.rs b/crates/ra_syntax/src/reparsing.rs index a0014e016..eae01b1d5 100644 --- a/crates/ra_syntax/src/reparsing.rs +++ b/crates/ra_syntax/src/reparsing.rs | |||
@@ -98,17 +98,18 @@ fn is_contextual_kw(text: &str) -> bool { | |||
98 | } | 98 | } |
99 | } | 99 | } |
100 | 100 | ||
101 | fn find_reparsable_node<'node>( | 101 | type ParseFn = fn(&mut Parser); |
102 | node: SyntaxNodeRef<'node>, | 102 | fn find_reparsable_node( |
103 | node: SyntaxNodeRef<'_>, | ||
103 | range: TextRange, | 104 | range: TextRange, |
104 | ) -> Option<(SyntaxNodeRef<'node>, fn(&mut Parser))> { | 105 | ) -> Option<(SyntaxNodeRef<'_>, ParseFn)> { |
105 | let node = algo::find_covering_node(node, range); | 106 | let node = algo::find_covering_node(node, range); |
106 | return node | 107 | return node |
107 | .ancestors() | 108 | .ancestors() |
108 | .filter_map(|node| reparser(node).map(|r| (node, r))) | 109 | .filter_map(|node| reparser(node).map(|r| (node, r))) |
109 | .next(); | 110 | .next(); |
110 | 111 | ||
111 | fn reparser(node: SyntaxNodeRef) -> Option<fn(&mut Parser)> { | 112 | fn reparser(node: SyntaxNodeRef) -> Option<ParseFn> { |
112 | let res = match node.kind() { | 113 | let res = match node.kind() { |
113 | BLOCK => grammar::block, | 114 | BLOCK => grammar::block, |
114 | NAMED_FIELD_DEF_LIST => grammar::named_field_def_list, | 115 | NAMED_FIELD_DEF_LIST => grammar::named_field_def_list, |
@@ -134,7 +135,7 @@ fn find_reparsable_node<'node>( | |||
134 | } | 135 | } |
135 | 136 | ||
136 | fn is_balanced(tokens: &[Token]) -> bool { | 137 | fn is_balanced(tokens: &[Token]) -> bool { |
137 | if tokens.len() == 0 | 138 | if tokens.is_empty() |
138 | || tokens.first().unwrap().kind != L_CURLY | 139 | || tokens.first().unwrap().kind != L_CURLY |
139 | || tokens.last().unwrap().kind != R_CURLY | 140 | || tokens.last().unwrap().kind != R_CURLY |
140 | { | 141 | { |
diff --git a/crates/ra_syntax/src/utils.rs b/crates/ra_syntax/src/utils.rs index 7d0ef2fa2..8ee02724d 100644 --- a/crates/ra_syntax/src/utils.rs +++ b/crates/ra_syntax/src/utils.rs | |||
@@ -5,7 +5,7 @@ use std::fmt::Write; | |||
5 | 5 | ||
6 | /// Parse a file and create a string representation of the resulting parse tree. | 6 | /// Parse a file and create a string representation of the resulting parse tree. |
7 | pub fn dump_tree(syntax: SyntaxNodeRef) -> String { | 7 | pub fn dump_tree(syntax: SyntaxNodeRef) -> String { |
8 | let mut errors: Vec<_> = syntax.root_data().iter().cloned().collect(); | 8 | let mut errors: Vec<_> = syntax.root_data().to_vec(); |
9 | errors.sort_by_key(|e| e.offset); | 9 | errors.sort_by_key(|e| e.offset); |
10 | let mut err_pos = 0; | 10 | let mut err_pos = 0; |
11 | let mut level = 0; | 11 | let mut level = 0; |
@@ -42,7 +42,7 @@ pub fn dump_tree(syntax: SyntaxNodeRef) -> String { | |||
42 | writeln!(buf, "err: `{}`", err.msg).unwrap(); | 42 | writeln!(buf, "err: `{}`", err.msg).unwrap(); |
43 | } | 43 | } |
44 | 44 | ||
45 | return buf; | 45 | buf |
46 | } | 46 | } |
47 | 47 | ||
48 | pub fn check_fuzz_invariants(text: &str) { | 48 | pub fn check_fuzz_invariants(text: &str) { |