diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index b90236e026b..6527718c57c 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -34,7 +34,7 @@ #include #include -#include +#include using namespace QmlJS; using namespace QmlJS::AST; @@ -907,7 +907,7 @@ static bool checkTopLevelBindingForParentReference(ExpressionStatement *expStmt, SourceLocation location = locationFromRange(expStmt->firstSourceLocation(), expStmt->lastSourceLocation()); QString stmtSource = source.mid(int(location.begin()), int(location.length)); - if (stmtSource.contains(QRegExp("(^|\\W)parent\\."))) + if (stmtSource.contains(QRegularExpression("(^|\\W)parent\\."))) return true; return false; @@ -1562,7 +1562,7 @@ void Check::addMessage(StaticAnalysis::Type type, const SourceLocation &location void Check::scanCommentsForAnnotations() { m_disabledMessageTypesByLine.clear(); - QRegExp disableCommentPattern(Message::suppressionPattern()); + const QRegularExpression disableCommentPattern = Message::suppressionPattern(); foreach (const SourceLocation &commentLoc, _doc->engine()->comments()) { const QString &comment = _doc->source().mid(int(commentLoc.begin()), int(commentLoc.length)); @@ -1575,14 +1575,15 @@ void Check::scanCommentsForAnnotations() int lastOffset = -1; QList disabledMessageTypes; forever { - lastOffset = disableCommentPattern.indexIn(comment, lastOffset + 1); - if (lastOffset == -1) + const QRegularExpressionMatch match = disableCommentPattern.match(comment, lastOffset + 1); + if (!match.hasMatch()) break; + lastOffset = match.capturedStart(); MessageTypeAndSuppression entry; - entry.type = static_cast(disableCommentPattern.cap(1).toInt()); + entry.type = static_cast(match.captured(1).toInt()); entry.wasSuppressed = false; entry.suppressionSource = SourceLocation(commentLoc.offset + quint32(lastOffset), - quint32(disableCommentPattern.matchedLength()), + quint32(match.capturedLength()), commentLoc.startLine, commentLoc.startColumn + quint32(lastOffset)); disabledMessageTypes += entry; diff --git a/src/libs/qmljs/qmljsimportdependencies.cpp b/src/libs/qmljs/qmljsimportdependencies.cpp index a438b93a738..d5242af3aa7 100644 --- a/src/libs/qmljs/qmljsimportdependencies.cpp +++ b/src/libs/qmljs/qmljsimportdependencies.cpp @@ -147,8 +147,7 @@ ImportKey::ImportKey(const ImportInfo &info) , majorVersion(info.version().majorVersion()) , minorVersion(info.version().minorVersion()) { - splitPath = QFileInfo(info.path()).canonicalFilePath().split(QLatin1Char('/'), - QString::KeepEmptyParts); + splitPath = QFileInfo(info.path()).canonicalFilePath().split('/'); } ImportKey::ImportKey(ImportType::Enum type, const QString &path, int majorVersion, int minorVersion) diff --git a/src/libs/qmljs/qmljslineinfo.cpp b/src/libs/qmljs/qmljslineinfo.cpp index 9a7ab32e251..430f37031cf 100644 --- a/src/libs/qmljs/qmljslineinfo.cpp +++ b/src/libs/qmljs/qmljslineinfo.cpp @@ -78,7 +78,7 @@ const int LineInfo::SmallRoof = 40; const int LineInfo::BigRoof = 400; LineInfo::LineInfo() - : braceX(QRegExp(QLatin1String("^\\s*\\}\\s*(?:else|catch)\\b"))) + : braceX(QRegularExpression("^\\s*\\}\\s*(?:else|catch)\\b")) { /* The "linizer" is a group of functions and variables to iterate diff --git a/src/libs/qmljs/qmljslineinfo.h b/src/libs/qmljs/qmljslineinfo.h index 1646ba64f3d..5d3a0816a6e 100644 --- a/src/libs/qmljs/qmljslineinfo.h +++ b/src/libs/qmljs/qmljslineinfo.h @@ -27,7 +27,7 @@ #include -#include +#include #include namespace QmlJS { @@ -112,7 +112,7 @@ protected: const int *yyBraceDepth; const bool *yyLeftBraceFollows; - QRegExp braceX; + QRegularExpression braceX; }; } // namespace QmlJS diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp index 402128d272d..9189ea7e3c7 100644 --- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp +++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -90,7 +91,7 @@ static QStringList environmentImportPaths() QStringList paths; const QStringList importPaths = QString::fromLocal8Bit(qgetenv("QML_IMPORT_PATH")).split( - Utils::HostOsInfo::pathListSeparator(), QString::SkipEmptyParts); + Utils::HostOsInfo::pathListSeparator(), Utils::SkipEmptyParts); for (const QString &path : importPaths) { const QString canonicalPath = QDir(path).canonicalPath(); @@ -267,8 +268,10 @@ void ModelManagerInterface::loadQmlTypeDescriptionsInternal(const QString &resou } // load the fallbacks for libraries - CppQmlTypesLoader::defaultLibraryObjects.unite( - CppQmlTypesLoader::loadQmlTypes(qmlTypesFiles, &errors, &warnings)); + const CppQmlTypesLoader::BuiltinObjects objs = + CppQmlTypesLoader::loadQmlTypes(qmlTypesFiles, &errors, &warnings); + for (auto it = objs.cbegin(); it != objs.cend(); ++it) + CppQmlTypesLoader::defaultLibraryObjects.insert(it.key(), it.value()); for (const QString &error : qAsConst(errors)) writeMessageInternal(error); diff --git a/src/libs/qmljs/qmljsstaticanalysismessage.cpp b/src/libs/qmljs/qmljsstaticanalysismessage.cpp index 10f918abe47..b6a3e97ddbd 100644 --- a/src/libs/qmljs/qmljsstaticanalysismessage.cpp +++ b/src/libs/qmljs/qmljsstaticanalysismessage.cpp @@ -31,7 +31,7 @@ #include #include -#include +#include using namespace QmlJS; using namespace QmlJS::StaticAnalysis; @@ -317,9 +317,9 @@ QString Message::suppressionString() const return QString::fromLatin1("@disable-check M%1").arg(QString::number(type)); } -QRegExp Message::suppressionPattern() +QRegularExpression Message::suppressionPattern() { - return QRegExp(QLatin1String("@disable-check M(\\d+)")); + return QRegularExpression("@disable-check M(\\d+)"); } const PrototypeMessageData Message::prototypeForMessageType(Type type) diff --git a/src/libs/qmljs/qmljsstaticanalysismessage.h b/src/libs/qmljs/qmljsstaticanalysismessage.h index 64a8baa4e00..27e37a3c605 100644 --- a/src/libs/qmljs/qmljsstaticanalysismessage.h +++ b/src/libs/qmljs/qmljsstaticanalysismessage.h @@ -32,7 +32,7 @@ #include #include -QT_FORWARD_DECLARE_CLASS(QRegExp) +QT_FORWARD_DECLARE_CLASS(QRegularExpression) namespace QmlJS { class DiagnosticMessage; @@ -157,7 +157,7 @@ public: DiagnosticMessage toDiagnosticMessage() const; QString suppressionString() const; - static QRegExp suppressionPattern(); + static QRegularExpression suppressionPattern(); SourceLocation location; QString message; diff --git a/src/libs/qmljs/qmljsutils.cpp b/src/libs/qmljs/qmljsutils.cpp index ba48ef1f076..031829c4479 100644 --- a/src/libs/qmljs/qmljsutils.cpp +++ b/src/libs/qmljs/qmljsutils.cpp @@ -27,6 +27,8 @@ #include "parser/qmljsast_p.h" +#include + #include #include #include @@ -239,7 +241,7 @@ QString QmlJS::modulePath(const QString &name, const QString &version, return QString(); const QString sanitizedVersion = version == undefinedVersion ? QString() : version; - const QStringList parts = name.split(QLatin1Char('.'), QString::SkipEmptyParts); + const QStringList parts = name.split('.', Utils::SkipEmptyParts); auto mkpath = [] (const QStringList &xs) -> QString { return xs.join(QLatin1Char('/')); }; // Regular expression for building candidates by successively removing minor and major