aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMaximilian Goldstein <max.goldstein@qt.io>2021-04-19 16:54:45 +0200
committerMaximilian Goldstein <max.goldstein@qt.io>2021-04-20 14:36:07 +0200
commitc44b350bf6f14ab159d434c8e7830e8609057b92 (patch)
tree9c485202a776e1daded594a3f00e262385816056 /tools
parentafd4389573819ba865c876c6be4bbadf195c4c77 (diff)
qmllint: Warn about multiline strings
Task-number: QTBUG-92448 Change-Id: Ic6305f05cb8a0af5c36ac03d8b541ac78cea0612 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tools')
-rw-r--r--tools/qmllint/findwarnings.cpp15
-rw-r--r--tools/qmllint/findwarnings.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/tools/qmllint/findwarnings.cpp b/tools/qmllint/findwarnings.cpp
index 27ede08dd2..9e9301b104 100644
--- a/tools/qmllint/findwarnings.cpp
+++ b/tools/qmllint/findwarnings.cpp
@@ -670,3 +670,18 @@ bool FindWarningVisitor::visit(QQmlJS::AST::UiPublicMember *uipb)
return true;
}
+
+bool FindWarningVisitor::visit(QQmlJS::AST::StringLiteral *sl)
+{
+ const QString s = m_code.mid(sl->literalToken.begin(), sl->literalToken.length);
+
+ if (s.contains(QLatin1Char('\r')) || s.contains(QLatin1Char('\n')) || s.contains(QChar(0x2028u))
+ || s.contains(QChar(0x2029u))) {
+ m_logger.log(QStringLiteral("String contains unescaped line terminator which is "
+ "deprecated. Use a template "
+ "literal instead."),
+ Log_MultilineString, sl->literalToken);
+ }
+
+ return true;
+}
diff --git a/tools/qmllint/findwarnings.h b/tools/qmllint/findwarnings.h
index 5e870155ca..b6c5f19c76 100644
--- a/tools/qmllint/findwarnings.h
+++ b/tools/qmllint/findwarnings.h
@@ -122,6 +122,8 @@ private:
bool visit(QQmlJS::AST::BinaryExpression *) override;
void endVisit(QQmlJS::AST::BinaryExpression *) override;
+
+ bool visit(QQmlJS::AST::StringLiteral *) override;
};
#endif // FINDUNQUALIFIED_H