r182788 - Support uniform inits in braced lists.
Manuel Klimek
klimek at google.com
Tue May 28 12:02:27 PDT 2013
On Tue, May 28, 2013 at 8:50 PM, Daniel Jasper <djasper at google.com> 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
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130528/b1600207/attachment.html>
More information about the cfe-commits
mailing list