Aleksa Todorovic wrote:
On Fri, Jan 29, 2010 at 11:42, Michael Van Canneyt
<mich...@freepascal.org> wrote:
It breaks the behavious of case:
case b of
1 : something;
2 : If a then
DoSomethingElse;
else
DoElse
end;
As it is now, b=2 and a=False will result in no code executed.
After the patch, B=2 and a=False will result in DoElse.
Have you actually tried it? I've tested those cases and they should work.
Then in your patch, how do you distinguish between the else belonging to
the case statement and the else belonging to the if ?
Since if I followed this thread correctly, the following is allowed:
if a then DoSomething; else DoSomethingElse;
So we have an "old style" case statement:
case foo of
1: DoOne;
2: if a then DoA;
else
DoElse;
end;
in this case it is clear, the else belongs to the case.
Now with your patch
case foo of
1: DoOne;
2: if a then DoA;
else
DoElse;
end;
should it be read as
2: if a then DoA; else DoElse;
or
case
....
else
DoElse;
???
Marc
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel