// https://issues.dlang.org/show_bug.cgi?id=23617
struct S
{
    void foo() {}
}
struct Wrapper
{
    size_t currentIndex;
    S[] arrayOfS;
    auto opDispatch(string name, T ...)(T t)
    {
        return __traits(child, arrayOfS[this.currentIndex], __traits(getMember, S, name))(t);
    }
}
void main()
{
        Wrapper w;
        w.opDispatch!"foo"();
}