From 913d0e079a3ffee24c49b11dd52815e45fae710e Mon Sep 17 00:00:00 2001 From: Vikas Pachdha Date: Tue, 8 Nov 2022 14:59:08 +0100 Subject: [PATCH] Designer: Fix missing semicolon in case of dynamic properties Fixes: QDS-5457 Change-Id: Ib6be3ec864ffb972010e25c2fa956695201dba2c Reviewed-by: Thomas Hartmann --- .../designercore/filemanager/addpropertyvisitor.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp index 000d90d04af..1e9ddc65476 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(insertAfter->member)) { - if (auto stmt = QmlJS::AST::cast(member->statement)) { + if (auto member = insertAfter->member) { + auto hasStatement = [member]() -> QmlJS::AST::ExpressionStatement * { + if (auto m = QmlJS::AST::cast(member)) + return QmlJS::AST::cast(m->statement); + if (auto m = QmlJS::AST::cast(member)) + return QmlJS::AST::cast(m->statement); + return nullptr; + }; + + if (auto stmt = hasStatement()) { previousMemberSemicolon = stmt->semicolonToken.isValid() && stmt->semicolonToken.length > 0; } else {