AST: Start returning SelfProtocolConformances from ModuleDecl::lookupConformance()

Fixes <rdar://problem/49241923>, <https://bugs.swift.org/browse/SR-10015>.
This commit is contained in:
Slava Pestov
2019-04-16 22:58:54 -04:00
parent 844d4df31a
commit 5062a81e3d
18 changed files with 118 additions and 131 deletions

View File

@@ -4252,13 +4252,12 @@ public:
auto Proto = Conformance->getProtocol();
if (!Proto->isAccessibleFrom(CurrDeclContext))
continue;
auto NormalConformance = Conformance->getRootNormalConformance();
for (auto Member : Proto->getMembers()) {
auto *ATD = dyn_cast<AssociatedTypeDecl>(Member);
if (!ATD)
continue;
// FIXME: Also exclude the type alias that has already been specified.
if (!NormalConformance->hasTypeWitness(ATD) ||
if (!Conformance->hasTypeWitness(ATD) ||
!ATD->getDefaultDefinitionLoc().isNull())
continue;
addTypeAlias(ATD,