aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSergio Martins <smartins@kde.org>2019-09-30 23:36:44 +0100
committerSergio Martins <smartins@kde.org>2019-09-30 23:36:44 +0100
commit0163ee956e82efcf830c174614bd761192f71b97 (patch)
tree047fcbe0366634b5dc5958161b555e727c1214f9 /src
parent76168b30dea7cc5d8d63e03f2a46e14ca9eb30ac (diff)
qproperty-type-mismatch: Support '*' being next to property name
Diffstat (limited to 'src')
-rw-r--r--src/checks/manuallevel/qproperty-type-mismatch.cpp16
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