digitalmars.D.bugs - [Bug 36] New: Odd enum forward-reference (?) alias bug
- d-bugmail puremagic.com (41/41) Mar 11 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=36
- Thomas Kuehne (28/40) Mar 13 2006 -----BEGIN PGP SIGNED MESSAGE-----
http://d.puremagic.com/bugzilla/show_bug.cgi?id=36
           Summary: Odd enum forward-reference (?) alias bug
           Product: D
           Version: 0.149
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: minor
          Priority: P2
         Component: DMD
        AssignedTo: braddr puremagic.com
        ReportedBy: jarrett.billingsley gmail.com
This is an obscure one.
This code compiles, as expected:
enum E
{
        One,
        Two,
        Three
}
class A
{
        alias void delegate(E) EDG;
        static void fork(EDG dg)
        {
                dg(E.One);
        }
}
But move the alias declaration after the function:
class A
{
        static void fork(EDG dg)
        {
                dg(E.One);
        }
        alias void delegate(E) EDG;
}
And you get the cryptic error:
dtest.d(18): cannot implicitly convert expression (0) of type E to E
Maybe this has something to do with forward referencing?
-- 
 Mar 11 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
d-bugmail puremagic.com schrieb am 2006-03-11:
 But move the alias declaration after the function:
 class A
 {
         static void fork(EDG dg)
         {
                 dg(E.One);
         }
         alias void delegate(E) EDG;
 }
 And you get the cryptic error:
 dtest.d(18): cannot implicitly convert expression (0) of type E to E
 Maybe this has something to do with forward referencing?
Added to DStress as
http://dstress.kuehne.cn/run/a/alias_32_A.d
http://dstress.kuehne.cn/run/a/alias_32_B.d
http://dstress.kuehne.cn/run/a/alias_32_C.d
http://dstress.kuehne.cn/run/a/alias_32_D.d
http://dstress.kuehne.cn/run/a/alias_32_E.d
http://dstress.kuehne.cn/run/a/alias_32_F.d
http://dstress.kuehne.cn/run/a/alias_32_G.d
http://dstress.kuehne.cn/run/a/alias_32_H.d
http://dstress.kuehne.cn/run/a/alias_32_I.d
http://dstress.kuehne.cn/run/t/typedef_13_A.d
http://dstress.kuehne.cn/run/t/typedef_13_B.d
http://dstress.kuehne.cn/run/t/typedef_13_C.d
http://dstress.kuehne.cn/run/t/typedef_13_D.d
http://dstress.kuehne.cn/run/t/typedef_13_E.d
http://dstress.kuehne.cn/run/t/typedef_13_F.d
http://dstress.kuehne.cn/run/t/typedef_13_G.d
http://dstress.kuehne.cn/run/t/typedef_13_H.d
http://dstress.kuehne.cn/run/t/typedef_13_I.d
Thomas
-----BEGIN PGP SIGNATURE-----
iD8DBQFEFTQ23w+/yD4P9tIRAszaAJwPd3R3SEY9RtVofF4P684ATWJjCACguDWq
o5vkdKEp7PeDQFxeWFtdjxs=
=5y8X
-----END PGP SIGNATURE-----
 Mar 13 2006








 
  
  
  Thomas Kuehne <thomas-dloop kuehne.cn>
 Thomas Kuehne <thomas-dloop kuehne.cn>