Well, the help file only states that the semi colon used to make a comment must start the line, so maybe this is not a bug but it is known that in the middle of a line, the semi colon makes it so the parser ignores that command only:
alias whatever { echo -a 1 | ;echo -a 0 | echo -a 1 }
However, when if statement are involved with multiple command and a semi colon is used to comment the last command, there is a problem:
alias test {
if (1 == 2) { noop | ;noop | noop }
elseif (1) echo -a ok
}
works, but
alias test {
if (1 == 2) { noop | noop | ;noop }
elseif (1) echo -a ok
}
doesn't
I use that behavior and it took me quite some time to understand why my elseif suddendly stopped working, so I thought I would report it.