Thread overview
[Issue 15571] .dup is incompatible with self referencing structs
Jan 16, 2016
ag0aep6g@gmail.com
Jan 19, 2016
Marc Schütz
Dec 17, 2022
Iain Buclaw
January 16, 2016
https://issues.dlang.org/show_bug.cgi?id=15571

ag0aep6g@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ag0aep6g@gmail.com

--- Comment #1 from ag0aep6g@gmail.com ---
Compiles fine when Node is not in a unittest (or other kind of function):

----
template Wrapper(T) {
  struct Wrapper {
    private T[] _holder;
    this(this) {
      _holder = _holder.dup;
    }
  }
}

struct Node {
  Wrapper!Node next;
}
----

--
January 19, 2016
https://issues.dlang.org/show_bug.cgi?id=15571

Marc Schütz <schuetzm@gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |schuetzm@gmx.net

--- Comment #2 from Marc Schütz <schuetzm@gmx.net> ---
Here's the error message:

/home/marc/d/druntime/import/object.d(3361): Error: struct
xx.__unittestL10_1.Node no size yet for forward reference
/home/marc/d/druntime/import/object.d(3361): Error: struct
xx.__unittestL10_1.Node no size yet for forward reference
xx.d(11): Error: struct xx.__unittestL10_1.Node no size yet for forward
reference
/home/marc/d/druntime/import/object.d(3378): Error: struct
xx.__unittestL10_1.Node no size yet for forward reference
/home/marc/d/druntime/import/object.d(3365): Error: template instance
object._rawDup!(Node) error instantiating
/home/marc/d/druntime/import/object.d(3352):        instantiated from here:
_dup!(const(Node), Node)
/home/marc/d/druntime/import/object.d(3319):        instantiated from here:
_trustedDup!(const(Node), Node)
xx.d(5):        instantiated from here: dup!(Node)
xx.d(12):        instantiated from here: Wrapper!(Node)

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=15571

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P4

--