summaryrefslogtreecommitdiff
path: root/src/qdoc/clangcodeparser.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-07-16 03:03:24 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-07-16 03:03:24 +0200
commit7050dd2930724145e2cc547bfc1281bca04e6edc (patch)
treebfd9ec78bc41b931ec3b792fa955714b5f380ff5 /src/qdoc/clangcodeparser.cpp
parent6ed8a22dd2756557954dc85052870c0894de06ba (diff)
parent710a54b0fe1e109b2c1c504b89f4f25b9c6d18e7 (diff)
downloadqttools-7050dd2930724145e2cc547bfc1281bca04e6edc.tar.gz
Merge remote-tracking branch 'origin/5.13' into dev
Change-Id: I51fa8c90923e9730d7787e763fad996db51d350e
Diffstat (limited to 'src/qdoc/clangcodeparser.cpp')
-rw-r--r--src/qdoc/clangcodeparser.cpp25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp
index 25268fe37..524e3a184 100644
--- a/src/qdoc/clangcodeparser.cpp
+++ b/src/qdoc/clangcodeparser.cpp
@@ -1586,18 +1586,21 @@ Node* ClangCodeParser::parseFnArg(const Location& location, const QString& fnArg
unsigned diagnosticCount = clang_getNumDiagnostics(tu);
if (diagnosticCount > 0 && (!Generator::preparing() || Generator::singleExec())) {
bool report = true;
- QStringList signature = fnArg.split(QLatin1String("::"));
+ QStringList signature = fnArg.split(QChar('('));
if (signature.size() > 1) {
- QStringList typeAndQualifier = signature.at(0).split(' ');
- QString qualifier = typeAndQualifier.last();
- int i = 0;
- while (qualifier.size() > i && !qualifier.at(i).isLetter())
- qualifier[i++] = QChar(' ');
- if (i > 0)
- qualifier = qualifier.simplified();
- ClassNode* cn = qdb_->findClassNode(QStringList(qualifier));
- if (cn && cn->isInternal())
- report = false;
+ QStringList qualifiedName = signature.at(0).split(QChar(' '));
+ qualifiedName = qualifiedName.last().split(QLatin1String("::"));
+ if (qualifiedName.size() > 1) {
+ QString qualifier = qualifiedName.at(0);
+ int i = 0;
+ while (qualifier.size() > i && !qualifier.at(i).isLetter())
+ qualifier[i++] = QChar(' ');
+ if (i > 0)
+ qualifier = qualifier.simplified();
+ ClassNode* cn = qdb_->findClassNode(QStringList(qualifier));
+ if (cn && cn->isInternal())
+ report = false;
+ }
}
if (report) {
location.warning(ClangCodeParser::tr("clang found diagnostics parsing \\fn %1").arg(fnArg));