Here, the correct condition should actually be:
```D
            static if ( is(typeof(result[i].opAssign(e))) ||
                       !is(typeof(result[i] = e)) )
```

We change the first `e.` to `result[i].` because of const issues. Then, we also add `!is(typeof(result[i] = e))`, to check that assignment actually *is* legal (some structs can define `opAssign` as `@disabled`).