Review Request 112232: DUChain: fix template specialization for template class nested in class
Milian Wolff
mail at milianw.de
Sat Aug 24 10:04:22 UTC 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/112232/#review38465
-----------------------------------------------------------
Can you please add a unit test? Also make sure no other tests are failing
- Milian Wolff
On Aug. 23, 2013, 11:16 p.m., Max Schwarz wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/112232/
> -----------------------------------------------------------
>
> (Updated Aug. 23, 2013, 11:16 p.m.)
>
>
> Review request for KDevelop.
>
>
> Description
> -------
>
> This patch tries to fix KDevelop's understanding of template specializations of template classes nested in other contexts, e.g.
>
> class A
> {
> template<class T>
> class B
> {};
> };
>
> template<>
> class A::B<int>
> {
> public:
> int value;
> };
>
> int main()
> {
> A::B<int> a;
> return a.value; // KDevelop does not know value
> }
>
> My understanding of the DUChain code is very limited. But I think I have made out two apparent reasons and fixed them with this patch:
> a) findLocalDeclarations() is used to find A::B inside the global scope, which does not work. Use findDeclarations() instead.
> b) The template context cannot be found for template<...> class A::B, since a helper context for the prefix A:: is inserted between the
> template context and the class context.
>
> Someone with DUChain experience needs to have a look at it. I'm not sure I did the right thing, especially with issue b).
>
>
> Diffs
> -----
>
> languages/cpp/cppduchain/declarationbuilder.cpp 7216f1f
>
> Diff: http://git.reviewboard.kde.org/r/112232/diff/
>
>
> Testing
> -------
>
> Seems to work, I have used it for two weeks now. I haven't done any further testing.
>
>
> Thanks,
>
> Max Schwarz
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20130824/6458ecb4/attachment.html>
More information about the KDevelop-devel
mailing list