@@ -14853,6 +14853,7 @@ pub enum Pat {
14853
14853
SlicePat(SlicePat),
14854
14854
RangePat(RangePat),
14855
14855
LiteralPat(LiteralPat),
14856
+ MacroCall(MacroCall),
14856
14857
}
14857
14858
impl From<OrPat> for Pat {
14858
14859
fn from(node: OrPat) -> Pat {
@@ -14924,6 +14925,11 @@ impl From<LiteralPat> for Pat {
14924
14925
Pat::LiteralPat(node)
14925
14926
}
14926
14927
}
14928
+ impl From<MacroCall> for Pat {
14929
+ fn from(node: MacroCall) -> Pat {
14930
+ Pat::MacroCall(node)
14931
+ }
14932
+ }
14927
14933
impl std::fmt::Display for Pat {
14928
14934
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14929
14935
match self {
@@ -14941,15 +14947,16 @@ impl std::fmt::Display for Pat {
14941
14947
Pat::SlicePat(it) => std::fmt::Display::fmt(it, f),
14942
14948
Pat::RangePat(it) => std::fmt::Display::fmt(it, f),
14943
14949
Pat::LiteralPat(it) => std::fmt::Display::fmt(it, f),
14950
+ Pat::MacroCall(it) => std::fmt::Display::fmt(it, f),
14944
14951
}
14945
14952
}
14946
14953
}
14947
14954
impl AstNode for Pat {
14948
14955
fn can_cast(kind: SyntaxKind) -> bool {
14949
14956
match kind {
14950
- BIND_PAT | BOX_PAT | DOT_DOT_PAT | LITERAL_PAT | OR_PAT | PAREN_PAT | PATH_PAT
14951
- | PLACEHOLDER_PAT | RANGE_PAT | RECORD_PAT | REF_PAT | SLICE_PAT | TUPLE_PAT
14952
- | TUPLE_STRUCT_PAT => true,
14957
+ BIND_PAT | BOX_PAT | DOT_DOT_PAT | LITERAL_PAT | MACRO_CALL | OR_PAT | PAREN_PAT
14958
+ | PATH_PAT | PLACEHOLDER_PAT | RANGE_PAT | RECORD_PAT | REF_PAT | SLICE_PAT
14959
+ | TUPLE_PAT | TUPLE_STRUCT_PAT => true,
14953
14960
_ => false,
14954
14961
}
14955
14962
}
@@ -14974,6 +14981,7 @@ impl AstNode for Pat {
14974
14981
SLICE_PAT => SlicePat::cast_or_return(syntax).map(|x| Pat::SlicePat(x)),
14975
14982
RANGE_PAT => RangePat::cast_or_return(syntax).map(|x| Pat::RangePat(x)),
14976
14983
LITERAL_PAT => LiteralPat::cast_or_return(syntax).map(|x| Pat::LiteralPat(x)),
14984
+ MACRO_CALL => MacroCall::cast_or_return(syntax).map(|x| Pat::MacroCall(x)),
14977
14985
_ => Err(syntax),
14978
14986
}
14979
14987
}
@@ -14993,6 +15001,7 @@ impl AstNode for Pat {
14993
15001
Pat::SlicePat(it) => it.syntax(),
14994
15002
Pat::RangePat(it) => it.syntax(),
14995
15003
Pat::LiteralPat(it) => it.syntax(),
15004
+ Pat::MacroCall(it) => it.syntax(),
14996
15005
}
14997
15006
}
14998
15007
fn into_syntax(self) -> SyntaxNode {
@@ -15011,15 +15020,16 @@ impl AstNode for Pat {
15011
15020
Pat::SlicePat(it) => it.into_syntax(),
15012
15021
Pat::RangePat(it) => it.into_syntax(),
15013
15022
Pat::LiteralPat(it) => it.into_syntax(),
15023
+ Pat::MacroCall(it) => it.into_syntax(),
15014
15024
}
15015
15025
}
15016
15026
}
15017
15027
impl AstElement for Pat {
15018
15028
fn can_cast_element(kind: SyntaxKind) -> bool {
15019
15029
match kind {
15020
- BIND_PAT | BOX_PAT | DOT_DOT_PAT | LITERAL_PAT | OR_PAT | PAREN_PAT | PATH_PAT
15021
- | PLACEHOLDER_PAT | RANGE_PAT | RECORD_PAT | REF_PAT | SLICE_PAT | TUPLE_PAT
15022
- | TUPLE_STRUCT_PAT => true,
15030
+ BIND_PAT | BOX_PAT | DOT_DOT_PAT | LITERAL_PAT | MACRO_CALL | OR_PAT | PAREN_PAT
15031
+ | PATH_PAT | PLACEHOLDER_PAT | RANGE_PAT | RECORD_PAT | REF_PAT | SLICE_PAT
15032
+ | TUPLE_PAT | TUPLE_STRUCT_PAT => true,
15023
15033
_ => false,
15024
15034
}
15025
15035
}
@@ -15044,6 +15054,7 @@ impl AstElement for Pat {
15044
15054
SLICE_PAT => SlicePat::cast_or_return_element(syntax).map(|x| Pat::SlicePat(x)),
15045
15055
RANGE_PAT => RangePat::cast_or_return_element(syntax).map(|x| Pat::RangePat(x)),
15046
15056
LITERAL_PAT => LiteralPat::cast_or_return_element(syntax).map(|x| Pat::LiteralPat(x)),
15057
+ MACRO_CALL => MacroCall::cast_or_return_element(syntax).map(|x| Pat::MacroCall(x)),
15047
15058
_ => Err(syntax),
15048
15059
}
15049
15060
}
@@ -15063,6 +15074,7 @@ impl AstElement for Pat {
15063
15074
Pat::SlicePat(it) => it.syntax_element(),
15064
15075
Pat::RangePat(it) => it.syntax_element(),
15065
15076
Pat::LiteralPat(it) => it.syntax_element(),
15077
+ Pat::MacroCall(it) => it.syntax_element(),
15066
15078
}
15067
15079
}
15068
15080
fn into_syntax_element(self) -> SyntaxElement {
@@ -15081,6 +15093,7 @@ impl AstElement for Pat {
15081
15093
Pat::SlicePat(it) => it.into_syntax_element(),
15082
15094
Pat::RangePat(it) => it.into_syntax_element(),
15083
15095
Pat::LiteralPat(it) => it.into_syntax_element(),
15096
+ Pat::MacroCall(it) => it.into_syntax_element(),
15084
15097
}
15085
15098
}
15086
15099
}
0 commit comments