diff options
author | Manuel Klimek <klimek@google.com> | 2013-01-10 11:52:21 +0000 |
---|---|---|
committer | Manuel Klimek <klimek@google.com> | 2013-01-10 11:52:21 +0000 |
commit | bb42bf1a8bfd18fa2beec7fcbcb73f738fb455ba (patch) | |
tree | 0764c85a4a442a13ef3caa2d3d3c818db37d0758 /unittests/Format | |
parent | 5cf7cf317f684dc61b8a0e4476440b5635b80db4 (diff) |
Fix layout of blocks inside statements.
Previously, we would not indent:
SOME_MACRO({
int i;
});
correctly. This is fixed by adding the trailing }); to the unwrapped
line starting with SOME_MACRO({, so the formatter can correctly match
the braces and indent accordingly.
Also fixes incorrect parsing of initializer lists, like:
int a[] = { 1 };
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172058 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests/Format')
-rw-r--r-- | unittests/Format/FormatTest.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 51a0bd6488..860661b432 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -615,6 +615,30 @@ TEST_F(FormatTest, LayoutStatementsAroundPreprocessorDirectives) { " trailing);", getLLVMStyleWithColumns(69)); } +TEST_F(FormatTest, LayoutBlockInsideParens) { + EXPECT_EQ("functionCall({\n" + " int i;\n" + "});", format(" functionCall ( {int i;} );")); +} + +TEST_F(FormatTest, LayoutBlockInsideStatement) { + EXPECT_EQ("SOME_MACRO {\n" + " int i;\n" + "}\n" + "int i;", format(" SOME_MACRO {int i;} int i;")); +} + +TEST_F(FormatTest, LayoutNestedBlocks) { + verifyFormat("void AddOsStrings(unsigned bitmask) {\n" + " struct s {\n" + " int i;\n" + " };\n" + " s kBitsToOs[] = { { 10 } };\n" + " for (int i = 0; i < 10; ++i)\n" + " return;\n" + "}"); +} + //===----------------------------------------------------------------------===// // Line break tests. //===----------------------------------------------------------------------===// |