@@ -61,18 +61,17 @@ BindingSet::BindingSet(ConstraintSystem &CS, TypeVariableType *TypeVar,
6161 addLiteralRequirement (constraint);
6262 break ;
6363
64- case ConstraintKind::Defaultable:
65- case ConstraintKind::FallbackType:
66- // Do these in a separate pass.
67- if (isDirectRequirement (CS, TypeVar, constraint))
68- addDefault (constraint);
69- break ;
70-
7164 default :
7265 break ;
7366 }
7467 }
7568
69+ for (auto *constraint : info.Defaults ) {
70+ // Do these in a separate pass.
71+ if (isDirectRequirement (CS, TypeVar, constraint))
72+ addDefault (constraint);
73+ }
74+
7675 for (auto &entry : info.AdjacentVars )
7776 AdjacentVars.insert (entry.first );
7877}
@@ -2085,9 +2084,12 @@ void PotentialBindings::infer(ConstraintSystem &CS,
20852084 case ConstraintKind::SameShape:
20862085 case ConstraintKind::MaterializePackExpansion:
20872086 case ConstraintKind::LiteralConformsTo:
2087+ // Constraints from which we can't do anything.
2088+ break ;
2089+
20882090 case ConstraintKind::Defaultable:
20892091 case ConstraintKind::FallbackType:
2090- // Constraints from which we can't do anything.
2092+ Defaults. push_back (constraint);
20912093 break ;
20922094
20932095 // For now let's avoid inferring protocol requirements from
0 commit comments