Closed
Description
for
loop (and other loops) don't accept several assignments inside next
Reproduce Code
https://cpp2.godbolt.org/z/aqYqr63z5
main: () = {
(copy a := 0, copy b := 0)
//for "abc" next a++ do (i) { //ok
for "abc" next { a++; b++; } do (i) { //error
//for "abc' next a do (i) { //unused a
std::cout << i << a << b << '\n';
}
}
Version
latest (38aec57)
Command lines
cppfront/cppfront $1.cpp2 -p
clang++-15 -Icppfront/include $1.cpp -std=c++20 -o $1
Expected result
Some block syntax for that assignment or diagnostic
Actual result
Compilation error
Additional notes
In grammar only single expr allowed
//G next-clause:
//G 'next' assignment-expression
Additionally, logical-or-expression could be logical.
Which can lead to compiled, but unused logical expression
for "abc' next a do (i) { //unused a