about "with statement"
Maxim Fomin
maxim at maxim-fomin.ru
Sun Jun 9 19:41:22 PDT 2013
On Sunday, 9 June 2013 at 23:48:39 UTC, Ali Çehreli wrote:
> On 06/09/2013 11:09 AM, deadalnix wrote:
>
> > On Sunday, 9 June 2013 at 10:22:22 UTC, Jonathan M Davis
> wrote:
>
> >> I'd argue that it would make code harder to read, because it
> hides where
> >> the variables are coming from.
>
> +1. A friend of mine is "still experimenting" with 'with' and I
> hate reading his code. :)
>
> with (new C()) {
> i = 42; // is that a member of C?
> j = 43; // how about that?
> foo(); // and that?
> bar(); // and that?
> }
>
> Thanks for obfuscating! :)
>
>
> Ali
import std.stdio;
int foo()
{
writeln("foo");
return 0;
}
void main()
{
short i;
try switch (i)
{
writeln(i);
default:
writeln("default 1");
throw new Exception("");
}
catch(Exception e) do switch(foo())
{
default:
writeln("default 2");
} while(false);
finally if (i) switch(i) { writeln("do"); default: }
else {}
}
One bug with this funny stuff sharing common scoped statement is
import std.stdio;
bool foo()
{
writeln("foo");
return true;
}
void main()
{
short i;
switch(i) if (foo())
{
default:
}
else
foo();
}
It seems that if statement even doesn't reach backend.
More information about the Digitalmars-d
mailing list