From 1fb9f6221d7874d8953a0d240c93d9e88adf4e15 Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Wed, 5 Apr 2023 13:35:44 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Pick=20PR=20#53665=20(Fix=20cras?= =?UTF-8?q?h=20when=20private=20id=20in=20array=20...)=20into=20release-5.?= =?UTF-8?q?0=20(#53677)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jake Bailey <5341706+jakebailey@users.noreply.github.com> --- src/compiler/transformers/classFields.ts | 8 ++++---- ...arserPrivateIdentifierInArrayAssignment.errors.txt | 11 +++++++++++ .../parserPrivateIdentifierInArrayAssignment.js | 6 ++++++ .../parserPrivateIdentifierInArrayAssignment.symbols | 4 ++++ .../parserPrivateIdentifierInArrayAssignment.types | 7 +++++++ .../parserPrivateIdentifierInArrayAssignment.ts | 1 + 6 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.errors.txt create mode 100644 tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.js create mode 100644 tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.symbols create mode 100644 tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.types create mode 100755 tests/cases/compiler/parserPrivateIdentifierInArrayAssignment.ts diff --git a/src/compiler/transformers/classFields.ts b/src/compiler/transformers/classFields.ts index 76a24cfaebb50..7f03c26b80f55 100644 --- a/src/compiler/transformers/classFields.ts +++ b/src/compiler/transformers/classFields.ts @@ -2977,11 +2977,11 @@ export function transformClassFields(context: TransformationContext): (x: Source } function visitArrayAssignmentElement(node: Expression): Expression { - Debug.assertNode(node, isArrayBindingOrAssignmentElement); - if (isSpreadElement(node)) return visitAssignmentRestElement(node); - if (!isOmittedExpression(node)) return visitAssignmentElement(node); + if (isArrayBindingOrAssignmentElement(node)) { + if (isSpreadElement(node)) return visitAssignmentRestElement(node); + if (!isOmittedExpression(node)) return visitAssignmentElement(node); + } return visitEachChild(node, visitor, context); - } function visitAssignmentProperty(node: PropertyAssignment) { diff --git a/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.errors.txt b/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.errors.txt new file mode 100644 index 0000000000000..7f4ed01bc6ab5 --- /dev/null +++ b/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.errors.txt @@ -0,0 +1,11 @@ +tests/cases/compiler/parserPrivateIdentifierInArrayAssignment.ts(1,2): error TS2364: The left-hand side of an assignment expression must be a variable or a property access. +tests/cases/compiler/parserPrivateIdentifierInArrayAssignment.ts(1,8): error TS1109: Expression expected. + + +==== tests/cases/compiler/parserPrivateIdentifierInArrayAssignment.ts (2 errors) ==== + [#abc]= + ~~~~ +!!! error TS2364: The left-hand side of an assignment expression must be a variable or a property access. + +!!! error TS1109: Expression expected. + \ No newline at end of file diff --git a/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.js b/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.js new file mode 100644 index 0000000000000..e4cdd66647ff4 --- /dev/null +++ b/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.js @@ -0,0 +1,6 @@ +//// [parserPrivateIdentifierInArrayAssignment.ts] +[#abc]= + + +//// [parserPrivateIdentifierInArrayAssignment.js] +#abc = [0]; diff --git a/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.symbols b/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.symbols new file mode 100644 index 0000000000000..a2f582a5ba398 --- /dev/null +++ b/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/parserPrivateIdentifierInArrayAssignment.ts === + +[#abc]= + diff --git a/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.types b/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.types new file mode 100644 index 0000000000000..8c7531c314117 --- /dev/null +++ b/tests/baselines/reference/parserPrivateIdentifierInArrayAssignment.types @@ -0,0 +1,7 @@ +=== tests/cases/compiler/parserPrivateIdentifierInArrayAssignment.ts === +[#abc]= +>[#abc]= : any +>[#abc] : [any] + +> : any + diff --git a/tests/cases/compiler/parserPrivateIdentifierInArrayAssignment.ts b/tests/cases/compiler/parserPrivateIdentifierInArrayAssignment.ts new file mode 100755 index 0000000000000..f59bd76e18200 --- /dev/null +++ b/tests/cases/compiler/parserPrivateIdentifierInArrayAssignment.ts @@ -0,0 +1 @@ +[#abc]=