Sema: Hacky fix for infinite recursion if a class inherits from itself

This seems to come up a lot; we need to consolidate and clean up
inheritance circularity breaks.
This commit is contained in:
Slava Pestov
2016-12-09 03:26:36 -08:00
parent 9a65745f9b
commit ddd19c6207
4 changed files with 7 additions and 3 deletions

View File

@@ -75,6 +75,10 @@ bool IterativeTypeChecker::isQualifiedLookupInDeclContextSatisfied(
if (auto superclass = classDecl->getSuperclass()) {
if (auto superclassDecl = superclass->getAnyNominal()) {
// Hack.
if (superclassDecl == nominal)
return true;
if (!isSatisfied(requestQualifiedLookupInDeclContext({ superclassDecl,
payload.Name,
payload.Loc })))