diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2012-12-30 21:27:25 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2012-12-30 21:27:25 +0000 |
commit | 58d64e2bb1b47ee6fd20c0493a2a9712f11cf1ae (patch) | |
tree | 030cf9529ed1007c476cbb8f5ae4b33c62b143cc /clang | |
parent | 2a5f569d882b71619cf4a9b3fe48fac6ade8b806 (diff) | |
download | bcm5719-llvm-58d64e2bb1b47ee6fd20c0493a2a9712f11cf1ae.tar.gz bcm5719-llvm-58d64e2bb1b47ee6fd20c0493a2a9712f11cf1ae.zip |
Formatter: parse and format inline namespaces like regular namespaces
This changes formatting from:
inline namespace X {
class A {
};
}
to:
inline namespace X {
class A {
};
}
llvm-svn: 171266
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Format/UnwrappedLineParser.cpp | 10 | ||||
-rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 7 |
2 files changed, 16 insertions, 1 deletions
diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index 6c035b001c7..78a1abdcf8d 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -100,10 +100,19 @@ void UnwrappedLineParser::parseComments() { void UnwrappedLineParser::parseStatement() { parseComments(); + int TokenNumber = 0; switch (FormatTok.Tok.getKind()) { case tok::kw_namespace: parseNamespace(); return; + case tok::kw_inline: + nextToken(); + TokenNumber++; + if (FormatTok.Tok.is(tok::kw_namespace)) { + parseNamespace(); + return; + } + break; case tok::kw_public: case tok::kw_protected: case tok::kw_private: @@ -132,7 +141,6 @@ void UnwrappedLineParser::parseStatement() { default: break; } - int TokenNumber = 0; do { ++TokenNumber; switch (FormatTok.Tok.getKind()) { diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 43003befb67..b719acfabc6 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -349,6 +349,13 @@ TEST_F(FormatTest, FormatsNamespaces) { " f();\n" "}\n" "}"); + verifyFormat("inline namespace X {\n" + "class A {\n" + "};\n" + "void f() {\n" + " f();\n" + "}\n" + "}"); verifyFormat("using namespace some_namespace;\n" "class A {\n" "};\n" |