diff options
author | Erik Verbruggen <erik.verbruggen@me.com> | 2013-05-27 11:54:50 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-06-03 15:17:16 +0200 |
commit | 6d544bc2cad7dec084aa80c9e14a22ba3122166f (patch) | |
tree | ad66d1125ae0aedd5699d01dfeb95bf2639f851b | |
parent | db4a8caf321e8a756015a10e2d98895cb7b58156 (diff) | |
download | qt-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.cpp | 2 | ||||
-rw-r--r-- | tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp | 14 |
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" |