Skip to content

Commit 8c9e866

Browse files
author
Benjamin Lichtman
committed
Miscellaneous cleanup
1 parent ba8595b commit 8c9e866

File tree

3 files changed

+15
-28
lines changed

3 files changed

+15
-28
lines changed

src/services/codefixes/convertToAsyncFunction.ts

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -81,19 +81,14 @@ namespace ts.codefix {
8181
}
8282

8383
for (const statement of returnStatements) {
84-
if (isCallExpression(statement)) {
85-
startTransformation(statement, statement);
86-
}
87-
else {
88-
forEachChild(statement, function visit(node: Node) {
89-
if (isCallExpression(node)) {
90-
startTransformation(node, statement);
91-
}
92-
else if (!isFunctionLike(node)) {
93-
forEachChild(node, visit);
94-
}
95-
});
96-
}
84+
forEachChild(statement, function visit(node: Node) {
85+
if (isCallExpression(node)) {
86+
startTransformation(node, statement);
87+
}
88+
else if (!isFunctionLike(node)) {
89+
forEachChild(node, visit);
90+
}
91+
});
9792
}
9893
}
9994

@@ -344,11 +339,8 @@ namespace ts.codefix {
344339

345340
return [createTry(tryBlock, catchClause, /* finallyBlock */ undefined) as Statement];
346341
}
347-
else {
348-
return transformExpression(node.expression, transformer, node, argNameRes).concat(transformationBody);
349-
}
350342

351-
return [];
343+
return transformExpression(node.expression, transformer, node, argNameRes).concat(transformationBody);
352344
}
353345

354346
function getFlagOfIdentifier(node: Identifier, constIdentifiers: Identifier[]): NodeFlags {
@@ -513,6 +505,7 @@ namespace ts.codefix {
513505
name = getMapEntryIfExists(param);
514506
}
515507
}
508+
// currently not relevant, since we don't produce a valid transformation if the argument to a promise operation is a CallExpression
516509
else if (isCallExpression(funcNode) && funcNode.arguments.length > 0 && isIdentifier(funcNode.arguments[0])) {
517510
name = { identifier: funcNode.arguments[0] as Identifier, types, numberOfAssignmentsOriginal };
518511
}

src/services/suggestionDiagnostics.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,8 @@ namespace ts {
141141
}
142142

143143
/** @internal */
144-
export function getReturnStatementsWithPromiseHandlers(node: Node): Node[] {
145-
const returnStatements: Node[] = [];
144+
export function getReturnStatementsWithPromiseHandlers(node: Node): ReturnStatement[] {
145+
const returnStatements: ReturnStatement[] = [];
146146
if (isFunctionLike(node)) {
147147
forEachChild(node, visit);
148148
}
@@ -155,14 +155,8 @@ namespace ts {
155155
return;
156156
}
157157

158-
if (isReturnStatement(child)) {
159-
forEachChild(child, addHandlers);
160-
}
161-
162-
function addHandlers(returnChild: Node) {
163-
if (isPromiseHandler(returnChild)) {
164-
returnStatements.push(child as ReturnStatement);
165-
}
158+
if (isReturnStatement(child) && child.expression && isPromiseHandler(child.expression)) {
159+
returnStatements.push(child);
166160
}
167161

168162
forEachChild(child, visit);

src/services/utilities.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1671,7 +1671,7 @@ namespace ts {
16711671
}
16721672

16731673
if (clone && !includeTrivia) suppressLeadingAndTrailingTrivia(clone);
1674-
if (callback && node) callback(node!, clone);
1674+
if (callback && node && clone) callback(node!, clone);
16751675

16761676
return clone as T;
16771677
}

0 commit comments

Comments
 (0)