File tree Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Original file line number Diff line number Diff line change @@ -547,13 +547,25 @@ ConstraintSystem::getPotentialBindings(TypeVariableType *typeVar) const {
547
547
}
548
548
break ;
549
549
}
550
+ case ConstraintKind::KeyPathApplication: {
551
+ if (result.FullyBound )
552
+ continue ;
553
+
554
+ // If this variable is in the application projected result type, it is
555
+ // fully bound.
556
+ SmallPtrSet<TypeVariableType *, 4 > typeVars;
557
+ findInferableTypeVars (simplifyType (constraint->getThirdType ()), typeVars);
558
+ if (typeVars.count (typeVar))
559
+ result.FullyBound = true ;
560
+
561
+ break ;
562
+ }
550
563
551
564
case ConstraintKind::BridgingConversion:
552
565
case ConstraintKind::CheckedCast:
553
566
case ConstraintKind::EscapableFunctionOf:
554
567
case ConstraintKind::OpenedExistentialOf:
555
568
case ConstraintKind::KeyPath:
556
- case ConstraintKind::KeyPathApplication:
557
569
case ConstraintKind::FunctionInput:
558
570
case ConstraintKind::FunctionResult:
559
571
case ConstraintKind::OpaqueUnderlyingType:
You can’t perform that action at this time.
0 commit comments