Skip to content

Commit 1dfb979

Browse files
authored
Merge pull request #19789 from DougGregor/no-storage-for-old-classes
2 parents 329423b + 33109d8 commit 1dfb979

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

include/swift/AST/Decl.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3233,10 +3233,7 @@ class NominalTypeDecl : public GenericTypeDecl, public IterableDeclContext {
32333233
ToStoredProperty>;
32343234

32353235
/// Return a collection of the stored member variables of this type.
3236-
StoredPropertyRange getStoredProperties(bool skipInaccessible = false) const {
3237-
return StoredPropertyRange(getMembers(),
3238-
ToStoredProperty(skipInaccessible));
3239-
}
3236+
StoredPropertyRange getStoredProperties(bool skipInaccessible = false) const;
32403237

32413238
private:
32423239
/// Predicate used to filter StoredPropertyRange.

lib/AST/Decl.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2995,6 +2995,17 @@ void NominalTypeDecl::addExtension(ExtensionDecl *extension) {
29952995
LastExtension = extension;
29962996
}
29972997

2998+
auto NominalTypeDecl::getStoredProperties(bool skipInaccessible) const
2999+
-> StoredPropertyRange {
3000+
// Clang-imported classes never have stored properties.
3001+
if (hasClangNode() && isa<ClassDecl>(this))
3002+
return StoredPropertyRange(DeclRange(nullptr, nullptr),
3003+
ToStoredProperty(skipInaccessible));
3004+
3005+
return StoredPropertyRange(getMembers(),
3006+
ToStoredProperty(skipInaccessible));
3007+
}
3008+
29983009
bool NominalTypeDecl::isOptionalDecl() const {
29993010
return this == getASTContext().getOptionalDecl();
30003011
}

0 commit comments

Comments
 (0)