///
/// @interface IvarExample : NSObject
/// {
-/// id defaultToPrivate; // same as C++.
+/// id defaultToProtected;
/// @public:
/// id canBePublic; // same as C++.
/// @protected:
enum AccessControl {
None, Private, Protected, Public, Package
};
+
void setAccessControl(AccessControl ac) { DeclAccess = ac; }
+
AccessControl getAccessControl() const { return AccessControl(DeclAccess); }
+
+ AccessControl getCanonicalAccessControl() const {
+ return DeclAccess == None ? Protected : AccessControl(DeclAccess);
+ }
// Implement isa/cast/dyncast/etc.
static bool classof(const Decl *D) { return D->getKind() == ObjCIvar; }