Visit jsx_element in ast visitor and add to astkind (#524)

This commit is contained in:
u9g 2023-07-07 00:36:52 -04:00 committed by GitHub
parent ff37424d66
commit 6614b46f26
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 1 deletions

View file

@ -105,6 +105,7 @@ pub enum AstKind<'a> {
// JSX
// Please make sure to add these to `is_jsx` below.
JSXElement(&'a JSXElement<'a>),
JSXOpeningElement(&'a JSXOpeningElement<'a>),
JSXElementName(&'a JSXElementName<'a>),
@ -220,7 +221,7 @@ impl<'a> AstKind<'a> {
}
pub fn is_jsx(self) -> bool {
matches!(self, Self::JSXOpeningElement(_) | Self::JSXElementName(_))
matches!(self, Self::JSXElement(_) | Self::JSXOpeningElement(_) | Self::JSXElementName(_))
}
}
@ -327,6 +328,7 @@ impl<'a> GetSpan for AstKind<'a> {
Self::JSXOpeningElement(x) => x.span,
Self::JSXElementName(x) => x.span(),
Self::JSXElement(x) => x.span,
Self::TSModuleBlock(x) => x.span,

View file

@ -911,10 +911,13 @@ pub trait Visit<'a>: Sized {
/* ---------- Expression ---------- */
fn visit_jsx_element(&mut self, elem: &'a JSXElement<'a>) {
let kind = AstKind::JSXElement(elem);
self.enter_node(kind);
self.visit_jsx_opening_element(&elem.opening_element);
for child in &elem.children {
self.visit_jsx_child(child);
}
self.leave_node(kind);
}
fn visit_jsx_opening_element(&mut self, elem: &'a JSXOpeningElement<'a>) {