aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus/Bind.cpp
diff options
context:
space:
mode:
authorPrzemyslaw Gorszkowski <pgorszkowski@gmail.com>2013-04-10 23:30:18 +0200
committerErik Verbruggen <erik.verbruggen@digia.com>2013-04-19 12:14:56 +0200
commit080bf4ecb8b7b70d6410e3342e37dacd5aef8ff3 (patch)
treeafee321dc0eff8017c0a4e3243bf64aefa901581 /src/libs/3rdparty/cplusplus/Bind.cpp
parenta2b2857b44d6f6bfdf9ab07a51165b56ef2705bf (diff)
C++: improve support for anonymous classes
Fix: * highlighting * find usages * follow symbol * code completion Task-number: QTCREATORBUG-6497 Task-number: QTCREATORBUG-8963 Task-number: QTCREATORBUG-3610 Task-number: QTCREATORBUG-7579 Change-Id: I3dcaf1c515d0199c3e6bee72284fbb40064686ee Reviewed-by: Petar Perisin <petar.perisin@gmail.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Bind.cpp')
-rw-r--r--src/libs/3rdparty/cplusplus/Bind.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libs/3rdparty/cplusplus/Bind.cpp b/src/libs/3rdparty/cplusplus/Bind.cpp
index b21b167655..3f2ffea7c8 100644
--- a/src/libs/3rdparty/cplusplus/Bind.cpp
+++ b/src/libs/3rdparty/cplusplus/Bind.cpp
@@ -2614,6 +2614,12 @@ bool Bind::visit(ConversionFunctionIdAST *ast)
return false;
}
+bool Bind::visit(AnonymousNameAST *ast)
+{
+ ast->name = _name = control()->anonymousNameId(ast->class_token);
+ return false;
+}
+
bool Bind::visit(SimpleNameAST *ast)
{
const Identifier *id = identifier(ast->identifier_token);
@@ -2896,7 +2902,7 @@ bool Bind::visit(ClassSpecifierAST *ast)
const Name *className = this->name(ast->name);
- if (ast->name) {
+ if (ast->name && ! ast->name->asAnonymousName()) {
sourceLocation = location(ast->name, sourceLocation);
startScopeOffset = tokenAt(sourceLocation).end(); // at the end of the class name