forked from OSchip/llvm-project
Remove the temporary availability checking workaround for
the nested declarations in @interface. rdar://28825862 llvm-svn: 329324
This commit is contained in:
parent
5e9059ceb1
commit
9c64f211b6
|
@ -6828,28 +6828,6 @@ static bool ShouldDiagnoseAvailabilityInContext(Sema &S, AvailabilityResult K,
|
|||
return false;
|
||||
};
|
||||
|
||||
// FIXME: This is a temporary workaround! Some existing Apple headers depends
|
||||
// on nested declarations in an @interface having the availability of the
|
||||
// interface when they really shouldn't: they are members of the enclosing
|
||||
// context, and can referenced from there.
|
||||
if (S.OriginalLexicalContext && cast<Decl>(S.OriginalLexicalContext) != Ctx) {
|
||||
const auto *OrigCtx = cast<Decl>(S.OriginalLexicalContext);
|
||||
if (CheckContext(OrigCtx))
|
||||
return false;
|
||||
|
||||
// An implementation implicitly has the availability of the interface.
|
||||
if (const auto *CatOrImpl = dyn_cast<ObjCImplDecl>(OrigCtx)) {
|
||||
if (const ObjCInterfaceDecl *Interface = CatOrImpl->getClassInterface())
|
||||
if (CheckContext(Interface))
|
||||
return false;
|
||||
}
|
||||
// A category implicitly has the availability of the interface.
|
||||
else if (const auto *CatD = dyn_cast<ObjCCategoryDecl>(OrigCtx))
|
||||
if (const ObjCInterfaceDecl *Interface = CatD->getClassInterface())
|
||||
if (CheckContext(Interface))
|
||||
return false;
|
||||
}
|
||||
|
||||
do {
|
||||
if (CheckContext(Ctx))
|
||||
return false;
|
||||
|
|
|
@ -115,9 +115,9 @@ UNAVAILABLE __attribute__((objc_root_class))
|
|||
}
|
||||
@end
|
||||
|
||||
typedef int unavailable_int UNAVAILABLE;
|
||||
typedef int unavailable_int UNAVAILABLE; // expected-note {{'unavailable_int' has been explicitly marked unavailable here}}
|
||||
|
||||
UNAVAILABLE
|
||||
@interface A
|
||||
extern unavailable_int global_unavailable; // FIXME: this should be an error!
|
||||
extern unavailable_int global_unavailable; // expected-error {{'unavailable_int' is unavailable: not available}}
|
||||
@end
|
||||
|
|
Loading…
Reference in New Issue