From 6ed62edfebd96e38a8377d85a629313dd7f59565 Mon Sep 17 00:00:00 2001 From: "Pranav Senthilnathan (from Dev Box)" Date: Wed, 25 Oct 2023 16:57:08 -0700 Subject: [PATCH] assert node --- src/services/completions.ts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/services/completions.ts b/src/services/completions.ts index 296bfb6ebb5..8ef60b2cb7e 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -3674,15 +3674,15 @@ function getCompletionData( const computedPropertyName = firstDefined(symbol.declarations, decl => tryCast(getNameOfDeclaration(decl), isComputedPropertyName)); if (!computedPropertyName) { addLiteralSymbol(); - return; - } - + return; + } + const computedPropertyNameExpression = computedPropertyName.expression; - const name = isEntityName(computedPropertyNameExpression) + const name = isEntityName(computedPropertyNameExpression) ? computedPropertyNameExpression - : isPropertyAccessExpression(computedPropertyNameExpression) - ? computedPropertyNameExpression.name - : undefined; + : isPropertyAccessExpression(computedPropertyNameExpression) + ? computedPropertyNameExpression.name + : undefined; const nameSymbol = name && typeChecker.getSymbolAtLocation(name); const nameSymbolId = nameSymbol && getSymbolId(nameSymbol); if (!nameSymbolId) { // Not a property access or entity name @@ -3715,16 +3715,17 @@ function getCompletionData( if (!node) { // Switch to literal symbol if user doesn't want insert text symbols[index] = symbol; - } else { + } + else { const printer = createPrinter({ removeComments: true, module: compilerOptions.module, target: compilerOptions.target, omitTrailingSemicolon: true, }); - const origin: SymbolOriginInfoComputedPropertyName = { - kind: getNullableSymbolOriginInfoKind(SymbolOriginInfoKind.SymbolMemberNoExport) | SymbolOriginInfoKind.ComputedPropertyName, - symbolName: printer.printNode(EmitHint.Unspecified, node, contextToken.getSourceFile()) + const origin: SymbolOriginInfoComputedPropertyName = { + kind: getNullableSymbolOriginInfoKind(SymbolOriginInfoKind.SymbolMemberNoExport) | SymbolOriginInfoKind.ComputedPropertyName, + symbolName: printer.printNode(EmitHint.Unspecified, node, contextToken.getSourceFile()), }; symbolToOriginInfoMap[index] = origin; } @@ -3780,7 +3781,8 @@ function getCompletionData( node = createPropertyAccess(computedPropertyNameExpression as OnlyPropertyAccess); function createPropertyAccess(n: OnlyPropertyAccess): Expression { if (isIdentifier(n)) { - return leftMostNodeAccessExpression! as Expression; //TODO ! and cast + Debug.assertNode(leftMostNodeAccessExpression, isExpression); + return leftMostNodeAccessExpression; } return factory.createPropertyAccessExpression(createPropertyAccess(n.expression), n.name); @@ -4596,7 +4598,7 @@ function getCompletionData( if (declaration && isClassElement(declaration) && declaration.name && isComputedPropertyName(declaration.name)) { const origin: SymbolOriginInfoComputedPropertyName = { kind: SymbolOriginInfoKind.ComputedPropertyName, - symbolName: typeChecker.symbolToString(symbol) + symbolName: typeChecker.symbolToString(symbol), }; symbolToOriginInfoMap[index] = origin; }