Skip to content

Commit 862432f

Browse files
committed
Explicitly request to createGenericParamsIfMissing as it will be lazy
Computing the requirement signature created the generic params as a side effect. Making getRequirementSignature lazy means that users of the generic params must make sure they are created before use.
1 parent 4bc22c7 commit 862432f

File tree

2 files changed

+2
-0
lines changed

2 files changed

+2
-0
lines changed

lib/AST/DeclContext.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ GenericTypeParamType *DeclContext::getProtocolSelfType() const {
9090

9191
GenericParamList *genericParams;
9292
if (auto proto = dyn_cast<ProtocolDecl>(this)) {
93+
const_cast<ProtocolDecl*>(proto)->createGenericParamsIfMissing();
9394
genericParams = proto->getGenericParams();
9495
} else {
9596
genericParams = cast<ExtensionDecl>(this)->getGenericParams();

lib/Serialization/Serialization.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3284,6 +3284,7 @@ void Serializer::writeDecl(const Decl *D) {
32843284
rawAccessLevel,
32853285
inherited);
32863286

3287+
const_cast<ProtocolDecl*>(proto)->createGenericParamsIfMissing();
32873288
writeGenericParams(proto->getGenericParams());
32883289
writeGenericRequirements(
32893290
proto->getRequirementSignature(), DeclTypeAbbrCodes);

0 commit comments

Comments
 (0)