From c44b350bf6f14ab159d434c8e7830e8609057b92 Mon Sep 17 00:00:00 2001 From: Maximilian Goldstein Date: Mon, 19 Apr 2021 16:54:45 +0200 Subject: qmllint: Warn about multiline strings Task-number: QTBUG-92448 Change-Id: Ic6305f05cb8a0af5c36ac03d8b541ac78cea0612 Reviewed-by: Ulf Hermann --- tools/qmllint/findwarnings.cpp | 15 +++++++++++++++ tools/qmllint/findwarnings.h | 2 ++ 2 files changed, 17 insertions(+) (limited to 'tools') 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 -- cgit v1.2.3