Bug 36 – Error message generated by odd enum forward-reference (?) alias bug is cryptic

Status
RESOLVED
Resolution
FIXED
Severity
minor
Priority
P2
Component
dmd
Product
D
Version
D1 (retired)
Platform
x86
OS
Windows
Creation time
2006-03-11T11:41:00Z
Last change time
2014-02-15T02:10:01Z
Keywords
diagnostic, rejects-valid
Assigned to
bugzilla
Creator
jarrett.billingsley

Comments

Comment #0 by jarrett.billingsley — 2006-03-11T11:41:03Z
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?
Comment #1 by thomas-dloop — 2006-03-13T02:20:25Z
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 [email protected] 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-----
Comment #2 by bugzilla — 2006-06-20T02:00:36Z
Better error message in 0.161.