JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsBogusAssignment {
items: [
PLUS2@0..2 "++" [] [],
JsIdentifierAssignment {
name_token: IDENT@2..4 "a" [] [Whitespace(" ")],
},
],
},
operator_token: EQ@4..6 "=" [] [Whitespace(" ")],
right: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@6..7 "b" [] [],
},
},
},
semicolon_token: SEMICOLON@7..8 ";" [] [],
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsParenthesizedAssignment {
l_paren_token: L_PAREN@8..10 "(" [Newline("\n")] [],
assignment: JsBogusAssignment {
items: [
PLUS2@10..12 "++" [] [],
JsIdentifierAssignment {
name_token: IDENT@12..13 "a" [] [],
},
],
},
r_paren_token: R_PAREN@13..15 ")" [] [Whitespace(" ")],
},
operator_token: EQ@15..17 "=" [] [Whitespace(" ")],
right: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@17..18 "b" [] [],
},
},
},
semicolon_token: SEMICOLON@18..19 ";" [] [],
},
JsExpressionStatement {
expression: JsParenthesizedExpression {
l_paren_token: L_PAREN@19..21 "(" [Newline("\n")] [],
expression: JsAssignmentExpression {
left: JsIdentifierAssignment {
name_token: IDENT@21..23 "a" [] [Whitespace(" ")],
},
operator_token: EQ@23..25 "=" [] [Whitespace(" ")],
right: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@25..26 "b" [] [],
},
},
},
r_paren_token: missing (required),
},
semicolon_token: SEMICOLON@26..27 ";" [] [],
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsBogusAssignment {
items: [
JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@27..29 "a" [Newline("\n")] [],
},
},
QUESTIONDOT@29..31 "?." [] [],
JsName {
value_token: IDENT@31..33 "b" [] [Whitespace(" ")],
},
],
},
operator_token: EQ@33..35 "=" [] [Whitespace(" ")],
right: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@35..36 "b" [] [],
},
},
},
semicolon_token: SEMICOLON@36..37 ";" [] [],
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsBogusAssignment {
items: [
JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@37..39 "a" [Newline("\n")] [],
},
},
QUESTIONDOT@39..41 "?." [] [],
L_BRACK@41..42 "[" [] [],
JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@42..45 "\"b\"" [] [],
},
R_BRACK@45..47 "]" [] [Whitespace(" ")],
],
},
operator_token: EQ@47..49 "=" [] [Whitespace(" ")],
right: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@49..50 "b" [] [],
},
},
},
semicolon_token: SEMICOLON@50..51 ";" [] [],
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsParenthesizedAssignment {
l_paren_token: L_PAREN@51..53 "(" [Newline("\n")] [],
assignment: JsBogusAssignment {
items: [
JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@53..55 "a" [] [Whitespace(" ")],
},
},
PLUS@55..56 "+" [] [],
],
},
r_paren_token: R_PAREN@56..58 ")" [] [Whitespace(" ")],
},
operator_token: EQ@58..60 "=" [] [Whitespace(" ")],
right: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@60..61 "b" [] [],
},
},
},
semicolon_token: SEMICOLON@61..62 ";" [] [],
},
],
eof_token: EOF@62..63 "" [Newline("\n")] [],
}
0: JS_MODULE@0..63
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..62
0: JS_EXPRESSION_STATEMENT@0..8
0: JS_ASSIGNMENT_EXPRESSION@0..7
0: JS_BOGUS_ASSIGNMENT@0..4
0: PLUS2@0..2 "++" [] []
1: JS_IDENTIFIER_ASSIGNMENT@2..4
0: IDENT@2..4 "a" [] [Whitespace(" ")]
1: EQ@4..6 "=" [] [Whitespace(" ")]
2: JS_IDENTIFIER_EXPRESSION@6..7
0: JS_REFERENCE_IDENTIFIER@6..7
0: IDENT@6..7 "b" [] []
1: SEMICOLON@7..8 ";" [] []
1: JS_EXPRESSION_STATEMENT@8..19
0: JS_ASSIGNMENT_EXPRESSION@8..18
0: JS_PARENTHESIZED_ASSIGNMENT@8..15
0: L_PAREN@8..10 "(" [Newline("\n")] []
1: JS_BOGUS_ASSIGNMENT@10..13
0: PLUS2@10..12 "++" [] []
1: JS_IDENTIFIER_ASSIGNMENT@12..13
0: IDENT@12..13 "a" [] []
2: R_PAREN@13..15 ")" [] [Whitespace(" ")]
1: EQ@15..17 "=" [] [Whitespace(" ")]
2: JS_IDENTIFIER_EXPRESSION@17..18
0: JS_REFERENCE_IDENTIFIER@17..18
0: IDENT@17..18 "b" [] []
1: SEMICOLON@18..19 ";" [] []
2: JS_EXPRESSION_STATEMENT@19..27
0: JS_PARENTHESIZED_EXPRESSION@19..26
0: L_PAREN@19..21 "(" [Newline("\n")] []
1: JS_ASSIGNMENT_EXPRESSION@21..26
0: JS_IDENTIFIER_ASSIGNMENT@21..23
0: IDENT@21..23 "a" [] [Whitespace(" ")]
1: EQ@23..25 "=" [] [Whitespace(" ")]
2: JS_IDENTIFIER_EXPRESSION@25..26
0: JS_REFERENCE_IDENTIFIER@25..26
0: IDENT@25..26 "b" [] []
2: (empty)
1: SEMICOLON@26..27 ";" [] []
3: JS_EXPRESSION_STATEMENT@27..37
0: JS_ASSIGNMENT_EXPRESSION@27..36
0: JS_BOGUS_ASSIGNMENT@27..33
0: JS_IDENTIFIER_EXPRESSION@27..29
0: JS_REFERENCE_IDENTIFIER@27..29
0: IDENT@27..29 "a" [Newline("\n")] []
1: QUESTIONDOT@29..31 "?." [] []
2: JS_NAME@31..33
0: IDENT@31..33 "b" [] [Whitespace(" ")]
1: EQ@33..35 "=" [] [Whitespace(" ")]
2: JS_IDENTIFIER_EXPRESSION@35..36
0: JS_REFERENCE_IDENTIFIER@35..36
0: IDENT@35..36 "b" [] []
1: SEMICOLON@36..37 ";" [] []
4: JS_EXPRESSION_STATEMENT@37..51
0: JS_ASSIGNMENT_EXPRESSION@37..50
0: JS_BOGUS_ASSIGNMENT@37..47
0: JS_IDENTIFIER_EXPRESSION@37..39
0: JS_REFERENCE_IDENTIFIER@37..39
0: IDENT@37..39 "a" [Newline("\n")] []
1: QUESTIONDOT@39..41 "?." [] []
2: L_BRACK@41..42 "[" [] []
3: JS_STRING_LITERAL_EXPRESSION@42..45
0: JS_STRING_LITERAL@42..45 "\"b\"" [] []
4: R_BRACK@45..47 "]" [] [Whitespace(" ")]
1: EQ@47..49 "=" [] [Whitespace(" ")]
2: JS_IDENTIFIER_EXPRESSION@49..50
0: JS_REFERENCE_IDENTIFIER@49..50
0: IDENT@49..50 "b" [] []
1: SEMICOLON@50..51 ";" [] []
5: JS_EXPRESSION_STATEMENT@51..62
0: JS_ASSIGNMENT_EXPRESSION@51..61
0: JS_PARENTHESIZED_ASSIGNMENT@51..58
0: L_PAREN@51..53 "(" [Newline("\n")] []
1: JS_BOGUS_ASSIGNMENT@53..56
0: JS_IDENTIFIER_EXPRESSION@53..55
0: JS_REFERENCE_IDENTIFIER@53..55
0: IDENT@53..55 "a" [] [Whitespace(" ")]
1: PLUS@55..56 "+" [] []
2: R_PAREN@56..58 ")" [] [Whitespace(" ")]
1: EQ@58..60 "=" [] [Whitespace(" ")]
2: JS_IDENTIFIER_EXPRESSION@60..61
0: JS_REFERENCE_IDENTIFIER@60..61
0: IDENT@60..61 "b" [] []
1: SEMICOLON@61..62 ";" [] []
4: EOF@62..63 "" [Newline("\n")] []
--
invalid_assignment_target.js:1:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Invalid assignment to `++a`
> 1 │ ++a = b;
│ ^^^
2 │ (++a) = b;
3 │ (a = b;
i This expression cannot be assigned to
--
invalid_assignment_target.js:2:2 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Invalid assignment to `++a`
1 │ ++a = b;
> 2 │ (++a) = b;
│ ^^^
3 │ (a = b;
4 │ a?.b = b;
i This expression cannot be assigned to
--
invalid_assignment_target.js:3:7 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `)` but instead found `;`
1 │ ++a = b;
2 │ (++a) = b;
> 3 │ (a = b;
│ ^
4 │ a?.b = b;
5 │ a?.["b"] = b;
i Remove ;
--
invalid_assignment_target.js:4:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Invalid assignment to `a?.b`
2 │ (++a) = b;
3 │ (a = b;
> 4 │ a?.b = b;
│ ^^^^
5 │ a?.["b"] = b;
6 │ (a +) = b;
i This expression cannot be assigned to
--
invalid_assignment_target.js:5:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Invalid assignment to `a?.["b"]`
3 │ (a = b;
4 │ a?.b = b;
> 5 │ a?.["b"] = b;
│ ^^^^^^^^
6 │ (a +) = b;
7 │
i This expression cannot be assigned to
--
invalid_assignment_target.js:6:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Expected an expression but instead found ')'.
4 │ a?.b = b;
5 │ a?.["b"] = b;
> 6 │ (a +) = b;
│ ^
7 │
i Expected an expression here.
4 │ a?.b = b;
5 │ a?.["b"] = b;
> 6 │ (a +) = b;
│ ^
7 │
--
invalid_assignment_target.js:6:2 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Invalid assignment to `a +`
4 │ a?.b = b;
5 │ a?.["b"] = b;
> 6 │ (a +) = b;
│ ^^^
7 │
i This expression cannot be assigned to
--
++a = b;
(++a) = b;
(a = b;
a?.b = b;
a?.["b"] = b;
(a +) = b;