diff options
author | Lorenz Haas <lykurg@gmail.com> | 2013-05-14 11:04:38 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-05-15 13:36:13 +0200 |
commit | 17a81ae1061a50e2d7184719ea20cc92a0d3a64c (patch) | |
tree | 16d4a48333b8983eac1ff2cb89d42bb5fa527b5c /src/plugins/cpptools/symbolfinder.cpp | |
parent | aa3aa7c455b80397c339aa49a49cf13afba453b9 (diff) | |
download | qt-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.cpp | 9 |
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; + } } } |