diff options
author | Sergio Martins <smartins@kde.org> | 2019-09-30 23:36:44 +0100 |
---|---|---|
committer | Sergio Martins <smartins@kde.org> | 2019-09-30 23:36:44 +0100 |
commit | 0163ee956e82efcf830c174614bd761192f71b97 (patch) | |
tree | 047fcbe0366634b5dc5958161b555e727c1214f9 /src | |
parent | 76168b30dea7cc5d8d63e03f2a46e14ca9eb30ac (diff) |
qproperty-type-mismatch: Support '*' being next to property name
Diffstat (limited to 'src')
-rw-r--r-- | src/checks/manuallevel/qproperty-type-mismatch.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/checks/manuallevel/qproperty-type-mismatch.cpp b/src/checks/manuallevel/qproperty-type-mismatch.cpp index 889922e9..7445d489 100644 --- a/src/checks/manuallevel/qproperty-type-mismatch.cpp +++ b/src/checks/manuallevel/qproperty-type-mismatch.cpp @@ -118,7 +118,10 @@ std::string QPropertyTypeMismatch::cleanupType(QualType type, bool unscoped) con po.SuppressScope = unscoped; std::string str = type.getAsString(po); - str.erase(std::remove_if(str.begin(), str.end(), [] (char c) { return std::isspace(c); }), str.end()); + str.erase(std::remove_if(str.begin(), str.end(), [] (char c) { + return std::isspace(c); + }), str.end()); + return str; } @@ -245,6 +248,17 @@ void QPropertyTypeMismatch::VisitMacroExpands(const clang::Token &MacroNameTok, clazy::rtrim(split[1]); p.name = split[1]; + // FIXME: This is getting hairy, better use regexps + for (uint i = 0; i < p.name.size(); ++i) { + if (p.name[i] == '*') { + p.type += '*'; + } else { + break; + } + } + + p.name.erase(std::remove(p.name.begin(), p.name.end(), '*'), p.name.end()); + // Handle Q_PROPERTY functions enum { None, Read, Write, Notify |