Skip to content

Commit 7ed59e1

Browse files
committed
Reimplement InitAccessorPropertiesRequest on top of MemberwiseInitPropertiesRequest
Simplify the implementation and take advantage of request caching.
1 parent a1464cf commit 7ed59e1

File tree

1 file changed

+3
-15
lines changed

1 file changed

+3
-15
lines changed

lib/Sema/TypeCheckStorage.cpp

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -333,22 +333,10 @@ bool HasInitAccessorRequest::evaluate(Evaluator &evaluator,
333333
ArrayRef<VarDecl *>
334334
InitAccessorPropertiesRequest::evaluate(Evaluator &evaluator,
335335
NominalTypeDecl *decl) const {
336-
IterableDeclContext *implDecl = decl->getImplementationContext();
337-
338-
if (!hasStoredProperties(decl, implDecl))
339-
return ArrayRef<VarDecl *>();
340-
341-
// Make sure we expand what we need to to get all of the properties.
342-
computeLoweredProperties(decl, implDecl, LoweredPropertiesReason::Memberwise);
343-
344336
SmallVector<VarDecl *, 4> results;
345-
for (auto *member : decl->getMembers()) {
346-
auto *var = dyn_cast<VarDecl>(member);
347-
if (!var || var->isStatic() || !var->hasInitAccessor()) {
348-
continue;
349-
}
350-
351-
results.push_back(var);
337+
for (auto var : decl->getMemberwiseInitProperties()) {
338+
if (var->hasInitAccessor())
339+
results.push_back(var);
352340
}
353341

354342
return decl->getASTContext().AllocateCopy(results);

0 commit comments

Comments
 (0)