On Tue, May 28, 2013 at 8:50 PM, Daniel Jasper <[email protected]> wrote:
> Author: djasper > Date: Tue May 28 13:50:02 2013 > New Revision: 182788 > > URL: http://llvm.org/viewvc/llvm-project?rev=182788&view=rev > Log: > Support uniform inits in braced lists. > > This made it necessary to remove an error detection which would let us > bail out of braced lists in certain situations of missing "}". However, > as we always entirely escape from the braced list on finding ";", this > should not be a big problem. > > With this, we can no format braced lists with uniformat inits: > > return { arg1, SomeType { parameter } }; > > Modified: > cfe/trunk/lib/Format/UnwrappedLineParser.cpp > cfe/trunk/unittests/Format/FormatTest.cpp > > Modified: cfe/trunk/lib/Format/UnwrappedLineParser.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/UnwrappedLineParser.cpp?rev=182788&r1=182787&r2=182788&view=diff > > ============================================================================== > --- cfe/trunk/lib/Format/UnwrappedLineParser.cpp (original) > +++ cfe/trunk/lib/Format/UnwrappedLineParser.cpp Tue May 28 13:50:02 2013 > @@ -634,11 +634,6 @@ void UnwrappedLineParser::parseBracedLis > // might be to just implement a more or less complete expression > parser. > switch (FormatTok->Tok.getKind()) { > case tok::l_brace: > - if (!StartOfExpression) { > Delete StartOfExpression now? Or am I missing a use? > - // Probably a missing closing brace. Bail out. > - addUnwrappedLine(); > - return; > - } > parseBracedList(); > StartOfExpression = false; > break; > > Modified: cfe/trunk/unittests/Format/FormatTest.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=182788&r1=182787&r2=182788&view=diff > > ============================================================================== > --- cfe/trunk/unittests/Format/FormatTest.cpp (original) > +++ cfe/trunk/unittests/Format/FormatTest.cpp Tue May 28 13:50:02 2013 > @@ -3386,6 +3386,7 @@ TEST_F(FormatTest, LayoutCxx11Constructo > verifyFormat("new vector<int>{ 1, 2, 3 };"); > verifyFormat("new int[3]{ 1, 2, 3 };"); > verifyFormat("return { arg1, arg2 };"); > + verifyFormat("return { arg1, SomeType{ parameter } };"); > verifyFormat("new T{ arg1, arg2 };"); > verifyFormat("class Class {\n" > " T member = { arg1, arg2 };\n" > @@ -3402,6 +3403,7 @@ TEST_F(FormatTest, LayoutCxx11Constructo > verifyFormat("new vector<int>{1, 2, 3};", NoSpaces); > verifyFormat("new int[3]{1, 2, 3};", NoSpaces); > verifyFormat("return {arg1, arg2};", NoSpaces); > + verifyFormat("return {arg1, SomeType{parameter}};", NoSpaces); > verifyFormat("new T{arg1, arg2};", NoSpaces); > verifyFormat("class Class {\n" > " T member = {arg1, arg2};\n" > @@ -4161,15 +4163,8 @@ TEST_F(FormatTest, ObjCLiterals) { > verifyFormat("return @{ @\"one\" : @1 };"); > verifyFormat("@{ @\"one\" : @1, }"); > > - // FIXME: Breaking in cases where we think there's a structural error > - // showed that we're incorrectly parsing this code. We need to fix the > - // parsing here. > - verifyFormat("@{ @\"one\" : @\n" > - "{ @2 : @1 }\n" > - "}"); > - verifyFormat("@{ @\"one\" : @\n" > - "{ @2 : @1 },\n" > - "}"); > + verifyFormat("@{ @\"one\" : @{ @2 : @1 } }"); > + verifyFormat("@{ @\"one\" : @{ @2 : @1 }, }"); > > verifyFormat("@{ 1 > 2 ? @\"one\" : @\"two\" : 1 > 2 ? @1 : @2 }"); > verifyFormat("[self setDict:@{}"); > @@ -4458,10 +4453,8 @@ TEST_F(FormatTest, DoNotCreateUnreasonab > verifyFormat("if (foo)\n" > " return { forgot_closing_brace();\n" > "test();"); > - verifyFormat("int a[] = { void forgot_closing_brace()\n" > - "{\n" > - " f();\n" > - " g();\n" > + verifyFormat("int a[] = { void forgot_closing_brace() { f();\n" > + "g();\n" > "}"); > } > > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
