Fixes downstream prepend projects not being built correctly on upstream changes

This commit is contained in:
Ryan Cavanaugh
2018-06-18 11:11:03 -07:00
parent 3bab6af97a
commit bb29a1087e
2 changed files with 9 additions and 3 deletions

View File

@@ -204,7 +204,7 @@ task(TaskNames.lint, [TaskNames.buildRules], () => {
if (fold.isTravis()) console.log(fold.end("lint"));
complete();
}));
});
}, { async: true });
desc("Diffs the compiler baselines using the diff tool specified by the 'DIFF' environment variable");
task('diff', function () {

View File

@@ -777,6 +777,7 @@ namespace ts {
let pseudoUpToDate = false;
let usesPrepend = false;
let upstreamChangedProject: string | undefined;
if (project.projectReferences) {
for (const ref of project.projectReferences) {
usesPrepend = usesPrepend || !!(ref.prepend);
@@ -809,6 +810,7 @@ namespace ts {
// *after* those files, then we're "psuedo up to date" and eligible for a fast rebuild
if (refStatus.newestDeclarationFileContentChangedTime <= oldestOutputFileTime) {
pseudoUpToDate = true;
upstreamChangedProject = ref.path;
continue;
}
@@ -837,8 +839,12 @@ namespace ts {
};
}
if (usesPrepend) {
pseudoUpToDate = false;
if (usesPrepend && pseudoUpToDate) {
return {
type: UpToDateStatusType.OutOfDateWithUpstream,
outOfDateOutputFileName: oldestOutputFileName,
newerProjectName: upstreamChangedProject!
};
}
// Up to date