aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/qmlformat/dumpastvisitor.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/tools/qmlformat/dumpastvisitor.cpp b/tools/qmlformat/dumpastvisitor.cpp
index 47ea76b119..24286ba69b 100644
--- a/tools/qmlformat/dumpastvisitor.cpp
+++ b/tools/qmlformat/dumpastvisitor.cpp
@@ -321,6 +321,7 @@ QString DumpAstVisitor::parseFunctionExpression(FunctionExpression *functExpr, b
{
m_indentLevel++;
QString result;
+ bool hasBraces = true;
if (!functExpr->isArrowFunction) {
result += omitFunction ? "" : "function";
@@ -343,12 +344,23 @@ QString DumpAstVisitor::parseFunctionExpression(FunctionExpression *functExpr, b
if (functExpr->typeAnnotation != nullptr)
result += " : " + parseType(functExpr->typeAnnotation->type);
- result += " => {\n" + parseStatementList(functExpr->body);
+ result += " => ";
+
+ if (functExpr->body == nullptr) {
+ result += "{}";
+ } else if (functExpr->body->next == nullptr && functExpr->body->statement->kind == Node::Kind_ReturnStatement) {
+ m_indentLevel--;
+ result += parseExpression(cast<ReturnStatement *>(functExpr->body->statement)->expression);
+ hasBraces = false;
+ } else {
+ result += "{\n" + parseStatementList(functExpr->body);
+ }
}
- m_indentLevel--;
-
- result += formatLine("}", false);
+ if (hasBraces) {
+ m_indentLevel--;
+ result += formatLine("}", false);
+ }
return result;