Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package clazy for openSUSE:Factory checked 
in at 2024-03-11 15:35:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clazy (Old)
 and      /work/SRC/openSUSE:Factory/.clazy.new.1770 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "clazy"

Mon Mar 11 15:35:00 2024 rev:24 rq:1156909 
version:1.11git.20240311T110110~ebf99de

Changes:
--------
--- /work/SRC/openSUSE:Factory/clazy/clazy.changes      2024-02-27 
22:46:11.317839737 +0100
+++ /work/SRC/openSUSE:Factory/.clazy.new.1770/clazy.changes    2024-03-11 
15:43:05.754669585 +0100
@@ -1,0 +2,8 @@
+Mon Mar 11 11:09:18 UTC 2024 - christo...@krop.fr
+
+- Update to version 1.11git.20240311T110110~ebf99de:
+  * Fix false positives when using a typedef in combination with a generic
+  * Add fitit for qstring-arg check
+  * [cmake] Increase mimimum required CMake version to 3.8
+
+-------------------------------------------------------------------

Old:
----
  clazy-1.11git.20240225T163906~f353355.obscpio

New:
----
  clazy-1.11git.20240311T110110~ebf99de.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ clazy.spec ++++++
--- /var/tmp/diff_new_pack.lPdbWA/_old  2024-03-11 15:43:06.438694798 +0100
+++ /var/tmp/diff_new_pack.lPdbWA/_new  2024-03-11 15:43:06.442694945 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           clazy
-Version:        1.11git.20240225T163906~f353355
+Version:        1.11git.20240311T110110~ebf99de
 Release:        0
 Summary:        Qt oriented code checker based on the Clang framework
 License:        LGPL-2.0-or-later

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.lPdbWA/_old  2024-03-11 15:43:06.486696567 +0100
+++ /var/tmp/diff_new_pack.lPdbWA/_new  2024-03-11 15:43:06.490696714 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://invent.kde.org/sdk/clazy.git</param>
-              <param 
name="changesrevision">f353355a7d75a570a81005c133df8631bc0205f3</param></service></servicedata>
+              <param 
name="changesrevision">ebf99de982239da1aa1ce425ef2b233162a32bb8</param></service></servicedata>
 (No newline at EOF)
 

++++++ clazy-1.11git.20240225T163906~f353355.obscpio -> 
clazy-1.11git.20240311T110110~ebf99de.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clazy-1.11git.20240225T163906~f353355/CMakeLists.txt 
new/clazy-1.11git.20240311T110110~ebf99de/CMakeLists.txt
--- old/clazy-1.11git.20240225T163906~f353355/CMakeLists.txt    2024-02-25 
16:39:06.000000000 +0100
+++ new/clazy-1.11git.20240311T110110~ebf99de/CMakeLists.txt    2024-03-11 
12:01:10.000000000 +0100
@@ -5,7 +5,7 @@
 # The man page is not available on Windows.
 #
 
-cmake_minimum_required(VERSION 3.7)
+cmake_minimum_required(VERSION 3.8)
 
 project(clazy)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clazy-1.11git.20240225T163906~f353355/src/checks/level0/fully-qualified-moc-types.cpp
 
new/clazy-1.11git.20240311T110110~ebf99de/src/checks/level0/fully-qualified-moc-types.cpp
--- 
old/clazy-1.11git.20240225T163906~f353355/src/checks/level0/fully-qualified-moc-types.cpp
   2024-02-25 16:39:06.000000000 +0100
+++ 
new/clazy-1.11git.20240311T110110~ebf99de/src/checks/level0/fully-qualified-moc-types.cpp
   2024-03-11 12:01:10.000000000 +0100
