diff options
author | Vikas Pachdha <vikas.pachdha@qt.io> | 2022-11-08 14:59:08 +0100 |
---|---|---|
committer | Vikas Pachdha <vikas.pachdha@qt.io> | 2022-11-16 16:34:59 +0000 |
commit | 913d0e079a3ffee24c49b11dd52815e45fae710e (patch) | |
tree | a2f918741cba079b47d6a61ee06d13252292aa18 /src/plugins/qmldesigner/designercore | |
parent | 478ce3f4a409093ad29dccd1776b2ba8d02fcb82 (diff) | |
download | qt-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')
-rw-r--r-- | src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp | 12 |
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 { |