summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/symbolfinder.cpp
diff options
context:
space:
mode:
authorLorenz Haas <lykurg@gmail.com>2013-05-14 11:04:38 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-05-15 13:36:13 +0200
commit17a81ae1061a50e2d7184719ea20cc92a0d3a64c (patch)
tree16d4a48333b8983eac1ff2cb89d42bb5fa527b5c /src/plugins/cpptools/symbolfinder.cpp
parentaa3aa7c455b80397c339aa49a49cf13afba453b9 (diff)
downloadqt-creator-17a81ae1061a50e2d7184719ea20cc92a0d3a64c.tar.gz
CppTools: findMatchingDefinition handles const and volatile
Strict set to true, SymbolFinder::findMatchingDefinition will now also check, if const and volatile matches. Changed return type from 'Symbol *' to 'Function *' since only functions are returned. Change-Id: Ib55cb12b6c404e94fcefd0613b964e8caa425690 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/plugins/cpptools/symbolfinder.cpp')
-rw-r--r--src/plugins/cpptools/symbolfinder.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/plugins/cpptools/symbolfinder.cpp b/src/plugins/cpptools/symbolfinder.cpp
index 19c25a28dd..9acd841121 100644
--- a/src/plugins/cpptools/symbolfinder.cpp
+++ b/src/plugins/cpptools/symbolfinder.cpp
@@ -95,8 +95,8 @@ SymbolFinder::SymbolFinder()
{}
// strict means the returned symbol has to match exactly,
-// including argument count and argument types
-Symbol *SymbolFinder::findMatchingDefinition(Symbol *declaration,
+// including argument count, argument types, constness and volatileness.
+Function *SymbolFinder::findMatchingDefinition(Symbol *declaration,
const Snapshot &snapshot,
bool strict)
{
@@ -189,8 +189,11 @@ Symbol *SymbolFinder::findMatchingDefinition(Symbol *declaration,
break;
}
- if (argIt == argc)
+ if (argIt == argc
+ && fun->isConst() == declaration->type().isConst()
+ && fun->isVolatile() == declaration->type().isVolatile()) {
best = fun;
+ }
}
}