aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax')
-rw-r--r--crates/ra_syntax/src/algo/mod.rs7
-rw-r--r--crates/ra_syntax/src/ast/mod.rs5
-rw-r--r--crates/ra_syntax/src/grammar/expressions/atom.rs5
-rw-r--r--crates/ra_syntax/src/grammar/items/mod.rs6
-rw-r--r--crates/ra_syntax/src/grammar/patterns.rs5
-rw-r--r--crates/ra_syntax/src/lexer/ptr.rs2
-rw-r--r--crates/ra_syntax/src/reparsing.rs11
-rw-r--r--crates/ra_syntax/src/utils.rs4
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)]
49pub enum LeafAtOffset<'a> { 50pub 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![
62const EXPR_RECOVERY_SET: TokenSet = token_set![LET_KW]; 62const EXPR_RECOVERY_SET: TokenSet = token_set![LET_KW];
63 63
64pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<CompletedMarker> { 64pub(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 {
352pub(super) fn macro_call_after_excl(p: &mut Parser) -> BlockLike { 352pub(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
373pub(crate) fn token_tree(p: &mut Parser) { 371pub(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
101fn find_reparsable_node<'node>( 101type ParseFn = fn(&mut Parser);
102 node: SyntaxNodeRef<'node>, 102fn 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
136fn is_balanced(tokens: &[Token]) -> bool { 137fn 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.
7pub fn dump_tree(syntax: SyntaxNodeRef) -> String { 7pub 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
48pub fn check_fuzz_invariants(text: &str) { 48pub fn check_fuzz_invariants(text: &str) {