Skip to content

Commit

Permalink
Update LKG.
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielRosenwasser committed Nov 1, 2018
1 parent 15649f2 commit 457cbba
Show file tree
Hide file tree
Showing 6 changed files with 162 additions and 138 deletions.
50 changes: 27 additions & 23 deletions lib/tsc.js
Expand Up @@ -60,7 +60,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
var ts;
(function (ts) {
ts.versionMajorMinor = "3.1";
ts.version = ts.versionMajorMinor + ".5";
ts.version = ts.versionMajorMinor + ".6";
})(ts || (ts = {}));
(function (ts) {
ts.emptyArray = [];
Expand Down Expand Up @@ -68677,7 +68677,7 @@ var ts;
var diagnosticsProducingTypeChecker;
var noDiagnosticsTypeChecker;
var classifiableNames;
var modifiedFilePaths;
var ambientModuleNameToUnmodifiedFileName = ts.createMap();
var cachedSemanticDiagnosticsForFile = {};
var cachedDeclarationDiagnosticsForFile = {};
var resolvedTypeReferenceDirectives = ts.createMap();
Expand Down Expand Up @@ -68884,11 +68884,11 @@ var ts;
}
return classifiableNames;
}
function resolveModuleNamesReusingOldState(moduleNames, containingFile, file, oldProgramState) {
function resolveModuleNamesReusingOldState(moduleNames, containingFile, file) {
if (structuralIsReused === 0 && !file.ambientModuleNames.length) {
return resolveModuleNamesWorker(moduleNames, containingFile);
}
var oldSourceFile = oldProgramState.program && oldProgramState.program.getSourceFile(containingFile);
var oldSourceFile = oldProgram && oldProgram.getSourceFile(containingFile);
if (oldSourceFile !== file && file.resolvedModules) {
var result_5 = [];
for (var _i = 0, moduleNames_1 = moduleNames; _i < moduleNames_1.length; _i++) {
Expand Down Expand Up @@ -68923,7 +68923,7 @@ var ts;
}
}
else {
resolvesToAmbientModuleInNonModifiedFile = moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName, oldProgramState);
resolvesToAmbientModuleInNonModifiedFile = moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName);
}
if (resolvesToAmbientModuleInNonModifiedFile) {
(result || (result = new Array(moduleNames.length)))[i] = predictedToResolveToAmbientModuleMarker;
Expand Down Expand Up @@ -68953,21 +68953,18 @@ var ts;
}
ts.Debug.assert(j === resolutions.length);
return result;
function moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName, oldProgramState) {
if (!oldProgramState.program) {
return false;
}
var resolutionToFile = ts.getResolvedModule(oldProgramState.oldSourceFile, moduleName);
var resolvedFile = resolutionToFile && oldProgramState.program.getSourceFile(resolutionToFile.resolvedFileName);
function moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName) {
var resolutionToFile = ts.getResolvedModule(oldSourceFile, moduleName);
var resolvedFile = resolutionToFile && oldProgram.getSourceFile(resolutionToFile.resolvedFileName);
if (resolutionToFile && resolvedFile && !resolvedFile.externalModuleIndicator) {
return false;
}
var firstUnmodifiedFile = oldProgramState.program.getSourceFiles().find(function (f) { return !ts.contains(oldProgramState.modifiedFilePaths, f.path) && ts.contains(f.ambientModuleNames, moduleName); });
if (!firstUnmodifiedFile) {
var unmodifiedFile = ambientModuleNameToUnmodifiedFileName.get(moduleName);
if (!unmodifiedFile) {
return false;
}
if (ts.isTraceEnabled(options, host)) {
ts.trace(host, ts.Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified, moduleName, firstUnmodifiedFile.fileName);
ts.trace(host, ts.Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified, moduleName, unmodifiedFile);
}
return true;
}
Expand Down Expand Up @@ -69096,14 +69093,22 @@ var ts;
if (oldProgram.structureIsReused !== 2) {
return oldProgram.structureIsReused;
}
modifiedFilePaths = modifiedSourceFiles.map(function (f) { return f.newFile.path; });
for (var _a = 0, modifiedSourceFiles_1 = modifiedSourceFiles; _a < modifiedSourceFiles_1.length; _a++) {
var _b = modifiedSourceFiles_1[_a], oldSourceFile = _b.oldFile, newSourceFile = _b.newFile;
var modifiedFiles = modifiedSourceFiles.map(function (f) { return f.oldFile; });
for (var _a = 0, oldSourceFiles_3 = oldSourceFiles; _a < oldSourceFiles_3.length; _a++) {
var oldFile = oldSourceFiles_3[_a];
if (!ts.contains(modifiedFiles, oldFile)) {
for (var _b = 0, _c = oldFile.ambientModuleNames; _b < _c.length; _b++) {
var moduleName = _c[_b];
ambientModuleNameToUnmodifiedFileName.set(moduleName, oldFile.fileName);
}
}
}
for (var _d = 0, modifiedSourceFiles_1 = modifiedSourceFiles; _d < modifiedSourceFiles_1.length; _d++) {
var _e = modifiedSourceFiles_1[_d], oldSourceFile = _e.oldFile, newSourceFile = _e.newFile;
var newSourceFilePath = ts.getNormalizedAbsolutePath(newSourceFile.originalFileName, currentDirectory);
if (resolveModuleNamesWorker) {
var moduleNames = getModuleNames(newSourceFile);
var oldProgramState = { program: oldProgram, oldSourceFile: oldSourceFile, modifiedFilePaths: modifiedFilePaths };
var resolutions = resolveModuleNamesReusingOldState(moduleNames, newSourceFilePath, newSourceFile, oldProgramState);
var resolutions = resolveModuleNamesReusingOldState(moduleNames, newSourceFilePath, newSourceFile);
var resolutionsChanged = ts.hasChangesInResolutions(moduleNames, resolutions, oldSourceFile.resolvedModules, ts.moduleResolutionIsEqualTo);
if (resolutionsChanged) {
oldProgram.structureIsReused = 1;
Expand Down Expand Up @@ -69141,8 +69146,8 @@ var ts;
}
files = newSourceFiles;
fileProcessingDiagnostics = oldProgram.getFileProcessingDiagnostics();
for (var _c = 0, modifiedSourceFiles_2 = modifiedSourceFiles; _c < modifiedSourceFiles_2.length; _c++) {
var modifiedFile = modifiedSourceFiles_2[_c];
for (var _f = 0, modifiedSourceFiles_2 = modifiedSourceFiles; _f < modifiedSourceFiles_2.length; _f++) {
var modifiedFile = modifiedSourceFiles_2[_f];
fileProcessingDiagnostics.reattachFileDiagnostics(modifiedFile.newFile);
}
resolvedTypeReferenceDirectives = oldProgram.getResolvedTypeReferenceDirectives();
Expand Down Expand Up @@ -69944,8 +69949,7 @@ var ts;
collectExternalModuleReferences(file);
if (file.imports.length || file.moduleAugmentations.length) {
var moduleNames = getModuleNames(file);
var oldProgramState = { program: oldProgram, oldSourceFile: oldProgram && oldProgram.getSourceFile(file.fileName), modifiedFilePaths: modifiedFilePaths };
var resolutions = resolveModuleNamesReusingOldState(moduleNames, ts.getNormalizedAbsolutePath(file.originalFileName, currentDirectory), file, oldProgramState);
var resolutions = resolveModuleNamesReusingOldState(moduleNames, ts.getNormalizedAbsolutePath(file.originalFileName, currentDirectory), file);
ts.Debug.assert(resolutions.length === moduleNames.length);
for (var i = 0; i < moduleNames.length; i++) {
var resolution = resolutions[i];
Expand Down
50 changes: 27 additions & 23 deletions lib/tsserver.js
Expand Up @@ -88,7 +88,7 @@ var ts;
// If changing the text in this section, be sure to test `configureNightly` too.
ts.versionMajorMinor = "3.1";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".5";
ts.version = ts.versionMajorMinor + ".6";
})(ts || (ts = {}));
(function (ts) {
/* @internal */
Expand Down Expand Up @@ -84375,7 +84375,7 @@ var ts;
var diagnosticsProducingTypeChecker;
var noDiagnosticsTypeChecker;
var classifiableNames;
var modifiedFilePaths;
var ambientModuleNameToUnmodifiedFileName = ts.createMap();
var cachedSemanticDiagnosticsForFile = {};
var cachedDeclarationDiagnosticsForFile = {};
var resolvedTypeReferenceDirectives = ts.createMap();
Expand Down Expand Up @@ -84619,13 +84619,13 @@ var ts;
}
return classifiableNames;
}
function resolveModuleNamesReusingOldState(moduleNames, containingFile, file, oldProgramState) {
function resolveModuleNamesReusingOldState(moduleNames, containingFile, file) {
if (structuralIsReused === 0 /* Not */ && !file.ambientModuleNames.length) {
// If the old program state does not permit reusing resolutions and `file` does not contain locally defined ambient modules,
// the best we can do is fallback to the default logic.
return resolveModuleNamesWorker(moduleNames, containingFile);
}
var oldSourceFile = oldProgramState.program && oldProgramState.program.getSourceFile(containingFile);
var oldSourceFile = oldProgram && oldProgram.getSourceFile(containingFile);
if (oldSourceFile !== file && file.resolvedModules) {
// `file` was created for the new program.
//
Expand Down Expand Up @@ -84688,7 +84688,7 @@ var ts;
}
}
else {
resolvesToAmbientModuleInNonModifiedFile = moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName, oldProgramState);
resolvesToAmbientModuleInNonModifiedFile = moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName);
}
if (resolvesToAmbientModuleInNonModifiedFile) {
(result || (result = new Array(moduleNames.length)))[i] = predictedToResolveToAmbientModuleMarker;
Expand Down Expand Up @@ -84725,12 +84725,9 @@ var ts;
return result;
// If we change our policy of rechecking failed lookups on each program create,
// we should adjust the value returned here.
function moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName, oldProgramState) {
if (!oldProgramState.program) {
return false;
}
var resolutionToFile = ts.getResolvedModule(oldProgramState.oldSourceFile, moduleName); // TODO: GH#18217
var resolvedFile = resolutionToFile && oldProgramState.program.getSourceFile(resolutionToFile.resolvedFileName);
function moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName) {
var resolutionToFile = ts.getResolvedModule(oldSourceFile, moduleName);
var resolvedFile = resolutionToFile && oldProgram.getSourceFile(resolutionToFile.resolvedFileName);
if (resolutionToFile && resolvedFile && !resolvedFile.externalModuleIndicator) {
// In the old program, we resolved to an ambient module that was in the same
// place as we expected to find an actual module file.
Expand All @@ -84739,12 +84736,12 @@ var ts;
return false;
}
// at least one of declarations should come from non-modified source file
var firstUnmodifiedFile = oldProgramState.program.getSourceFiles().find(function (f) { return !ts.contains(oldProgramState.modifiedFilePaths, f.path) && ts.contains(f.ambientModuleNames, moduleName); });
if (!firstUnmodifiedFile) {
var unmodifiedFile = ambientModuleNameToUnmodifiedFileName.get(moduleName);
if (!unmodifiedFile) {
return false;
}
if (ts.isTraceEnabled(options, host)) {
ts.trace(host, ts.Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified, moduleName, firstUnmodifiedFile.fileName);
ts.trace(host, ts.Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified, moduleName, unmodifiedFile);
}
return true;
}
Expand Down Expand Up @@ -84914,15 +84911,23 @@ var ts;
if (oldProgram.structureIsReused !== 2 /* Completely */) {
return oldProgram.structureIsReused;
}
modifiedFilePaths = modifiedSourceFiles.map(function (f) { return f.newFile.path; });
var modifiedFiles = modifiedSourceFiles.map(function (f) { return f.oldFile; });
for (var _a = 0, oldSourceFiles_3 = oldSourceFiles; _a < oldSourceFiles_3.length; _a++) {
var oldFile = oldSourceFiles_3[_a];
if (!ts.contains(modifiedFiles, oldFile)) {
for (var _b = 0, _c = oldFile.ambientModuleNames; _b < _c.length; _b++) {
var moduleName = _c[_b];
ambientModuleNameToUnmodifiedFileName.set(moduleName, oldFile.fileName);
}
}
}
// try to verify results of module resolution
for (var _a = 0, modifiedSourceFiles_1 = modifiedSourceFiles; _a < modifiedSourceFiles_1.length; _a++) {
var _b = modifiedSourceFiles_1[_a], oldSourceFile = _b.oldFile, newSourceFile = _b.newFile;
for (var _d = 0, modifiedSourceFiles_1 = modifiedSourceFiles; _d < modifiedSourceFiles_1.length; _d++) {
var _e = modifiedSourceFiles_1[_d], oldSourceFile = _e.oldFile, newSourceFile = _e.newFile;
var newSourceFilePath = ts.getNormalizedAbsolutePath(newSourceFile.originalFileName, currentDirectory);
if (resolveModuleNamesWorker) {
var moduleNames = getModuleNames(newSourceFile);
var oldProgramState = { program: oldProgram, oldSourceFile: oldSourceFile, modifiedFilePaths: modifiedFilePaths };
var resolutions = resolveModuleNamesReusingOldState(moduleNames, newSourceFilePath, newSourceFile, oldProgramState);
var resolutions = resolveModuleNamesReusingOldState(moduleNames, newSourceFilePath, newSourceFile);
// ensure that module resolution results are still correct
var resolutionsChanged = ts.hasChangesInResolutions(moduleNames, resolutions, oldSourceFile.resolvedModules, ts.moduleResolutionIsEqualTo);
if (resolutionsChanged) {
Expand Down Expand Up @@ -84965,8 +84970,8 @@ var ts;
}
files = newSourceFiles;
fileProcessingDiagnostics = oldProgram.getFileProcessingDiagnostics();
for (var _c = 0, modifiedSourceFiles_2 = modifiedSourceFiles; _c < modifiedSourceFiles_2.length; _c++) {
var modifiedFile = modifiedSourceFiles_2[_c];
for (var _f = 0, modifiedSourceFiles_2 = modifiedSourceFiles; _f < modifiedSourceFiles_2.length; _f++) {
var modifiedFile = modifiedSourceFiles_2[_f];
fileProcessingDiagnostics.reattachFileDiagnostics(modifiedFile.newFile);
}
resolvedTypeReferenceDirectives = oldProgram.getResolvedTypeReferenceDirectives();
Expand Down Expand Up @@ -85874,8 +85879,7 @@ var ts;
if (file.imports.length || file.moduleAugmentations.length) {
// Because global augmentation doesn't have string literal name, we can check for global augmentation as such.
var moduleNames = getModuleNames(file);
var oldProgramState = { program: oldProgram, oldSourceFile: oldProgram && oldProgram.getSourceFile(file.fileName), modifiedFilePaths: modifiedFilePaths };
var resolutions = resolveModuleNamesReusingOldState(moduleNames, ts.getNormalizedAbsolutePath(file.originalFileName, currentDirectory), file, oldProgramState);
var resolutions = resolveModuleNamesReusingOldState(moduleNames, ts.getNormalizedAbsolutePath(file.originalFileName, currentDirectory), file);
ts.Debug.assert(resolutions.length === moduleNames.length);
for (var i = 0; i < moduleNames.length; i++) {
var resolution = resolutions[i];
Expand Down

0 comments on commit 457cbba

Please sign in to comment.