/*
TEST_OUTPUT:
---
fail_compilation/ice12902.d(20): Error: variable `ice12902.main.__dollar` type `void` is inferred from initializer `s.opDollar()`, and variables cannot be of type `void`
fail_compilation/ice12902.d(20): Error: expression `s.opDollar()` is `void` and has no value
---
*/

struct S
{
    void opDollar() { }
    void opIndex() { }
    void opIndexAssign() { }
    void opSliceAssign() { }
}

void main()
{
    S s;
    s[] = s[$];
}
