Skip to content

Commit 03da79d

Browse files
committed
Move LSIF to TS 4.4.2
1 parent a10409c commit 03da79d

18 files changed

+11321
-449
lines changed

lib/tsc.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37476,6 +37476,9 @@ var ts;
3747637476
var requireSymbol = createSymbol(4, "require");
3747737477
var apparentArgumentCount;
3747837478
var checker = {
37479+
setSymbolChainCache: function (cache) {
37480+
nodeBuilder.setSymbolChainCache(cache);
37481+
},
3747937482
getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); },
3748037483
getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); },
3748137484
getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount") + symbolCount; },
@@ -40787,7 +40790,9 @@ var ts;
4078740790
return !!type.symbol && !!(type.symbol.flags & 32) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || (!!(type.flags & 524288) && !!(ts.getObjectFlags(type) & 16777216)));
4078840791
}
4078940792
function createNodeBuilder() {
40793+
var symbolChainCache;
4079040794
return {
40795+
setSymbolChainCache: function (cache) { symbolChainCache = cache; },
4079140796
typeToTypeNode: function (type, enclosingDeclaration, flags, tracker) {
4079240797
return withContext(enclosingDeclaration, flags, tracker, function (context) { return typeToTypeNodeHelper(type, context); });
4079340798
},
@@ -40833,6 +40838,7 @@ var ts;
4083340838
fileExists: function (fileName) { return host.fileExists(fileName); },
4083440839
getFileIncludeReasons: function () { return host.getFileIncludeReasons(); },
4083540840
} : undefined },
40841+
cache: symbolChainCache,
4083640842
encounteredError: false,
4083740843
reportedDiagnostic: false,
4083840844
visitedTypes: undefined,
@@ -41774,6 +41780,29 @@ var ts;
4177441780
}
4177541781
return chain;
4177641782
function getSymbolChain(symbol, meaning, endOfChain) {
41783+
var key;
41784+
var result;
41785+
if (context.cache) {
41786+
key = {
41787+
symbol: symbol,
41788+
enclosingDeclaration: context.enclosingDeclaration,
41789+
flags: context.flags,
41790+
meaning: meaning,
41791+
yieldModuleSymbol: yieldModuleSymbol,
41792+
endOfChain: endOfChain
41793+
};
41794+
result = context.cache.lookup(key);
41795+
if (result) {
41796+
return result;
41797+
}
41798+
}
41799+
result = doGetSymbolChain(symbol, meaning, endOfChain);
41800+
if (result && key && context.cache) {
41801+
context.cache.cache(key, result);
41802+
}
41803+
return result;
41804+
}
41805+
function doGetSymbolChain(symbol, meaning, endOfChain) {
4177741806
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, context.enclosingDeclaration, meaning, !!(context.flags & 128));
4177841807
var parentSpecifiers;
4177941808
if (!accessibleSymbolChain ||

lib/tsserver.js

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45924,6 +45924,9 @@ var ts;
4592445924
// extra cost of calling `getParseTreeNode` when calling these functions from inside the
4592545925
// checker.
4592645926
var checker = {
45927+
setSymbolChainCache: function (cache) {
45928+
nodeBuilder.setSymbolChainCache(cache);
45929+
},
4592745930
getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); },
4592845931
getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); },
4592945932
getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount") + symbolCount; },
@@ -49700,7 +49703,9 @@ var ts;
4970049703
return !!type.symbol && !!(type.symbol.flags & 32 /* Class */) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || (!!(type.flags & 524288 /* Object */) && !!(ts.getObjectFlags(type) & 16777216 /* IsClassInstanceClone */)));
4970149704
}
4970249705
function createNodeBuilder() {
49706+
var symbolChainCache;
4970349707
return {
49708+
setSymbolChainCache: function (cache) { symbolChainCache = cache; },
4970449709
typeToTypeNode: function (type, enclosingDeclaration, flags, tracker) {
4970549710
return withContext(enclosingDeclaration, flags, tracker, function (context) { return typeToTypeNodeHelper(type, context); });
4970649711
},
@@ -49747,6 +49752,7 @@ var ts;
4974749752
fileExists: function (fileName) { return host.fileExists(fileName); },
4974849753
getFileIncludeReasons: function () { return host.getFileIncludeReasons(); },
4974949754
} : undefined },
49755+
cache: symbolChainCache,
4975049756
encounteredError: false,
4975149757
reportedDiagnostic: false,
4975249758
visitedTypes: undefined,
@@ -50742,6 +50748,29 @@ var ts;
5074250748
return chain;
5074350749
/** @param endOfChain Set to false for recursive calls; non-recursive calls should always output something. */
5074450750
function getSymbolChain(symbol, meaning, endOfChain) {
50751+
var key;
50752+
var result;
50753+
if (context.cache) {
50754+
key = {
50755+
symbol: symbol,
50756+
enclosingDeclaration: context.enclosingDeclaration,
50757+
flags: context.flags,
50758+
meaning: meaning,
50759+
yieldModuleSymbol: yieldModuleSymbol,
50760+
endOfChain: endOfChain
50761+
};
50762+
result = context.cache.lookup(key);
50763+
if (result) {
50764+
return result;
50765+
}
50766+
}
50767+
result = doGetSymbolChain(symbol, meaning, endOfChain);
50768+
if (result && key && context.cache) {
50769+
context.cache.cache(key, result);
50770+
}
50771+
return result;
50772+
}
50773+
function doGetSymbolChain(symbol, meaning, endOfChain) {
5074550774
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, context.enclosingDeclaration, meaning, !!(context.flags & 128 /* UseOnlyExternalAliasing */));
5074650775
var parentSpecifiers;
5074750776
if (!accessibleSymbolChain ||
@@ -156796,10 +156825,11 @@ var ts;
156796156825
synchronizeHostData();
156797156826
return ts.Completions.getCompletionEntrySymbol(program, log, getValidSourceFile(fileName), position, { name: name, source: source }, host, preferences);
156798156827
}
156799-
function getQuickInfoAtPosition(fileName, position) {
156828+
function getQuickInfoAtPosition(arg0, arg1) {
156800156829
synchronizeHostData();
156801-
var sourceFile = getValidSourceFile(fileName);
156802-
var node = ts.getTouchingPropertyName(sourceFile, position);
156830+
var sourceFile = typeof arg0 === 'string' ? getValidSourceFile(arg0) : (arg1 !== undefined) ? arg1 : arg0.getSourceFile();
156831+
var node = typeof arg0 === 'string' ? ts.getTouchingPropertyName(sourceFile, arg1) : arg0;
156832+
var position = typeof arg1 === 'number' ? arg1 : node.getStart(sourceFile, false);
156803156833
if (node === sourceFile) {
156804156834
// Avoid giving quickInfo for the sourceFile as a whole.
156805156835
return undefined;
@@ -157036,9 +157066,9 @@ var ts;
157036157066
// doesn't use compiler - no need to synchronize with host
157037157067
return ts.getEncodedSyntacticClassifications(cancellationToken, syntaxTreeCache.getCurrentSourceFile(fileName), span);
157038157068
}
157039-
function getOutliningSpans(fileName) {
157069+
function getOutliningSpans(arg0) {
157040157070
// doesn't use compiler - no need to synchronize with host
157041-
var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);
157071+
var sourceFile = typeof arg0 === 'string' ? syntaxTreeCache.getCurrentSourceFile(arg0) : arg0;
157042157072
return ts.OutliningElementsCollector.collectElements(sourceFile, cancellationToken);
157043157073
}
157044157074
var braceMatching = new ts.Map(ts.getEntries((_a = {},
@@ -158800,14 +158830,11 @@ var ts;
158800158830
return _this.realizeDiagnostics(diagnostics);
158801158831
});
158802158832
};
158803-
/// QUICKINFO
158804-
/**
158805-
* Computes a string representation of the type at the requested position
158806-
* in the active file.
158807-
*/
158808-
LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (fileName, position) {
158833+
LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (arg0, arg1) {
158809158834
var _this = this;
158810-
return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); });
158835+
var fileName = typeof arg0 === "string" ? arg0 : arg1 !== undefined ? arg1.fileName : arg0.getSourceFile().fileName;
158836+
var position = typeof arg0 === "string" ? arg1 : arg0.getStart(arg1);
158837+
return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(arg0, arg1); });
158811158838
};
158812158839
/// NAMEORDOTTEDNAMESPAN
158813158840
/**
@@ -158982,9 +159009,10 @@ var ts;
158982159009
var _this = this;
158983159010
return this.forwardJSONCall("getNavigationTree('" + fileName + "')", function () { return _this.languageService.getNavigationTree(fileName); });
158984159011
};
158985-
LanguageServiceShimObject.prototype.getOutliningSpans = function (fileName) {
159012+
LanguageServiceShimObject.prototype.getOutliningSpans = function (arg0) {
158986159013
var _this = this;
158987-
return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(fileName); });
159014+
var fileName = typeof arg0 === "string" ? arg0 : arg0.fileName;
159015+
return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(arg0); });
158988159016
};
158989159017
LanguageServiceShimObject.prototype.getTodoComments = function (fileName, descriptors) {
158990159018
var _this = this;

lib/tsserverlibrary.d.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2191,7 +2191,20 @@ declare namespace ts {
21912191
diagnostics: readonly Diagnostic[];
21922192
emittedFiles?: string[];
21932193
}
2194+
export interface SymbolChainCacheKey {
2195+
symbol: Symbol;
2196+
enclosingDeclaration?: Node;
2197+
flags: NodeBuilderFlags;
2198+
meaning: SymbolFlags;
2199+
yieldModuleSymbol?: boolean;
2200+
endOfChain: boolean;
2201+
}
2202+
export interface SymbolChainCache {
2203+
lookup(key: SymbolChainCacheKey): Symbol[] | undefined;
2204+
cache(key: SymbolChainCacheKey, value: Symbol[]): void;
2205+
}
21942206
export interface TypeChecker {
2207+
setSymbolChainCache(cache: SymbolChainCache | undefined): void;
21952208
getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type;
21962209
getDeclaredTypeOfSymbol(symbol: Symbol): Type;
21972210
getPropertiesOfType(type: Type): Symbol[];
@@ -5671,6 +5684,7 @@ declare namespace ts {
56715684
* @param position A zero-based index of the character where you want the quick info
56725685
*/
56735686
getQuickInfoAtPosition(fileName: string, position: number): QuickInfo | undefined;
5687+
getQuickInfoAtPosition(node: ts.Node, sourceFile?: ts.SourceFile): QuickInfo | undefined;
56745688
getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan | undefined;
56755689
getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan | undefined;
56765690
getSignatureHelpItems(fileName: string, position: number, options: SignatureHelpItemsOptions | undefined): SignatureHelpItems | undefined;
@@ -5695,6 +5709,7 @@ declare namespace ts {
56955709
provideCallHierarchyOutgoingCalls(fileName: string, position: number): CallHierarchyOutgoingCall[];
56965710
provideInlayHints(fileName: string, span: TextSpan, preferences: UserPreferences | undefined): InlayHint[];
56975711
getOutliningSpans(fileName: string): OutliningSpan[];
5712+
getOutliningSpans(sourceFile: ts.SourceFile): OutliningSpan[];
56985713
getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[];
56995714
getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[];
57005715
getIndentationAtPosition(fileName: string, position: number, options: EditorOptions | EditorSettings): number;

lib/tsserverlibrary.js

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46118,6 +46118,9 @@ var ts;
4611846118
// extra cost of calling `getParseTreeNode` when calling these functions from inside the
4611946119
// checker.
4612046120
var checker = {
46121+
setSymbolChainCache: function (cache) {
46122+
nodeBuilder.setSymbolChainCache(cache);
46123+
},
4612146124
getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); },
4612246125
getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); },
4612346126
getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount") + symbolCount; },
@@ -49894,7 +49897,9 @@ var ts;
4989449897
return !!type.symbol && !!(type.symbol.flags & 32 /* Class */) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || (!!(type.flags & 524288 /* Object */) && !!(ts.getObjectFlags(type) & 16777216 /* IsClassInstanceClone */)));
4989549898
}
4989649899
function createNodeBuilder() {
49900+
var symbolChainCache;
4989749901
return {
49902+
setSymbolChainCache: function (cache) { symbolChainCache = cache; },
4989849903
typeToTypeNode: function (type, enclosingDeclaration, flags, tracker) {
4989949904
return withContext(enclosingDeclaration, flags, tracker, function (context) { return typeToTypeNodeHelper(type, context); });
4990049905
},
@@ -49941,6 +49946,7 @@ var ts;
4994149946
fileExists: function (fileName) { return host.fileExists(fileName); },
4994249947
getFileIncludeReasons: function () { return host.getFileIncludeReasons(); },
4994349948
} : undefined },
49949+
cache: symbolChainCache,
4994449950
encounteredError: false,
4994549951
reportedDiagnostic: false,
4994649952
visitedTypes: undefined,
@@ -50936,6 +50942,29 @@ var ts;
5093650942
return chain;
5093750943
/** @param endOfChain Set to false for recursive calls; non-recursive calls should always output something. */
5093850944
function getSymbolChain(symbol, meaning, endOfChain) {
50945+
var key;
50946+
var result;
50947+
if (context.cache) {
50948+
key = {
50949+
symbol: symbol,
50950+
enclosingDeclaration: context.enclosingDeclaration,
50951+
flags: context.flags,
50952+
meaning: meaning,
50953+
yieldModuleSymbol: yieldModuleSymbol,
50954+
endOfChain: endOfChain
50955+
};
50956+
result = context.cache.lookup(key);
50957+
if (result) {
50958+
return result;
50959+
}
50960+
}
50961+
result = doGetSymbolChain(symbol, meaning, endOfChain);
50962+
if (result && key && context.cache) {
50963+
context.cache.cache(key, result);
50964+
}
50965+
return result;
50966+
}
50967+
function doGetSymbolChain(symbol, meaning, endOfChain) {
5093950968
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, context.enclosingDeclaration, meaning, !!(context.flags & 128 /* UseOnlyExternalAliasing */));
5094050969
var parentSpecifiers;
5094150970
if (!accessibleSymbolChain ||
@@ -157378,10 +157407,11 @@ var ts;
157378157407
synchronizeHostData();
157379157408
return ts.Completions.getCompletionEntrySymbol(program, log, getValidSourceFile(fileName), position, { name: name, source: source }, host, preferences);
157380157409
}
157381-
function getQuickInfoAtPosition(fileName, position) {
157410+
function getQuickInfoAtPosition(arg0, arg1) {
157382157411
synchronizeHostData();
157383-
var sourceFile = getValidSourceFile(fileName);
157384-
var node = ts.getTouchingPropertyName(sourceFile, position);
157412+
var sourceFile = typeof arg0 === 'string' ? getValidSourceFile(arg0) : (arg1 !== undefined) ? arg1 : arg0.getSourceFile();
157413+
var node = typeof arg0 === 'string' ? ts.getTouchingPropertyName(sourceFile, arg1) : arg0;
157414+
var position = typeof arg1 === 'number' ? arg1 : node.getStart(sourceFile, false);
157385157415
if (node === sourceFile) {
157386157416
// Avoid giving quickInfo for the sourceFile as a whole.
157387157417
return undefined;
@@ -157618,9 +157648,9 @@ var ts;
157618157648
// doesn't use compiler - no need to synchronize with host
157619157649
return ts.getEncodedSyntacticClassifications(cancellationToken, syntaxTreeCache.getCurrentSourceFile(fileName), span);
157620157650
}
157621-
function getOutliningSpans(fileName) {
157651+
function getOutliningSpans(arg0) {
157622157652
// doesn't use compiler - no need to synchronize with host
157623-
var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);
157653+
var sourceFile = typeof arg0 === 'string' ? syntaxTreeCache.getCurrentSourceFile(arg0) : arg0;
157624157654
return ts.OutliningElementsCollector.collectElements(sourceFile, cancellationToken);
157625157655
}
157626157656
var braceMatching = new ts.Map(ts.getEntries((_a = {},
@@ -159382,14 +159412,11 @@ var ts;
159382159412
return _this.realizeDiagnostics(diagnostics);
159383159413
});
159384159414
};
159385-
/// QUICKINFO
159386-
/**
159387-
* Computes a string representation of the type at the requested position
159388-
* in the active file.
159389-
*/
159390-
LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (fileName, position) {
159415+
LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (arg0, arg1) {
159391159416
var _this = this;
159392-
return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); });
159417+
var fileName = typeof arg0 === "string" ? arg0 : arg1 !== undefined ? arg1.fileName : arg0.getSourceFile().fileName;
159418+
var position = typeof arg0 === "string" ? arg1 : arg0.getStart(arg1);
159419+
return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(arg0, arg1); });
159393159420
};
159394159421
/// NAMEORDOTTEDNAMESPAN
159395159422
/**
@@ -159564,9 +159591,10 @@ var ts;
159564159591
var _this = this;
159565159592
return this.forwardJSONCall("getNavigationTree('" + fileName + "')", function () { return _this.languageService.getNavigationTree(fileName); });
159566159593
};
159567-
LanguageServiceShimObject.prototype.getOutliningSpans = function (fileName) {
159594+
LanguageServiceShimObject.prototype.getOutliningSpans = function (arg0) {
159568159595
var _this = this;
159569-
return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(fileName); });
159596+
var fileName = typeof arg0 === "string" ? arg0 : arg0.fileName;
159597+
return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(arg0); });
159570159598
};
159571159599
LanguageServiceShimObject.prototype.getTodoComments = function (fileName, descriptors) {
159572159600
var _this = this;

0 commit comments

Comments
 (0)