Update LKG.

This commit is contained in:
Daniel Rosenwasser
2017-06-22 17:33:19 -07:00
parent 14d95edd33
commit 8b2fe136f8
5 changed files with 162 additions and 107 deletions

View File

@@ -15554,7 +15554,7 @@ var ts;
}
function parseLeftHandSideExpressionOrHigher() {
var expression;
if (token() === 91) {
if (token() === 91 && lookAhead(nextTokenIsOpenParenOrLessThan)) {
sourceFile.flags |= 524288;
expression = parseTokenNode();
}
@@ -18760,7 +18760,20 @@ var ts;
ts.forEachChild(node, bind, bindEach);
}
function bindChildrenWorker(node) {
ts.forEach(node.jsDoc, bind);
if (node.jsDoc) {
if (ts.isInJavaScriptFile(node)) {
for (var _i = 0, _a = node.jsDoc; _i < _a.length; _i++) {
var j = _a[_i];
bind(j);
}
}
else {
for (var _b = 0, _c = node.jsDoc; _b < _c.length; _b++) {
var j = _c[_b];
setParentPointers(node, j);
}
}
}
if (checkUnreachable(node)) {
bindEachChild(node);
return;
@@ -19805,7 +19818,8 @@ var ts;
}
node.parent = parent;
var saveInStrictMode = inStrictMode;
bindJSDocTypedefTagIfAny(node);
if (ts.isInJavaScriptFile(node))
bindJSDocTypedefTagIfAny(node);
bindWorker(node);
if (node.kind > 142) {
var saveParent = parent;
@@ -19865,7 +19879,7 @@ var ts;
function bindWorker(node) {
switch (node.kind) {
case 71:
if (ts.isInJavaScriptFile(node) && node.isInJSDocNamespace) {
if (node.isInJSDocNamespace) {
var parentNode = node.parent;
while (parentNode && parentNode.kind !== 291) {
parentNode = parentNode.parent;
@@ -19925,10 +19939,7 @@ var ts;
case 158:
return checkTypePredicate(node);
case 145:
if (node.parent.kind !== 290 || ts.isInJavaScriptFile(node)) {
return declareSymbolAndAddToSymbolTable(node, 262144, 530920);
}
return;
return declareSymbolAndAddToSymbolTable(node, 262144, 530920);
case 146:
return bindParameter(node);
case 226:
@@ -19999,10 +20010,7 @@ var ts;
case 232:
return bindEnumDeclaration(node);
case 233:
if (node.parent.kind !== 291 || ts.isInJavaScriptFile(node)) {
return bindModuleDeclaration(node);
}
return undefined;
return bindModuleDeclaration(node);
case 254:
return bindJsxAttributes(node);
case 253:
@@ -20029,13 +20037,6 @@ var ts;
}
case 234:
return updateStrictModeStatementList(node.statements);
default:
if (ts.isInJavaScriptFile(node))
return bindJSDocWorker(node);
}
}
function bindJSDocWorker(node) {
switch (node.kind) {
case 276:
return bindPropertyWorker(node);
case 292:
@@ -21021,6 +21022,10 @@ var ts;
}
}
ts.getTransformFlagsSubtreeExclusions = getTransformFlagsSubtreeExclusions;
function setParentPointers(parent, child) {
child.parent = parent;
ts.forEachChild(child, function (childsChild) { return setParentPointers(child, childsChild); });
}
})(ts || (ts = {}));
var ts;
(function (ts) {
@@ -22632,8 +22637,9 @@ var ts;
error(errorLocation, ts.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, ts.declarationNameToString(propertyName), typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
return undefined;
}
if (meaning & 2 ||
((meaning & 32 || meaning & 384) && (meaning & 107455) === 107455)) {
if (errorLocation &&
(meaning & 2 ||
((meaning & 32 || meaning & 384) && (meaning & 107455) === 107455))) {
var exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result);
if (exportOrLocalSymbol.flags & 2 || exportOrLocalSymbol.flags & 32 || exportOrLocalSymbol.flags & 384) {
checkResolvedBlockScopedVariable(exportOrLocalSymbol, errorLocation);
@@ -55596,6 +55602,9 @@ var ts;
if (!ts.arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations, moduleNameIsEqualTo)) {
oldProgram.structureIsReused = 1;
}
if ((oldSourceFile.flags & 524288) !== (newSourceFile.flags & 524288)) {
oldProgram.structureIsReused = 1;
}
if (!ts.arrayIsEqualTo(oldSourceFile.typeReferenceDirectives, newSourceFile.typeReferenceDirectives, fileReferenceIsEqualTo)) {
oldProgram.structureIsReused = 1;
}

View File

@@ -17391,7 +17391,7 @@ var ts;
}
function parseLeftHandSideExpressionOrHigher() {
var expression;
if (token() === 91) {
if (token() === 91 && lookAhead(nextTokenIsOpenParenOrLessThan)) {
sourceFile.flags |= 524288;
expression = parseTokenNode();
}
@@ -20662,7 +20662,20 @@ var ts;
ts.forEachChild(node, bind, bindEach);
}
function bindChildrenWorker(node) {
ts.forEach(node.jsDoc, bind);
if (node.jsDoc) {
if (ts.isInJavaScriptFile(node)) {
for (var _i = 0, _a = node.jsDoc; _i < _a.length; _i++) {
var j = _a[_i];
bind(j);
}
}
else {
for (var _b = 0, _c = node.jsDoc; _b < _c.length; _b++) {
var j = _c[_b];
setParentPointers(node, j);
}
}
}
if (checkUnreachable(node)) {
bindEachChild(node);
return;
@@ -21712,7 +21725,8 @@ var ts;
}
node.parent = parent;
var saveInStrictMode = inStrictMode;
bindJSDocTypedefTagIfAny(node);
if (ts.isInJavaScriptFile(node))
bindJSDocTypedefTagIfAny(node);
bindWorker(node);
if (node.kind > 142) {
var saveParent = parent;
@@ -21772,7 +21786,7 @@ var ts;
function bindWorker(node) {
switch (node.kind) {
case 71:
if (ts.isInJavaScriptFile(node) && node.isInJSDocNamespace) {
if (node.isInJSDocNamespace) {
var parentNode = node.parent;
while (parentNode && parentNode.kind !== 291) {
parentNode = parentNode.parent;
@@ -21832,10 +21846,7 @@ var ts;
case 158:
return checkTypePredicate(node);
case 145:
if (node.parent.kind !== 290 || ts.isInJavaScriptFile(node)) {
return declareSymbolAndAddToSymbolTable(node, 262144, 530920);
}
return;
return declareSymbolAndAddToSymbolTable(node, 262144, 530920);
case 146:
return bindParameter(node);
case 226:
@@ -21906,10 +21917,7 @@ var ts;
case 232:
return bindEnumDeclaration(node);
case 233:
if (node.parent.kind !== 291 || ts.isInJavaScriptFile(node)) {
return bindModuleDeclaration(node);
}
return undefined;
return bindModuleDeclaration(node);
case 254:
return bindJsxAttributes(node);
case 253:
@@ -21936,13 +21944,6 @@ var ts;
}
case 234:
return updateStrictModeStatementList(node.statements);
default:
if (ts.isInJavaScriptFile(node))
return bindJSDocWorker(node);
}
}
function bindJSDocWorker(node) {
switch (node.kind) {
case 276:
return bindPropertyWorker(node);
case 292:
@@ -22928,6 +22929,10 @@ var ts;
}
}
ts.getTransformFlagsSubtreeExclusions = getTransformFlagsSubtreeExclusions;
function setParentPointers(parent, child) {
child.parent = parent;
ts.forEachChild(child, function (childsChild) { return setParentPointers(child, childsChild); });
}
})(ts || (ts = {}));
var ts;
(function (ts) {
@@ -23826,8 +23831,9 @@ var ts;
error(errorLocation, ts.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, ts.declarationNameToString(propertyName), typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
return undefined;
}
if (meaning & 2 ||
((meaning & 32 || meaning & 384) && (meaning & 107455) === 107455)) {
if (errorLocation &&
(meaning & 2 ||
((meaning & 32 || meaning & 384) && (meaning & 107455) === 107455))) {
var exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result);
if (exportOrLocalSymbol.flags & 2 || exportOrLocalSymbol.flags & 32 || exportOrLocalSymbol.flags & 384) {
checkResolvedBlockScopedVariable(exportOrLocalSymbol, errorLocation);
@@ -57028,6 +57034,9 @@ var ts;
if (!ts.arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations, moduleNameIsEqualTo)) {
oldProgram.structureIsReused = 1;
}
if ((oldSourceFile.flags & 524288) !== (newSourceFile.flags & 524288)) {
oldProgram.structureIsReused = 1;
}
if (!ts.arrayIsEqualTo(oldSourceFile.typeReferenceDirectives, newSourceFile.typeReferenceDirectives, fileReferenceIsEqualTo)) {
oldProgram.structureIsReused = 1;
}

View File

@@ -18788,7 +18788,7 @@ var ts;
}
function parseLeftHandSideExpressionOrHigher() {
var expression;
if (token() === 91) {
if (token() === 91 && lookAhead(nextTokenIsOpenParenOrLessThan)) {
sourceFile.flags |= 524288;
expression = parseTokenNode();
}
@@ -22059,7 +22059,20 @@ var ts;
ts.forEachChild(node, bind, bindEach);
}
function bindChildrenWorker(node) {
ts.forEach(node.jsDoc, bind);
if (node.jsDoc) {
if (ts.isInJavaScriptFile(node)) {
for (var _i = 0, _a = node.jsDoc; _i < _a.length; _i++) {
var j = _a[_i];
bind(j);
}
}
else {
for (var _b = 0, _c = node.jsDoc; _b < _c.length; _b++) {
var j = _c[_b];
setParentPointers(node, j);
}
}
}
if (checkUnreachable(node)) {
bindEachChild(node);
return;
@@ -23109,7 +23122,8 @@ var ts;
}
node.parent = parent;
var saveInStrictMode = inStrictMode;
bindJSDocTypedefTagIfAny(node);
if (ts.isInJavaScriptFile(node))
bindJSDocTypedefTagIfAny(node);
bindWorker(node);
if (node.kind > 142) {
var saveParent = parent;
@@ -23169,7 +23183,7 @@ var ts;
function bindWorker(node) {
switch (node.kind) {
case 71:
if (ts.isInJavaScriptFile(node) && node.isInJSDocNamespace) {
if (node.isInJSDocNamespace) {
var parentNode = node.parent;
while (parentNode && parentNode.kind !== 291) {
parentNode = parentNode.parent;
@@ -23229,10 +23243,7 @@ var ts;
case 158:
return checkTypePredicate(node);
case 145:
if (node.parent.kind !== 290 || ts.isInJavaScriptFile(node)) {
return declareSymbolAndAddToSymbolTable(node, 262144, 530920);
}
return;
return declareSymbolAndAddToSymbolTable(node, 262144, 530920);
case 146:
return bindParameter(node);
case 226:
@@ -23303,10 +23314,7 @@ var ts;
case 232:
return bindEnumDeclaration(node);
case 233:
if (node.parent.kind !== 291 || ts.isInJavaScriptFile(node)) {
return bindModuleDeclaration(node);
}
return undefined;
return bindModuleDeclaration(node);
case 254:
return bindJsxAttributes(node);
case 253:
@@ -23333,13 +23341,6 @@ var ts;
}
case 234:
return updateStrictModeStatementList(node.statements);
default:
if (ts.isInJavaScriptFile(node))
return bindJSDocWorker(node);
}
}
function bindJSDocWorker(node) {
switch (node.kind) {
case 276:
return bindPropertyWorker(node);
case 292:
@@ -24325,6 +24326,10 @@ var ts;
}
}
ts.getTransformFlagsSubtreeExclusions = getTransformFlagsSubtreeExclusions;
function setParentPointers(parent, child) {
child.parent = parent;
ts.forEachChild(child, function (childsChild) { return setParentPointers(child, childsChild); });
}
})(ts || (ts = {}));
var ts;
(function (ts) {
@@ -25223,8 +25228,9 @@ var ts;
error(errorLocation, ts.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, ts.declarationNameToString(propertyName), typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
return undefined;
}
if (meaning & 2 ||
((meaning & 32 || meaning & 384) && (meaning & 107455) === 107455)) {
if (errorLocation &&
(meaning & 2 ||
((meaning & 32 || meaning & 384) && (meaning & 107455) === 107455))) {
var exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result);
if (exportOrLocalSymbol.flags & 2 || exportOrLocalSymbol.flags & 32 || exportOrLocalSymbol.flags & 384) {
checkResolvedBlockScopedVariable(exportOrLocalSymbol, errorLocation);
@@ -58425,6 +58431,9 @@ var ts;
if (!ts.arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations, moduleNameIsEqualTo)) {
oldProgram.structureIsReused = 1;
}
if ((oldSourceFile.flags & 524288) !== (newSourceFile.flags & 524288)) {
oldProgram.structureIsReused = 1;
}
if (!ts.arrayIsEqualTo(oldSourceFile.typeReferenceDirectives, newSourceFile.typeReferenceDirectives, fileReferenceIsEqualTo)) {
oldProgram.structureIsReused = 1;
}

View File

@@ -19198,7 +19198,7 @@ var ts;
// 3)we have a MemberExpression which either completes the LeftHandSideExpression,
// or starts the beginning of the first four CallExpression productions.
var expression;
if (token() === 91 /* ImportKeyword */) {
if (token() === 91 /* ImportKeyword */ && lookAhead(nextTokenIsOpenParenOrLessThan)) {
// We don't want to eagerly consume all import keyword as import call expression so we look a head to find "("
// For example:
// var foo3 = require("subfolder
@@ -23094,7 +23094,20 @@ var ts;
// Binding of JsDocComment should be done before the current block scope container changes.
// because the scope of JsDocComment should not be affected by whether the current node is a
// container or not.
ts.forEach(node.jsDoc, bind);
if (node.jsDoc) {
if (ts.isInJavaScriptFile(node)) {
for (var _i = 0, _a = node.jsDoc; _i < _a.length; _i++) {
var j = _a[_i];
bind(j);
}
}
else {
for (var _b = 0, _c = node.jsDoc; _b < _c.length; _b++) {
var j = _c[_b];
setParentPointers(node, j);
}
}
}
if (checkUnreachable(node)) {
bindEachChild(node);
return;
@@ -24280,7 +24293,8 @@ var ts;
// Here the current node is "foo", which is a container, but the scope of "MyType" should
// not be inside "foo". Therefore we always bind @typedef before bind the parent node,
// and skip binding this tag later when binding all the other jsdoc tags.
bindJSDocTypedefTagIfAny(node);
if (ts.isInJavaScriptFile(node))
bindJSDocTypedefTagIfAny(node);
// First we bind declaration nodes to a symbol if possible. We'll both create a symbol
// and then potentially add the symbol to an appropriate symbol table. Possible
// destination symbol tables are:
@@ -24362,7 +24376,7 @@ var ts;
// for typedef type names with namespaces, bind the new jsdoc type symbol here
// because it requires all containing namespaces to be in effect, namely the
// current "blockScopeContainer" needs to be set to its immediate namespace parent.
if (ts.isInJavaScriptFile(node) && node.isInJSDocNamespace) {
if (node.isInJSDocNamespace) {
var parentNode = node.parent;
while (parentNode && parentNode.kind !== 291 /* JSDocTypedefTag */) {
parentNode = parentNode.parent;
@@ -24424,10 +24438,7 @@ var ts;
case 158 /* TypePredicate */:
return checkTypePredicate(node);
case 145 /* TypeParameter */:
if (node.parent.kind !== 290 /* JSDocTemplateTag */ || ts.isInJavaScriptFile(node)) {
return declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 530920 /* TypeParameterExcludes */);
}
return;
return declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 530920 /* TypeParameterExcludes */);
case 146 /* Parameter */:
return bindParameter(node);
case 226 /* VariableDeclaration */:
@@ -24504,10 +24515,7 @@ var ts;
case 232 /* EnumDeclaration */:
return bindEnumDeclaration(node);
case 233 /* ModuleDeclaration */:
if (node.parent.kind !== 291 /* JSDocTypedefTag */ || ts.isInJavaScriptFile(node)) {
return bindModuleDeclaration(node);
}
return undefined;
return bindModuleDeclaration(node);
// Jsx-attributes
case 254 /* JsxAttributes */:
return bindJsxAttributes(node);
@@ -24537,13 +24545,6 @@ var ts;
// falls through
case 234 /* ModuleBlock */:
return updateStrictModeStatementList(node.statements);
default:
if (ts.isInJavaScriptFile(node))
return bindJSDocWorker(node);
}
}
function bindJSDocWorker(node) {
switch (node.kind) {
case 276 /* JSDocRecordMember */:
return bindPropertyWorker(node);
case 292 /* JSDocPropertyTag */:
@@ -25739,6 +25740,14 @@ var ts;
}
}
ts.getTransformFlagsSubtreeExclusions = getTransformFlagsSubtreeExclusions;
/**
* "Binds" JSDoc nodes in TypeScript code.
* Since we will never create symbols for JSDoc, we just set parent pointers instead.
*/
function setParentPointers(parent, child) {
child.parent = parent;
ts.forEachChild(child, function (childsChild) { return setParentPointers(child, childsChild); });
}
})(ts || (ts = {}));
/// <reference path="core.ts" />
/// <reference path="diagnosticInformationMap.generated.ts" />
@@ -27723,7 +27732,7 @@ var ts;
error(errorLocation, ts.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, ts.declarationNameToString(propertyName), typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
return undefined;
}
// Only check for block-scoped variable if we are looking for the
// Only check for block-scoped variable if we have an error location and are looking for the
// name with variable meaning
// For example,
// declare module foo {
@@ -27734,8 +27743,9 @@ var ts;
// block-scoped variable and namespace module. However, only when we
// try to resolve name in /*1*/ which is used in variable position,
// we want to check for block-scoped
if (meaning & 2 /* BlockScopedVariable */ ||
((meaning & 32 /* Class */ || meaning & 384 /* Enum */) && (meaning & 107455 /* Value */) === 107455 /* Value */)) {
if (errorLocation &&
(meaning & 2 /* BlockScopedVariable */ ||
((meaning & 32 /* Class */ || meaning & 384 /* Enum */) && (meaning & 107455 /* Value */) === 107455 /* Value */))) {
var exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result);
if (exportOrLocalSymbol.flags & 2 /* BlockScopedVariable */ || exportOrLocalSymbol.flags & 32 /* Class */ || exportOrLocalSymbol.flags & 384 /* Enum */) {
checkResolvedBlockScopedVariable(exportOrLocalSymbol, errorLocation);
@@ -69580,6 +69590,10 @@ var ts;
// moduleAugmentations has changed
oldProgram.structureIsReused = 1 /* SafeModules */;
}
if ((oldSourceFile.flags & 524288 /* PossiblyContainsDynamicImport */) !== (newSourceFile.flags & 524288 /* PossiblyContainsDynamicImport */)) {
// dynamicImport has changed
oldProgram.structureIsReused = 1 /* SafeModules */;
}
if (!ts.arrayIsEqualTo(oldSourceFile.typeReferenceDirectives, newSourceFile.typeReferenceDirectives, fileReferenceIsEqualTo)) {
// 'types' references has changed
oldProgram.structureIsReused = 1 /* SafeModules */;

View File

@@ -19198,7 +19198,7 @@ var ts;
// 3)we have a MemberExpression which either completes the LeftHandSideExpression,
// or starts the beginning of the first four CallExpression productions.
var expression;
if (token() === 91 /* ImportKeyword */) {
if (token() === 91 /* ImportKeyword */ && lookAhead(nextTokenIsOpenParenOrLessThan)) {
// We don't want to eagerly consume all import keyword as import call expression so we look a head to find "("
// For example:
// var foo3 = require("subfolder
@@ -23094,7 +23094,20 @@ var ts;
// Binding of JsDocComment should be done before the current block scope container changes.
// because the scope of JsDocComment should not be affected by whether the current node is a
// container or not.
ts.forEach(node.jsDoc, bind);
if (node.jsDoc) {
if (ts.isInJavaScriptFile(node)) {
for (var _i = 0, _a = node.jsDoc; _i < _a.length; _i++) {
var j = _a[_i];
bind(j);
}
}
else {
for (var _b = 0, _c = node.jsDoc; _b < _c.length; _b++) {
var j = _c[_b];
setParentPointers(node, j);
}
}
}
if (checkUnreachable(node)) {
bindEachChild(node);
return;
@@ -24280,7 +24293,8 @@ var ts;
// Here the current node is "foo", which is a container, but the scope of "MyType" should
// not be inside "foo". Therefore we always bind @typedef before bind the parent node,
// and skip binding this tag later when binding all the other jsdoc tags.
bindJSDocTypedefTagIfAny(node);
if (ts.isInJavaScriptFile(node))
bindJSDocTypedefTagIfAny(node);
// First we bind declaration nodes to a symbol if possible. We'll both create a symbol
// and then potentially add the symbol to an appropriate symbol table. Possible
// destination symbol tables are:
@@ -24362,7 +24376,7 @@ var ts;
// for typedef type names with namespaces, bind the new jsdoc type symbol here
// because it requires all containing namespaces to be in effect, namely the
// current "blockScopeContainer" needs to be set to its immediate namespace parent.
if (ts.isInJavaScriptFile(node) && node.isInJSDocNamespace) {
if (node.isInJSDocNamespace) {
var parentNode = node.parent;
while (parentNode && parentNode.kind !== 291 /* JSDocTypedefTag */) {
parentNode = parentNode.parent;
@@ -24424,10 +24438,7 @@ var ts;
case 158 /* TypePredicate */:
return checkTypePredicate(node);
case 145 /* TypeParameter */:
if (node.parent.kind !== 290 /* JSDocTemplateTag */ || ts.isInJavaScriptFile(node)) {
return declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 530920 /* TypeParameterExcludes */);
}
return;
return declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 530920 /* TypeParameterExcludes */);
case 146 /* Parameter */:
return bindParameter(node);
case 226 /* VariableDeclaration */:
@@ -24504,10 +24515,7 @@ var ts;
case 232 /* EnumDeclaration */:
return bindEnumDeclaration(node);
case 233 /* ModuleDeclaration */:
if (node.parent.kind !== 291 /* JSDocTypedefTag */ || ts.isInJavaScriptFile(node)) {
return bindModuleDeclaration(node);
}
return undefined;
return bindModuleDeclaration(node);
// Jsx-attributes
case 254 /* JsxAttributes */:
return bindJsxAttributes(node);
@@ -24537,13 +24545,6 @@ var ts;
// falls through
case 234 /* ModuleBlock */:
return updateStrictModeStatementList(node.statements);
default:
if (ts.isInJavaScriptFile(node))
return bindJSDocWorker(node);
}
}
function bindJSDocWorker(node) {
switch (node.kind) {
case 276 /* JSDocRecordMember */:
return bindPropertyWorker(node);
case 292 /* JSDocPropertyTag */:
@@ -25739,6 +25740,14 @@ var ts;
}
}
ts.getTransformFlagsSubtreeExclusions = getTransformFlagsSubtreeExclusions;
/**
* "Binds" JSDoc nodes in TypeScript code.
* Since we will never create symbols for JSDoc, we just set parent pointers instead.
*/
function setParentPointers(parent, child) {
child.parent = parent;
ts.forEachChild(child, function (childsChild) { return setParentPointers(child, childsChild); });
}
})(ts || (ts = {}));
/// <reference path="core.ts" />
/// <reference path="diagnosticInformationMap.generated.ts" />
@@ -27723,7 +27732,7 @@ var ts;
error(errorLocation, ts.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, ts.declarationNameToString(propertyName), typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg));
return undefined;
}
// Only check for block-scoped variable if we are looking for the
// Only check for block-scoped variable if we have an error location and are looking for the
// name with variable meaning
// For example,
// declare module foo {
@@ -27734,8 +27743,9 @@ var ts;
// block-scoped variable and namespace module. However, only when we
// try to resolve name in /*1*/ which is used in variable position,
// we want to check for block-scoped
if (meaning & 2 /* BlockScopedVariable */ ||
((meaning & 32 /* Class */ || meaning & 384 /* Enum */) && (meaning & 107455 /* Value */) === 107455 /* Value */)) {
if (errorLocation &&
(meaning & 2 /* BlockScopedVariable */ ||
((meaning & 32 /* Class */ || meaning & 384 /* Enum */) && (meaning & 107455 /* Value */) === 107455 /* Value */))) {
var exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result);
if (exportOrLocalSymbol.flags & 2 /* BlockScopedVariable */ || exportOrLocalSymbol.flags & 32 /* Class */ || exportOrLocalSymbol.flags & 384 /* Enum */) {
checkResolvedBlockScopedVariable(exportOrLocalSymbol, errorLocation);
@@ -69580,6 +69590,10 @@ var ts;
// moduleAugmentations has changed
oldProgram.structureIsReused = 1 /* SafeModules */;
}
if ((oldSourceFile.flags & 524288 /* PossiblyContainsDynamicImport */) !== (newSourceFile.flags & 524288 /* PossiblyContainsDynamicImport */)) {
// dynamicImport has changed
oldProgram.structureIsReused = 1 /* SafeModules */;
}
if (!ts.arrayIsEqualTo(oldSourceFile.typeReferenceDirectives, newSourceFile.typeReferenceDirectives, fileReferenceIsEqualTo)) {
// 'types' references has changed
oldProgram.structureIsReused = 1 /* SafeModules */;