www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - wrong code: code with undeclared variables compiles (cf b/14813)

reply Timothee Cour via Digitalmars-d <digitalmars-d puremagic.com> writes:
reposting https://issues.dlang.org/show_bug.cgi?id=14813 here as it seems
quite weird:

/+
dmd -c -o- main.d
how come this even compiles?
+/

main.d:
-----------
void fun()
{
    alias A = void delegate(int);
    //WTF?
    A temp1 = (some_inexistant_field) {  };
    //WTF?
    A temp2 = delegate(some_inexistant_field) {  };

    alias A2 = void delegate(int,double);
    //WTF?
    A2 temp3 = (some_inexistant_field,sadfasfd) {  };
}
Jul 20 2015
parent reply "Adrian Matoga" <epi atari8.info> writes:
On Monday, 20 July 2015 at 07:01:34 UTC, Timothee Cour wrote:
 reposting https://issues.dlang.org/show_bug.cgi?id=14813 here 
 as it seems quite weird:
Try this and think again: import std.stdio; void main() { alias A = void delegate(int); //WTF? A temp1 = (some_inexistant_field) { writeln(typeof(some_inexistant_field).stringof); }; temp1(42); //WTF? A temp2 = delegate(some_inexistant_field) { writeln(typeof (some_inexistant_field).stringof); }; temp2(1337); alias A2 = void delegate(int,double); //WTF? A2 temp3 = (some_inexistant_field,sadfasfd) { writeln(typeof(some_inexistant_field).stringof, " ", typeof(sadfasfd).stringof); }; temp3(42, 3.14); }
Jul 20 2015
parent Timothee Cour via Digitalmars-d <digitalmars-d puremagic.com> writes:
sorry, not sure what i was thinking... happens when you post late... thanks!

On Mon, Jul 20, 2015 at 12:09 AM, Adrian Matoga via Digitalmars-d <
digitalmars-d puremagic.com> wrote:

 On Monday, 20 July 2015 at 07:01:34 UTC, Timothee Cour wrote:

 reposting https://issues.dlang.org/show_bug.cgi?id=14813 here as it
 seems quite weird:
Try this and think again: import std.stdio; void main() { alias A = void delegate(int); //WTF? A temp1 = (some_inexistant_field) { writeln(typeof(some_inexistant_field).stringof); }; temp1(42); //WTF? A temp2 = delegate(some_inexistant_field) { writeln(typeof (some_inexistant_field).stringof); }; temp2(1337); alias A2 = void delegate(int,double); //WTF? A2 temp3 = (some_inexistant_field,sadfasfd) { writeln(typeof(some_inexistant_field).stringof, " ", typeof(sadfasfd).stringof); }; temp3(42, 3.14); }
Jul 20 2015