Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
Qt Creator 4.7.0
-
None
Description
Hi,
when using QtC 4.7 with Clang Code Model, the code is not properly parsed when providing an out-of-class definition of a method template.
The issue can be reproduced with the following code:
#include <QCoreApplication> template <class X, class Y, class Z> class TemplateA { public: explicit TemplateA(); }; template< class X, class Y, class Z > TemplateA< X, Y, Z >::TemplateA() { } template< class X, class Y > class TemplateB : public TemplateA< X, Y, TemplateB< X, Y > > { public: explicit TemplateB(); }; template< class X, class Y > TemplateB< X, Y >::TemplateB() { } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); return a.exec(); }
When scrolling down the methods list, the method signature is reported like
c:@ST>3#T#T#T#@TemplateA::TemplateA<X, Y, Z>() -> void
That spoils the whole parsing, cause some other methods are reported with the wrong signature, or you see a "const int myVariable" when you're in a specific method (so I assume that the parsing is completely out-of-sync).
Attachments
Issue Links
- relates to
-
QTCREATORBUG-20992 Symbol toolbar is populated with wrong items when using symbols across namespaces
- Open