Sema: Allow AbstractStorageDecl::overwriteImplInfo() to be called before adding any accessors

This commit is contained in:
Slava Pestov
2019-06-19 17:43:59 -04:00
parent 03c9c0f91b
commit 9ff34e82b0

View File

@@ -4666,7 +4666,16 @@ void ProtocolDecl::computeKnownProtocolKind() const {
void AbstractStorageDecl::overwriteImplInfo(StorageImplInfo implInfo) {
setFieldsFromImplInfo(implInfo);
Accessors.getPointer()->overwriteImplInfo(implInfo);
auto *accessors = Accessors.getPointer();
if (!accessors) {
accessors = AccessorRecord::create(getASTContext(), SourceRange(),
implInfo, {});
Accessors.setPointer(accessors);
return;
}
accessors->overwriteImplInfo(implInfo);
}
bool AbstractStorageDecl::hasPrivateAccessor() const {