After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 656005 - Objective-C Class Extensions should not be considered private.
Objective-C Class Extensions should not be considered private.
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: general
1.7.4
Other Mac OS
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2011-08-05 00:46 UTC by Oliver Jones
Modified: 2011-08-14 14:05 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Oliver Jones 2011-08-05 00:46:03 UTC
Objective-C class extensions should be considered "private" and only be included in documentation when EXTRACT_PRIVATE is turned on.

When a class extension like the one below is declared in a .m implementation file in Objective-C it is effectively private.  Unlike languages like Java and C++ there is no way of marking members of a class in Objective-C as private.  The @private keyword only applies to data members.

@interface MyClass ()

@property (nonatomic, assign) id<SomeDelegate> delegate;
@property (nonatomic, retain) NSMutableDictionary *actions;

- (void)someMethod;

@end

Although no methods in Objective-C are really private (if you know the selector name you can call it) it would be nice if the methods didn't show up in the public interface documentation.

I've tried adding /*! \private */ to methods and properties in class Extensions but that doesn't seem to be having any effect even with EXTRACT_PRIVATE not set.
Comment 1 Oliver Jones 2011-08-05 01:03:44 UTC
It seems the only effective way to remove "private" and internal methods in Objective-C code from Doxygen docs is to turn on HIDE_UNDOC_MEMBERS and document everything that should be public.
Comment 2 Dimitri van Heesch 2011-08-11 19:49:43 UTC
Confirmed. Should be fixed in the next release.
Make sure EXTRACT_LOCAL_METHODS is set to YES, otherwise the methods only defined in a .m file are not extracted.
Comment 3 Dimitri van Heesch 2011-08-14 14:05:15 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.7.5. Please verify if this is indeed the case. Reopen the
bug if you think it is not fixed and please include any additional information
that you think can be relevant.