================
Comment at: lib/Format/UnwrappedLineParser.cpp:1076
@@ +1075,3 @@
+ while (FormatTok->Tok.is(tok::kw_catch)) {
+ nextToken();
+ if (FormatTok->Tok.is(tok::l_paren))
----------------
Manuel Klimek wrote:
> Same here. The problem is if anybody ever finds a real use case to put
> anything in between (including macros) we might fail to parse the file...
I don't get what you mean here. If the token is not tok::kw_catch, it won't
start the while and NeedsUnwrappedLine will be true. Is there any other case
that needs consideration?
================
Comment at: lib/Format/UnwrappedLineParser.cpp:1042
@@ +1041,3 @@
+ bool NeedsUnwrappedLine = false;
+ if (FormatTok->Tok.is(tok::colon)) {
+ // We are in a function try block, what comes is an initializer list
----------------
Manuel Klimek wrote:
> I'm wondering whether we just want to eat everything up to the next '{'. In
> general, we try to parse as little as possible in the structural parser.
>
> If we decide we really need to parse the structure here, I think we should
> pull out a parseInitializerList() method.
I've been thinking on how to parse the initializer list, and it might be quite
cumbersome. I've been thinking on leaving out of this patch the ability of
dealing with function-try blocks and leave it for latter (since I do this as a
hobby, there's really a limit on how much time I can spend on this).
================
Comment at: lib/Format/UnwrappedLineParser.cpp:1075-1091
@@ +1074,19 @@
+ }
+ while (FormatTok->Tok.is(tok::kw_catch)) {
+ nextToken();
+ if (FormatTok->Tok.is(tok::l_paren))
+ parseParens();
+ NeedsUnwrappedLine = false;
+ if (FormatTok->Tok.is(tok::l_brace)) {
+ CompoundStatementIndenter Indenter(this, Style, Line->Level);
+ parseBlock(/*MustBeDeclaration=*/false);
+ if (Style.BreakBeforeBraces == FormatStyle::BS_Allman ||
+ Style.BreakBeforeBraces == FormatStyle::BS_GNU ||
+ Style.BreakBeforeBraces == FormatStyle::BS_Stroustrup) {
+ addUnwrappedLine();
+ } else {
+ NeedsUnwrappedLine = true;
+ }
+ }
+ }
+ if (NeedsUnwrappedLine) {
----------------
From Daniel: This needs a test case with multiple catch blocks.
================
Comment at: lib/Format/UnwrappedLineParser.cpp:1043
@@ +1042,3 @@
+ if (FormatTok->Tok.is(tok::colon)) {
+ // We are in a function try block, what comes is an initializer list
+ nextToken();
----------------
Manuel Klimek wrote:
> Nit: add '.'.
Sorry, but what do you mean by “Nit”?
http://llvm-reviews.chandlerc.com/D2555
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits