diff options
author | Topi Reinio <topi.reinio@qt.io> | 2020-05-13 16:37:29 +0200 |
---|---|---|
committer | Topi Reinio <topi.reinio@qt.io> | 2020-05-14 09:49:47 +0200 |
commit | 5364f88463bca65cd7ba1a1f48f6c444586957eb (patch) | |
tree | baf98dd18a626ffa21d64f23632e0ab6fee6c607 /src/qdoc/qmlvisitor.cpp | |
parent | b15b6b115073b98d65254d16671a77f45e55293c (diff) | |
download | qttools-5364f88463bca65cd7ba1a1f48f6c444586957eb.tar.gz |
qdoc: QML parser: Fix parsing of function parameters
The parameter name was passed incorrectly as the default value, and
the default value was not retrieved.
Pick-to: 5.15
Fixes: QTBUG-84089
Change-Id: I9f35702b431da3e58a8cb422f0b41475dd99f604
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Diffstat (limited to 'src/qdoc/qmlvisitor.cpp')
-rw-r--r-- | src/qdoc/qmlvisitor.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/qdoc/qmlvisitor.cpp b/src/qdoc/qmlvisitor.cpp index d91d3036d..925ac04a5 100644 --- a/src/qdoc/qmlvisitor.cpp +++ b/src/qdoc/qmlvisitor.cpp @@ -686,7 +686,14 @@ bool QmlDocVisitor::visit(QQmlJS::AST::FunctionDeclaration *fd) if (formals) { QQmlJS::AST::FormalParameterList *fp = formals; do { - parameters.append(QString(), QString(), fp->element->bindingIdentifier.toString()); + QString defaultValue; + auto initializer = fp->element->initializer; + if (initializer) { + auto loc = initializer->firstSourceLocation(); + defaultValue = document.mid(loc.begin(), loc.length); + } + parameters.append(QString(), fp->element->bindingIdentifier.toString(), + defaultValue); fp = fp->next; } while (fp && fp != formals); } |