From: Manuel Klimek Date: Mon, 21 Jan 2013 10:17:14 +0000 (+0000) Subject: Allow for nested name specifiers in record declarations. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7f5b025e9b9a981a257d83063064ac6e58239d76;p=clang Allow for nested name specifiers in record declarations. Now correctly formats: class A::B {} n; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173019 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp index 3fd1ff9024..dffc309a09 100644 --- a/lib/Format/UnwrappedLineParser.cpp +++ b/lib/Format/UnwrappedLineParser.cpp @@ -615,7 +615,9 @@ void UnwrappedLineParser::parseRecord() { if (FormatTok.Tok.is(tok::l_paren)) { parseParens(); } - if (FormatTok.Tok.is(tok::identifier)) + // The actual identifier can be a nested name specifier. + while (FormatTok.Tok.is(tok::identifier) || + FormatTok.Tok.is(tok::coloncolon)) nextToken(); if (FormatTok.Tok.is(tok::colon)) { diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 1d3463ccfd..3c929a3f53 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -1519,13 +1519,17 @@ TEST_F(FormatTest, UnderstandContextOfRecordTypeKeywords) { // Actual definitions... verifyFormat("struct {} n;"); - verifyFormat("template