mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Merge pull request #22072 from jckarter/opaque-type-runtime
Opaque types with resilience
This commit is contained in:
@@ -1118,6 +1118,11 @@ ConstraintSystem::solveImpl(Expr *&expr,
|
||||
// constraint.
|
||||
if (convertType) {
|
||||
auto constraintKind = ConstraintKind::Conversion;
|
||||
|
||||
if (getContextualTypePurpose() == CTP_ReturnStmt
|
||||
&& Options.contains(ConstraintSystemFlags::UnderlyingTypeForOpaqueReturnType))
|
||||
constraintKind = ConstraintKind::OpaqueUnderlyingType;
|
||||
|
||||
if (getContextualTypePurpose() == CTP_CallArgument)
|
||||
constraintKind = ConstraintKind::ArgumentConversion;
|
||||
|
||||
@@ -1513,7 +1518,8 @@ void ConstraintSystem::ArgumentInfoCollector::walk(Type argType) {
|
||||
case ConstraintKind::ArgumentConversion:
|
||||
case ConstraintKind::Conversion:
|
||||
case ConstraintKind::BridgingConversion:
|
||||
case ConstraintKind::BindParam: {
|
||||
case ConstraintKind::BindParam:
|
||||
case ConstraintKind::OpaqueUnderlyingType: {
|
||||
auto secondTy = constraint->getSecondType();
|
||||
if (secondTy->is<TypeVariableType>()) {
|
||||
auto otherRep =
|
||||
|
||||
Reference in New Issue
Block a user