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 [], closing_element: JsxClosingElement { l_angle_token: L_ANGLE@6..7 "<" [] [], slash_token: SLASH@7..8 "/" [] [], name: missing (required), r_angle_token: R_ANGLE@8..9 ">" [] [], }, }, }, semicolon_token: SEMICOLON@9..10 ";" [] [], }, JsExpressionStatement { expression: JsxTagExpression { tag: JsxElement { opening_element: JsxOpeningElement { l_angle_token: L_ANGLE@10..12 "<" [Newline("\n")] [], name: JsxName { value_token: JSX_IDENT@12..16 "test" [] [], }, type_arguments: missing (optional), attributes: JsxAttributeList [], r_angle_token: R_ANGLE@16..17 ">" [] [], }, children: JsxChildList [], closing_element: JsxClosingElement { l_angle_token: L_ANGLE@17..18 "<" [] [], slash_token: SLASH@18..19 "/" [] [], name: JsxName { value_token: JSX_IDENT@19..23 "text" [] [], }, r_angle_token: R_ANGLE@23..24 ">" [] [], }, }, }, semicolon_token: SEMICOLON@24..25 ";" [] [], }, JsExpressionStatement { expression: JsxTagExpression { tag: JsxElement { opening_element: JsxOpeningElement { l_angle_token: L_ANGLE@25..27 "<" [Newline("\n")] [], name: JsxName { value_token: JSX_IDENT@27..31 "some" [] [], }, type_arguments: missing (optional), attributes: JsxAttributeList [], r_angle_token: R_ANGLE@31..32 ">" [] [], }, children: JsxChildList [ JsxElement { opening_element: JsxOpeningElement { l_angle_token: L_ANGLE@32..33 "<" [] [], name: JsxName { value_token: JSX_IDENT@33..39 "nested" [] [], }, type_arguments: missing (optional), attributes: JsxAttributeList [], r_angle_token: R_ANGLE@39..40 ">" [] [], }, children: JsxChildList [], closing_element: JsxClosingElement { l_angle_token: L_ANGLE@40..41 "<" [] [], slash_token: SLASH@41..42 "/" [] [], name: JsxName { value_token: JSX_IDENT@42..46 "some" [] [], }, r_angle_token: R_ANGLE@46..47 ">" [] [], }, }, ], closing_element: JsxClosingElement { l_angle_token: L_ANGLE@47..48 "<" [] [], slash_token: SLASH@48..49 "/" [] [], name: JsxName { value_token: JSX_IDENT@49..55 "nested" [] [], }, r_angle_token: R_ANGLE@55..56 ">" [] [], }, }, }, semicolon_token: SEMICOLON@56..57 ";" [] [], }, JsExpressionStatement { expression: JsBogusExpression { items: [ JsBogus { items: [ JsxOpeningFragment { l_angle_token: L_ANGLE@57..59 "<" [Newline("\n")] [], r_angle_token: R_ANGLE@59..60 ">" [] [], }, JsBogus { items: [ JsBogus { items: [ JsBogus { items: [ L_ANGLE@60..61 "<" [] [], JsBogus { items: [ JsBogus { items: [ JS_NUMBER_LITERAL@61..62 "5" [] [], ], }, ], }, R_ANGLE@62..63 ">" [] [], ], }, JsxChildList [], JsxClosingElement { l_angle_token: L_ANGLE@63..64 "<" [] [], slash_token: SLASH@64..65 "/" [] [], name: JsxName { value_token: JSX_IDENT@65..69 "test" [] [], }, r_angle_token: R_ANGLE@69..70 ">" [] [], }, ], }, ], }, JsxClosingFragment { l_angle_token: L_ANGLE@70..71 "<" [] [], slash_token: SLASH@71..72 "/" [] [], r_angle_token: R_ANGLE@72..73 ">" [] [], }, ], }, ], }, semicolon_token: SEMICOLON@73..74 ";" [] [], }, ], eof_token: EOF@74..75 "" [Newline("\n")] [], } 0: JS_MODULE@0..75 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..74 0: JS_EXPRESSION_STATEMENT@0..10 0: JSX_TAG_EXPRESSION@0..9 0: JSX_ELEMENT@0..9 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..6 2: JSX_CLOSING_ELEMENT@6..9 0: L_ANGLE@6..7 "<" [] [] 1: SLASH@7..8 "/" [] [] 2: (empty) 3: R_ANGLE@8..9 ">" [] [] 1: SEMICOLON@9..10 ";" [] [] 1: JS_EXPRESSION_STATEMENT@10..25 0: JSX_TAG_EXPRESSION@10..24 0: JSX_ELEMENT@10..24 0: JSX_OPENING_ELEMENT@10..17 0: L_ANGLE@10..12 "<" [Newline("\n")] [] 1: JSX_NAME@12..16 0: JSX_IDENT@12..16 "test" [] [] 2: (empty) 3: JSX_ATTRIBUTE_LIST@16..16 4: R_ANGLE@16..17 ">" [] [] 1: JSX_CHILD_LIST@17..17 2: JSX_CLOSING_ELEMENT@17..24 0: L_ANGLE@17..18 "<" [] [] 1: SLASH@18..19 "/" [] [] 2: JSX_NAME@19..23 0: JSX_IDENT@19..23 "text" [] [] 3: R_ANGLE@23..24 ">" [] [] 1: SEMICOLON@24..25 ";" [] [] 2: JS_EXPRESSION_STATEMENT@25..57 0: JSX_TAG_EXPRESSION@25..56 0: JSX_ELEMENT@25..56 0: JSX_OPENING_ELEMENT@25..32 0: L_ANGLE@25..27 "<" [Newline("\n")] [] 1: JSX_NAME@27..31 0: JSX_IDENT@27..31 "some" [] [] 2: (empty) 3: JSX_ATTRIBUTE_LIST@31..31 4: R_ANGLE@31..32 ">" [] [] 1: JSX_CHILD_LIST@32..47 0: JSX_ELEMENT@32..47 0: JSX_OPENING_ELEMENT@32..40 0: L_ANGLE@32..33 "<" [] [] 1: JSX_NAME@33..39 0: JSX_IDENT@33..39 "nested" [] [] 2: (empty) 3: JSX_ATTRIBUTE_LIST@39..39 4: R_ANGLE@39..40 ">" [] [] 1: JSX_CHILD_LIST@40..40 2: JSX_CLOSING_ELEMENT@40..47 0: L_ANGLE@40..41 "<" [] [] 1: SLASH@41..42 "/" [] [] 2: JSX_NAME@42..46 0: JSX_IDENT@42..46 "some" [] [] 3: R_ANGLE@46..47 ">" [] [] 2: JSX_CLOSING_ELEMENT@47..56 0: L_ANGLE@47..48 "<" [] [] 1: SLASH@48..49 "/" [] [] 2: JSX_NAME@49..55 0: JSX_IDENT@49..55 "nested" [] [] 3: R_ANGLE@55..56 ">" [] [] 1: SEMICOLON@56..57 ";" [] [] 3: JS_EXPRESSION_STATEMENT@57..74 0: JS_BOGUS_EXPRESSION@57..73 0: JS_BOGUS@57..73 0: JSX_OPENING_FRAGMENT@57..60 0: L_ANGLE@57..59 "<" [Newline("\n")] [] 1: R_ANGLE@59..60 ">" [] [] 1: JS_BOGUS@60..70 0: JS_BOGUS@60..70 0: JS_BOGUS@60..63 0: L_ANGLE@60..61 "<" [] [] 1: JS_BOGUS@61..62 0: JS_BOGUS@61..62 0: JS_NUMBER_LITERAL@61..62 "5" [] [] 2: R_ANGLE@62..63 ">" [] [] 1: JSX_CHILD_LIST@63..63 2: JSX_CLOSING_ELEMENT@63..70 0: L_ANGLE@63..64 "<" [] [] 1: SLASH@64..65 "/" [] [] 2: JSX_NAME@65..69 0: JSX_IDENT@65..69 "test" [] [] 3: R_ANGLE@69..70 ">" [] [] 2: JSX_CLOSING_FRAGMENT@70..73 0: L_ANGLE@70..71 "<" [] [] 1: SLASH@71..72 "/" [] [] 2: R_ANGLE@72..73 ">" [] [] 1: SEMICOLON@73..74 ";" [] [] 4: EOF@74..75 "" [Newline("\n")] [] -- jsx_closing_element_mismatch.jsx:1:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected corresponding JSX closing tag for 'test'. > 1 │ ; │ ^^^^^^ 2 │ ; 3 │ ; i Opening tag > 1 │ ; │ ^^^^^^ 2 │ ; 3 │ ; i closing tag > 1 │ ; │ ^^^ 2 │ ; 3 │ ; -- jsx_closing_element_mismatch.jsx:2:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected corresponding JSX closing tag for 'test'. 1 │ ; > 2 │ ; │ ^^^^^^ 3 │ ; 4 │ <><5>; i Opening tag 1 │ ; > 2 │ ; │ ^^^^^^ 3 │ ; 4 │ <><5>; i closing tag 1 │ ; > 2 │ ; │ ^^^^^^^ 3 │ ; 4 │ <><5>; -- jsx_closing_element_mismatch.jsx:3:7 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected corresponding JSX closing tag for 'nested'. 1 │ ; 2 │ ; > 3 │ ; │ ^^^^^^^^ 4 │ <><5>; 5 │ i Opening tag 1 │ ; 2 │ ; > 3 │ ; │ ^^^^^^^^ 4 │ <><5>; 5 │ i closing tag 1 │ ; 2 │ ; > 3 │ ; │ ^^^^^^^ 4 │ <><5>; 5 │ -- jsx_closing_element_mismatch.jsx:3:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected corresponding JSX closing tag for 'some'. 1 │ ; 2 │ ; > 3 │ ; │ ^^^^^^ 4 │ <><5>; 5 │ i Opening tag 1 │ ; 2 │ ; > 3 │ ; │ ^^^^^^ 4 │ <><5>; 5 │ i closing tag 1 │ ; 2 │ ; > 3 │ ; │ ^^^^^^^^^ 4 │ <><5>; 5 │ -- jsx_closing_element_mismatch.jsx:4:4 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an identifier but instead found '5'. 2 │ ; 3 │ ; > 4 │ <><5>; │ ^ 5 │ i Expected an identifier here. 2 │ ; 3 │ ; > 4 │ <><5>; │ ^ 5 │ -- ; ; ; <><5>;