Skip to content

Commit 45387b8

Browse files
Update LKG.
1 parent 86d53d2 commit 45387b8

10 files changed

+215
-177
lines changed

lib/protocol.d.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -827,20 +827,17 @@ declare namespace ts.server.protocol {
827827
/**
828828
* Information about the item to be renamed.
829829
*/
830-
interface RenameInfo {
830+
type RenameInfo = RenameInfoSuccess | RenameInfoFailure;
831+
interface RenameInfoSuccess {
831832
/**
832833
* True if item can be renamed.
833834
*/
834-
canRename: boolean;
835+
canRename: true;
835836
/**
836837
* File or directory to rename.
837838
* If set, `getEditsForFileRename` should be called instead of `findRenameLocations`.
838839
*/
839840
fileToRename?: string;
840-
/**
841-
* Error message if item can not be renamed.
842-
*/
843-
localizedErrorMessage?: string;
844841
/**
845842
* Display name of the item to be renamed.
846843
*/
@@ -860,6 +857,13 @@ declare namespace ts.server.protocol {
860857
/** Span of text to rename. */
861858
triggerSpan: TextSpan;
862859
}
860+
interface RenameInfoFailure {
861+
canRename: false;
862+
/**
863+
* Error message if item can not be renamed.
864+
*/
865+
localizedErrorMessage: string;
866+
}
863867
/**
864868
* A group of text spans, all in 'file'.
865869
*/

lib/tsc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
6060
var ts;
6161
(function (ts) {
6262
ts.versionMajorMinor = "3.1";
63-
ts.version = ts.versionMajorMinor + ".2";
63+
ts.version = ts.versionMajorMinor + ".3";
6464
})(ts || (ts = {}));
6565
(function (ts) {
6666
ts.emptyArray = [];

lib/tsserver.js

Lines changed: 47 additions & 40 deletions
Large diffs are not rendered by default.

lib/tsserverlibrary.d.ts

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5111,20 +5111,24 @@ declare namespace ts {
51115111
documentation?: SymbolDisplayPart[];
51125112
tags?: JSDocTagInfo[];
51135113
}
5114-
interface RenameInfo {
5115-
canRename: boolean;
5114+
type RenameInfo = RenameInfoSuccess | RenameInfoFailure;
5115+
interface RenameInfoSuccess {
5116+
canRename: true;
51165117
/**
51175118
* File or directory to rename.
51185119
* If set, `getEditsForFileRename` should be called instead of `findRenameLocations`.
51195120
*/
51205121
fileToRename?: string;
5121-
localizedErrorMessage?: string;
51225122
displayName: string;
51235123
fullDisplayName: string;
51245124
kind: ScriptElementKind;
51255125
kindModifiers: string;
51265126
triggerSpan: TextSpan;
51275127
}
5128+
interface RenameInfoFailure {
5129+
canRename: false;
5130+
localizedErrorMessage: string;
5131+
}
51285132
interface SignatureHelpParameter {
51295133
name: string;
51305134
documentation: SymbolDisplayPart[];
@@ -6434,20 +6438,17 @@ declare namespace ts.server.protocol {
64346438
/**
64356439
* Information about the item to be renamed.
64366440
*/
6437-
interface RenameInfo {
6441+
type RenameInfo = RenameInfoSuccess | RenameInfoFailure;
6442+
interface RenameInfoSuccess {
64386443
/**
64396444
* True if item can be renamed.
64406445
*/
6441-
canRename: boolean;
6446+
canRename: true;
64426447
/**
64436448
* File or directory to rename.
64446449
* If set, `getEditsForFileRename` should be called instead of `findRenameLocations`.
64456450
*/
64466451
fileToRename?: string;
6447-
/**
6448-
* Error message if item can not be renamed.
6449-
*/
6450-
localizedErrorMessage?: string;
64516452
/**
64526453
* Display name of the item to be renamed.
64536454
*/
@@ -6467,6 +6468,13 @@ declare namespace ts.server.protocol {
64676468
/** Span of text to rename. */
64686469
triggerSpan: TextSpan;
64696470
}
6471+
interface RenameInfoFailure {
6472+
canRename: false;
6473+
/**
6474+
* Error message if item can not be renamed.
6475+
*/
6476+
localizedErrorMessage: string;
6477+
}
64706478
/**
64716479
* A group of text spans, all in 'file'.
64726480
*/

lib/tsserverlibrary.js

Lines changed: 47 additions & 40 deletions
Large diffs are not rendered by default.

lib/typescript.d.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5111,20 +5111,24 @@ declare namespace ts {
51115111
documentation?: SymbolDisplayPart[];
51125112
tags?: JSDocTagInfo[];
51135113
}
5114-
interface RenameInfo {
5115-
canRename: boolean;
5114+
type RenameInfo = RenameInfoSuccess | RenameInfoFailure;
5115+
interface RenameInfoSuccess {
5116+
canRename: true;
51165117
/**
51175118
* File or directory to rename.
51185119
* If set, `getEditsForFileRename` should be called instead of `findRenameLocations`.
51195120
*/
51205121
fileToRename?: string;
5121-
localizedErrorMessage?: string;
51225122
displayName: string;
51235123
fullDisplayName: string;
51245124
kind: ScriptElementKind;
51255125
kindModifiers: string;
51265126
triggerSpan: TextSpan;
51275127
}
5128+
interface RenameInfoFailure {
5129+
canRename: false;
5130+
localizedErrorMessage: string;
5131+
}
51285132
interface SignatureHelpParameter {
51295133
name: string;
51305134
documentation: SymbolDisplayPart[];

lib/typescript.js

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ var ts;
7575
// If changing the text in this section, be sure to test `configureNightly` too.
7676
ts.versionMajorMinor = "3.1";
7777
/** The version of the TypeScript compiler release */
78-
ts.version = ts.versionMajorMinor + ".2";
78+
ts.version = ts.versionMajorMinor + ".3";
7979
})(ts || (ts = {}));
8080
(function (ts) {
8181
/* @internal */
@@ -94984,7 +94984,7 @@ var ts;
9498494984
if (resolvedModuleSymbol !== moduleSymbol &&
9498594985
// Don't add another completion for `export =` of a symbol that's already global.
9498694986
// 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; })) {
9498894988
symbols.push(resolvedModuleSymbol);
9498994989
symbolToOriginInfoMap[ts.getSymbolId(resolvedModuleSymbol)] = { kind: 3 /* Export */, moduleSymbol: moduleSymbol, isDefaultExport: false };
9499094990
}
@@ -101398,7 +101398,6 @@ var ts;
101398101398
fileToRename: name,
101399101399
kind: kind,
101400101400
displayName: name,
101401-
localizedErrorMessage: undefined,
101402101401
fullDisplayName: name,
101403101402
kindModifiers: "" /* none */,
101404101403
triggerSpan: triggerSpan,
@@ -101410,23 +101409,13 @@ var ts;
101410101409
fileToRename: undefined,
101411101410
kind: kind,
101412101411
displayName: displayName,
101413-
localizedErrorMessage: undefined,
101414101412
fullDisplayName: fullDisplayName,
101415101413
kindModifiers: kindModifiers,
101416101414
triggerSpan: createTriggerSpanForNode(node, sourceFile)
101417101415
};
101418101416
}
101419101417
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) };
101430101419
}
101431101420
function createTriggerSpanForNode(node, sourceFile) {
101432101421
var start = node.getStart(sourceFile);
@@ -105838,6 +105827,14 @@ var ts;
105838105827
var pos = before.getStart(sourceFile);
105839105828
this.replaceRange(sourceFile, { pos: pos, end: pos }, ts.createToken(modifier), { suffix: " " });
105840105829
};
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+
};
105841105838
ChangeTracker.prototype.insertCommentBeforeLine = function (sourceFile, lineNumber, position, commentText) {
105842105839
var lineStartPosition = ts.getStartPositionOfLine(lineNumber, sourceFile);
105843105840
var startPosition = ts.getFirstNonSpaceCharacterPosition(sourceFile.text, lineStartPosition);
@@ -107170,7 +107167,7 @@ var ts;
107170107167
return;
107171107168
}
107172107169
// add the async keyword
107173-
changes.insertModifierBefore(sourceFile, 120 /* AsyncKeyword */, functionToConvert);
107170+
changes.insertLastModifierBefore(sourceFile, 120 /* AsyncKeyword */, functionToConvert);
107174107171
function startTransformation(node, nodeToReplace) {
107175107172
var newNodes = transformExpression(node, transformer, node);
107176107173
changes.replaceNodeWithNodes(sourceFile, nodeToReplace, newNodes);
@@ -107330,7 +107327,7 @@ var ts;
107330107327
}
107331107328
}
107332107329
function getNewNameIfConflict(name, originalNames) {
107333-
var numVarsSameName = (originalNames.get(name.text) || []).length;
107330+
var numVarsSameName = (originalNames.get(name.text) || ts.emptyArray).length;
107334107331
var numberOfAssignmentsOriginal = 0;
107335107332
var identifier = numVarsSameName === 0 ? name : ts.createIdentifier(name.text + "_" + numVarsSameName);
107336107333
return { identifier: identifier, types: [], numberOfAssignmentsOriginal: numberOfAssignmentsOriginal };
@@ -107339,7 +107336,7 @@ var ts;
107339107336
// should be kept up to date with isFixablePromiseHandler in suggestionDiagnostics.ts
107340107337
function transformExpression(node, transformer, outermostParent, prevArgName) {
107341107338
if (!node) {
107342-
return [];
107339+
return ts.emptyArray;
107343107340
}
107344107341
var originalType = ts.isIdentifier(node) && transformer.originalTypeMap.get(ts.getNodeId(node).toString());
107345107342
var nodeType = originalType || transformer.checker.getTypeAtLocation(node);
@@ -107356,7 +107353,7 @@ var ts;
107356107353
return transformPromiseCall(node, transformer, prevArgName);
107357107354
}
107358107355
codeActionSucceeded = false;
107359-
return [];
107356+
return ts.emptyArray;
107360107357
}
107361107358
function transformCatch(node, transformer, prevArgName) {
107362107359
var func = node.arguments[0];
@@ -107439,13 +107436,13 @@ var ts;
107439107436
function createTransformedStatement(prevArgName, rightHandSide, transformer) {
107440107437
if (!prevArgName || prevArgName.identifier.text.length === 0) {
107441107438
// 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)];
107443107440
}
107444107441
if (prevArgName.types.length < prevArgName.numberOfAssignmentsOriginal) {
107445107442
// 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))];
107447107444
}
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))))];
107449107446
}
107450107447
// should be kept up to date with isFixablePromiseArgument in suggestionDiagnostics.ts
107451107448
function getTransformationBody(func, prevArgName, argName, parent, transformer) {
@@ -107459,9 +107456,9 @@ var ts;
107459107456
// undefined was argument passed to promise handler
107460107457
break;
107461107458
}
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);
107463107460
if (shouldReturn) {
107464-
return ts.createNodeArray([ts.createReturn(synthCall)]);
107461+
return [ts.createReturn(synthCall)];
107465107462
}
107466107463
var type = transformer.originalTypeMap.get(ts.getNodeId(func).toString()) || transformer.checker.getTypeAtLocation(func);
107467107464
var callSignatures = transformer.checker.getSignaturesOfType(type, 0 /* Call */);
@@ -107495,14 +107492,14 @@ var ts;
107495107492
refactoredStmts.push(statement);
107496107493
}
107497107494
}
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);
107500107497
}
107501107498
else {
107502107499
var innerRetStmts = ts.getReturnStatementsWithPromiseHandlers(ts.createReturn(funcBody));
107503107500
var innerCbBody = getInnerTransformationBody(transformer, innerRetStmts, prevArgName);
107504107501
if (innerCbBody.length > 0) {
107505-
return ts.createNodeArray(innerCbBody);
107502+
return innerCbBody;
107506107503
}
107507107504
if (!shouldReturn) {
107508107505
var type_6 = transformer.checker.getTypeAtLocation(func);
@@ -107516,7 +107513,7 @@ var ts;
107516107513
return transformedStatement;
107517107514
}
107518107515
else {
107519-
return ts.createNodeArray([ts.createReturn(ts.getSynthesizedDeepClone(funcBody))]);
107516+
return [ts.createReturn(ts.getSynthesizedDeepClone(funcBody))];
107520107517
}
107521107518
}
107522107519
}
@@ -107525,7 +107522,7 @@ var ts;
107525107522
codeActionSucceeded = false;
107526107523
break;
107527107524
}
107528-
return ts.createNodeArray([]);
107525+
return ts.emptyArray;
107529107526
}
107530107527
function getLastCallSignature(type, checker) {
107531107528
var callSignatures = checker.getSignaturesOfType(type, 0 /* Call */);
@@ -107538,18 +107535,23 @@ var ts;
107538107535
if (ts.isReturnStatement(stmt)) {
107539107536
if (stmt.expression) {
107540107537
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+
}
107542107544
}
107543107545
}
107544107546
else {
107545107547
ret.push(ts.getSynthesizedDeepClone(stmt));
107546107548
}
107547107549
}
107548107550
// if block has no return statement, need to define prevArgName as undefined to prevent undeclared variables
107549-
if (!seenReturnStatement) {
107551+
if (!seenReturnStatement && prevArgName !== undefined) {
107550107552
ret.push(ts.createVariableStatement(/*modifiers*/ undefined, (ts.createVariableDeclarationList([ts.createVariableDeclaration(prevArgName, /*type*/ undefined, ts.createIdentifier("undefined"))], getFlagOfIdentifier(prevArgName, transformer.constIdentifiers)))));
107551107553
}
107552-
return ts.createNodeArray(ret);
107554+
return ret;
107553107555
}
107554107556
function getInnerTransformationBody(transformer, innerRetStmts, prevArgName) {
107555107557
var innerCbBody = [];
@@ -108290,19 +108292,19 @@ var ts;
108290108292
}
108291108293
var defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions);
108292108294
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) });
108294108296
}
108295108297
for (var _i = 0, _a = checker.getExportsOfModule(moduleSymbol); _i < _a.length; _i++) {
108296108298
var exported = _a[_i];
108297108299
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) });
108299108301
}
108300108302
}
108301108303
});
108302108304
return result;
108303108305
}
108304-
function isTypeOnlySymbol(s) {
108305-
return !(s.flags & 67220415 /* Value */);
108306+
function isTypeOnlySymbol(s, checker) {
108307+
return !(ts.skipAlias(s, checker).flags & 67220415 /* Value */);
108306108308
}
108307108309
function getFixForImport(exportInfos, symbolName, position, program, sourceFile, host, preferences) {
108308108310
var checker = program.getTypeChecker();
@@ -108470,7 +108472,7 @@ var ts;
108470108472
// Maps symbol id to info for modules providing that symbol (original export + re-exports).
108471108473
var originalSymbolToExportInfos = ts.createMultiMap();
108472108474
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) });
108474108476
}
108475108477
forEachExternalModuleToImportFrom(checker, sourceFile, program.getSourceFiles(), function (moduleSymbol) {
108476108478
cancellationToken.throwIfCancellationRequested();
@@ -108492,7 +108494,7 @@ var ts;
108492108494
return undefined;
108493108495
var symbol = exported.symbol, kind = exported.kind;
108494108496
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);
108496108498
}
108497108499
function getDefaultLikeExportWorker(moduleSymbol, checker) {
108498108500
var defaultExport = checker.tryGetMemberInModuleExports("default" /* Default */, moduleSymbol);

0 commit comments

Comments
 (0)