Skip to content

Commit f37e9fc

Browse files
committed
[AST] In the absence of Objective-C interop, all reference counting is native.
1 parent 4d39506 commit f37e9fc

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

lib/AST/Type.cpp

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4065,12 +4065,10 @@ ReferenceCounting TypeBase::getReferenceCounting(
40654065
CanType type = getCanonicalType();
40664066
ASTContext &ctx = type->getASTContext();
40674067

4068-
// Determine which reference-counting scheme to use for an unknown object.
4069-
bool objCInterop = ctx.LangOpts.EnableObjCInterop;
4070-
auto getUnknownObjectReferenceCounting = [objCInterop] {
4071-
return objCInterop ? ReferenceCounting::Unknown
4072-
: ReferenceCounting::Native;
4073-
};
4068+
// In the absence of Objective-C interoperability, everything uses native
4069+
// reference counting.
4070+
if (!ctx.LangOpts.EnableObjCInterop)
4071+
return ReferenceCounting::Native;
40744072

40754073
switch (type->getKind()) {
40764074
#define SUGARED_TYPE(id, parent) case TypeKind::id:
@@ -4083,11 +4081,10 @@ ReferenceCounting TypeBase::getReferenceCounting(
40834081
return ReferenceCounting::Native;
40844082

40854083
case TypeKind::BuiltinBridgeObject:
4086-
return objCInterop ? ReferenceCounting::Bridge
4087-
: ReferenceCounting::Native;
4084+
return ReferenceCounting::Bridge;
40884085

40894086
case TypeKind::BuiltinUnknownObject:
4090-
return getUnknownObjectReferenceCounting();
4087+
return ReferenceCounting::Unknown;
40914088

40924089
case TypeKind::Class:
40934090
return getClassReferenceCounting(cast<ClassType>(type)->getDecl(),
@@ -4113,7 +4110,7 @@ ReferenceCounting TypeBase::getReferenceCounting(
41134110
(layout && layout->isRefCounted()));
41144111
if (auto supertype = archetype->getSuperclass())
41154112
return supertype->getReferenceCounting(resilience);
4116-
return getUnknownObjectReferenceCounting();
4113+
return ReferenceCounting::Unknown;
41174114
}
41184115

41194116
case TypeKind::Protocol:
@@ -4122,7 +4119,7 @@ ReferenceCounting TypeBase::getReferenceCounting(
41224119
assert(layout.requiresClass() && "Opaque existentials don't use refcounting");
41234120
if (auto superclass = layout.getSuperclass())
41244121
return superclass->getReferenceCounting(resilience);
4125-
return getUnknownObjectReferenceCounting();
4122+
return ReferenceCounting::Unknown;
41264123
}
41274124

41284125
case TypeKind::Function:

0 commit comments

Comments
 (0)