Skip to content

Commit f7bf3b2

Browse files
Update LKG
1 parent 2c50458 commit f7bf3b2

File tree

2 files changed

+150
-97
lines changed

2 files changed

+150
-97
lines changed

Diff for: lib/tsc.js

+70-45
Original file line numberDiff line numberDiff line change
@@ -51544,10 +51544,11 @@ function createTypeChecker(host) {
5154451544
return result ? setTextRange2(context, result, node) : void 0;
5154551545
}
5154651546
function createRecoveryBoundary() {
51547+
let trackedSymbols;
5154751548
let unreportedErrors;
5154851549
const oldTracker = context.tracker;
5154951550
const oldTrackedSymbols = context.trackedSymbols;
51550-
context.trackedSymbols = [];
51551+
context.trackedSymbols = void 0;
5155151552
const oldEncounteredError = context.encounteredError;
5155251553
context.tracker = new SymbolTrackerImpl(context, {
5155351554
...oldTracker.inner,
@@ -51567,17 +51568,7 @@ function createTypeChecker(host) {
5156751568
markError(() => oldTracker.reportNonSerializableProperty(name));
5156851569
},
5156951570
trackSymbol(sym, decl, meaning) {
51570-
const accessibility = isSymbolAccessible(
51571-
sym,
51572-
decl,
51573-
meaning,
51574-
/*shouldComputeAliasesToMakeVisible*/
51575-
false
51576-
);
51577-
if (accessibility.accessibility !== 0 /* Accessible */) {
51578-
(context.trackedSymbols ?? (context.trackedSymbols = [])).push([sym, decl, meaning]);
51579-
return true;
51580-
}
51571+
(trackedSymbols ?? (trackedSymbols = [])).push([sym, decl, meaning]);
5158151572
return false;
5158251573
},
5158351574
moduleResolverHost: context.tracker.moduleResolverHost
@@ -51591,13 +51582,12 @@ function createTypeChecker(host) {
5159151582
(unreportedErrors ?? (unreportedErrors = [])).push(unreportedError);
5159251583
}
5159351584
function startRecoveryScope2() {
51594-
var _a;
51595-
const initialTrackedSymbolsTop = ((_a = context.trackedSymbols) == null ? void 0 : _a.length) ?? 0;
51585+
const trackedSymbolsTop = (trackedSymbols == null ? void 0 : trackedSymbols.length) ?? 0;
5159651586
const unreportedErrorsTop = (unreportedErrors == null ? void 0 : unreportedErrors.length) ?? 0;
5159751587
return () => {
5159851588
hadError = false;
51599-
if (context.trackedSymbols) {
51600-
context.trackedSymbols.length = initialTrackedSymbolsTop;
51589+
if (trackedSymbols) {
51590+
trackedSymbols.length = trackedSymbolsTop;
5160151591
}
5160251592
if (unreportedErrors) {
5160351593
unreportedErrors.length = unreportedErrorsTop;
@@ -51606,14 +51596,13 @@ function createTypeChecker(host) {
5160651596
}
5160751597
function finalizeBoundary2() {
5160851598
context.tracker = oldTracker;
51609-
const newTrackedSymbols = context.trackedSymbols;
5161051599
context.trackedSymbols = oldTrackedSymbols;
5161151600
context.encounteredError = oldEncounteredError;
5161251601
unreportedErrors == null ? void 0 : unreportedErrors.forEach((fn) => fn());
5161351602
if (hadError) {
5161451603
return false;
5161551604
}
51616-
newTrackedSymbols == null ? void 0 : newTrackedSymbols.forEach(
51605+
trackedSymbols == null ? void 0 : trackedSymbols.forEach(
5161751606
([symbol, enclosingDeclaration, meaning]) => context.tracker.trackSymbol(
5161851607
symbol,
5161951608
enclosingDeclaration,
@@ -51626,6 +51615,57 @@ function createTypeChecker(host) {
5162651615
function onEnterNewScope(node) {
5162751616
return enterNewScope(context, node, getParametersInScope(node), getTypeParametersInScope(node));
5162851617
}
51618+
function tryVisitSimpleTypeNode(node) {
51619+
const innerNode = skipTypeParentheses(node);
51620+
switch (innerNode.kind) {
51621+
case 183 /* TypeReference */:
51622+
return tryVisitTypeReference(innerNode);
51623+
case 186 /* TypeQuery */:
51624+
return tryVisitTypeQuery(innerNode);
51625+
case 199 /* IndexedAccessType */:
51626+
return tryVisitIndexedAccess(innerNode);
51627+
case 198 /* TypeOperator */:
51628+
const typeOperatorNode = innerNode;
51629+
if (typeOperatorNode.operator === 143 /* KeyOfKeyword */) {
51630+
return tryVisitKeyOf(typeOperatorNode);
51631+
}
51632+
}
51633+
return visitNode(node, visitExistingNodeTreeSymbols, isTypeNode);
51634+
}
51635+
function tryVisitIndexedAccess(node) {
51636+
const resultObjectType = tryVisitSimpleTypeNode(node.objectType);
51637+
if (resultObjectType === void 0) {
51638+
return void 0;
51639+
}
51640+
return factory.updateIndexedAccessTypeNode(node, resultObjectType, visitNode(node.indexType, visitExistingNodeTreeSymbols, isTypeNode));
51641+
}
51642+
function tryVisitKeyOf(node) {
51643+
Debug.assertEqual(node.operator, 143 /* KeyOfKeyword */);
51644+
const type = tryVisitSimpleTypeNode(node.type);
51645+
if (type === void 0) {
51646+
return void 0;
51647+
}
51648+
return factory.updateTypeOperatorNode(node, type);
51649+
}
51650+
function tryVisitTypeQuery(node) {
51651+
const { introducesError, node: exprName } = trackExistingEntityName(node.exprName, context);
51652+
if (!introducesError) {
51653+
return factory.updateTypeQueryNode(
51654+
node,
51655+
exprName,
51656+
visitNodes2(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode)
51657+
);
51658+
}
51659+
const serializedName = serializeTypeName(
51660+
context,
51661+
node.exprName,
51662+
/*isTypeOf*/
51663+
true
51664+
);
51665+
if (serializedName) {
51666+
return setTextRange2(context, serializedName, node.exprName);
51667+
}
51668+
}
5162951669
function tryVisitTypeReference(node) {
5163051670
if (canReuseTypeNode(context, node)) {
5163151671
const { introducesError, node: newName } = trackExistingEntityName(node.typeName, context);
@@ -51759,13 +51799,13 @@ function createTypeChecker(host) {
5175951799
visitNode(node.default, visitExistingNodeTreeSymbols, isTypeNode)
5176051800
);
5176151801
}
51762-
if (isIndexedAccessTypeNode(node) && isTypeReferenceNode(node.objectType)) {
51763-
const objectType = tryVisitTypeReference(node.objectType);
51764-
if (!objectType) {
51802+
if (isIndexedAccessTypeNode(node)) {
51803+
const result = tryVisitIndexedAccess(node);
51804+
if (!result) {
5176551805
hadError = true;
5176651806
return node;
5176751807
}
51768-
return factory.updateIndexedAccessTypeNode(node, objectType, visitNode(node.indexType, visitExistingNodeTreeSymbols, isTypeNode));
51808+
return result;
5176951809
}
5177051810
if (isTypeReferenceNode(node)) {
5177151811
const result = tryVisitTypeReference(node);
@@ -51808,25 +51848,12 @@ function createTypeChecker(host) {
5180851848
return visited;
5180951849
}
5181051850
if (isTypeQueryNode(node)) {
51811-
const { introducesError, node: exprName } = trackExistingEntityName(node.exprName, context);
51812-
if (introducesError) {
51813-
const serializedName = serializeTypeName(
51814-
context,
51815-
node.exprName,
51816-
/*isTypeOf*/
51817-
true
51818-
);
51819-
if (serializedName) {
51820-
return setTextRange2(context, serializedName, node.exprName);
51821-
}
51851+
const result = tryVisitTypeQuery(node);
51852+
if (!result) {
5182251853
hadError = true;
5182351854
return node;
5182451855
}
51825-
return factory.updateTypeQueryNode(
51826-
node,
51827-
exprName,
51828-
visitNodes2(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode)
51829-
);
51856+
return result;
5183051857
}
5183151858
if (isComputedPropertyName(node) && isEntityNameExpression(node.expression)) {
5183251859
const { node: result, introducesError } = trackExistingEntityName(node.expression, context);
@@ -51891,14 +51918,12 @@ function createTypeChecker(host) {
5189151918
return node;
5189251919
}
5189351920
} else if (node.operator === 143 /* KeyOfKeyword */) {
51894-
if (isTypeReferenceNode(node.type)) {
51895-
const type = tryVisitTypeReference(node.type);
51896-
if (!type) {
51897-
hadError = true;
51898-
return node;
51899-
}
51900-
return factory.updateTypeOperatorNode(node, type);
51921+
const result = tryVisitKeyOf(node);
51922+
if (!result) {
51923+
hadError = true;
51924+
return node;
5190151925
}
51926+
return result;
5190251927
}
5190351928
}
5190451929
return visitEachChild2(node, visitExistingNodeTreeSymbols);

0 commit comments

Comments
 (0)