[Diagnostics] Unsatisfied requirement in reference diagnostics expect type context

Resolves: rdar://problem/50666427
This commit is contained in:
Pavel Yaskevich
2020-01-23 08:30:32 -08:00
parent 0895235477
commit d412ea4d16
2 changed files with 18 additions and 2 deletions

View File

@@ -336,8 +336,9 @@ bool RequirementFailure::diagnoseAsError() {
return true;
}
if (genericCtx != reqDC && (genericCtx->isChildContextOf(reqDC) ||
isStaticOrInstanceMember(AffectedDecl))) {
if (reqDC->isTypeContext() && genericCtx != reqDC &&
(genericCtx->isChildContextOf(reqDC) ||
isStaticOrInstanceMember(AffectedDecl))) {
auto *NTD = reqDC->getSelfNominalTypeDecl();
emitDiagnostic(anchor->getLoc(), getDiagnosticInRereference(),
AffectedDecl->getDescriptiveKind(),