Skip to content

Commit dd69e11

Browse files
committed
[AST/Sema] Switch protocol requirement inference to use getABIMembers()
- `getAssociatedTypeMembers()`; - inference of defaults for associated types; - `ConformanceChecker` methods that iterate over type and value requirements.
1 parent 71f528a commit dd69e11

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

lib/AST/Decl.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -5533,7 +5533,7 @@ ProtocolDecl::getAssociatedTypeMembers() const {
55335533
contextData->loader->loadAssociatedTypes(
55345534
this, contextData->associatedTypesData, result);
55355535
} else {
5536-
for (auto member : getMembers()) {
5536+
for (auto member : getABIMembers()) {
55375537
if (auto ATD = dyn_cast<AssociatedTypeDecl>(member)) {
55385538
result.push_back(ATD);
55395539
}

lib/Sema/TypeCheckProtocol.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -1817,7 +1817,7 @@ void MultiConformanceChecker::checkAllConformances() {
18171817
return *checker;
18181818
};
18191819

1820-
for (auto member : proto->getMembers()) {
1820+
for (auto member : proto->getABIMembers()) {
18211821
auto req = dyn_cast<ValueDecl>(member);
18221822
if (!req || !req->isProtocolRequirement()) continue;
18231823

@@ -5124,7 +5124,7 @@ hasInvalidTypeInConformanceContext(const ValueDecl *requirement,
51245124
}
51255125

51265126
void ConformanceChecker::resolveValueWitnesses() {
5127-
for (auto member : Proto->getMembers()) {
5127+
for (auto member : Proto->getABIMembers()) {
51285128
auto requirement = dyn_cast<ValueDecl>(member);
51295129
if (!requirement)
51305130
continue;
@@ -7129,7 +7129,7 @@ void TypeChecker::inferDefaultWitnesses(ProtocolDecl *proto) {
71297129
return {defaultType, defaultedAssocType};
71307130
};
71317131

7132-
for (auto *requirement : proto->getMembers()) {
7132+
for (auto *requirement : proto->getABIMembers()) {
71337133
if (requirement->isInvalid())
71347134
continue;
71357135

0 commit comments

Comments
 (0)