diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/parser/qqmljsast.cpp | 9 | ||||
-rw-r--r-- | src/qmldom/qqmldomelements.cpp | 6 | ||||
-rw-r--r-- | src/qmldom/qqmldomreformatter.cpp | 2 |
3 files changed, 8 insertions, 9 deletions
diff --git a/src/qml/parser/qqmljsast.cpp b/src/qml/parser/qqmljsast.cpp index e3ed876473..2780a4885d 100644 --- a/src/qml/parser/qqmljsast.cpp +++ b/src/qml/parser/qqmljsast.cpp @@ -1049,17 +1049,10 @@ void FormalParameterList::accept0(BaseVisitor *visitor) } } -FormalParameterList *FormalParameterList::finish(QQmlJS::MemoryPool *pool) +FormalParameterList *FormalParameterList::finish(QQmlJS::MemoryPool *) { FormalParameterList *front = next; next = nullptr; - - int i = 0; - for (const FormalParameterList *it = this; it; it = it->next) { - if (it->element && it->element->bindingIdentifier.isEmpty()) - it->element->bindingIdentifier = pool->newString(QLatin1String("arg#") + QString::number(i)); - ++i; - } return front; } diff --git a/src/qmldom/qqmldomelements.cpp b/src/qmldom/qqmldomelements.cpp index 42e5446637..f1edda137a 100644 --- a/src/qmldom/qqmldomelements.cpp +++ b/src/qmldom/qqmldomelements.cpp @@ -1664,6 +1664,9 @@ void ScriptExpression::setCode(QString code, QString preCode, QString postCode) if (!m_preCode.isEmpty()) m_ast = firstNodeInRange(m_ast, m_preCode.size(), m_preCode.size() + m_code.size()); + if (auto *sList = AST::cast<AST::FormalParameterList *>(m_ast)) { + m_ast = sList->element; + } if (m_expressionType != ExpressionType::FunctionBody) { if (AST::StatementList *sList = AST::cast<AST::StatementList *>(m_ast)) { if (!sList->next) @@ -1872,6 +1875,9 @@ bool MethodParameter::iterateDirectSubpaths(DomItem &self, DirectVisitor visitor cont = cont && self.dvWrapField(visitor, Fields::defaultValue, defaultValue); cont = cont && self.dvWrapField(visitor, Fields::value, value); + cont = cont && self.dvValueField(visitor, Fields::preCode, u"function f("_s); + cont = cont && self.dvValueField(visitor, Fields::postCode, u") {}"_s); + if (!annotations.isEmpty()) cont = cont && self.dvWrapField(visitor, Fields::annotations, annotations); cont = cont && self.dvWrapField(visitor, Fields::comments, comments); diff --git a/src/qmldom/qqmldomreformatter.cpp b/src/qmldom/qqmldomreformatter.cpp index fcc847591d..a925fe3bbe 100644 --- a/src/qmldom/qqmldomreformatter.cpp +++ b/src/qmldom/qqmldomreformatter.cpp @@ -983,7 +983,7 @@ protected: { for (FormalParameterList *it = ast; it; it = it->next) { // compare FormalParameterList::finish - if (auto id = it->element->bindingIdentifier.toString(); !id.startsWith(u"arg#")) + if (auto id = it->element->bindingIdentifier.toString(); !id.isEmpty()) out(id); if (it->element->bindingTarget) accept(it->element->bindingTarget); |