Weird bug with jassert and lambdas

I sometimes like to put a lambda inside a jassert statement to verify something a little complex.

 jassert([]() -> bool { /* do something */  return true; }());

Working with something like this, I started getting some weird compiler errors. I narrowed it down to comma initialization. Try compiling this:

jassert([]() { bool a, b;  return true; }());

For me, it spits out errors about missing operators. This, on the other hand, compiles just fine.

jassert([]() { bool a; bool b;  return true; }());

I don’t imagine that this is a high priority bug, but can anyone work out what’s going on?

With that:

jassert([]() { bool a, b;  return true; }());

I get that error (Xcode 12.5):

Too many arguments provided to function-like macro invocation
Macro 'jassert' defined here
Parentheses are required around macro argument containing braced initializer list

With an extra pair of parentheses it compiles.

jassert (([]() { bool a, b; return true; }()));