@@ -75,7 +75,7 @@ var ts;
75
75
// If changing the text in this section, be sure to test `configureNightly` too.
76
76
ts.versionMajorMinor = "3.1";
77
77
/** The version of the TypeScript compiler release */
78
- ts.version = ts.versionMajorMinor + ".2 ";
78
+ ts.version = ts.versionMajorMinor + ".3 ";
79
79
})(ts || (ts = {}));
80
80
(function (ts) {
81
81
/* @internal */
@@ -94984,7 +94984,7 @@ var ts;
94984
94984
if (resolvedModuleSymbol !== moduleSymbol &&
94985
94985
// Don't add another completion for `export =` of a symbol that's already global.
94986
94986
// So in `declare namespace foo {} declare module "foo" { export = foo; }`, there will just be the global completion for `foo`.
94987
- resolvedModuleSymbol.declarations. some(function (d) { return !!d.getSourceFile().externalModuleIndicator; })) {
94987
+ ts. some(resolvedModuleSymbol.declarations, function (d) { return !!d.getSourceFile().externalModuleIndicator; })) {
94988
94988
symbols.push(resolvedModuleSymbol);
94989
94989
symbolToOriginInfoMap[ts.getSymbolId(resolvedModuleSymbol)] = { kind: 3 /* Export */, moduleSymbol: moduleSymbol, isDefaultExport: false };
94990
94990
}
@@ -101398,7 +101398,6 @@ var ts;
101398
101398
fileToRename: name,
101399
101399
kind: kind,
101400
101400
displayName: name,
101401
- localizedErrorMessage: undefined,
101402
101401
fullDisplayName: name,
101403
101402
kindModifiers: "" /* none */,
101404
101403
triggerSpan: triggerSpan,
@@ -101410,23 +101409,13 @@ var ts;
101410
101409
fileToRename: undefined,
101411
101410
kind: kind,
101412
101411
displayName: displayName,
101413
- localizedErrorMessage: undefined,
101414
101412
fullDisplayName: fullDisplayName,
101415
101413
kindModifiers: kindModifiers,
101416
101414
triggerSpan: createTriggerSpanForNode(node, sourceFile)
101417
101415
};
101418
101416
}
101419
101417
function getRenameInfoError(diagnostic) {
101420
- // TODO: GH#18217
101421
- return {
101422
- canRename: false,
101423
- localizedErrorMessage: ts.getLocaleSpecificMessage(diagnostic),
101424
- displayName: undefined,
101425
- fullDisplayName: undefined,
101426
- kind: undefined,
101427
- kindModifiers: undefined,
101428
- triggerSpan: undefined
101429
- };
101418
+ return { canRename: false, localizedErrorMessage: ts.getLocaleSpecificMessage(diagnostic) };
101430
101419
}
101431
101420
function createTriggerSpanForNode(node, sourceFile) {
101432
101421
var start = node.getStart(sourceFile);
@@ -105838,6 +105827,14 @@ var ts;
105838
105827
var pos = before.getStart(sourceFile);
105839
105828
this.replaceRange(sourceFile, { pos: pos, end: pos }, ts.createToken(modifier), { suffix: " " });
105840
105829
};
105830
+ ChangeTracker.prototype.insertLastModifierBefore = function (sourceFile, modifier, before) {
105831
+ if (!before.modifiers) {
105832
+ this.insertModifierBefore(sourceFile, modifier, before);
105833
+ return;
105834
+ }
105835
+ var pos = before.modifiers.end;
105836
+ this.replaceRange(sourceFile, { pos: pos, end: pos }, ts.createToken(modifier), { prefix: " " });
105837
+ };
105841
105838
ChangeTracker.prototype.insertCommentBeforeLine = function (sourceFile, lineNumber, position, commentText) {
105842
105839
var lineStartPosition = ts.getStartPositionOfLine(lineNumber, sourceFile);
105843
105840
var startPosition = ts.getFirstNonSpaceCharacterPosition(sourceFile.text, lineStartPosition);
@@ -107170,7 +107167,7 @@ var ts;
107170
107167
return;
107171
107168
}
107172
107169
// add the async keyword
107173
- changes.insertModifierBefore (sourceFile, 120 /* AsyncKeyword */, functionToConvert);
107170
+ changes.insertLastModifierBefore (sourceFile, 120 /* AsyncKeyword */, functionToConvert);
107174
107171
function startTransformation(node, nodeToReplace) {
107175
107172
var newNodes = transformExpression(node, transformer, node);
107176
107173
changes.replaceNodeWithNodes(sourceFile, nodeToReplace, newNodes);
@@ -107330,7 +107327,7 @@ var ts;
107330
107327
}
107331
107328
}
107332
107329
function getNewNameIfConflict(name, originalNames) {
107333
- var numVarsSameName = (originalNames.get(name.text) || [] ).length;
107330
+ var numVarsSameName = (originalNames.get(name.text) || ts.emptyArray ).length;
107334
107331
var numberOfAssignmentsOriginal = 0;
107335
107332
var identifier = numVarsSameName === 0 ? name : ts.createIdentifier(name.text + "_" + numVarsSameName);
107336
107333
return { identifier: identifier, types: [], numberOfAssignmentsOriginal: numberOfAssignmentsOriginal };
@@ -107339,7 +107336,7 @@ var ts;
107339
107336
// should be kept up to date with isFixablePromiseHandler in suggestionDiagnostics.ts
107340
107337
function transformExpression(node, transformer, outermostParent, prevArgName) {
107341
107338
if (!node) {
107342
- return [] ;
107339
+ return ts.emptyArray ;
107343
107340
}
107344
107341
var originalType = ts.isIdentifier(node) && transformer.originalTypeMap.get(ts.getNodeId(node).toString());
107345
107342
var nodeType = originalType || transformer.checker.getTypeAtLocation(node);
@@ -107356,7 +107353,7 @@ var ts;
107356
107353
return transformPromiseCall(node, transformer, prevArgName);
107357
107354
}
107358
107355
codeActionSucceeded = false;
107359
- return [] ;
107356
+ return ts.emptyArray ;
107360
107357
}
107361
107358
function transformCatch(node, transformer, prevArgName) {
107362
107359
var func = node.arguments[0];
@@ -107439,13 +107436,13 @@ var ts;
107439
107436
function createTransformedStatement(prevArgName, rightHandSide, transformer) {
107440
107437
if (!prevArgName || prevArgName.identifier.text.length === 0) {
107441
107438
// if there's no argName to assign to, there still might be side effects
107442
- return ts.createNodeArray( [ts.createStatement(rightHandSide)]) ;
107439
+ return [ts.createStatement(rightHandSide)];
107443
107440
}
107444
107441
if (prevArgName.types.length < prevArgName.numberOfAssignmentsOriginal) {
107445
107442
// if the variable has already been declared, we don't need "let" or "const"
107446
- return ts.createNodeArray( [ts.createStatement(ts.createAssignment(ts.getSynthesizedDeepClone(prevArgName.identifier), rightHandSide))]) ;
107443
+ return [ts.createStatement(ts.createAssignment(ts.getSynthesizedDeepClone(prevArgName.identifier), rightHandSide))];
107447
107444
}
107448
- return ts.createNodeArray( [ts.createVariableStatement(/*modifiers*/ undefined, (ts.createVariableDeclarationList([ts.createVariableDeclaration(ts.getSynthesizedDeepClone(prevArgName.identifier), /*type*/ undefined, rightHandSide)], getFlagOfIdentifier(prevArgName.identifier, transformer.constIdentifiers))))]) ;
107445
+ return [ts.createVariableStatement(/*modifiers*/ undefined, (ts.createVariableDeclarationList([ts.createVariableDeclaration(ts.getSynthesizedDeepClone(prevArgName.identifier), /*type*/ undefined, rightHandSide)], getFlagOfIdentifier(prevArgName.identifier, transformer.constIdentifiers))))];
107449
107446
}
107450
107447
// should be kept up to date with isFixablePromiseArgument in suggestionDiagnostics.ts
107451
107448
function getTransformationBody(func, prevArgName, argName, parent, transformer) {
@@ -107459,9 +107456,9 @@ var ts;
107459
107456
// undefined was argument passed to promise handler
107460
107457
break;
107461
107458
}
107462
- var synthCall = ts.createCall(ts.getSynthesizedDeepClone(func), /*typeArguments*/ undefined, argName ? [argName.identifier] : [] );
107459
+ var synthCall = ts.createCall(ts.getSynthesizedDeepClone(func), /*typeArguments*/ undefined, argName ? [argName.identifier] : ts.emptyArray );
107463
107460
if (shouldReturn) {
107464
- return ts.createNodeArray( [ts.createReturn(synthCall)]) ;
107461
+ return [ts.createReturn(synthCall)];
107465
107462
}
107466
107463
var type = transformer.originalTypeMap.get(ts.getNodeId(func).toString()) || transformer.checker.getTypeAtLocation(func);
107467
107464
var callSignatures = transformer.checker.getSignaturesOfType(type, 0 /* Call */);
@@ -107495,14 +107492,14 @@ var ts;
107495
107492
refactoredStmts.push(statement);
107496
107493
}
107497
107494
}
107498
- return shouldReturn ? ts.getSynthesizedDeepClones( ts.createNodeArray(refactoredStmts) ) :
107499
- removeReturns(ts.createNodeArray( refactoredStmts), prevArgName.identifier, transformer, seenReturnStatement);
107495
+ return shouldReturn ? refactoredStmts.map(function (s) { return ts.getSynthesizedDeepClone(s); } ) :
107496
+ removeReturns(refactoredStmts, prevArgName === undefined ? undefined : prevArgName.identifier, transformer, seenReturnStatement);
107500
107497
}
107501
107498
else {
107502
107499
var innerRetStmts = ts.getReturnStatementsWithPromiseHandlers(ts.createReturn(funcBody));
107503
107500
var innerCbBody = getInnerTransformationBody(transformer, innerRetStmts, prevArgName);
107504
107501
if (innerCbBody.length > 0) {
107505
- return ts.createNodeArray( innerCbBody) ;
107502
+ return innerCbBody;
107506
107503
}
107507
107504
if (!shouldReturn) {
107508
107505
var type_6 = transformer.checker.getTypeAtLocation(func);
@@ -107516,7 +107513,7 @@ var ts;
107516
107513
return transformedStatement;
107517
107514
}
107518
107515
else {
107519
- return ts.createNodeArray( [ts.createReturn(ts.getSynthesizedDeepClone(funcBody))]) ;
107516
+ return [ts.createReturn(ts.getSynthesizedDeepClone(funcBody))];
107520
107517
}
107521
107518
}
107522
107519
}
@@ -107525,7 +107522,7 @@ var ts;
107525
107522
codeActionSucceeded = false;
107526
107523
break;
107527
107524
}
107528
- return ts.createNodeArray([]) ;
107525
+ return ts.emptyArray ;
107529
107526
}
107530
107527
function getLastCallSignature(type, checker) {
107531
107528
var callSignatures = checker.getSignaturesOfType(type, 0 /* Call */);
@@ -107538,18 +107535,23 @@ var ts;
107538
107535
if (ts.isReturnStatement(stmt)) {
107539
107536
if (stmt.expression) {
107540
107537
var possiblyAwaitedExpression = isPromiseReturningExpression(stmt.expression, transformer.checker) ? ts.createAwait(stmt.expression) : stmt.expression;
107541
- ret.push(ts.createVariableStatement(/*modifiers*/ undefined, (ts.createVariableDeclarationList([ts.createVariableDeclaration(prevArgName, /*type*/ undefined, possiblyAwaitedExpression)], getFlagOfIdentifier(prevArgName, transformer.constIdentifiers)))));
107538
+ if (prevArgName === undefined) {
107539
+ ret.push(ts.createExpressionStatement(possiblyAwaitedExpression));
107540
+ }
107541
+ else {
107542
+ ret.push(ts.createVariableStatement(/*modifiers*/ undefined, (ts.createVariableDeclarationList([ts.createVariableDeclaration(prevArgName, /*type*/ undefined, possiblyAwaitedExpression)], getFlagOfIdentifier(prevArgName, transformer.constIdentifiers)))));
107543
+ }
107542
107544
}
107543
107545
}
107544
107546
else {
107545
107547
ret.push(ts.getSynthesizedDeepClone(stmt));
107546
107548
}
107547
107549
}
107548
107550
// if block has no return statement, need to define prevArgName as undefined to prevent undeclared variables
107549
- if (!seenReturnStatement) {
107551
+ if (!seenReturnStatement && prevArgName !== undefined ) {
107550
107552
ret.push(ts.createVariableStatement(/*modifiers*/ undefined, (ts.createVariableDeclarationList([ts.createVariableDeclaration(prevArgName, /*type*/ undefined, ts.createIdentifier("undefined"))], getFlagOfIdentifier(prevArgName, transformer.constIdentifiers)))));
107551
107553
}
107552
- return ts.createNodeArray( ret) ;
107554
+ return ret;
107553
107555
}
107554
107556
function getInnerTransformationBody(transformer, innerRetStmts, prevArgName) {
107555
107557
var innerCbBody = [];
@@ -108290,19 +108292,19 @@ var ts;
108290
108292
}
108291
108293
var defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions);
108292
108294
if (defaultInfo && defaultInfo.name === symbolName && ts.skipAlias(defaultInfo.symbol, checker) === exportedSymbol) {
108293
- result.push({ moduleSymbol: moduleSymbol, importKind: defaultInfo.kind, exportedSymbolIsTypeOnly: isTypeOnlySymbol(defaultInfo.symbol) });
108295
+ result.push({ moduleSymbol: moduleSymbol, importKind: defaultInfo.kind, exportedSymbolIsTypeOnly: isTypeOnlySymbol(defaultInfo.symbol, checker ) });
108294
108296
}
108295
108297
for (var _i = 0, _a = checker.getExportsOfModule(moduleSymbol); _i < _a.length; _i++) {
108296
108298
var exported = _a[_i];
108297
108299
if (exported.name === symbolName && ts.skipAlias(exported, checker) === exportedSymbol) {
108298
- result.push({ moduleSymbol: moduleSymbol, importKind: 0 /* Named */, exportedSymbolIsTypeOnly: isTypeOnlySymbol(exported) });
108300
+ result.push({ moduleSymbol: moduleSymbol, importKind: 0 /* Named */, exportedSymbolIsTypeOnly: isTypeOnlySymbol(exported, checker ) });
108299
108301
}
108300
108302
}
108301
108303
});
108302
108304
return result;
108303
108305
}
108304
- function isTypeOnlySymbol(s) {
108305
- return !(s .flags & 67220415 /* Value */);
108306
+ function isTypeOnlySymbol(s, checker ) {
108307
+ return !(ts.skipAlias(s, checker) .flags & 67220415 /* Value */);
108306
108308
}
108307
108309
function getFixForImport(exportInfos, symbolName, position, program, sourceFile, host, preferences) {
108308
108310
var checker = program.getTypeChecker();
@@ -108470,7 +108472,7 @@ var ts;
108470
108472
// Maps symbol id to info for modules providing that symbol (original export + re-exports).
108471
108473
var originalSymbolToExportInfos = ts.createMultiMap();
108472
108474
function addSymbol(moduleSymbol, exportedSymbol, importKind) {
108473
- originalSymbolToExportInfos.add(ts.getUniqueSymbolId(exportedSymbol, checker).toString(), { moduleSymbol: moduleSymbol, importKind: importKind, exportedSymbolIsTypeOnly: isTypeOnlySymbol(exportedSymbol) });
108475
+ originalSymbolToExportInfos.add(ts.getUniqueSymbolId(exportedSymbol, checker).toString(), { moduleSymbol: moduleSymbol, importKind: importKind, exportedSymbolIsTypeOnly: isTypeOnlySymbol(exportedSymbol, checker ) });
108474
108476
}
108475
108477
forEachExternalModuleToImportFrom(checker, sourceFile, program.getSourceFiles(), function (moduleSymbol) {
108476
108478
cancellationToken.throwIfCancellationRequested();
@@ -108492,7 +108494,7 @@ var ts;
108492
108494
return undefined;
108493
108495
var symbol = exported.symbol, kind = exported.kind;
108494
108496
var info = getDefaultExportInfoWorker(symbol, moduleSymbol, checker, compilerOptions);
108495
- return info && { symbol: symbol, symbolForMeaning: info.symbolForMeaning, name: info.name, kind: kind };
108497
+ return info && __assign( { symbol: symbol, kind: kind }, info) ;
108496
108498
}
108497
108499
function getDefaultLikeExportWorker(moduleSymbol, checker) {
108498
108500
var defaultExport = checker.tryGetMemberInModuleExports("default" /* Default */, moduleSymbol);
0 commit comments