aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmlcompiler/qqmljslintervisitor.cpp
diff options
context:
space:
mode:
authorSami Shalayel <sami.shalayel@qt.io>2025-04-25 12:24:11 +0200
committerOlivier De Cannière <olivier.decanniere@qt.io>2025-05-16 16:59:53 +0200
commit76a29eee52d548c02fc5e70981a0044adf755ca4 (patch)
treed2a484014915b67a322034afd690b761d632dcfe /src/qmlcompiler/qqmljslintervisitor.cpp
parent138889eab042fda149e13ed1d2c86d543da003d0 (diff)
qmllint: implement WarnComma
Warn when comma expressions are used outside of for-loops. Task-number: QTBUG-129307 Change-Id: Ic86bf3af7f122f73b70e18c728c72f64c355f982 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qmlcompiler/qqmljslintervisitor.cpp')
-rw-r--r--src/qmlcompiler/qqmljslintervisitor.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/qmlcompiler/qqmljslintervisitor.cpp b/src/qmlcompiler/qqmljslintervisitor.cpp
index 4ba152f291..44b3c30969 100644
--- a/src/qmlcompiler/qqmljslintervisitor.cpp
+++ b/src/qmlcompiler/qqmljslintervisitor.cpp
@@ -78,6 +78,20 @@ Node *LinterVisitor::astParentOfVisitedNode() const
return m_ancestryIncludingCurrentNode[m_ancestryIncludingCurrentNode.size() - 2];
}
+bool LinterVisitor::visit(CommaExpression *expression)
+{
+ QQmlJSImportVisitor::visit(expression);
+ if (!expression->left || !expression->right)
+ return true;
+
+ // don't warn about commas in "for" statements
+ if (cast<ForStatement *>(astParentOfVisitedNode()))
+ return true;
+
+ m_logger->log("Do not use comma expressions."_L1, qmlComma, expression->commaToken);
+ return true;
+}
+
} // namespace QQmlJS
QT_END_NAMESPACE