Add diagnostics for potentially unavailable initializers.

This patch adds diagnostics for initializers that are potentially unavailable.
It does not treat such initializers as optionals, even when
EnableExperimentalUnavailableAsOptional is true -- there is some tricky
interaction with failable initializers that still needs to be worked out.



Swift SVN r22548
This commit is contained in:
Devin Coughlin
2014-10-06 19:50:08 +00:00
parent 50b2ca7370
commit 0aa115c09b
5 changed files with 107 additions and 4 deletions

View File

@@ -2773,8 +2773,12 @@ ConstraintSystem::simplifyMemberConstraint(const Constraint &constraint) {
isUnavailableInExistential(getTypeChecker(), constructor))
continue;
SourceLoc anchorLoc = constraint.getLocator()->getAnchor()->getLoc();
auto unavailReason = TC.checkDeclarationAvailability(constructor,
anchorLoc, DC);
choices.push_back(OverloadChoice(baseTy, constructor,
/*isSpecialized=*/false, *this));
/*isSpecialized=*/false, *this,
unavailReason));
}