Skip to content

Commit 0995869

Browse files
author
Benjamin Lichtman
committed
Stop creating empty identifier name
1 parent e90679c commit 0995869

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

src/services/codefixes/convertToAsyncFunction.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ namespace ts.codefix {
311311
const tryBlock = createBlock(transformExpression(node.expression, transformer, node, prevArgName));
312312

313313
const transformationBody = getTransformationBody(func, prevArgName, argName, node, transformer);
314-
const catchArg = argName.identifier.text.length > 0 ? argName.identifier.text : "e";
314+
const catchArg = argName ? argName.identifier.text : "e";
315315
const catchClause = createCatchClause(catchArg, createBlock(transformationBody));
316316

317317
/*
@@ -353,7 +353,7 @@ namespace ts.codefix {
353353

354354
const transformationBody2 = getTransformationBody(rej, prevArgName, argNameRej, node, transformer);
355355

356-
const catchArg = argNameRej.identifier.text.length > 0 ? argNameRej.identifier.text : "e";
356+
const catchArg = argNameRej ? argNameRej.identifier.text : "e";
357357
const catchClause = createCatchClause(catchArg, createBlock(transformationBody2));
358358

359359
return [createTry(tryBlock, catchClause, /* finallyBlock */ undefined) as Statement];
@@ -370,12 +370,11 @@ namespace ts.codefix {
370370
function transformPromiseCall(node: Expression, transformer: Transformer, prevArgName?: SynthIdentifier): Statement[] {
371371
const shouldReturn = transformer.setOfExpressionsToReturn.get(getNodeId(node).toString());
372372
// the identifier is empty when the handler (.then()) ignores the argument - In this situation we do not need to save the result of the promise returning call
373-
const hasPrevArgName = prevArgName && prevArgName.identifier.text.length > 0;
374373
const originalNodeParent = node.original ? node.original.parent : node.parent;
375-
if (hasPrevArgName && !shouldReturn && (!originalNodeParent || isPropertyAccessExpression(originalNodeParent))) {
376-
return createTransformedStatement(prevArgName!, createAwait(node), transformer).concat(); // hack to make the types match
374+
if (prevArgName && !shouldReturn && (!originalNodeParent || isPropertyAccessExpression(originalNodeParent))) {
375+
return createTransformedStatement(prevArgName, createAwait(node), transformer).concat(); // hack to make the types match
377376
}
378-
else if (!hasPrevArgName && !shouldReturn && (!originalNodeParent || isPropertyAccessExpression(originalNodeParent))) {
377+
else if (!prevArgName && !shouldReturn && (!originalNodeParent || isPropertyAccessExpression(originalNodeParent))) {
379378
return [createStatement(createAwait(node))];
380379
}
381380

@@ -398,18 +397,17 @@ namespace ts.codefix {
398397
}
399398

400399
// should be kept up to date with isFixablePromiseArgument in suggestionDiagnostics.ts
401-
function getTransformationBody(func: Node, prevArgName: SynthIdentifier | undefined, argName: SynthIdentifier, parent: CallExpression, transformer: Transformer): NodeArray<Statement> {
400+
function getTransformationBody(func: Node, prevArgName: SynthIdentifier | undefined, argName: SynthIdentifier | undefined, parent: CallExpression, transformer: Transformer): NodeArray<Statement> {
402401

403-
const hasArgName = argName && argName.identifier.text.length > 0;
404402
const shouldReturn = transformer.setOfExpressionsToReturn.get(getNodeId(parent).toString());
405403
switch (func.kind) {
406404
case SyntaxKind.NullKeyword:
407405
// do not produce a transformed statement for a null argument
408406
break;
409407
case SyntaxKind.Identifier: // identifier includes undefined
410-
if (!hasArgName) break;
408+
if (!argName) break;
411409

412-
const synthCall = createCall(getSynthesizedDeepClone(func) as Identifier, /*typeArguments*/ undefined, [argName.identifier]);
410+
const synthCall = createCall(getSynthesizedDeepClone(func) as Identifier, /*typeArguments*/ undefined, argName ? [argName.identifier] : []);
413411
if (shouldReturn) {
414412
return createNodeArray([createReturn(synthCall)]);
415413
}
@@ -534,7 +532,7 @@ namespace ts.codefix {
534532
return innerCbBody;
535533
}
536534

537-
function getArgName(funcNode: Node, transformer: Transformer): SynthIdentifier {
535+
function getArgName(funcNode: Node, transformer: Transformer): SynthIdentifier | undefined {
538536

539537
const numberOfAssignmentsOriginal = 0;
540538
const types: Type[] = [];
@@ -552,7 +550,7 @@ namespace ts.codefix {
552550
}
553551

554552
if (!name || name.identifier === undefined || name.identifier.text === "undefined") {
555-
return { identifier: createIdentifier(""), types, numberOfAssignmentsOriginal };
553+
return undefined;
556554
}
557555

558556
return name;

0 commit comments

Comments
 (0)