digitalmars.D.bugs - [Issue 6932] New: Weird forward reference error
- d-bugmail puremagic.com (40/40) Nov 11 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6932
- d-bugmail puremagic.com (37/37) Sep 12 2013 http://d.puremagic.com/issues/show_bug.cgi?id=6932
http://d.puremagic.com/issues/show_bug.cgi?id=6932 Summary: Weird forward reference error Product: D Version: D1 & D2 Platform: All OS/Version: All Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: mrmocool gmx.de --- Comment #0 from Trass3r <mrmocool gmx.de> 2011-11-11 11:26:14 PST --- package mixin template CLWrapper(T, alias g) { package alias T CTypedontremovethis; } package struct CLObjectCollection(T) { this(T.CTypedontremovethis) { } } alias CLObjectCollection!CLDevice CLDevices; cl_errcode dontremovethis( ) {} struct CLDevice { mixin CLWrapper!(int, dontremovethis); } device.d(21): Error: mixin device.CLDevice.CLWrapper!(int,dontremovethis) forward reference of dontremovethis device.d(13): Error: template instance device.CLObjectCollection!(CLDevice) error instantiating E.g. removing the CLObjectCollection stuff "solves" it even though it isn't related at all. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 11 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6932 hsteoh quickfur.ath.cx changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |hsteoh quickfur.ath.cx Resolution| |WORKSFORME --- Comment #1 from hsteoh quickfur.ath.cx 2013-09-12 07:40:16 PDT --- Tested on dmd git HEAD (6a90c4df): I couldn't compile the code snippet due to unrelated errors, so I inserted dummy definitions of cl_errcode and added a return statement to dontremovethis(). Here is the code I tested: ---- enum cl_errcode {A} package mixin template CLWrapper(T, alias g) { package alias T CTypedontremovethis; } package struct CLObjectCollection(T) { this(T.CTypedontremovethis) { } } alias CLObjectCollection!CLDevice CLDevices; cl_errcode dontremovethis( ) { return cl_errcode.A; } struct CLDevice { mixin CLWrapper!(int, dontremovethis); } ---- DMD git HEAD seems to be capable of compiling this correctly now, so I'm resolving this bug. Please reopen and post failing code if it still doesn't work for you. Thanks! -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 12 2013