Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e93ffde

Browse files
kdy1magic-akari
andauthored
refactor(es/ast): Cherry-pick #10763 (#11182)
**Description:** See: #10763 **Related issue:** - Closes #10584 Co-authored-by: magic-akari <[email protected]>
1 parent 02ede4e commit e93ffde

File tree

15 files changed

+39
-74
lines changed

15 files changed

+39
-74
lines changed

bindings/binding_core_wasm/src/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1734,7 +1734,7 @@ export interface JSXAttribute extends Node, HasSpan {
17341734
export type JSXAttributeName = Identifier | JSXNamespacedName;
17351735
17361736
export type JSXAttrValue =
1737-
| Literal
1737+
| StringLiteral
17381738
| JSXExpressionContainer
17391739
| JSXElement
17401740
| JSXFragment;

bindings/binding_minifier_wasm/src/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1735,7 +1735,7 @@ export interface JSXAttribute extends Node, HasSpan {
17351735
export type JSXAttributeName = Identifier | JSXNamespacedName;
17361736
17371737
export type JSXAttrValue =
1738-
| Literal
1738+
| StringLiteral
17391739
| JSXExpressionContainer
17401740
| JSXElement
17411741
| JSXFragment;

crates/swc_ecma_ast/src/jsx.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ use swc_common::{ast_node, util::take::Take, EqIgnoreSpan, Span, DUMMY_SP};
55
use crate::{
66
expr::{Expr, SpreadElement},
77
ident::Ident,
8-
lit::Lit,
98
typescript::TsTypeParamInstantiation,
10-
IdentName,
9+
IdentName, Str,
1110
};
1211

1312
/// Used for `obj` property of `JSXMemberExpr`.
@@ -190,12 +189,7 @@ pub enum JSXAttrName {
190189
#[cfg_attr(feature = "shrink-to-fit", derive(shrink_to_fit::ShrinkToFit))]
191190
pub enum JSXAttrValue {
192191
#[tag("StringLiteral")]
193-
#[tag("BooleanLiteral")]
194-
#[tag("NullLiteral")]
195-
#[tag("NumericLiteral")]
196-
#[tag("RegExpLiteral")]
197-
#[tag("JSXText")]
198-
Lit(Lit),
192+
Str(Str),
199193

200194
#[tag("JSXExpressionContainer")]
201195
JSXExprContainer(JSXExprContainer),

crates/swc_ecma_ast/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -588,10 +588,10 @@ mod rkyv_layout_assert {
588588
assert_size!(ArchivedPrivateName, 16);
589589

590590
// JSX types
591-
assert_size!(ArchivedJSXAttr, 112);
591+
assert_size!(ArchivedJSXAttr, 92);
592592
assert_size!(ArchivedJSXAttrName, 44);
593-
assert_size!(ArchivedJSXAttrOrSpread, 120);
594-
assert_size!(ArchivedJSXAttrValue, 48);
593+
assert_size!(ArchivedJSXAttrOrSpread, 96);
594+
assert_size!(ArchivedJSXAttrValue, 36);
595595
assert_size!(ArchivedJSXClosingElement, 64);
596596
assert_size!(ArchivedJSXClosingFragment, 8);
597597
assert_size!(ArchivedJSXElement, 168);

crates/swc_ecma_ast/src/typescript.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -974,15 +974,6 @@ pub enum TsEnumMemberId {
974974
Str(Str),
975975
}
976976

977-
// impl AsRef<Atom> for TsEnumMemberId {
978-
// fn as_ref(&self) -> &Atom {
979-
// match &self {
980-
// TsEnumMemberId::Str(Str { value: ref sym, .. })
981-
// | TsEnumMemberId::Ident(Ident { ref sym, .. }) => sym,
982-
// }
983-
// }
984-
// }
985-
986977
#[ast_node("TsModuleDeclaration")]
987978
#[derive(Eq, Hash, EqIgnoreSpan)]
988979
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]

crates/swc_ecma_codegen/src/jsx.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ impl MacroNode for JSXAttr {
8989
impl MacroNode for JSXAttrValue {
9090
fn emit(&mut self, emitter: &mut Macro) -> Result {
9191
match *self {
92-
JSXAttrValue::Lit(ref n) => emit!(n),
92+
JSXAttrValue::Str(ref n) => emit!(n),
9393
JSXAttrValue::JSXExprContainer(ref n) => emit!(n),
9494
JSXAttrValue::JSXElement(ref n) => emit!(n),
9595
JSXAttrValue::JSXFragment(ref n) => emit!(n),

crates/swc_ecma_lexer/src/common/parser/jsx.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ fn parse_jsx_attr_value<'a, P: Parser<'a>>(p: &mut P) -> PResult<JSXAttrValue> {
170170
let node = parse_jsx_expr_container(p)?;
171171
jsx_expr_container_to_jsx_attr_value(p, start, node)
172172
} else if cur.is_str() {
173-
Ok(JSXAttrValue::Lit(Lit::Str(parse_str_lit(p))))
173+
Ok(JSXAttrValue::Str(parse_str_lit(p)))
174174
} else if cur.is_jsx_tag_start() {
175175
let expr = parse_jsx_element(p)?;
176176
match expr {

crates/swc_ecma_parser/src/parser/jsx/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ impl<I: Tokens> Parser<I> {
254254
match cur.token {
255255
Token::Str => {
256256
let value = parse_str_lit(self);
257-
Ok(Some(JSXAttrValue::Lit(Lit::Str(value))))
257+
Ok(Some(JSXAttrValue::Str(value)))
258258
}
259259
Token::LBrace => {
260260
let start = self.cur_pos();
@@ -503,11 +503,11 @@ mod tests {
503503
attrs: vec![JSXAttrOrSpread::JSXAttr(JSXAttr {
504504
span,
505505
name: JSXAttrName::Ident(IdentName::new(atom!("id"), span)),
506-
value: Some(JSXAttrValue::Lit(Lit::Str(Str {
506+
value: Some(JSXAttrValue::Str(Str {
507507
span,
508508
value: atom!("w < w").into(),
509509
raw: Some(atom!("\"w &lt; w\"")),
510-
}))),
510+
})),
511511
})],
512512
name: JSXElementName::Ident(Ident::new_no_ctxt(atom!("div"), span)),
513513
self_closing: true,

crates/swc_ecma_quote_macros/src/ast/expr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ impl_struct!(JSXAttr, [span, name, value]);
145145

146146
impl_enum!(
147147
JSXAttrValue,
148-
[Lit, JSXExprContainer, JSXElement, JSXFragment]
148+
[Str, JSXExprContainer, JSXElement, JSXFragment]
149149
);
150150

151151
impl_enum!(JSXAttrName, [Ident, JSXNamespacedName]);

crates/swc_ecma_transforms_react/src/jsx/mod.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,7 +1006,7 @@ where
10061006
let value = a
10071007
.value
10081008
.map(|v| match v {
1009-
JSXAttrValue::Lit(Lit::Str(s)) => {
1009+
JSXAttrValue::Str(s) => {
10101010
let value = transform_jsx_attr_str(&s.value);
10111011

10121012
Lit::Str(Str {
@@ -1022,7 +1022,6 @@ where
10221022
}) => e,
10231023
JSXAttrValue::JSXElement(element) => Box::new(self.jsx_elem_to_expr(*element)),
10241024
JSXAttrValue::JSXFragment(fragment) => Box::new(self.jsx_frag_to_expr(fragment)),
1025-
JSXAttrValue::Lit(lit) => Box::new(lit.into()),
10261025
JSXAttrValue::JSXExprContainer(JSXExprContainer {
10271026
span: _,
10281027
expr: JSXExpr::JSXEmptyExpr(_),
@@ -1588,7 +1587,7 @@ fn add_line_of_jsx_text<'a>(
15881587

15891588
fn jsx_attr_value_to_expr(v: JSXAttrValue) -> Option<Box<Expr>> {
15901589
Some(match v {
1591-
JSXAttrValue::Lit(Lit::Str(s)) => {
1590+
JSXAttrValue::Str(s) => {
15921591
let value = transform_jsx_attr_str(&s.value);
15931592

15941593
Lit::Str(Str {
@@ -1598,7 +1597,6 @@ fn jsx_attr_value_to_expr(v: JSXAttrValue) -> Option<Box<Expr>> {
15981597
})
15991598
.into()
16001599
}
1601-
JSXAttrValue::Lit(lit) => Box::new(lit.into()),
16021600
JSXAttrValue::JSXExprContainer(e) => match e.expr {
16031601
JSXExpr::JSXEmptyExpr(_) => None?,
16041602
JSXExpr::Expr(e) => e,

0 commit comments

Comments
 (0)