AST: Introduce abstraction for extension/type decl inheritance clauses.

Wrap the `InheritedEntry` array available on both `ExtensionDecl` and
`TypeDecl` in a new `InheritedTypes` class. This class will provide shared
conveniences for working with inherited type clauses. NFC.
This commit is contained in:
Allan Shortlidge
2023-09-05 17:08:05 -07:00
parent 2c3c3c1933
commit 0dd8f4c492
33 changed files with 221 additions and 163 deletions

View File

@@ -623,7 +623,7 @@ static void reportRelated(ASTContext &Ctx, const Decl *D,
passExtends(TD, Consumer);
}
passInherits(ED->getInherited(), Consumer);
passInherits(ED->getInherited().getEntries(), Consumer);
} else if (auto *TAD = dyn_cast<TypeAliasDecl>(D)) {
@@ -631,7 +631,7 @@ static void reportRelated(ASTContext &Ctx, const Decl *D,
// If underlying type exists, report the inheritance and conformance of the
// underlying type.
if (auto NM = Ty->getAnyNominal()) {
passInherits(NM->getInherited(), Consumer);
passInherits(NM->getInherited().getEntries(), Consumer);
passConforms(NM->getSatisfiedProtocolRequirements(/*Sorted=*/true),
Consumer);
return;