April 25, 2014
https://issues.dlang.org/show_bug.cgi?id=12639

monarchdodra@gmail.com changed:

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

--- Comment #1 from monarchdodra@gmail.com ---
Strange. I had thought it had something to do with "array" name collision. But the situation is the same with, say "replicate":

auto x = foo[].replicate(5);  //FAIL
auto x = replicate(foo[], 5); //OK

In any case, here is a somewhat simplified test case. We don't need nested structs to trigger it:

//----
struct Range
{
    import std.array;
    int front() @property { return 10; }
    void popFront() { counter++; }
    bool empty() @property { return counter >= 10; }
private:
    int counter;
}

void main(string[] args)
{
   import std.stdio;
   import std.array;
   Range r;
   auto x1 = array(r);
   auto x2 = r.array();
   writeln(x);
}
//----

--
May 05, 2018
https://issues.dlang.org/show_bug.cgi?id=12639

Johannes Loher <johannes.loher@fg4f.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |johannes.loher@fg4f.de
         Resolution|---                         |FIXED

--- Comment #2 from Johannes Loher <johannes.loher@fg4f.de> ---
I tested this on diefferent compiler versions. It seems to work correctly since 2.071.2.

--