Thread overview
[Issue 20913] Array "forward reference" error
Jun 13, 2020
Basile-z
Jul 14, 2022
RazvanN
Dec 17, 2022
Iain Buclaw
Jan 16, 2023
Dlang Bot
Jan 19, 2023
Iain Buclaw
June 13, 2020
https://issues.dlang.org/show_bug.cgi?id=20913

Basile-z <b2.temp@gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |rejects-valid
                 CC|                            |b2.temp@gmx.com
           Hardware|x86_64                      |All
                 OS|Linux                       |All

--- Comment #1 from Basile-z <b2.temp@gmx.com> ---
Somewhat reduced:

---
import std.traits;

struct Array(T)
{
    static if (hasIndirections!T) {}
}

struct Foo { Array!Bar _barA; }
struct Bar { Frop _frop; }
class Frop { Array!Foo _foos; }
---

The problem is caused by the call to `hasIndirections` and to a nested call to `isDynamicArray`.

changing the `isDynamiArray` implementation from:

  enum bool isDynamicArray(T) = is(DynamicArrayTypeOf!T) && !isAggregateType!T;

to

  enum isDynamicArray(T) = !isAggregateType!T && is(DynamicArrayTypeOf!T);


allows to compile without error but without really fixing the root of the problem, which seems to reside in `DynamicArrayTypeOf`.

--
July 14, 2022
https://issues.dlang.org/show_bug.cgi?id=20913

RazvanN <razvan.nitu1305@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |razvan.nitu1305@gmail.com
          Component|dmd                         |phobos

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

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P2

--
January 16, 2023
https://issues.dlang.org/show_bug.cgi?id=20913

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #2 from Dlang Bot <dlang-bot@dlang.rocks> ---
@ibuclaw created dlang/dmd pull request #14826 "dmd.aggregate: Define importAll override for AggregateDeclaration" fixing this issue:

- fix Issue 20913 - Array "forward reference" error

https://github.com/dlang/dmd/pull/14826

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

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://issues.dlang.org/sh
                   |                            |ow_bug.cgi?id=23598

--