Skip to content

Commit 7e1711d

Browse files
committed
Update LKG
1 parent bb57c5a commit 7e1711d

File tree

9 files changed

+1321
-1005
lines changed

9 files changed

+1321
-1005
lines changed

lib/protocol.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,12 @@ declare namespace ts.server.protocol {
591591
interface DefinitionRequest extends FileLocationRequest {
592592
command: CommandTypes.Definition;
593593
}
594+
interface DefinitionAndBoundSpanRequest extends FileLocationRequest {
595+
readonly command: CommandTypes.DefinitionAndBoundSpan;
596+
}
597+
interface DefinitionAndBoundSpanResponse extends Response {
598+
readonly body: DefinitionInfoAndBoundSpan;
599+
}
594600
/**
595601
* Go to type request; value of command field is
596602
* "typeDefinition". Return response giving the file locations that

lib/tsc.js

Lines changed: 78 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -17529,6 +17529,7 @@ var ts;
1752917529
function isDeclarationFileName(fileName) {
1753017530
return ts.fileExtensionIs(fileName, ".d.ts");
1753117531
}
17532+
ts.isDeclarationFileName = isDeclarationFileName;
1753217533
function processCommentPragmas(context, sourceText) {
1753317534
var triviaScanner = ts.createScanner(context.languageVersion, false, 0, sourceText);
1753417535
var pragmas = [];
@@ -25567,17 +25568,25 @@ var ts;
2556725568
function getParentOfSymbol(symbol) {
2556825569
return getMergedSymbol(symbol.parent && getLateBoundSymbol(symbol.parent));
2556925570
}
25570-
function getContainerOfSymbol(symbol) {
25571+
function getContainersOfSymbol(symbol, enclosingDeclaration) {
2557125572
var container = getParentOfSymbol(symbol);
2557225573
if (container) {
25573-
return container;
25574+
var additionalContainers = ts.mapDefined(container.declarations, fileSymbolIfFileSymbolExportEqualsContainer);
25575+
if (enclosingDeclaration && getAccessibleSymbolChain(container, enclosingDeclaration, 1920, false)) {
25576+
return ts.concatenate([container], additionalContainers);
25577+
}
25578+
return ts.append(additionalContainers, container);
2557425579
}
25575-
var candidate = ts.forEach(symbol.declarations, function (d) { return !ts.isAmbientModule(d) && d.parent && hasNonGlobalAugmentationExternalModuleSymbol(d.parent) ? getSymbolOfNode(d.parent) : undefined; });
25576-
if (!candidate) {
25580+
var candidates = ts.mapDefined(symbol.declarations, function (d) { return !ts.isAmbientModule(d) && d.parent && hasNonGlobalAugmentationExternalModuleSymbol(d.parent) ? getSymbolOfNode(d.parent) : undefined; });
25581+
if (!ts.length(candidates)) {
2557725582
return undefined;
2557825583
}
25579-
var alias = getAliasForSymbolInContainer(candidate, symbol);
25580-
return alias ? candidate : undefined;
25584+
return ts.mapDefined(candidates, function (candidate) { return getAliasForSymbolInContainer(candidate, symbol) ? candidate : undefined; });
25585+
function fileSymbolIfFileSymbolExportEqualsContainer(d) {
25586+
var fileSymbol = getExternalModuleContainer(d);
25587+
var exported = fileSymbol && fileSymbol.exports && fileSymbol.exports.get("export=");
25588+
return resolveSymbol(exported) === resolveSymbol(container) ? fileSymbol : undefined;
25589+
}
2558125590
}
2558225591
function getAliasForSymbolInContainer(container, symbol) {
2558325592
if (container === getParentOfSymbol(symbol)) {
@@ -25801,54 +25810,67 @@ var ts;
2580125810
var access = isSymbolAccessible(typeSymbol, enclosingDeclaration, 67216319, false);
2580225811
return access.accessibility === 0;
2580325812
}
25804-
function isSymbolAccessible(symbol, enclosingDeclaration, meaning, shouldComputeAliasesToMakeVisible) {
25805-
if (symbol && enclosingDeclaration) {
25806-
var initialSymbol = symbol;
25807-
var meaningToLook = meaning;
25808-
while (symbol) {
25809-
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaningToLook, false);
25810-
if (accessibleSymbolChain) {
25811-
var hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0], shouldComputeAliasesToMakeVisible);
25812-
if (!hasAccessibleDeclarations) {
25813-
return {
25814-
accessibility: 1,
25815-
errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning),
25816-
errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, 1920) : undefined,
25817-
};
25818-
}
25813+
function isAnySymbolAccessible(symbols, enclosingDeclaration, initialSymbol, meaning, shouldComputeAliasesToMakeVisible) {
25814+
if (!ts.length(symbols))
25815+
return;
25816+
var hadAccessibleChain;
25817+
for (var _i = 0, _a = symbols; _i < _a.length; _i++) {
25818+
var symbol = _a[_i];
25819+
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, false);
25820+
if (accessibleSymbolChain) {
25821+
hadAccessibleChain = symbol;
25822+
var hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0], shouldComputeAliasesToMakeVisible);
25823+
if (hasAccessibleDeclarations) {
2581925824
return hasAccessibleDeclarations;
2582025825
}
25821-
else {
25822-
if (ts.some(symbol.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {
25823-
return {
25824-
accessibility: 0
25825-
};
25826-
}
25826+
}
25827+
else {
25828+
if (ts.some(symbol.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {
25829+
return {
25830+
accessibility: 0
25831+
};
2582725832
}
25828-
meaningToLook = getQualifiedLeftMeaning(meaning);
25829-
symbol = getContainerOfSymbol(symbol);
2583025833
}
25831-
var symbolExternalModule = ts.forEach(initialSymbol.declarations, getExternalModuleContainer);
25834+
var parentResult = isAnySymbolAccessible(getContainersOfSymbol(symbol, enclosingDeclaration), enclosingDeclaration, initialSymbol, initialSymbol === symbol ? getQualifiedLeftMeaning(meaning) : meaning, shouldComputeAliasesToMakeVisible);
25835+
if (parentResult) {
25836+
return parentResult;
25837+
}
25838+
}
25839+
if (hadAccessibleChain) {
25840+
return {
25841+
accessibility: 1,
25842+
errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning),
25843+
errorModuleName: hadAccessibleChain !== initialSymbol ? symbolToString(hadAccessibleChain, enclosingDeclaration, 1920) : undefined,
25844+
};
25845+
}
25846+
}
25847+
function isSymbolAccessible(symbol, enclosingDeclaration, meaning, shouldComputeAliasesToMakeVisible) {
25848+
if (symbol && enclosingDeclaration) {
25849+
var result = isAnySymbolAccessible([symbol], enclosingDeclaration, symbol, meaning, shouldComputeAliasesToMakeVisible);
25850+
if (result) {
25851+
return result;
25852+
}
25853+
var symbolExternalModule = ts.forEach(symbol.declarations, getExternalModuleContainer);
2583225854
if (symbolExternalModule) {
2583325855
var enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration);
2583425856
if (symbolExternalModule !== enclosingExternalModule) {
2583525857
return {
2583625858
accessibility: 2,
25837-
errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning),
25859+
errorSymbolName: symbolToString(symbol, enclosingDeclaration, meaning),
2583825860
errorModuleName: symbolToString(symbolExternalModule)
2583925861
};
2584025862
}
2584125863
}
2584225864
return {
2584325865
accessibility: 1,
25844-
errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning),
25866+
errorSymbolName: symbolToString(symbol, enclosingDeclaration, meaning),
2584525867
};
2584625868
}
2584725869
return { accessibility: 0 };
25848-
function getExternalModuleContainer(declaration) {
25849-
var node = ts.findAncestor(declaration, hasExternalModuleSymbol);
25850-
return node && getSymbolOfNode(node);
25851-
}
25870+
}
25871+
function getExternalModuleContainer(declaration) {
25872+
var node = ts.findAncestor(declaration, hasExternalModuleSymbol);
25873+
return node && getSymbolOfNode(node);
2585225874
}
2585325875
function hasExternalModuleSymbol(declaration) {
2585425876
return ts.isAmbientModule(declaration) || (declaration.kind === 277 && ts.isExternalOrCommonJsModule(declaration));
@@ -26580,24 +26602,28 @@ var ts;
2658026602
return chain;
2658126603
function getSymbolChain(symbol, meaning, endOfChain) {
2658226604
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, context.enclosingDeclaration, meaning, !!(context.flags & 128));
26583-
var parentSymbol;
2658426605
if (!accessibleSymbolChain ||
2658526606
needsQualification(accessibleSymbolChain[0], context.enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) {
26586-
var parent = getContainerOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol);
26587-
if (parent) {
26588-
var parentChain = getSymbolChain(parent, getQualifiedLeftMeaning(meaning), false);
26589-
if (parentChain) {
26590-
parentSymbol = parent;
26591-
accessibleSymbolChain = parentChain.concat(accessibleSymbolChain || [getAliasForSymbolInContainer(parent, symbol) || symbol]);
26607+
var parents = getContainersOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol, context.enclosingDeclaration);
26608+
if (ts.length(parents)) {
26609+
for (var _i = 0, _a = parents; _i < _a.length; _i++) {
26610+
var parent = _a[_i];
26611+
var parentChain = getSymbolChain(parent, getQualifiedLeftMeaning(meaning), false);
26612+
if (parentChain) {
26613+
accessibleSymbolChain = parentChain.concat(accessibleSymbolChain || [getAliasForSymbolInContainer(parent, symbol) || symbol]);
26614+
break;
26615+
}
2659226616
}
2659326617
}
2659426618
}
2659526619
if (accessibleSymbolChain) {
2659626620
return accessibleSymbolChain;
2659726621
}
2659826622
if (endOfChain ||
26599-
(yieldModuleSymbol || !(!parentSymbol && ts.forEach(symbol.declarations, hasNonGlobalAugmentationExternalModuleSymbol))) &&
26600-
!(symbol.flags & (2048 | 4096))) {
26623+
!(symbol.flags & (2048 | 4096))) {
26624+
if (!endOfChain && !yieldModuleSymbol && !!ts.forEach(symbol.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {
26625+
return;
26626+
}
2660126627
return [symbol];
2660226628
}
2660326629
}
@@ -27046,7 +27072,7 @@ var ts;
2704627072
return !!target.resolvedReturnType;
2704727073
}
2704827074
if (propertyName === 4) {
27049-
var bc = target.resolvedBaseConstraint;
27075+
var bc = target.immediateBaseConstraint;
2705027076
return !!bc && bc !== circularConstraintType;
2705127077
}
2705227078
return ts.Debug.fail("Unhandled TypeSystemPropertyName " + propertyName);
@@ -29137,15 +29163,21 @@ var ts;
2913729163
}
2913829164
return type.resolvedBaseConstraint;
2913929165
function getBaseConstraint(t) {
29166+
if (t.immediateBaseConstraint) {
29167+
return t.immediateBaseConstraint === noConstraintType ? undefined : t.immediateBaseConstraint;
29168+
}
2914029169
if (!pushTypeResolution(t, 4)) {
2914129170
circular = true;
29171+
t.immediateBaseConstraint = circularConstraintType;
2914229172
return undefined;
2914329173
}
2914429174
var result = computeBaseConstraint(getSimplifiedType(t));
2914529175
if (!popTypeResolution()) {
2914629176
circular = true;
29177+
t.immediateBaseConstraint = circularConstraintType;
2914729178
return undefined;
2914829179
}
29180+
t.immediateBaseConstraint = !result ? noConstraintType : result;
2914929181
return result;
2915029182
}
2915129183
function computeBaseConstraint(t) {

0 commit comments

Comments
 (0)