more matches! sites

This commit is contained in:
Kartavya Vashishtha 2022-08-07 17:37:50 +05:30
parent 70255029cf
commit a3fc4dbb04
No known key found for this signature in database
GPG key ID: A50012C2324E5DF0

View file

@ -169,10 +169,7 @@ fn generate_nodes(kinds: KindsSrc<'_>, grammar: &AstSrc) -> String {
quote! { quote! {
impl AstNode for #name { impl AstNode for #name {
fn can_cast(kind: SyntaxKind) -> bool { fn can_cast(kind: SyntaxKind) -> bool {
match kind { matches!(kind, #(#kinds)|*)
#(#kinds)|* => true,
_ => false,
}
} }
fn cast(syntax: SyntaxNode) -> Option<Self> { fn cast(syntax: SyntaxNode) -> Option<Self> {
let res = match syntax.kind() { let res = match syntax.kind() {
@ -253,10 +250,7 @@ fn generate_nodes(kinds: KindsSrc<'_>, grammar: &AstSrc) -> String {
} }
impl AstNode for #name { impl AstNode for #name {
fn can_cast(kind: SyntaxKind) -> bool { fn can_cast(kind: SyntaxKind) -> bool {
match kind { matches!(kind, #(#kinds)|*)
#(#kinds)|* => true,
_ => false,
}
} }
fn cast(syntax: SyntaxNode) -> Option<Self> { fn cast(syntax: SyntaxNode) -> Option<Self> {
Self::can_cast(syntax.kind()).then(|| #name { syntax }) Self::can_cast(syntax.kind()).then(|| #name { syntax })