mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-11-25 13:23:58 +00:00
Support if let match guards
This commit is contained in:
parent
4466e07fd7
commit
d568e7686a
10 changed files with 90 additions and 27 deletions
|
|
@ -1021,6 +1021,9 @@ pub struct MatchGuard {
|
|||
}
|
||||
impl MatchGuard {
|
||||
pub fn if_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![if]) }
|
||||
pub fn let_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![let]) }
|
||||
pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) }
|
||||
pub fn eq_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![=]) }
|
||||
pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
|
||||
}
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
SOURCE_FILE@0..58
|
||||
FN@0..57
|
||||
SOURCE_FILE@0..92
|
||||
FN@0..91
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
|
|
@ -8,17 +8,17 @@ SOURCE_FILE@0..58
|
|||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..57
|
||||
BLOCK_EXPR@9..91
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
MATCH_EXPR@15..55
|
||||
MATCH_EXPR@15..89
|
||||
MATCH_KW@15..20 "match"
|
||||
WHITESPACE@20..21 " "
|
||||
TUPLE_EXPR@21..23
|
||||
L_PAREN@21..22 "("
|
||||
R_PAREN@22..23 ")"
|
||||
WHITESPACE@23..24 " "
|
||||
MATCH_ARM_LIST@24..55
|
||||
MATCH_ARM_LIST@24..89
|
||||
L_CURLY@24..25 "{"
|
||||
WHITESPACE@25..34 "\n "
|
||||
MATCH_ARM@34..49
|
||||
|
|
@ -40,8 +40,36 @@ SOURCE_FILE@0..58
|
|||
L_PAREN@46..47 "("
|
||||
R_PAREN@47..48 ")"
|
||||
COMMA@48..49 ","
|
||||
WHITESPACE@49..54 "\n "
|
||||
R_CURLY@54..55 "}"
|
||||
WHITESPACE@55..56 "\n"
|
||||
R_CURLY@56..57 "}"
|
||||
WHITESPACE@57..58 "\n"
|
||||
WHITESPACE@49..58 "\n "
|
||||
MATCH_ARM@58..83
|
||||
WILDCARD_PAT@58..59
|
||||
UNDERSCORE@58..59 "_"
|
||||
WHITESPACE@59..60 " "
|
||||
MATCH_GUARD@60..76
|
||||
IF_KW@60..62 "if"
|
||||
WHITESPACE@62..63 " "
|
||||
LET_KW@63..66 "let"
|
||||
WHITESPACE@66..67 " "
|
||||
IDENT_PAT@67..70
|
||||
NAME@67..70
|
||||
IDENT@67..70 "foo"
|
||||
WHITESPACE@70..71 " "
|
||||
EQ@71..72 "="
|
||||
WHITESPACE@72..73 " "
|
||||
PATH_EXPR@73..76
|
||||
PATH@73..76
|
||||
PATH_SEGMENT@73..76
|
||||
NAME_REF@73..76
|
||||
IDENT@73..76 "bar"
|
||||
WHITESPACE@76..77 " "
|
||||
FAT_ARROW@77..79 "=>"
|
||||
WHITESPACE@79..80 " "
|
||||
TUPLE_EXPR@80..82
|
||||
L_PAREN@80..81 "("
|
||||
R_PAREN@81..82 ")"
|
||||
COMMA@82..83 ","
|
||||
WHITESPACE@83..88 "\n "
|
||||
R_CURLY@88..89 "}"
|
||||
WHITESPACE@89..90 "\n"
|
||||
R_CURLY@90..91 "}"
|
||||
WHITESPACE@91..92 "\n"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
fn foo() {
|
||||
match () {
|
||||
_ if foo => (),
|
||||
_ if let foo = bar => (),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue