<div class="gmail_quote">On Tue, Aug 16, 2011 at 12:25 AM, Jonathan M Davis <span dir="ltr"><<a href="mailto:jmdavisProg@gmx.com">jmdavisProg@gmx.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On Tuesday, August 16, 2011 00:10:20 Andrew Wiley wrote:<br>
> On Mon, Aug 15, 2011 at 11:31 PM, Jonathan M Davis<br>
<<a href="mailto:jmdavisProg@gmx.com">jmdavisProg@gmx.com</a>>wrote:<br>
> > On Tuesday, August 16, 2011 02:03:45 Andrew Wiley wrote:<br>
</div><div class="im">> Yes, it makes no sense to allocate an instance of an interface. I don't see<br>
> how that's relevant here.<br>
<br>
</div>I obviously skimmed over your question too quickly. My apologies.<br></blockquote><div><br></div><div>It's all good. </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">


Okay, looking at std.typecons, it looks like what's happening is that it's<br>
barfing when it tries to instantiate destroy to clean up the object in<br>
Scoped!T's destructor. And when it does that, it calls each destructor along<br>
the inheritance path, and destroy doesn't work with interfaces.<br></blockquote><div><br></div><div>What bothers me is this:</div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div><span class="Apple-style-span" style="border-collapse: collapse; color: rgb(51, 51, 51); font-family: arial, sans-serif; font-size: 13px; ">/usr/include/d2/4.6.0/std/</span><span class="Apple-style-span" style="border-collapse: collapse; color: rgb(51, 51, 51); font-family: arial, sans-serif; font-size: 13px; ">typecons.d:2571: Error: template std.typecons.destroy(T) if (is(T == class)) cannot deduce template function from argument types !()(A,Bob)</span></div>

<div><br></div><div>It looks like getting the superclass is actually getting a typetuple or something. We have two arguments where we should just have one. </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">


I'd suggest that you create a bug report for it. Obviously, scoped needs some<br>
reworking to make it handle interfaces in the inheritance path. They obviously<br>
don't need to be destroyed, but since it doesn't special-case interfaces, it<br>
tries to destroy them, which doesn't compile, so the scoped doesn't compile.</blockquote><div><br></div><div>Alright, I'll go ahead and open one. </div></div><br>