JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsExpressionStatement { expression: JsBogusExpression { items: [ JsBogus { items: [ JsxOpeningFragment { l_angle_token: L_ANGLE@0..1 "<" [] [], r_angle_token: R_ANGLE@1..2 ">" [] [], }, JsxChildList [ JsxText { value_token: JSX_TEXT_LITERAL@2..6 "test" [] [], }, ], JsBogus { items: [ L_ANGLE@6..7 "<" [] [], SLASH@7..8 "/" [] [], JsxName { value_token: JSX_IDENT@8..12 "test" [] [], }, R_ANGLE@12..13 ">" [] [], ], }, ], }, ], }, semicolon_token: SEMICOLON@13..14 ";" [] [], }, JsExpressionStatement { expression: JsxTagExpression { tag: JsxFragment { opening_fragment: JsxOpeningFragment { l_angle_token: L_ANGLE@14..16 "<" [Newline("\n")] [], r_angle_token: R_ANGLE@16..17 ">" [] [], }, children: JsxChildList [ JsxText { value_token: JSX_TEXT_LITERAL@17..21 "test" [] [], }, JsxElement { opening_element: JsxOpeningElement { l_angle_token: L_ANGLE@21..22 "<" [] [], name: JsxName { value_token: JSX_IDENT@22..27 "inner" [] [], }, type_arguments: missing (optional), attributes: JsxAttributeList [], r_angle_token: R_ANGLE@27..28 ">" [] [], }, children: JsxChildList [ JsxText { value_token: JSX_TEXT_LITERAL@28..38 " some text" [] [], }, ], closing_element: JsxClosingElement { l_angle_token: L_ANGLE@38..39 "<" [] [], slash_token: SLASH@39..40 "/" [] [], name: JsxName { value_token: JSX_IDENT@40..45 "inner" [] [], }, r_angle_token: R_ANGLE@45..46 ">" [] [], }, }, JsxText { value_token: JSX_TEXT_LITERAL@46..48 ";\n" [] [], }, ], closing_fragment: JsxClosingFragment { l_angle_token: missing (required), slash_token: missing (required), r_angle_token: missing (required), }, }, }, semicolon_token: missing (optional), }, ], eof_token: EOF@48..48 "" [] [], } 0: JS_MODULE@0..48 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..48 0: JS_EXPRESSION_STATEMENT@0..14 0: JS_BOGUS_EXPRESSION@0..13 0: JS_BOGUS@0..13 0: JSX_OPENING_FRAGMENT@0..2 0: L_ANGLE@0..1 "<" [] [] 1: R_ANGLE@1..2 ">" [] [] 1: JSX_CHILD_LIST@2..6 0: JSX_TEXT@2..6 0: JSX_TEXT_LITERAL@2..6 "test" [] [] 2: JS_BOGUS@6..13 0: L_ANGLE@6..7 "<" [] [] 1: SLASH@7..8 "/" [] [] 2: JSX_NAME@8..12 0: JSX_IDENT@8..12 "test" [] [] 3: R_ANGLE@12..13 ">" [] [] 1: SEMICOLON@13..14 ";" [] [] 1: JS_EXPRESSION_STATEMENT@14..48 0: JSX_TAG_EXPRESSION@14..48 0: JSX_FRAGMENT@14..48 0: JSX_OPENING_FRAGMENT@14..17 0: L_ANGLE@14..16 "<" [Newline("\n")] [] 1: R_ANGLE@16..17 ">" [] [] 1: JSX_CHILD_LIST@17..48 0: JSX_TEXT@17..21 0: JSX_TEXT_LITERAL@17..21 "test" [] [] 1: JSX_ELEMENT@21..46 0: JSX_OPENING_ELEMENT@21..28 0: L_ANGLE@21..22 "<" [] [] 1: JSX_NAME@22..27 0: JSX_IDENT@22..27 "inner" [] [] 2: (empty) 3: JSX_ATTRIBUTE_LIST@27..27 4: R_ANGLE@27..28 ">" [] [] 1: JSX_CHILD_LIST@28..38 0: JSX_TEXT@28..38 0: JSX_TEXT_LITERAL@28..38 " some text" [] [] 2: JSX_CLOSING_ELEMENT@38..46 0: L_ANGLE@38..39 "<" [] [] 1: SLASH@39..40 "/" [] [] 2: JSX_NAME@40..45 0: JSX_IDENT@40..45 "inner" [] [] 3: R_ANGLE@45..46 ">" [] [] 2: JSX_TEXT@46..48 0: JSX_TEXT_LITERAL@46..48 ";\n" [] [] 2: JSX_CLOSING_FRAGMENT@48..48 0: (empty) 1: (empty) 2: (empty) 1: (empty) 4: EOF@48..48 "" [] [] -- jsx_missing_closing_fragment.jsx:1:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × JSX fragment has no corresponding closing tag. > 1 │ <>test; │ ^^ 2 │ <>test some text; 3 │ i Opening fragment > 1 │ <>test; │ ^^ 2 │ <>test some text; 3 │ i Closing tag > 1 │ <>test; │ ^^^^ 2 │ <>test some text; 3 │ -- jsx_missing_closing_fragment.jsx:3:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `<` but instead the file ends 1 │ <>test; 2 │ <>test some text; > 3 │ │ i the file ends here 1 │ <>test; 2 │ <>test some text; > 3 │ │ -- <>test; <>test some text;