summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@me.com>2013-05-27 11:54:50 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-06-03 15:17:16 +0200
commit6d544bc2cad7dec084aa80c9e14a22ba3122166f (patch)
treead66d1125ae0aedd5699d01dfeb95bf2639f851b
parentdb4a8caf321e8a756015a10e2d98895cb7b58156 (diff)
downloadqt-creator-6d544bc2cad7dec084aa80c9e14a22ba3122166f.tar.gz
C++: handle braced return statements in indenter.
Task-number: QTCREATORBUG-9314 Change-Id: I59c026cce02b85eeb54f4d10d5c9fb0c59bfe28a Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
-rw-r--r--src/plugins/cpptools/cppcodeformatter.cpp2
-rw-r--r--tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp14
2 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp
index 1ad33ca026..967bc9321c 100644
--- a/src/plugins/cpptools/cppcodeformatter.cpp
+++ b/src/plugins/cpptools/cppcodeformatter.cpp
@@ -207,6 +207,8 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
// oops, the expression was a function declaration argument list, hand lbrace/colon to declaration_start
leave();
continue;
+ } else {
+ turnInto(substatement_open);
}
break;
default: tryExpression(); break;
diff --git a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
index ba0eb2dfff..b132e3c9ba 100644
--- a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
+++ b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
@@ -126,6 +126,7 @@ private Q_SLOTS:
void blockBraces1();
void functionDefaultArgument();
void attributeInAccessSpecifier();
+ void braceReturn();
};
struct Line {
@@ -2097,6 +2098,19 @@ void tst_CodeFormatter::attributeInAccessSpecifier()
checkIndent(data);
}
+void tst_CodeFormatter::braceReturn()
+{
+ QList<Line> data;
+ data << Line("class X {")
+ << Line(" void the_answer() {")
+ << Line(" return {42};")
+ << Line(" }")
+ << Line(" int x;")
+ << Line("};")
+ ;
+ checkIndent(data);
+}
+
QTEST_MAIN(tst_CodeFormatter)
#include "tst_codeformatter.moc"