[fpc-devel] Case else allows multiple statements
pascaldragon at googlemail.com
Thu Sep 19 21:33:40 CEST 2019
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;
> case i of
> 0..4: writeln('value is ', i);
> else writeln('Else!');
> i := 3;
> This compiles without errors or warnings on FPC 3.0.4 and produces the
> 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.
More information about the fpc-devel