File tree Expand file tree Collapse file tree 1 file changed +3
-9
lines changed Expand file tree Collapse file tree 1 file changed +3
-9
lines changed Original file line number Diff line number Diff line change @@ -1471,19 +1471,13 @@ Type ConstraintSystem::getMemberReferenceTypeFromOpenedType(
1471
1471
getDynamicSelfReplacementType (baseObjTy, value, locator);
1472
1472
1473
1473
if (auto func = dyn_cast<AbstractFunctionDecl>(value)) {
1474
- if (func-> hasDynamicSelfResult ( ) &&
1474
+ if (isa<ConstructorDecl>(func ) &&
1475
1475
!baseObjTy->getOptionalObjectType ()) {
1476
1476
type = type->replaceCovariantResultType (replacementTy, 2 );
1477
1477
}
1478
- } else if (auto *decl = dyn_cast<SubscriptDecl>(value)) {
1479
- if (decl->getElementInterfaceType ()->hasDynamicSelfType ()) {
1480
- type = type->replaceCovariantResultType (replacementTy, 2 );
1481
- }
1482
- } else if (auto *decl = dyn_cast<VarDecl>(value)) {
1483
- if (decl->getValueInterfaceType ()->hasDynamicSelfType ()) {
1484
- type = type->replaceCovariantResultType (replacementTy, 1 );
1485
- }
1486
1478
}
1479
+
1480
+ type = type->replaceDynamicSelfType (replacementTy);
1487
1481
}
1488
1482
1489
1483
// Check if we need to apply a layer of optionality to the uncurried type.
You can’t perform that action at this time.
0 commit comments