File tree Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -578,13 +578,15 @@ bool DisjunctionStep::shouldStopAt(const DisjunctionChoice &choice) const {
578
578
auto delta = LastSolvedChoice->second - getCurrentScore ();
579
579
bool hasUnavailableOverloads = delta.Data [SK_Unavailable] > 0 ;
580
580
bool hasFixes = delta.Data [SK_Fix] > 0 ;
581
+ bool hasAsyncMismatch = delta.Data [SK_AsyncSyncMismatch] > 0 ;
581
582
auto isBeginningOfPartition = choice.isBeginningOfPartition ();
582
583
583
584
// Attempt to short-circuit evaluation of this disjunction only
584
- // if the disjunction choice we are comparing to did not involve
585
- // selecting unavailable overloads or result in fixes being
586
- // applied to reach a solution.
587
- return !hasUnavailableOverloads && !hasFixes &&
585
+ // if the disjunction choice we are comparing to did not involve:
586
+ // 1. selecting unavailable overloads
587
+ // 2. result in fixes being applied to reach a solution
588
+ // 3. selecting an overload that results in an async/sync mismatch
589
+ return !hasUnavailableOverloads && !hasFixes && !hasAsyncMismatch &&
588
590
(isBeginningOfPartition ||
589
591
shortCircuitDisjunctionAt (choice, lastChoice));
590
592
}
You can’t perform that action at this time.
0 commit comments