Skip to content

Commit 564d284

Browse files
authored
[AST] Use buildGenericSignature in GenericSignature::typeErased (#70276)
Previously this used GenericSignature::get, which is not appropriate to use here.
1 parent 222739a commit 564d284

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

lib/AST/GenericSignature.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ CanType GenericSignature::getReducedType(Type type) const {
494494

495495
GenericSignature GenericSignature::typeErased(ArrayRef<Type> typeErasedParams) const {
496496
bool changedSignature = false;
497-
llvm::SmallVector<Requirement, 4> requirementsErased;
497+
llvm::SmallVector<Requirement, 2> requirementsErased;
498498

499499
for (auto req : getRequirements()) {
500500
bool found = std::any_of(typeErasedParams.begin(),
@@ -514,8 +514,10 @@ GenericSignature GenericSignature::typeErased(ArrayRef<Type> typeErasedParams) c
514514
}
515515

516516
if (changedSignature) {
517-
return GenericSignature::get(getGenericParams(),
518-
requirementsErased, false);
517+
return buildGenericSignature(
518+
Ptr->getASTContext(), GenericSignature(),
519+
SmallVector<GenericTypeParamType *>(getGenericParams()),
520+
requirementsErased);
519521
}
520522

521523
return *this;

0 commit comments

Comments
 (0)