JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsExpressionStatement {
expression: JsxTagExpression {
tag: JsxElement {
opening_element: JsxOpeningElement {
l_angle_token: L_ANGLE@0..1 "<" [] [],
name: JsxName {
value_token: JSX_IDENT@1..5 "test" [] [],
},
type_arguments: missing (optional),
attributes: JsxAttributeList [],
r_angle_token: R_ANGLE@5..6 ">" [] [],
},
children: JsxChildList [
JsxSpreadChild {
l_curly_token: L_CURLY@6..7 "{" [] [],
dotdotdot_token: DOT3@7..10 "..." [] [],
expression: missing (required),
r_curly_token: R_CURLY@10..11 "}" [] [],
},
],
closing_element: JsxClosingElement {
l_angle_token: L_ANGLE@11..12 "<" [] [],
slash_token: SLASH@12..13 "/" [] [],
name: JsxName {
value_token: JSX_IDENT@13..17 "test" [] [],
},
r_angle_token: R_ANGLE@17..18 ">" [] [],
},
},
},
semicolon_token: missing (optional),
},
],
eof_token: EOF@18..19 "" [Newline("\n")] [],
}
0: JS_MODULE@0..19
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..18
0: JS_EXPRESSION_STATEMENT@0..18
0: JSX_TAG_EXPRESSION@0..18
0: JSX_ELEMENT@0..18
0: JSX_OPENING_ELEMENT@0..6
0: L_ANGLE@0..1 "<" [] []
1: JSX_NAME@1..5
0: JSX_IDENT@1..5 "test" [] []
2: (empty)
3: JSX_ATTRIBUTE_LIST@5..5
4: R_ANGLE@5..6 ">" [] []
1: JSX_CHILD_LIST@6..11
0: JSX_SPREAD_CHILD@6..11
0: L_CURLY@6..7 "{" [] []
1: DOT3@7..10 "..." [] []
2: (empty)
3: R_CURLY@10..11 "}" [] []
2: JSX_CLOSING_ELEMENT@11..18
0: L_ANGLE@11..12 "<" [] []
1: SLASH@12..13 "/" [] []
2: JSX_NAME@13..17
0: JSX_IDENT@13..17 "test" [] []
3: R_ANGLE@17..18 ">" [] []
1: (empty)
4: EOF@18..19 "" [Newline("\n")] []
--
jsx_spread_no_expression.jsx:1:11 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Expected an expression but instead found '}'.
> 1 │ {...}
│ ^
2 │
i Expected an expression here.
> 1 │ {...}
│ ^
2 │
--
{...}