From efa19f6777cd377c59c61d299621096e0b83e7b9 Mon Sep 17 00:00:00 2001 From: Klaus Meinhardt Date: Fri, 16 Aug 2019 00:25:10 +0200 Subject: [PATCH] remove useless condition as argumentExpression is always defined (#31567) * remove useless condition as argumentExpression is always defined * fix formatting * remove obsolete diagnostic --- src/compiler/binder.ts | 2 +- src/compiler/checker.ts | 19 +------------------ src/compiler/diagnosticMessages.json | 4 ---- 3 files changed, 2 insertions(+), 23 deletions(-) diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index afa6e36a6de..6492bb948fa 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -778,7 +778,7 @@ namespace ts { function isNarrowableReference(expr: Expression): boolean { return expr.kind === SyntaxKind.Identifier || expr.kind === SyntaxKind.ThisKeyword || expr.kind === SyntaxKind.SuperKeyword || (isPropertyAccessExpression(expr) || isNonNullExpression(expr) || isParenthesizedExpression(expr)) && isNarrowableReference(expr.expression) || - isElementAccessExpression(expr) && expr.argumentExpression && + isElementAccessExpression(expr) && (isStringLiteral(expr.argumentExpression) || isNumericLiteral(expr.argumentExpression)) && isNarrowableReference(expr.expression); } diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 65a12929b6e..6c408623f62 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -21062,21 +21062,6 @@ namespace ts { const objectType = getAssignmentTargetKind(node) !== AssignmentKind.None || isMethodAccessForCall(node) ? getWidenedType(exprType) : exprType; const indexExpression = node.argumentExpression; - if (!indexExpression) { - const sourceFile = getSourceFileOfNode(node); - if (node.parent.kind === SyntaxKind.NewExpression && (node.parent).expression === node) { - const start = skipTrivia(sourceFile.text, node.expression.end); - const end = node.end; - grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); - } - else { - const start = node.end - "]".length; - const end = node.end; - grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.Expression_expected); - } - return errorType; - } - const indexType = checkExpression(indexExpression); if (objectType === errorType || objectType === silentNeverType) { @@ -29742,9 +29727,7 @@ namespace ts { name = ex.name.escapedText; } else { - const argument = ex.argumentExpression; - Debug.assert(isLiteralExpression(argument)); - name = escapeLeadingUnderscores((argument as LiteralExpression).text); + name = escapeLeadingUnderscores(cast(ex.argumentExpression, isLiteralExpression).text); } return evaluateEnumMember(expr, type.symbol, name); } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 3c282ca092f..492f853c347 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -459,10 +459,6 @@ "category": "Error", "code": 1149 }, - "'new T[]' cannot be used to create an array. Use 'new Array()' instead.": { - "category": "Error", - "code": 1150 - }, "'const' declarations must be initialized.": { "category": "Error", "code": 1155