summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp
diff options
context:
space:
mode:
authorVikas Pachdha <vikas.pachdha@qt.io>2022-11-08 14:59:08 +0100
committerVikas Pachdha <vikas.pachdha@qt.io>2022-11-16 16:34:59 +0000
commit913d0e079a3ffee24c49b11dd52815e45fae710e (patch)
treea2f918741cba079b47d6a61ee06d13252292aa18 /src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp
parent478ce3f4a409093ad29dccd1776b2ba8d02fcb82 (diff)
downloadqt-creator-913d0e079a3ffee24c49b11dd52815e45fae710e.tar.gz
Designer: Fix missing semicolon in case of dynamic properties
Fixes: QDS-5457 Change-Id: Ib6be3ec864ffb972010e25c2fa956695201dba2c Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp')
-rw-r--r--src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp
index 000d90d04a..1e9ddc6547 100644
--- a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp
+++ b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp
@@ -76,8 +76,16 @@ void AddPropertyVisitor::addInMembers(QmlJS::AST::UiObjectInitializer *initializ
endOfPreviousMember = insertAfter->member->lastSourceLocation();
// Find out if the previous members ends with semicolon.
- if (auto member = QmlJS::AST::cast<QmlJS::AST::UiScriptBinding*>(insertAfter->member)) {
- if (auto stmt = QmlJS::AST::cast<QmlJS::AST::ExpressionStatement *>(member->statement)) {
+ if (auto member = insertAfter->member) {
+ auto hasStatement = [member]() -> QmlJS::AST::ExpressionStatement * {
+ if (auto m = QmlJS::AST::cast<QmlJS::AST::UiScriptBinding *>(member))
+ return QmlJS::AST::cast<QmlJS::AST::ExpressionStatement *>(m->statement);
+ if (auto m = QmlJS::AST::cast<QmlJS::AST::UiPublicMember *>(member))
+ return QmlJS::AST::cast<QmlJS::AST::ExpressionStatement *>(m->statement);
+ return nullptr;
+ };
+
+ if (auto stmt = hasStatement()) {
previousMemberSemicolon = stmt->semicolonToken.isValid()
&& stmt->semicolonToken.length > 0;
} else {