@@ -356,7 +356,6 @@ StepResult ComponentStep::take(bool prevFailed) {
356
356
});
357
357
358
358
auto *disjunction = CS.selectDisjunction ();
359
- auto *conjunction = CS.selectConjunction ();
360
359
361
360
if (CS.isDebugMode ()) {
362
361
PrintOptions PO;
@@ -369,19 +368,29 @@ StepResult ComponentStep::take(bool prevFailed) {
369
368
}
370
369
log.indent (CS.solverState ->getCurrentIndent ());
371
370
372
- if (disjunction) {
373
- log.indent (2 );
374
- log << " Disjunction(s) = [" ;
371
+ SmallVector<Constraint *, 4 > disjunctions;
372
+ CS.collectDisjunctions (disjunctions);
373
+ std::vector<std::string> overloadDisjunctions;
374
+ for (const auto &disjunction : disjunctions) {
375
+ PrintOptions PO;
376
+ PO.PrintTypesForDebugging = true ;
377
+
375
378
auto constraints = disjunction->getNestedConstraints ();
376
- log << constraints[0 ]->getFirstType ()->getString (PO);
377
- log << " ]" ;
379
+ if (constraints[0 ]->getKind () == ConstraintKind::BindOverload)
380
+ overloadDisjunctions.push_back (
381
+ constraints[0 ]->getFirstType ()->getString (PO));
378
382
}
379
- if (conjunction) {
383
+ if (!overloadDisjunctions.empty ()) {
384
+ auto &log = getDebugLogger ();
380
385
log.indent (2 );
381
- log << " Conjunction(s) = [" ;
382
- auto constraints = conjunction->getNestedConstraints ();
383
- log << constraints[0 ]->getFirstType ()->getString (PO);
384
- log << " ]" ;
386
+ log << " Disjunction(s) = [" ;
387
+ interleave (overloadDisjunctions, log, " , " );
388
+ log << " ]\n " ;
389
+
390
+ if (!potentialBindings.empty () || !overloadDisjunctions.empty ()) {
391
+ auto &log = getDebugLogger ();
392
+ log << " )\n " ;
393
+ }
385
394
}
386
395
log << " )\n " ;
387
396
}
0 commit comments