tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(3,1): error TS2777: The operand of an increment or decrement operator may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(4,1): error TS2777: The operand of an increment or decrement operator may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(5,1): error TS2777: The operand of an increment or decrement operator may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(6,1): error TS2777: The operand of an increment or decrement operator may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(8,3): error TS2777: The operand of an increment or decrement operator may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(9,3): error TS2777: The operand of an increment or decrement operator may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(10,3): error TS2777: The operand of an increment or decrement operator may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(11,3): error TS2777: The operand of an increment or decrement operator may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(13,1): error TS2779: The left-hand side of an assignment expression may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(14,1): error TS2779: The left-hand side of an assignment expression may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(15,1): error TS2779: The left-hand side of an assignment expression may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(16,1): error TS2779: The left-hand side of an assignment expression may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(18,6): error TS2780: The left-hand side of a 'for...in' statement may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(19,6): error TS2780: The left-hand side of a 'for...in' statement may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(20,6): error TS2781: The left-hand side of a 'for...of' statement may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(21,6): error TS2781: The left-hand side of a 'for...of' statement may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(23,7): error TS2779: The left-hand side of an assignment expression may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(24,7): error TS2779: The left-hand side of an assignment expression may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(25,7): error TS2778: The target of an object rest assignment may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(26,7): error TS2778: The target of an object rest assignment may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(27,5): error TS2779: The left-hand side of an assignment expression may not be an optional property access.
tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts(28,5): error TS2779: The left-hand side of an assignment expression may not be an optional property access.


==== tests/cases/conformance/expressions/optionalChaining/elementAccessChain/elementAccessChain.3.ts (22 errors) ====
    declare const obj: any;
    
    obj?.["a"]++;
    ~~~~~~~~~~
!!! error TS2777: The operand of an increment or decrement operator may not be an optional property access.
    obj?.a["b"]++;
    ~~~~~~~~~~~
!!! error TS2777: The operand of an increment or decrement operator may not be an optional property access.
    obj?.["a"]--;
    ~~~~~~~~~~
!!! error TS2777: The operand of an increment or decrement operator may not be an optional property access.
    obj?.a["b"]--;
    ~~~~~~~~~~~
!!! error TS2777: The operand of an increment or decrement operator may not be an optional property access.
    
    ++obj?.["a"];
      ~~~~~~~~~~
!!! error TS2777: The operand of an increment or decrement operator may not be an optional property access.
    ++obj?.a["b"];
      ~~~~~~~~~~~
!!! error TS2777: The operand of an increment or decrement operator may not be an optional property access.
    --obj?.["a"];
      ~~~~~~~~~~
!!! error TS2777: The operand of an increment or decrement operator may not be an optional property access.
    --obj?.a["b"];
      ~~~~~~~~~~~
!!! error TS2777: The operand of an increment or decrement operator may not be an optional property access.
    
    obj?.["a"] = 1;
    ~~~~~~~~~~
!!! error TS2779: The left-hand side of an assignment expression may not be an optional property access.
    obj?.a["b"] = 1;
    ~~~~~~~~~~~
!!! error TS2779: The left-hand side of an assignment expression may not be an optional property access.
    obj?.["a"] += 1;
    ~~~~~~~~~~
!!! error TS2779: The left-hand side of an assignment expression may not be an optional property access.
    obj?.a["b"] += 1;
    ~~~~~~~~~~~
!!! error TS2779: The left-hand side of an assignment expression may not be an optional property access.
    
    for (obj?.["a"] in {});
         ~~~~~~~~~~
!!! error TS2780: The left-hand side of a 'for...in' statement may not be an optional property access.
    for (obj?.a["b"] in {});
         ~~~~~~~~~~~
!!! error TS2780: The left-hand side of a 'for...in' statement may not be an optional property access.
    for (obj?.["a"] of []);
         ~~~~~~~~~~
!!! error TS2781: The left-hand side of a 'for...of' statement may not be an optional property access.
    for (obj?.a["b"] of []);
         ~~~~~~~~~~~
!!! error TS2781: The left-hand side of a 'for...of' statement may not be an optional property access.
    
    ({ a: obj?.["a"] } = { a: 1 });
          ~~~~~~~~~~
!!! error TS2779: The left-hand side of an assignment expression may not be an optional property access.
    ({ a: obj?.a["b"] } = { a: 1 });
          ~~~~~~~~~~~
!!! error TS2779: The left-hand side of an assignment expression may not be an optional property access.
    ({ ...obj?.["a"] } = { a: 1 });
          ~~~~~~~~~~
!!! error TS2778: The target of an object rest assignment may not be an optional property access.
    ({ ...obj?.a["b"] } = { a: 1 });
          ~~~~~~~~~~~
!!! error TS2778: The target of an object rest assignment may not be an optional property access.
    [...obj?.["a"]] = [];
        ~~~~~~~~~~
!!! error TS2779: The left-hand side of an assignment expression may not be an optional property access.
    [...obj?.a["b"]] = [];
        ~~~~~~~~~~~
!!! error TS2779: The left-hand side of an assignment expression may not be an optional property access.
    