diff --git a/src/libs/qmljs/parser/qmljsast_p.h b/src/libs/qmljs/parser/qmljsast_p.h index 209a983c52a..842812cf73a 100644 --- a/src/libs/qmljs/parser/qmljsast_p.h +++ b/src/libs/qmljs/parser/qmljsast_p.h @@ -3325,14 +3325,17 @@ public: SourceLocation firstSourceLocation() const override { - if (defaultToken.isValid()) - return defaultToken; - else if (readonlyToken.isValid()) - return readonlyToken; - else if (requiredToken.isValid()) - return requiredToken; + if (requiredToken.isValid()) { + if (defaultToken.isValid() && defaultToken.offset < requiredToken.offset) + return defaultToken; + return requiredToken; + } + if (defaultToken.isValid()) + return defaultToken; + if (readonlyToken.isValid()) + return readonlyToken; - return propertyToken; + return propertyToken; } SourceLocation lastSourceLocation() const override diff --git a/src/libs/qmljs/qmljsreformatter.cpp b/src/libs/qmljs/qmljsreformatter.cpp index b71d777dae0..b723f9ff7bd 100644 --- a/src/libs/qmljs/qmljsreformatter.cpp +++ b/src/libs/qmljs/qmljsreformatter.cpp @@ -632,6 +632,8 @@ protected: bool visit(UiPublicMember *ast) override { if (ast->type == UiPublicMember::Property) { + if (ast->isRequired) + out("required ", ast->requiredToken); if (ast->isDefaultMember) out("default ", ast->defaultToken); else if (ast->isReadonlyMember)