diff options
author | Sergio Martins <smartins@kde.org> | 2018-02-24 17:34:46 +0000 |
---|---|---|
committer | Sergio Martins <smartins@kde.org> | 2018-02-24 17:36:04 +0000 |
commit | 23e5184bf6ed1963e1fb098fe49a1ac7429eb95f (patch) | |
tree | 0cc46f071c6224903625471a13cb532901a2a87e /tests/unneeded-cast | |
parent | 044c1dfdb92bc680c7b70084d5fe3f33137a9cae (diff) |
unneeded-cast: Prefer qobject_cast over dynamic_cast by default
To disable this behavior you'll need to set:
CLAZY_EXTRA_OPTIONS=unneeded-cast-prefer-dynamic-cast-over-qobject
This is a better default for Qt.
Diffstat (limited to 'tests/unneeded-cast')
-rw-r--r-- | tests/unneeded-cast/config.json | 4 | ||||
-rw-r--r-- | tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp (renamed from tests/unneeded-cast/qobjectcast.cpp) | 2 | ||||
-rw-r--r-- | tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp.expected | 0 | ||||
-rw-r--r-- | tests/unneeded-cast/main.cpp | 6 | ||||
-rw-r--r-- | tests/unneeded-cast/main.cpp.expected | 7 | ||||
-rw-r--r-- | tests/unneeded-cast/qobjectcast.cpp.expected | 1 |
6 files changed, 15 insertions, 5 deletions
diff --git a/tests/unneeded-cast/config.json b/tests/unneeded-cast/config.json index cf5fbd5e..b39132d9 100644 --- a/tests/unneeded-cast/config.json +++ b/tests/unneeded-cast/config.json @@ -4,10 +4,10 @@ "filename" : "main.cpp" }, { - "filename" : "qobjectcast.cpp", + "filename" : "dynamic_cast_over_qobjectcast.cpp", "env" : { - "CLAZY_EXTRA_OPTIONS" : "unneeded-cast-qobject" + "CLAZY_EXTRA_OPTIONS" : "unneeded-cast-prefer-dynamic-cast-over-qobject" } } ] diff --git a/tests/unneeded-cast/qobjectcast.cpp b/tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp index 11e0ed62..9cb0256d 100644 --- a/tests/unneeded-cast/qobjectcast.cpp +++ b/tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp @@ -4,5 +4,5 @@ struct MyObj : public QObject {}; void testQObjectCast(QObject *o) { - dynamic_cast<MyObj*>(o); // Warn + dynamic_cast<MyObj*>(o); // OK } diff --git a/tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp.expected b/tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp.expected new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/tests/unneeded-cast/dynamic_cast_over_qobjectcast.cpp.expected diff --git a/tests/unneeded-cast/main.cpp b/tests/unneeded-cast/main.cpp index bca5b416..c58c32ac 100644 --- a/tests/unneeded-cast/main.cpp +++ b/tests/unneeded-cast/main.cpp @@ -33,6 +33,10 @@ void test() dynamic_cast<A*>(a); // warning: Casting to itself dynamic_cast<B*>(a); // OK dynamic_cast<B*>(b); // warning: Casting to itself + static_cast<A*>(b); // warning: Casting to base + static_cast<A*>(a); // warning: Casting to itself + static_cast<B*>(a); // OK + static_cast<B*>(b); // warning: Casting to itself } class MyObj : public QObject @@ -42,5 +46,5 @@ public: void testQObjectCast(QObject *o) { - dynamic_cast<MyObj*>(o); // OK + dynamic_cast<MyObj*>(o); // Warn } diff --git a/tests/unneeded-cast/main.cpp.expected b/tests/unneeded-cast/main.cpp.expected index 44ee4318..bcaee9ca 100644 --- a/tests/unneeded-cast/main.cpp.expected +++ b/tests/unneeded-cast/main.cpp.expected @@ -4,3 +4,10 @@ unneeded-cast/main.cpp:33:5: warning: Casting to itself [-Wclazy-unneeded-cast] dynamic_cast<A*>(a); // warning: Casting to itself unneeded-cast/main.cpp:35:5: warning: Casting to itself [-Wclazy-unneeded-cast] dynamic_cast<B*>(b); // warning: Casting to itself +unneeded-cast/main.cpp:36:5: warning: Casting to itself [-Wclazy-unneeded-cast] + static_cast<A*>(b); // warning: Casting to base +unneeded-cast/main.cpp:37:5: warning: Casting to itself [-Wclazy-unneeded-cast] + static_cast<A*>(a); // warning: Casting to itself +unneeded-cast/main.cpp:39:5: warning: Casting to itself [-Wclazy-unneeded-cast] + static_cast<B*>(b); // warning: Casting to itself +unneeded-cast/main.cpp:49:5: warning: Use qobject_cast rather than dynamic_cast [-Wclazy-unneeded-cast] diff --git a/tests/unneeded-cast/qobjectcast.cpp.expected b/tests/unneeded-cast/qobjectcast.cpp.expected deleted file mode 100644 index ba0b86e0..00000000 --- a/tests/unneeded-cast/qobjectcast.cpp.expected +++ /dev/null @@ -1 +0,0 @@ -unneeded-cast/qobjectcast.cpp:7:5: warning: Use qobject_cast rather than dynamic_cast [-Wclazy-unneeded-cast] |