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 611174 - Python: Doxygen incorrectly associates functions with a nested class
Python: Doxygen incorrectly associates functions with a nested class
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: general
1.6.3
Other Windows
: Normal major
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2010-02-26 12:28 UTC by sentrydesign
Modified: 2010-10-09 08:19 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Test case. (91.45 KB, application/x-zip-compressed)
2010-02-26 12:28 UTC, sentrydesign
Details

Description sentrydesign 2010-02-26 12:28:02 UTC
Created attachment 154748 [details]
Test case.

If you have a Python class with some private nested classes Doxygen incorrectly associates functions of the parent with the final Nested Class.

In the case of the class below Doxygen associates myDemoFunc and myAnotherDemoFunc with NestedClassBar rather than DemoClass.


class DemoClass( object ):

    class NestedClassFoo( object ):
        def myFooFunc ( self ):
            pass
            
    class NestedClassBar( object ):
        def myBarFunc ( self ):
            pass

    ##
    # This is my demo function.
    #
    def myDemoFunc( self ):
        pass
        
    ##
    # This is my second demo function.
    #
    def myAnotherDemoFunc( self ):
        pass
Comment 1 sentrydesign 2010-02-26 12:36:06 UTC
I have also seen a similar issue with classes being attributed to the wrong namespace.

For the example below doxygen associates the class WrongAssociation with the namespace foo.bar.DemoClass.Full.WrongAssociation rather than foo.bar.DemoClass.WrongAssociation

class DemoClass( object ):

    class Empty( Exception ):
        pass

    class Full( Exception ):
        pass

    class WrongAssociation( object ):

        def __init__( self, iPriority, mData ):
            pass

    ##
    # This is my demo function.
    #
    def myDemoFunc( self ):
        pass
        
    ##
    # This is my second demo function.
    #
    def myAnotherDemoFunc( self ):
        pass
Comment 2 Dimitri van Heesch 2010-07-04 18:57:11 UTC
Confirmed. Both issues should be fixed in the next subversion update.
Comment 3 Dimitri van Heesch 2010-10-09 08:19:14 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.7.2. 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.