From 14e40ec82896cc0d18acbec488a384987eb11f33 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Mon, 4 Feb 2013 08:34:57 +0000 Subject: Improve handling of trailing block comments This is a follow up to r174309 to actually make it work. llvm-svn: 174314 --- clang/lib/Format/Format.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'clang/lib/Format') diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 91cbc2efcd4..47d6340cfdf 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -204,6 +204,11 @@ private: tooling::Replacements Replaces; }; +static bool isTrailingComment(const AnnotatedToken &Tok) { + return Tok.is(tok::comment) && + (Tok.Children.empty() || Tok.Children[0].MustBreakBefore); +} + class UnwrappedLineFormatter { public: UnwrappedLineFormatter(const FormatStyle &Style, SourceManager &SourceMgr, @@ -464,7 +469,7 @@ private: (Previous.is(tok::l_paren) || Previous.is(tok::l_brace) || State.NextToken->Parent->Type == TT_TemplateOpener)) State.Stack[ParenLevel].Indent = State.Column + Spaces; - if (Previous.is(tok::comma) && Current.Type != TT_LineComment) + if (Previous.is(tok::comma) && !isTrailingComment(Current)) State.Stack[ParenLevel].HasMultiParameterLine = true; State.Column += Spaces; @@ -690,8 +695,7 @@ private: return true; if (State.NextToken->Parent->is(tok::comma) && State.Stack.back().BreakAfterComma && - (State.NextToken->isNot(tok::comment) || - !State.NextToken->Children[0].MustBreakBefore)) + !isTrailingComment(*State.NextToken)) return true; if ((State.NextToken->Type == TT_CtorInitializerColon || (State.NextToken->Parent->ClosesTemplateDeclaration && -- cgit v1.2.3