Skip to content

Commit 83e97ad

Browse files
committed
Simplify
1 parent b36f12d commit 83e97ad

File tree

2 files changed

+9
-110
lines changed

2 files changed

+9
-110
lines changed

crates/syntax/src/ast/generated/nodes.rs

Lines changed: 8 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -3618,10 +3618,7 @@ impl AstNode for DynArgListOwner {
36183618
}
36193619
}
36203620
fn cast(syntax: SyntaxNode) -> Option<Self> {
3621-
match syntax.kind() {
3622-
CALL_EXPR | METHOD_CALL_EXPR => Some(DynArgListOwner { syntax }),
3623-
_ => None,
3624-
}
3621+
Self::can_cast(syntax.kind()).then(|| DynArgListOwner { syntax })
36253622
}
36263623
fn syntax(&self) -> &SyntaxNode { &self.syntax }
36273624
}
@@ -3703,74 +3700,7 @@ impl AstNode for DynAttrsOwner {
37033700
}
37043701
}
37053702
fn cast(syntax: SyntaxNode) -> Option<Self> {
3706-
match syntax.kind() {
3707-
MACRO_CALL
3708-
| SOURCE_FILE
3709-
| CONST
3710-
| ENUM
3711-
| EXTERN_BLOCK
3712-
| EXTERN_CRATE
3713-
| FN
3714-
| IMPL
3715-
| MACRO_RULES
3716-
| MACRO_DEF
3717-
| MODULE
3718-
| STATIC
3719-
| STRUCT
3720-
| TRAIT
3721-
| TYPE_ALIAS
3722-
| UNION
3723-
| USE
3724-
| ITEM_LIST
3725-
| BLOCK_EXPR
3726-
| SELF_PARAM
3727-
| PARAM
3728-
| RECORD_FIELD
3729-
| TUPLE_FIELD
3730-
| VARIANT
3731-
| ASSOC_ITEM_LIST
3732-
| EXTERN_ITEM_LIST
3733-
| CONST_PARAM
3734-
| LIFETIME_PARAM
3735-
| TYPE_PARAM
3736-
| EXPR_STMT
3737-
| LET_STMT
3738-
| ARRAY_EXPR
3739-
| AWAIT_EXPR
3740-
| BIN_EXPR
3741-
| BOX_EXPR
3742-
| BREAK_EXPR
3743-
| CALL_EXPR
3744-
| CAST_EXPR
3745-
| CLOSURE_EXPR
3746-
| CONTINUE_EXPR
3747-
| EFFECT_EXPR
3748-
| FIELD_EXPR
3749-
| FOR_EXPR
3750-
| IF_EXPR
3751-
| INDEX_EXPR
3752-
| LITERAL
3753-
| LOOP_EXPR
3754-
| MATCH_EXPR
3755-
| METHOD_CALL_EXPR
3756-
| PAREN_EXPR
3757-
| PATH_EXPR
3758-
| PREFIX_EXPR
3759-
| RANGE_EXPR
3760-
| REF_EXPR
3761-
| RETURN_EXPR
3762-
| TRY_EXPR
3763-
| TUPLE_EXPR
3764-
| WHILE_EXPR
3765-
| YIELD_EXPR
3766-
| RECORD_EXPR_FIELD_LIST
3767-
| RECORD_EXPR_FIELD
3768-
| MATCH_ARM_LIST
3769-
| MATCH_ARM
3770-
| IDENT_PAT
3771-
| RECORD_PAT_FIELD => Some(DynAttrsOwner { syntax }),
3772-
_ => None,
3773-
}
3703+
Self::can_cast(syntax.kind()).then(|| DynAttrsOwner { syntax })
37743704
}
37753705
fn syntax(&self) -> &SyntaxNode { &self.syntax }
37763706
}
@@ -3788,12 +3718,7 @@ impl AstNode for DynGenericParamsOwner {
37883718
}
37893719
}
37903720
fn cast(syntax: SyntaxNode) -> Option<Self> {
3791-
match syntax.kind() {
3792-
ENUM | FN | IMPL | STRUCT | TRAIT | TYPE_ALIAS | UNION => {
3793-
Some(DynGenericParamsOwner { syntax })
3794-
}
3795-
_ => None,
3796-
}
3721+
Self::can_cast(syntax.kind()).then(|| DynGenericParamsOwner { syntax })
37973722
}
37983723
fn syntax(&self) -> &SyntaxNode { &self.syntax }
37993724
}
@@ -3811,10 +3736,7 @@ impl AstNode for DynLoopBodyOwner {
38113736
}
38123737
}
38133738
fn cast(syntax: SyntaxNode) -> Option<Self> {
3814-
match syntax.kind() {
3815-
FOR_EXPR | LOOP_EXPR | WHILE_EXPR => Some(DynLoopBodyOwner { syntax }),
3816-
_ => None,
3817-
}
3739+
Self::can_cast(syntax.kind()).then(|| DynLoopBodyOwner { syntax })
38183740
}
38193741
fn syntax(&self) -> &SyntaxNode { &self.syntax }
38203742
}
@@ -3832,10 +3754,7 @@ impl AstNode for DynModuleItemOwner {
38323754
}
38333755
}
38343756
fn cast(syntax: SyntaxNode) -> Option<Self> {
3835-
match syntax.kind() {
3836-
MACRO_ITEMS | SOURCE_FILE | ITEM_LIST => Some(DynModuleItemOwner { syntax }),
3837-
_ => None,
3838-
}
3757+
Self::can_cast(syntax.kind()).then(|| DynModuleItemOwner { syntax })
38393758
}
38403759
fn syntax(&self) -> &SyntaxNode { &self.syntax }
38413760
}
@@ -3855,12 +3774,7 @@ impl AstNode for DynNameOwner {
38553774
}
38563775
}
38573776
fn cast(syntax: SyntaxNode) -> Option<Self> {
3858-
match syntax.kind() {
3859-
CONST | ENUM | FN | MACRO_RULES | MACRO_DEF | MODULE | STATIC | STRUCT | TRAIT
3860-
| TYPE_ALIAS | UNION | RENAME | SELF_PARAM | RECORD_FIELD | VARIANT | CONST_PARAM
3861-
| TYPE_PARAM | IDENT_PAT => Some(DynNameOwner { syntax }),
3862-
_ => None,
3863-
}
3777+
Self::can_cast(syntax.kind()).then(|| DynNameOwner { syntax })
38643778
}
38653779
fn syntax(&self) -> &SyntaxNode { &self.syntax }
38663780
}
@@ -3878,12 +3792,7 @@ impl AstNode for DynTypeBoundsOwner {
38783792
}
38793793
}
38803794
fn cast(syntax: SyntaxNode) -> Option<Self> {
3881-
match syntax.kind() {
3882-
ASSOC_TYPE_ARG | TRAIT | TYPE_ALIAS | LIFETIME_PARAM | TYPE_PARAM | WHERE_PRED => {
3883-
Some(DynTypeBoundsOwner { syntax })
3884-
}
3885-
_ => None,
3886-
}
3795+
Self::can_cast(syntax.kind()).then(|| DynTypeBoundsOwner { syntax })
38873796
}
38883797
fn syntax(&self) -> &SyntaxNode { &self.syntax }
38893798
}
@@ -3904,13 +3813,7 @@ impl AstNode for DynVisibilityOwner {
39043813
}
39053814
}
39063815
fn cast(syntax: SyntaxNode) -> Option<Self> {
3907-
match syntax.kind() {
3908-
CONST | ENUM | EXTERN_CRATE | FN | IMPL | MACRO_RULES | MACRO_DEF | MODULE | STATIC
3909-
| STRUCT | TRAIT | TYPE_ALIAS | UNION | USE | RECORD_FIELD | TUPLE_FIELD | VARIANT => {
3910-
Some(DynVisibilityOwner { syntax })
3911-
}
3912-
_ => None,
3913-
}
3816+
Self::can_cast(syntax.kind()).then(|| DynVisibilityOwner { syntax })
39143817
}
39153818
fn syntax(&self) -> &SyntaxNode { &self.syntax }
39163819
}

crates/syntax/src/tests/sourcegen_ast.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -250,11 +250,7 @@ fn generate_nodes(kinds: KindsSrc<'_>, grammar: &AstSrc) -> String {
250250
}
251251
}
252252
fn cast(syntax: SyntaxNode) -> Option<Self> {
253-
match syntax.kind() {
254-
#(#kinds)|* => Some(#name { syntax }),
255-
_ => None,
256-
}
257-
253+
Self::can_cast(syntax.kind()).then(|| #name { syntax })
258254
}
259255
fn syntax(&self) -> &SyntaxNode {
260256
&self.syntax

0 commit comments

Comments
 (0)