@@ -1356,20 +1356,22 @@ public function process(AnalyserResult $analyserResult, ResultCache $resultCache
13561356 };
13571357
13581358 if ($ resultCache ->isFullAnalysis ()) {
1359- $ saved = false ;
1360- if ($ save !== false ) {
1359+ return new ResultCacheProcessResult ($ analyserResult , function () use ($ save , $ output , $ analyserResult , $ projectConfigArray , $ doSave , $ freshErrorsByFile , $ freshLocallyIgnoredErrorsByFile , $ freshCollectedDataByFile ): bool {
1360+ if ($ save === false ) {
1361+ if ($ output ->isVeryVerbose ()) {
1362+ $ output ->writeLineFormatted ('Result cache was not saved because it was not requested. ' );
1363+ }
1364+
1365+ return false ;
1366+ }
1367+
13611368 $ projectExtensionFiles = [];
13621369 if ($ analyserResult ->getDependencies () !== null ) {
13631370 $ projectExtensionFiles = $ this ->getProjectExtensionFiles ($ projectConfigArray , $ analyserResult ->getDependencies ());
13641371 }
1365- $ saved = $ doSave ($ freshErrorsByFile , $ freshLocallyIgnoredErrorsByFile , $ analyserResult ->getLinesToIgnore (), $ analyserResult ->getUnmatchedLineIgnores (), $ freshCollectedDataByFile , $ analyserResult ->getDependencies (), $ analyserResult ->getUsedTraitDependencies (), $ analyserResult ->getValueDependencies (), $ analyserResult ->getPackageDependencies (), $ this ->addNonAnalysedExportedNodes ($ analyserResult ->getExportedNodes (), $ analyserResult ->getDependencies (), $ analyserResult ->getUsedTraitDependencies (), CachedExportedNodes::createEmpty ()), CachedExportedNodes::createEmpty (), $ projectExtensionFiles );
1366- } else {
1367- if ($ output ->isVeryVerbose ()) {
1368- $ output ->writeLineFormatted ('Result cache was not saved because it was not requested. ' );
1369- }
1370- }
13711372
1372- return new ResultCacheProcessResult ($ analyserResult , $ saved );
1373+ return $ doSave ($ freshErrorsByFile , $ freshLocallyIgnoredErrorsByFile , $ analyserResult ->getLinesToIgnore (), $ analyserResult ->getUnmatchedLineIgnores (), $ freshCollectedDataByFile , $ analyserResult ->getDependencies (), $ analyserResult ->getUsedTraitDependencies (), $ analyserResult ->getValueDependencies (), $ analyserResult ->getPackageDependencies (), $ this ->addNonAnalysedExportedNodes ($ analyserResult ->getExportedNodes (), $ analyserResult ->getDependencies (), $ analyserResult ->getUsedTraitDependencies (), CachedExportedNodes::createEmpty ()), CachedExportedNodes::createEmpty (), $ projectExtensionFiles );
1374+ });
13731375 }
13741376
13751377 $ errorsByFile = $ this ->mergeErrors ($ resultCache , $ freshErrorsByFile );
@@ -1385,8 +1387,11 @@ public function process(AnalyserResult $analyserResult, ResultCache $resultCache
13851387 $ linesToIgnore = $ this ->mergeLinesToIgnore ($ resultCache , $ analyserResult ->getLinesToIgnore ());
13861388 $ unmatchedLineIgnores = $ this ->mergeUnmatchedLineIgnores ($ resultCache , $ analyserResult ->getUnmatchedLineIgnores ());
13871389
1388- $ saved = false ;
1389- if ($ save !== false ) {
1390+ $ saveCallback = function () use ($ save , $ resultCache , $ projectConfigArray , $ doSave , $ errorsByFile , $ locallyIgnoredErrorsByFile , $ linesToIgnore , $ unmatchedLineIgnores , $ collectedDataByFile , $ dependencies , $ usedTraitDependencies , $ valueDependencies , $ packageDependencies , $ exportedNodes , $ cachedExportedNodes ): bool {
1391+ if ($ save === false ) {
1392+ return false ;
1393+ }
1394+
13901395 $ projectExtensionFiles = [];
13911396 foreach ($ resultCache ->getProjectExtensionFiles () as $ file => [$ hash , $ isAnalysed , $ className ]) {
13921397 if ($ isAnalysed ) {
@@ -1407,8 +1412,8 @@ public function process(AnalyserResult $analyserResult, ResultCache $resultCache
14071412 $ projectExtensionFiles [$ file ] = [$ hash , true , $ className ];
14081413 }
14091414 }
1410- $ saved = $ doSave ($ errorsByFile , $ locallyIgnoredErrorsByFile , $ linesToIgnore , $ unmatchedLineIgnores , $ collectedDataByFile , $ dependencies , $ usedTraitDependencies , $ valueDependencies , $ packageDependencies , $ exportedNodes , $ cachedExportedNodes , $ projectExtensionFiles );
1411- }
1415+ return $ doSave ($ errorsByFile , $ locallyIgnoredErrorsByFile , $ linesToIgnore , $ unmatchedLineIgnores , $ collectedDataByFile , $ dependencies , $ usedTraitDependencies , $ valueDependencies , $ packageDependencies , $ exportedNodes , $ cachedExportedNodes , $ projectExtensionFiles );
1416+ };
14121417
14131418 $ flatErrors = [];
14141419 foreach ($ errorsByFile as $ fileErrors ) {
@@ -1442,7 +1447,7 @@ public function process(AnalyserResult $analyserResult, ResultCache $resultCache
14421447 peakMemoryUsageBytes: $ analyserResult ->getPeakMemoryUsageBytes (),
14431448 processedFiles: $ analyserResult ->getProcessedFiles (),
14441449 workerCount: $ analyserResult ->getWorkerCount (),
1445- ), $ saved );
1450+ ), $ saveCallback );
14461451 }
14471452
14481453 /**
0 commit comments