summaryrefslogtreecommitdiff
path: root/src/qdoc/qmlvisitor.cpp
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@qt.io>2020-05-13 16:37:29 +0200
committerTopi Reinio <topi.reinio@qt.io>2020-05-14 09:49:47 +0200
commit5364f88463bca65cd7ba1a1f48f6c444586957eb (patch)
treebaf98dd18a626ffa21d64f23632e0ab6fee6c607 /src/qdoc/qmlvisitor.cpp
parentb15b6b115073b98d65254d16671a77f45e55293c (diff)
downloadqttools-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.cpp9
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);
}