March 25, 2012 [Issue 7763] New: No template instantiation backtrace printed trying to use writefln on a const or immutable object reference | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=7763 Summary: No template instantiation backtrace printed trying to use writefln on a const or immutable object reference Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Keywords: diagnostic Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: smjg@iname.com --- Comment #0 from Stewart Gordon <smjg@iname.com> 2012-03-24 17:52:11 PDT --- DMD 2.058, Win32 ---------- import std.stdio; class Set(Element) { void show(Element e) { writefln("%s", e); } } void main() { Set!(const(Object)) set2; } ---------- C:\Users\Stewart\Documents\Programming\D\Tests\bugs>dmd hashset1.d d:\dmd2\windows\bin\..\..\src\phobos\std\format.d(1858): Error: template instance formatObject!(LockingTextWriter,const(Object),char) formatObject!(LockingTextWriter,const(Object),char) does not match template declaration formatObject(Writer,T,Char) if (hasToString!(T,Char)) ---------- main instantiates Set Set instantiates writefln writefln instantiates File.writefln File.writefln instantiates formatGeneric formatGeneric instantiates formatValue formatValue tries to instantiates formatObject but fails Despite this chain of template instantiations, no backtrace is printed. Consequently, it took me ages to find what in my code was triggering it in order to produce this reduced testcase. Fixing issue 1824 will invalidate this testcase, but won't fix the underyling compiler bug, which could potentially bite in other ways. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 27, 2012 [Issue 7763] No template instantiation backtrace printed trying to use writefln on a const or immutable object reference | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stewart Gordon | http://d.puremagic.com/issues/show_bug.cgi?id=7763 Andrej Mitrovic <andrej.mitrovich@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |andrej.mitrovich@gmail.com Resolution| |FIXED --- Comment #1 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2012-12-26 16:28:09 PST --- Seems fixed in 2.060: -------- D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\format.d(2158): Error: template instance formatObject!(LockingTextWriter,const(Object),char) formatObject!(LockingTextWriter,const(Object),char) does not match template declaration formatObject(Writer,T,Char) if (hasToString!(T,Char)) D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\format.d(2158): Error: function expected before (), not formatObject!(LockingTextWriter,const(Object),char) of type void D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\format.d(2572): Error: template instance std.format.formatValue!(LockingTextWriter,const(Object),char) error instantiating D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\format.d(398): instantiated from here: formatGeneric!(LockingTextWriter,const(Object),char) D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(728): instantiated from here: formattedWrite!(LockingTextWriter,char,const(Object)) D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(1711): instantiated from here: writefln!(string,const(Object)) test.d(5): instantiated from here: writefln!(string,const(Object)) test.d(10): instantiated from here: Set!(const(Object)) D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\format.d(398): Error: template instance std.format.formatGeneric!(LockingTextWriter,const(Object),char) error instantiating D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(728): instantiated from here: formattedWrite!(LockingTextWriter,char,const(Object)) D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(1711): instantiated from here: writefln!(string,const(Object)) test.d(5): instantiated from here: writefln!(string,const(Object)) test.d(10): instantiated from here: Set!(const(Object)) D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(728): Error: template instance std.format.formattedWrite!(LockingTextWriter,char,const(Object)) error instantiating D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(1711): instantiated from here: writefln!(string,const(Object)) test.d(5): instantiated from here: writefln!(string,const(Object)) test.d(10): instantiated from here: Set!(const(Object)) D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(1711): Error: template instance std.stdio.File.writefln!(string,const(Object)) error instantiating test.d(5): instantiated from here: writefln!(string,const(Object)) test.d(10): instantiated from here: Set!(const(Object)) test.d(5): Error: template instance std.stdio.writefln!(string,const(Object)) error instantiating test.d(10): instantiated from here: Set!(const(Object)) test.d(10): Error: template instance test.Set!(const(Object)) error instantiating -------- -- 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