@@ -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,18 +368,24 @@ 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> choicesWithBindOverload;
374
+ for (const auto &disjunction : disjunctions) {
375
+ bool isBindOverload = false ;
375
376
auto constraints = disjunction->getNestedConstraints ();
376
- log << constraints[0 ]->getFirstType ()->getString (PO);
377
- log << " ]" ;
377
+ for (const auto &choice : constraints) {
378
+ if (choice->getKind () == ConstraintKind::BindOverload)
379
+ isBindOverload = true ;
380
+ }
381
+ if (isBindOverload)
382
+ choicesWithBindOverload.push_back (
383
+ constraints.front ()->getFirstType ()->getString (PO));
378
384
}
379
- if (conjunction ) {
385
+ if (!choicesWithBindOverload. empty () ) {
380
386
log.indent (2 );
381
- log << " Conjunction(s) = [" ;
382
- auto constraints = conjunction->getNestedConstraints ();
383
- log << constraints[0 ]->getFirstType ()->getString (PO);
387
+ log << " Disjunction(s) = [" ;
388
+ interleave (choicesWithBindOverload, log, " , " );
384
389
log << " ]" ;
385
390
}
386
391
log << " )\n " ;
0 commit comments