On Friday, 19 July 2013 at 18:25:26 UTC, Ali Çehreli wrote:
On 07/19/2013 11:07 AM, evilrat wrote:

> i don't think this is compiler bug, it's just how it works.

But what code needs toHash and others for the struct type even though we are just passing a pointer around?

> yet this is
> another thing one must remember when writing library - never
use struct
> predefenitions(or any other forward refs).
> so concluding all of this, it is clear this is a derelict
library bug,

I am not convinced yet. I think it is something that std.concurrency is doing (perhaps because it relies on Variant?). Otherwise there is no problem with what derelict does. The following code compiles:

maybe you are right about Variant, and yet it still not compiler bug, but phobos bug. rewriting std.variant and std.concurrency just because of forward refs is no go. i think problem is that with a struct we can't just generate code for this methods(toHash,opCmp,etc) by comparing its address, even if it's not extern(C/C++) and not found by linker, or do we actually could?

Reply via email to