November 11, 2011 [Issue 6932] New: Weird forward reference error | ||||
---|---|---|---|---|
| ||||
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: ------- |
September 12, 2013 [Issue 6932] Weird forward reference error | ||||
---|---|---|---|---|
| ||||
Posted in reply to Trass3r | 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: ------- |
Copyright © 1999-2021 by the D Language Foundation