Propagate explicit-conformance declaration to inherited protocol checks.

Eliminates the redundant diagnostics I introduced in r8127.


Swift SVN r8163
This commit is contained in:
Doug Gregor
2013-09-12 21:06:03 +00:00
parent fcf8741318
commit 526dbd8231
2 changed files with 3 additions and 1 deletions

View File

@@ -486,6 +486,8 @@ specializeTypeWitnesses(ASTContext &ctx,
static std::tuple<NominalTypeDecl *, Decl *, ProtocolConformance *>
findExplicitConformance(Module *module, NominalTypeDecl *nominal,
ProtocolDecl *protocol, LazyResolver *resolver) {
// FIXME: Introduce a cache/lazy lookup structure to make this more efficient?
// Walk the nominal type, its extensions, superclasses, and so on.
llvm::SmallPtrSet<ProtocolDecl *, 4> visitedProtocols;
SmallVector<std::tuple<NominalTypeDecl *, NominalTypeDecl *, Decl *>,4> stack;