@@ -107,6 +107,12 @@
     }
     if (auto *typedefDecl = ptr->getAs<TypedefType>(); typedefDecl && 
typedefDecl->getDecl()) {
         return typedefDecl->getDecl()->getQualifiedNameAsString();
+    } else if (auto templateSpec = ptr->getAs<TemplateSpecializationType>()) {
+        // In case one uses a typedef with generics, like QVector<QString> in 
Qt6
+        // The docs indicate getAsTemplateDecl might be null - so be prepared 
for that
+        if (auto *decl = templateSpec->getTemplateName().getAsTemplateDecl()) {
+            return decl->getQualifiedNameAsString();
+        }
     } else if (auto recordDecl = ptr->getAsRecordDecl()) {
         return recordDecl->getQualifiedNameAsString();
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clazy-1.11git.20240225T163906~f353355/src/checks/level0/qstring-arg.cpp 
new/clazy-1.11git.20240311T110110~ebf99de/src/checks/level0/qstring-arg.cpp
--- old/clazy-1.11git.20240225T163906~f353355/src/checks/level0/qstring-arg.cpp 
2024-02-25 16:39:06.000000000 +0100
+++ new/clazy-1.11git.20240311T110110~ebf99de/src/checks/level0/qstring-arg.cpp 
2024-03-11 12:01:10.000000000 +0100
@@ -11,6 +11,7 @@
 #include "StringUtils.h"
 #include "Utils.h"
 #include "clazy_stl.h"
+#include "clang/Basic/Diagnostic.h"
 
 #include <clang/AST/Decl.h>
 #include <clang/AST/DeclCXX.h>
@@ -94,13 +95,43 @@
 
 bool QStringArg::checkMultiArgWarningCase(const std::vector<clang::CallExpr *> 
&calls)
 {
-    const int size = calls.size();
-    for (int i = 1; i < size; ++i) {
-        auto *call = calls.at(i);
-        if (calls.at(i - 1)->getNumArgs() + call->getNumArgs() <= 9) {
-            emitWarning(call->getEndLoc(), "Use multi-arg instead");
-            return true;
+    if (calls.size() == 1) {
+        return false; // Nothing to do
+    }
+    std::string replacement;
+    SourceLocation beginLoc;
+    CallExpr *call = nullptr;
+    int argAggregated = 0;
+    for (int i = 0, size = calls.size(); i < size; ++i) {
+        call = calls.at(i);
+        for (auto *arg : call->arguments()) {
+            if (!isa<CXXDefaultArgExpr>(arg)) {
+                ++argAggregated;
+            }
+        }
+        if (argAggregated > 9) { // Relevant for Qt5
+            return false;
+        }
+        if (!beginLoc.isValid()) {
+            beginLoc = call->getBeginLoc();
         }
+
+        std::string callArgs;
+        for (auto *arg : call->arguments()) {
+            if (!isa<CXXDefaultArgExpr>(arg)) {
+                if (!callArgs.empty()) {
+                    callArgs += ", ";
+                }
+                callArgs += 
Lexer::getSourceText(CharSourceRange::getTokenRange(arg->getSourceRange()), 
sm(), lo()).str();
+            }
+        }
+        // The args for the chained calls have to be prepended instead of 
appended
+        replacement = callArgs + (replacement.empty() ? "" : ", ") + 
replacement;
+    }
+    if (auto *subexprCall = clazy::getFirstChildOfType<MemberExpr>(call)) {
+        emitWarning(beginLoc,
+                    "Use multi-arg instead",
+                    
{FixItHint::CreateReplacement(SourceRange(subexprCall->getEndLoc(), 
calls.at(0)->getEndLoc()), "arg(" + replacement + ")")});
     }
 
     return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clazy-1.11git.20240225T163906~f353355/tests/fully-qualified-moc-types/main.cpp
 
new/clazy-1.11git.20240311T110110~ebf99de/tests/fully-qualified-moc-types/main.cpp
--- 
old/clazy-1.11git.20240225T163906~f353355/tests/fully-qualified-moc-types/main.cpp
  2024-02-25 16:39:06.000000000 +0100
+++ 
new/clazy-1.11git.20240311T110110~ebf99de/tests/fully-qualified-moc-types/main.cpp
  2024-03-11 12:01:10.000000000 +0100
@@ -61,7 +61,7 @@
 }
 
 
-
+template<typename T> using DummyListAlias = QList<T>;
 namespace { // annonymous
     struct AnnonFoo {};
 };
@@ -91,6 +91,7 @@
     inline void nestedGeneric(QDBusPendingReply<std::shared_ptr<MyObj2>>) {} 
// OK
     inline void 
nestedNotFullyQualifiedGeneric(QDBusPendingReply<std::shared_ptr<MyList>>) {} 
// WARN
     inline const MyList& notQualWithModifier() {return lst;};
+    DummyListAlias<int> myList() { return {1,2,3};};
 private:
     MyList lst;
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clazy-1.11git.20240225T163906~f353355/tests/fully-qualified-moc-types/main.cpp.fixed.expected
 
new/clazy-1.11git.20240311T110110~ebf99de/tests/fully-qualified-moc-types/main.cpp.fixed.expected
--- 
old/clazy-1.11git.20240225T163906~f353355/tests/fully-qualified-moc-types/main.cpp.fixed.expected
   2024-02-25 16:39:06.000000000 +0100
+++ 
new/clazy-1.11git.20240311T110110~ebf99de/tests/fully-qualified-moc-types/main.cpp.fixed.expected
   2024-03-11 12:01:10.000000000 +0100
@@ -61,7 +61,7 @@
 }
 
 
-
+template<typename T> using DummyListAlias = QList<T>;
 namespace { // annonymous
     struct AnnonFoo {};
 };
@@ -91,6 +91,7 @@
     inline void nestedGeneric(QDBusPendingReply<std::shared_ptr<MyObj2>>) {} 
// OK
     inline void 
nestedNotFullyQualifiedGeneric(QDBusPendingReply<std::shared_ptr<MyObj2::MyList>>)
 {} // WARN
     inline const MyObj2::MyList& notQualWithModifier() {return lst;};
+    DummyListAlias<int> myList() { return {1,2,3};};
 private:
     MyList lst;
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clazy-1.11git.20240225T163906~f353355/tests/qstring-arg/config.json 
new/clazy-1.11git.20240311T110110~ebf99de/tests/qstring-arg/config.json
--- old/clazy-1.11git.20240225T163906~f353355/tests/qstring-arg/config.json     
2024-02-25 16:39:06.000000000 +0100
+++ new/clazy-1.11git.20240311T110110~ebf99de/tests/qstring-arg/config.json     
2024-03-11 12:01:10.000000000 +0100
@@ -1,7 +1,8 @@
 {
     "tests": [
         {
-            "filename": "main.cpp"
+            "filename": "main.cpp",
+            "has_fixits": true
         },
         {
             "filename": "fill-char-overloads.cpp",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clazy-1.11git.20240225T163906~f353355/tests/qstring-arg/main.cpp 
new/clazy-1.11git.20240311T110110~ebf99de/tests/qstring-arg/main.cpp
--- old/clazy-1.11git.20240225T163906~f353355/tests/qstring-arg/main.cpp        
2024-02-25 16:39:06.000000000 +0100
+++ new/clazy-1.11git.20240311T110110~ebf99de/tests/qstring-arg/main.cpp        
2024-03-11 12:01:10.000000000 +0100
@@ -28,4 +28,5 @@
     QString().arg(s1, s2, s3, s4, s5).arg(s1, s2, s3, s4, s5); // OK
     QString().arg(s1, s2, s3, s4, s5).arg(s1, s2, s3, s4); // Warning
     QT_REQUIRE_VERSION(argc, argv, "5.2.0"); // OK (bug #391851)
+    QString().arg("x").arg("combineme").arg(s, -38).arg("abc"); // WARN, first 
two args may be multiarg
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clazy-1.11git.20240225T163906~f353355/tests/qstring-arg/main.cpp.expected 
new/clazy-1.11git.20240311T110110~ebf99de/tests/qstring-arg/main.cpp.expected
--- 
old/clazy-1.11git.20240225T163906~f353355/tests/qstring-arg/main.cpp.expected   
    2024-02-25 16:39:06.000000000 +0100
+++ 
new/clazy-1.11git.20240311T110110~ebf99de/tests/qstring-arg/main.cpp.expected   
    2024-03-11 12:01:10.000000000 +0100
@@ -1,2 +1,3 @@
-qstring-arg/main.cpp:27:46: warning: Use multi-arg instead 
[-Wclazy-qstring-arg]
-qstring-arg/main.cpp:29:37: warning: Use multi-arg instead 
[-Wclazy-qstring-arg]
+qstring-arg/main.cpp:27:10: warning: Use multi-arg instead 
[-Wclazy-qstring-arg]
+qstring-arg/main.cpp:29:5: warning: Use multi-arg instead [-Wclazy-qstring-arg]
+qstring-arg/main.cpp:31:5: warning: Use multi-arg instead [-Wclazy-qstring-arg]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clazy-1.11git.20240225T163906~f353355/tests/qstring-arg/main.cpp.fixed.expected
 
new/clazy-1.11git.20240311T110110~ebf99de/tests/qstring-arg/main.cpp.fixed.expected
--- 
old/clazy-1.11git.20240225T163906~f353355/tests/qstring-arg/main.cpp.fixed.expected
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/clazy-1.11git.20240311T110110~ebf99de/tests/qstring-arg/main.cpp.fixed.expected
 2024-03-11 12:01:10.000000000 +0100
@@ -0,0 +1,32 @@
+#include <QtCore/QString>
+#include <QtWidgets/QMessageBox>
+#include <QtWidgets/QApplication>
+
+
+void test(int argc, char**argv)
+{
+    QString s;
+    QString s1;
+    s = s.arg(1,1); // OK
+    s = s.arg(s1); // OK
+    s = s.arg(s1,s1); // OK
+    s = s.arg(s1,s1,s1); // OK
+    s = s.arg(s1,s1,s1,s1); // OK
+    s = s.arg(1); // OK
+    s = s.arg('1'); // OK
+    s = s.arg('1', 10); // OK
+    int i;
+
+
+    s = s.arg(1, 1, 10); // OK
+    int m_labelFieldWidth, latitude;
+    s = s.arg(1, m_labelFieldWidth); // OK
+
+    QString("%1").arg(s, -38); // OK
+    QString s2, s3, s4, s5;
+    s5 = QString("%1 %2 %3 %4").arg(s, s1, s3, s4); // Warning
+    QString().arg(s1, s2, s3, s4, s5).arg(s1, s2, s3, s4, s5); // OK
+    QString().arg(s1, s2, s3, s4, s5, s1, s2, s3, s4); // Warning
+    QT_REQUIRE_VERSION(argc, argv, "5.2.0"); // OK (bug #391851)
+    QString().arg("x", "combineme").arg(s, -38).arg("abc"); // WARN, first two 
args may be multiarg
+}

++++++ clazy.obsinfo ++++++
--- /var/tmp/diff_new_pack.lPdbWA/_old  2024-03-11 15:43:06.814708657 +0100
+++ /var/tmp/diff_new_pack.lPdbWA/_new  2024-03-11 15:43:06.818708805 +0100
@@ -1,5 +1,5 @@
 name: clazy
-version: 1.11git.20240225T163906~f353355
-mtime: 1708875546
-commit: f353355a7d75a570a81005c133df8631bc0205f3
+version: 1.11git.20240311T110110~ebf99de
+mtime: 1710154870
+commit: ebf99de982239da1aa1ce425ef2b233162a32bb8
 

Reply via email to