diff options
| author | Roberto Raggi <roberto.raggi@nokia.com> | 2009-10-06 16:27:39 +0200 |
|---|---|---|
| committer | con <qtc-committer@nokia.com> | 2009-10-06 18:48:39 +0200 |
| commit | 390ed9e313cc5563db3f6d3eacf5d02359ddba6d (patch) | |
| tree | 80bbacf300d4950e650215ff0e9904f80fc5ace5 /src/plugins/cpptools/cppfindreferences.cpp | |
| parent | cb5d390e69e42ae30110c9df63513d47bc48ef03 (diff) | |
| download | qt-creator-390ed9e313cc5563db3f6d3eacf5d02359ddba6d.tar.gz | |
Return the class declaration as canonical symbol for ctors, dtors, and class names.
(cherry picked from commit 3c51e5b24b381364934531094203e3e315a945f7)
Diffstat (limited to 'src/plugins/cpptools/cppfindreferences.cpp')
| -rw-r--r-- | src/plugins/cpptools/cppfindreferences.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index 95e1b8273d..f7ebace4fa 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -303,14 +303,22 @@ protected: } } - if (ast->unqualified_name) { - SimpleNameAST *simple_name = ast->unqualified_name->asSimpleName(); + if (NameAST *unqualified_name = ast->unqualified_name) { + unsigned identifier_token = 0; + + if (SimpleNameAST *simple_name = unqualified_name->asSimpleName()) + identifier_token = simple_name->identifier_token; + + else if (DestructorNameAST *dtor_name = unqualified_name->asDestructorName()) + identifier_token = dtor_name->identifier_token; TemplateIdAST *template_id = 0; - if (! simple_name) { - template_id = ast->unqualified_name->asTemplateId(); + if (! identifier_token) { + template_id = unqualified_name->asTemplateId(); if (template_id) { + identifier_token = template_id->identifier_token; + for (TemplateArgumentListAST *template_arguments = template_id->template_arguments; template_arguments; template_arguments = template_arguments->next) { accept(template_arguments->template_argument); @@ -318,14 +326,8 @@ protected: } } - if (simple_name || template_id) { - const unsigned identifier_token = simple_name - ? simple_name->identifier_token - : template_id->identifier_token; - - if (identifier(identifier_token) == _id) - checkExpression(ast->firstToken(), identifier_token); - } + if (identifier_token && identifier(identifier_token) == _id) + checkExpression(ast->firstToken(), identifier_token); } return false; |
