Skip to content

Commit 17c1b35

Browse files
committed
AST: Fix computation of RecursiveTypeProperties::HasParameterizedExistential
1 parent 07d08b6 commit 17c1b35

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

lib/AST/ASTContext.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3761,6 +3761,9 @@ ParameterizedProtocolType *ParameterizedProtocolType::get(const ASTContext &C,
37613761

37623762
auto size = totalSizeToAlloc<Type>(args.size());
37633763
auto mem = C.Allocate(size, alignof(ParameterizedProtocolType), arena);
3764+
3765+
properties |= RecursiveTypeProperties::HasParameterizedExistential;
3766+
37643767
auto paramTy = new (mem) ParameterizedProtocolType(
37653768
isCanonical ? &C : nullptr, baseTy, args, properties);
37663769
C.getImpl().getArena(arena).ParameterizedProtocolTypes.InsertNode(
@@ -3851,8 +3854,6 @@ ExistentialMetatypeType::get(Type T, Optional<MetatypeRepresentation> repr,
38513854
T = existential->getConstraintType();
38523855

38533856
auto properties = T->getRecursiveProperties();
3854-
if (T->is<ParameterizedProtocolType>())
3855-
properties |= RecursiveTypeProperties::HasParameterizedExistential;
38563857
auto arena = getArena(properties);
38573858

38583859
unsigned reprKey;
@@ -4722,8 +4723,6 @@ Type ExistentialType::get(Type constraint) {
47224723
printWithAny = false;
47234724

47244725
auto properties = constraint->getRecursiveProperties();
4725-
if (constraint->is<ParameterizedProtocolType>())
4726-
properties |= RecursiveTypeProperties::HasParameterizedExistential;
47274726
auto arena = getArena(properties);
47284727

47294728
auto &entry = C.getImpl().getArena(arena).ExistentialTypes[constraint];

0 commit comments

Comments
 (0)