[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-bugs
Subject:    [Bug 248999] New: Code completion in more complex template class
From:       MacJariel <MacJariel () gmail ! com>
Date:       2010-08-25 13:45:20
Message-ID: bug-248999-40295 () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=248999

           Summary: Code completion in more complex template class
                    inheritance
           Product: kdevelop
           Version: 4.0.0
          Platform: Ubuntu Packages
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: Language Support: CPP
        AssignedTo: kdevelop-bugs@kdevelop.org
        ReportedBy: MacJariel@gmail.com


Version:           4.0.0 (using KDE 4.4.4) 
OS:                Linux

Code completion does not show methods inherited from a class that is referred
as a typedef inside another template class, eg. template typename<T> class X:
public Y<T>::my_type ...

I have the following code:

struct A
{
    void methodA();
};

template <typename T>
struct B
{
    typedef A type;
};

template <typename T>
struct C: public B<T>::type
{
    void methodC();
};

C<int> c;
c.        // This completes only to methodC() - methodA() is missing.


The following works:

template <typename T>
struct D: public B<int>::type
{
    void methodD();
};

D<int> d
d.         // This completes to both methodA() and methodD()

Reproducible: Always

Steps to Reproduce:
Enter the following code:

struct A
{
    void methodA();
};

template <typename T>
struct B
{
    typedef A type;
};

template <typename T>
struct C: public B<T>::type
{
    void methodC();
};

int main()
{
    C<int> c;
    // Try code completion of c. here.
}

Actual Results:  
c. completes only to methodC() - methodA() is missing.

Expected Results:  
c. should complete to methodA() and methodC().

Also consider changing class C inheritance from public B<T>::type to public
B<int>::type. Code completion is correct in this case.

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

_______________________________________________
KDevelop-bugs mailing list
KDevelop-bugs@kdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-bugs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic