Am 19.09.2019 um 21:07 schrieb Kirinn:
I've stumbled on a situation where a case statement compiles when I
wouldn't expect it to. I would expect the below code to produce a
compile error:
program test;
var i : byte = 5;
begin
case i of
0..4: writeln('value is ', i);
else writeln('Else!');
i := 3;
writeln(i);
end;
end.
This compiles without errors or warnings on FPC 3.0.4 and produces the
output:
Else!
3
None of the documentation I've looked at suggests that a case-else is
implicitly a block. All examples in the documentation show only a
single statement in any else clause, or an explicit begin-end block.
Is this expected behavior? If yes, the reference guide (13.2.2) would
benefit from mentioning this.
That is indeed by design (at least Delphi compiles it as well). You can
file a bug report against the documentation so that it isn't forgotten.
Regards,
Sven
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel