[PATCH] D104222: [clang-format] [PR50702] Lamdba processing does not respect AfterClass and AfterNamespace
Christophe Calmejane via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 15 05:20:53 PDT 2021
christophe-calmejane added a comment.
Hi,
Due to the pandemic, I wasn't able to look at https://reviews.llvm.org/D44609 which got broken since it was pushed to LLVM. Nevertheless I commented in that post with a rather complete unit tests that should pass if any changes are to be pushed to that part of the code.
Here is the test suite:
noOtherParams([](int x){call();});
paramBeforeLambda(8,[](int x){call();});
paramAfterLambda([](int x){call();},5);
paramBeforeAndAfterLambda(8,[](int x){call();},5);
doubleLambda(8,[](int x){call();},6,[](float f){return f*2;},5);
nestedLambda1([](int x){return [](float f){return f*2;};});
nestedLambda2([](int x){ call([](float f){return f*2;});});
noExceptCall([](int x) noexcept {call();});
mutableCall([](int x) mutable{call();});
funcCallFunc(call(),[](int x){call();});
auto const l=[](char v){if(v)call();};
void f() { return [](char v){ if(v) return v++;}; }
And here is how it should be formatted:
noOtherParams(
[](int x)
{
call();
});
paramBeforeLambda(8,
[](int x)
{
call();
});
paramAfterLambda(
[](int x)
{
call();
},
5);
paramBeforeAndAfterLambda(8,
[](int x)
{
call();
},
5);
doubleLambda(8,
[](int x)
{
call();
},
6,
[](float f)
{
return f * 2;
},
5);
nestedLambda1(
[](int x)
{
return [](float f)
{
return f * 2;
};
});
nestedLambda2(
[](int x)
{
call(
[](float f)
{
return f * 2;
});
});
noExceptCall(
[](int x) noexcept
{
call();
});
mutableCall(
[](int x) mutable
{
call();
});
funcCallFunc(call(),
[](int x)
{
call();
});
auto const l = [](char v)
{
if (v)
call();
};
void f()
{
return [](char v)
{
if (v)
return v++;
};
}
I couldn't find the time to test this case with the latest clang-format release, but I guess it's still broken and doesn't match the expected output.
Anyway, this test suite is helpful as it covers most cases, and if someone with enough knowledge of LLVM is willing to add this to the unit tests it would help a lot.
Best regards,
Chris
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D104222/new/
https://reviews.llvm.org/D104222
More information about the cfe-commits
mailing list