diff options
| author | Manuel Klimek <klimek@google.com> | 2013-02-06 16:08:09 +0000 |
|---|---|---|
| committer | Manuel Klimek <klimek@google.com> | 2013-02-06 16:08:09 +0000 |
| commit | 046b9306d4b39b48dc74a84ce40a7f6931aea7d4 (patch) | |
| tree | 0251fff3645a46debaed63123b4202df8ea14eb3 /clang | |
| parent | c485b4e5b8adf751794c2fab702b2ef62deb3fa7 (diff) | |
| download | bcm5719-llvm-046b9306d4b39b48dc74a84ce40a7f6931aea7d4.tar.gz bcm5719-llvm-046b9306d4b39b48dc74a84ce40a7f6931aea7d4.zip | |
Much semicolon after namespaces.
We now leave the semicolon in the line of the closing brace in:
namespace {
...
};
llvm-svn: 174514
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Format/UnwrappedLineParser.cpp | 4 | ||||
| -rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index f79cc712f43..5af60a47c59 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -505,6 +505,10 @@ void UnwrappedLineParser::parseNamespace() { nextToken(); if (FormatTok.Tok.is(tok::l_brace)) { parseBlock(/*MustBeDeclaration=*/ true, 0); + // Munch the semicolon after a namespace. This is more common than one would + // think. Puttin the semicolon into its own line is very ugly. + if (FormatTok.Tok.is(tok::semi)) + nextToken(); addUnwrappedLine(); } // FIXME: Add error handling. diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index c2e845b9be1..4dc6ea75928 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -617,6 +617,15 @@ TEST_F(FormatTest, FormatsNamespaces) { verifyFormat("using namespace some_namespace;\n" "class A {\n};\n" "void f() { f(); }"); + + // This code is more common than we thought; if we + // layout this correctly the semicolon will go into + // its own line, which is undesireable. + verifyFormat("namespace {\n};"); + verifyFormat("namespace {\n" + "class A {\n" + "};\n" + "};"); } TEST_F(FormatTest, FormatsExternC) { |

