[PATCH] D11693: clang-format: Support generalized lambda captures.

Daniel Jasper via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 22 02:40:23 PDT 2015


djasper added inline comments.

================
Comment at: lib/Format/UnwrappedLineParser.cpp:1064
@@ +1063,3 @@
+        // parseBracedList. For now, parsing matching braces ([], (), {}) is
+        // good enough.
+        if (FormatTok->is(tok::l_paren)) {
----------------
strager wrote:
> djasper wrote:
> > Ah, parseAngle doesn't exist here. I was thinking about the TokenAnnotator.
> > 
> > I don't understand your comment about mid-stream. This is precisely about the case where the input is corrupt so that clang-format can recover and doesn't just parse the reset of the file input the lambda introducer.
> > This is precisely about the case where the input is corrupt so that clang-format can recover and doesn't just parse the reset of the file input the lambda introducer.
> 
> If I write this test:
> 
> ```
> verifyFormat("return [}] {};\n");
> ```
> 
> I get this output:
> 
> ```
> /Users/strager/Projects/llvm/tools/clang/unittests/Format/FormatTest.cpp:42: Failure
> Value of: IncompleteFormat
>   Actual: true
> Expected: ExpectedIncompleteFormat
> Which is: false
> return [}] {};
> 
> 
> 
> /Users/strager/Projects/llvm/tools/clang/unittests/Format/FormatTest.cpp:65: Failure
> Value of: format(test::messUp(Code), Style)
>   Actual: "return [\n}] {};\n"
> Expected: Code.str()
> Which is: "return [}] {};\n"
> ```
> 
> How can I fix this?
So, there are two errors in the test.

1. clang-format detects that there is a syntax error and reports this. Use verifyIncompleteFormat instead of verifyFormat.

2. clang-format adds a '\n' after the opening square bracket. Add that in your test string.


http://reviews.llvm.org/D11693





More information about the cfe-commits mailing list