www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - '_input' field not found in MapResult

After minimizing a more complex program I got the following small 
example that produces a rather strange error.
The error says that MapResult has no field '_input' although the 
sole MapResult definition has such a field.

What is the explanation for this error?


```
auto foo(T)(T )
{
     import std.algorithm : joiner, map;
     import std.array : array;

     enum a = "x".map!(j => `"".map!(y => y.foo)`);
     enum b = a.joiner;
     enum c = b.array;

     return mixin("[" ~ c ~ "]");
}

void main()
{
     foo("abc");
}
```

Compiler output (dmd 2.073.2):

% rdmd foo.d
/usr/include/dmd/phobos/std/algorithm/iteration.d(580): Error: 
couldn't find field _input of type const(char[]) in 
MapResult("x", null)
/usr/include/dmd/phobos/std/algorithm/iteration.d(580):        
called from here: empty(this._input)
/usr/include/dmd/phobos/std/algorithm/iteration.d(2402):        
called from here: this._items.empty()
/usr/include/dmd/phobos/std/algorithm/iteration.d(2453):        
called from here: Result(MapResult, null).this(r)
foo.d(8):        called from here: joiner(MapResult("x", null))
foo.d-mixin-11(11): Error: template instance foo.foo!dchar error 
instantiating
/usr/include/dmd/phobos/std/algorithm/iteration.d(593):        
instantiated from here: __lambda3!dchar
/usr/include/dmd/phobos/std/algorithm/iteration.d(488):        
instantiated from here: MapResult!(__lambda3, string)
foo.d-mixin-11(11):        instantiated from here: map!string
foo.d(16):        instantiated from here: foo!string
Failed: ["dmd", "-v", "-o-", "foo.d", "-I."]
Mar 18