@@ -1128,18 +1128,18 @@ function createBuildOrUpdateInvalidedProject<T extends BuilderProgram>(
1128
1128
updateOutputTimestampsWorker ( state , config , projectPath , Diagnostics . Updating_unchanged_output_timestamps_of_project_0 , emittedOutputs ) ;
1129
1129
}
1130
1130
state . projectErrorsReported . set ( projectPath , true ) ;
1131
+ buildResult = program . hasChangedEmitSignature ?.( ) ? BuildResultFlags . None : BuildResultFlags . DeclarationOutputUnchanged ;
1131
1132
if ( ! diagnostics . length ) {
1132
1133
state . diagnostics . delete ( projectPath ) ;
1133
1134
state . projectStatus . set ( projectPath , {
1134
1135
type : UpToDateStatusType . UpToDate ,
1135
1136
oldestOutputFileName : firstOrUndefinedIterator ( emittedOutputs . values ( ) ) ?? getFirstProjectOutput ( config , ! host . useCaseSensitiveFileNames ( ) ) ,
1136
1137
} ) ;
1137
- buildResult = program . hasChangedEmitSignature ?.( ) ? BuildResultFlags . None : BuildResultFlags . DeclarationOutputUnchanged ;
1138
1138
}
1139
1139
else {
1140
1140
state . diagnostics . set ( projectPath , diagnostics ) ;
1141
1141
state . projectStatus . set ( projectPath , { type : UpToDateStatusType . Unbuildable , reason : `it had errors` } ) ;
1142
- buildResult = BuildResultFlags . AnyErrors ;
1142
+ buildResult | = BuildResultFlags . AnyErrors ;
1143
1143
}
1144
1144
afterProgramDone ( state , program ) ;
1145
1145
step = BuildStep . QueueReferencingProjects ;
@@ -1256,23 +1256,6 @@ function getNextInvalidatedProjectCreateInfo<T extends BuilderProgram>(
1256
1256
}
1257
1257
}
1258
1258
1259
- if ( status . type === UpToDateStatusType . UpstreamBlocked ) {
1260
- verboseReportProjectStatus ( state , project , status ) ;
1261
- reportAndStoreErrors ( state , projectPath , getConfigFileParsingDiagnostics ( config ) ) ;
1262
- projectPendingBuild . delete ( projectPath ) ;
1263
- if ( options . verbose ) {
1264
- reportStatus (
1265
- state ,
1266
- status . upstreamProjectBlocked ?
1267
- Diagnostics . Skipping_build_of_project_0_because_its_dependency_1_was_not_built :
1268
- Diagnostics . Skipping_build_of_project_0_because_its_dependency_1_has_errors ,
1269
- project ,
1270
- status . upstreamProjectName ,
1271
- ) ;
1272
- }
1273
- continue ;
1274
- }
1275
-
1276
1259
if ( status . type === UpToDateStatusType . ContainerOnly ) {
1277
1260
verboseReportProjectStatus ( state , project , status ) ;
1278
1261
reportAndStoreErrors ( state , projectPath , getConfigFileParsingDiagnostics ( config ) ) ;
@@ -1474,26 +1457,6 @@ function getUpToDateStatusWorker<T extends BuilderProgram>(state: SolutionBuilde
1474
1457
continue ;
1475
1458
}
1476
1459
1477
- // An upstream project is blocked
1478
- if (
1479
- refStatus . type === UpToDateStatusType . Unbuildable ||
1480
- refStatus . type === UpToDateStatusType . UpstreamBlocked
1481
- ) {
1482
- return {
1483
- type : UpToDateStatusType . UpstreamBlocked ,
1484
- upstreamProjectName : ref . path ,
1485
- upstreamProjectBlocked : refStatus . type === UpToDateStatusType . UpstreamBlocked ,
1486
- } ;
1487
- }
1488
-
1489
- // If the upstream project is out of date, then so are we (someone shouldn't have asked, though?)
1490
- if ( refStatus . type !== UpToDateStatusType . UpToDate ) {
1491
- return {
1492
- type : UpToDateStatusType . UpstreamOutOfDate ,
1493
- upstreamProjectName : ref . path ,
1494
- } ;
1495
- }
1496
-
1497
1460
if ( ! force ) ( referenceStatuses ||= [ ] ) . push ( { ref, refStatus, resolvedRefPath, resolvedConfig } ) ;
1498
1461
}
1499
1462
}
@@ -1701,7 +1664,7 @@ function getUpToDateStatusWorker<T extends BuilderProgram>(state: SolutionBuilde
1701
1664
for ( const { ref, refStatus, resolvedConfig, resolvedRefPath } of referenceStatuses ) {
1702
1665
// If the upstream project's newest file is older than our oldest output, we
1703
1666
// can't be out of date because of it
1704
- if ( refStatus . newestInputFileTime && refStatus . newestInputFileTime <= oldestOutputFileTime ) {
1667
+ if ( ( refStatus as Status . UpToDate ) . newestInputFileTime && ( refStatus as Status . UpToDate ) . newestInputFileTime ! <= oldestOutputFileTime ) {
1705
1668
continue ;
1706
1669
}
1707
1670
@@ -1867,8 +1830,6 @@ function queueReferencingProjects<T extends BuilderProgram>(
1867
1830
buildOrder : readonly ResolvedConfigFileName [ ] ,
1868
1831
buildResult : BuildResultFlags ,
1869
1832
) {
1870
- // Queue only if there are no errors
1871
- if ( buildResult & BuildResultFlags . AnyErrors ) return ;
1872
1833
// Only composite projects can be referenced by other projects
1873
1834
if ( ! config . options . composite ) return ;
1874
1835
// Always use build order to queue projects
@@ -1904,12 +1865,6 @@ function queueReferencingProjects<T extends BuilderProgram>(
1904
1865
} ) ;
1905
1866
}
1906
1867
break ;
1907
-
1908
- case UpToDateStatusType . UpstreamBlocked :
1909
- if ( toResolvedConfigFilePath ( state , resolveProjectName ( state , status . upstreamProjectName ) ) === projectPath ) {
1910
- clearProjectStatus ( state , nextProjectPath ) ;
1911
- }
1912
- break ;
1913
1868
}
1914
1869
}
1915
1870
addProjToQueue ( state , nextProjectPath , ProgramUpdateLevel . Update ) ;
@@ -2413,15 +2368,6 @@ function reportUpToDateStatus<T extends BuilderProgram>(state: SolutionBuilderSt
2413
2368
relName ( state , configFileName ) ,
2414
2369
relName ( state , status . upstreamProjectName ) ,
2415
2370
) ;
2416
- case UpToDateStatusType . UpstreamBlocked :
2417
- return reportStatus (
2418
- state ,
2419
- status . upstreamProjectBlocked ?
2420
- Diagnostics . Project_0_can_t_be_built_because_its_dependency_1_was_not_built :
2421
- Diagnostics . Project_0_can_t_be_built_because_its_dependency_1_has_errors ,
2422
- relName ( state , configFileName ) ,
2423
- relName ( state , status . upstreamProjectName ) ,
2424
- ) ;
2425
2371
case UpToDateStatusType . Unbuildable :
2426
2372
return reportStatus (
2427
2373
state ,
0 commit comments