Skip to content

Commit 3c6dc0f

Browse files
committed
Apply a few clippy suggestions
1 parent e8e14e1 commit 3c6dc0f

File tree

4 files changed

+121
-47
lines changed

4 files changed

+121
-47
lines changed

crates/parser/src/grammar/expressions/atom.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -252,12 +252,10 @@ fn closure_expr(p: &mut Parser) -> CompletedMarker {
252252
// test lambda_ret_block
253253
// fn main() { || -> i32 { 92 }(); }
254254
block_expr(p);
255+
} else if p.at_ts(EXPR_FIRST) {
256+
expr(p);
255257
} else {
256-
if p.at_ts(EXPR_FIRST) {
257-
expr(p);
258-
} else {
259-
p.error("expected expression");
260-
}
258+
p.error("expected expression");
261259
}
262260
m.complete(p, CLOSURE_EXPR)
263261
}

crates/parser/src/syntax_kind/generated.rs

Lines changed: 106 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -260,33 +260,116 @@ pub enum SyntaxKind {
260260
use self::SyntaxKind::*;
261261
impl SyntaxKind {
262262
pub fn is_keyword(self) -> bool {
263-
match self {
264-
AS_KW | ASYNC_KW | AWAIT_KW | BOX_KW | BREAK_KW | CONST_KW | CONTINUE_KW | CRATE_KW
265-
| DYN_KW | ELSE_KW | ENUM_KW | EXTERN_KW | FALSE_KW | FN_KW | FOR_KW | IF_KW
266-
| IMPL_KW | IN_KW | LET_KW | LOOP_KW | MACRO_KW | MATCH_KW | MOD_KW | MOVE_KW
267-
| MUT_KW | PUB_KW | REF_KW | RETURN_KW | SELF_KW | STATIC_KW | STRUCT_KW | SUPER_KW
268-
| TRAIT_KW | TRUE_KW | TRY_KW | TYPE_KW | UNSAFE_KW | USE_KW | WHERE_KW | WHILE_KW
269-
| YIELD_KW | AUTO_KW | DEFAULT_KW | EXISTENTIAL_KW | UNION_KW | RAW_KW
270-
| MACRO_RULES_KW => true,
271-
_ => false,
272-
}
263+
matches!(
264+
self,
265+
AS_KW
266+
| ASYNC_KW
267+
| AWAIT_KW
268+
| BOX_KW
269+
| BREAK_KW
270+
| CONST_KW
271+
| CONTINUE_KW
272+
| CRATE_KW
273+
| DYN_KW
274+
| ELSE_KW
275+
| ENUM_KW
276+
| EXTERN_KW
277+
| FALSE_KW
278+
| FN_KW
279+
| FOR_KW
280+
| IF_KW
281+
| IMPL_KW
282+
| IN_KW
283+
| LET_KW
284+
| LOOP_KW
285+
| MACRO_KW
286+
| MATCH_KW
287+
| MOD_KW
288+
| MOVE_KW
289+
| MUT_KW
290+
| PUB_KW
291+
| REF_KW
292+
| RETURN_KW
293+
| SELF_KW
294+
| STATIC_KW
295+
| STRUCT_KW
296+
| SUPER_KW
297+
| TRAIT_KW
298+
| TRUE_KW
299+
| TRY_KW
300+
| TYPE_KW
301+
| UNSAFE_KW
302+
| USE_KW
303+
| WHERE_KW
304+
| WHILE_KW
305+
| YIELD_KW
306+
| AUTO_KW
307+
| DEFAULT_KW
308+
| EXISTENTIAL_KW
309+
| UNION_KW
310+
| RAW_KW
311+
| MACRO_RULES_KW
312+
)
273313
}
274314
pub fn is_punct(self) -> bool {
275-
match self {
276-
SEMICOLON | COMMA | L_PAREN | R_PAREN | L_CURLY | R_CURLY | L_BRACK | R_BRACK
277-
| L_ANGLE | R_ANGLE | AT | POUND | TILDE | QUESTION | DOLLAR | AMP | PIPE | PLUS
278-
| STAR | SLASH | CARET | PERCENT | UNDERSCORE | DOT | DOT2 | DOT3 | DOT2EQ | COLON
279-
| COLON2 | EQ | EQ2 | FAT_ARROW | BANG | NEQ | MINUS | THIN_ARROW | LTEQ | GTEQ
280-
| PLUSEQ | MINUSEQ | PIPEEQ | AMPEQ | CARETEQ | SLASHEQ | STAREQ | PERCENTEQ | AMP2
281-
| PIPE2 | SHL | SHR | SHLEQ | SHREQ => true,
282-
_ => false,
283-
}
315+
matches!(
316+
self,
317+
SEMICOLON
318+
| COMMA
319+
| L_PAREN
320+
| R_PAREN
321+
| L_CURLY
322+
| R_CURLY
323+
| L_BRACK
324+
| R_BRACK
325+
| L_ANGLE
326+
| R_ANGLE
327+
| AT
328+
| POUND
329+
| TILDE
330+
| QUESTION
331+
| DOLLAR
332+
| AMP
333+
| PIPE
334+
| PLUS
335+
| STAR
336+
| SLASH
337+
| CARET
338+
| PERCENT
339+
| UNDERSCORE
340+
| DOT
341+
| DOT2
342+
| DOT3
343+
| DOT2EQ
344+
| COLON
345+
| COLON2
346+
| EQ
347+
| EQ2
348+
| FAT_ARROW
349+
| BANG
350+
| NEQ
351+
| MINUS
352+
| THIN_ARROW
353+
| LTEQ
354+
| GTEQ
355+
| PLUSEQ
356+
| MINUSEQ
357+
| PIPEEQ
358+
| AMPEQ
359+
| CARETEQ
360+
| SLASHEQ
361+
| STAREQ
362+
| PERCENTEQ
363+
| AMP2
364+
| PIPE2
365+
| SHL
366+
| SHR
367+
| SHLEQ
368+
| SHREQ
369+
)
284370
}
285371
pub fn is_literal(self) -> bool {
286-
match self {
287-
INT_NUMBER | FLOAT_NUMBER | CHAR | BYTE | STRING | BYTE_STRING => true,
288-
_ => false,
289-
}
372+
matches!(self, INT_NUMBER | FLOAT_NUMBER | CHAR | BYTE | STRING | BYTE_STRING)
290373
}
291374
pub fn from_keyword(ident: &str) -> Option<SyntaxKind> {
292375
let kw = match ident {

crates/test_utils/src/lib.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -238,14 +238,9 @@ fn extract_line_annotations(mut line: &str) -> Vec<LineAnnotation> {
238238
let mut res = Vec::new();
239239
let mut offset: TextSize = 0.into();
240240
let marker: fn(char) -> bool = if line.contains('^') { |c| c == '^' } else { |c| c == '|' };
241-
loop {
242-
match line.find(marker) {
243-
Some(idx) => {
244-
offset += TextSize::try_from(idx).unwrap();
245-
line = &line[idx..];
246-
}
247-
None => break,
248-
};
241+
while let Some(idx) = line.find(marker) {
242+
offset += TextSize::try_from(idx).unwrap();
243+
line = &line[idx..];
249244

250245
let mut len = line.chars().take_while(|&it| it == '^').count();
251246
let mut continuation = false;

xtask/src/codegen/gen_syntax.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,16 @@ fn generate_nodes(kinds: KindsSrc<'_>, grammar: &AstSrc) -> Result<String> {
9494
support::children(&self.syntax)
9595
}
9696
}
97-
} else {
98-
if let Some(token_kind) = field.token_kind() {
99-
quote! {
100-
pub fn #method_name(&self) -> Option<#ty> {
101-
support::token(&self.syntax, #token_kind)
102-
}
97+
} else if let Some(token_kind) = field.token_kind() {
98+
quote! {
99+
pub fn #method_name(&self) -> Option<#ty> {
100+
support::token(&self.syntax, #token_kind)
103101
}
104-
} else {
105-
quote! {
106-
pub fn #method_name(&self) -> Option<#ty> {
107-
support::child(&self.syntax)
108-
}
102+
}
103+
} else {
104+
quote! {
105+
pub fn #method_name(&self) -> Option<#ty> {
106+
support::child(&self.syntax)
109107
}
110108
}
111109
}

0 commit comments

Comments
 (0)