That's still wrong:
```
indexOf("a"d, "a", 2):
factor = 4
startIdx + sub = length = 2 + 1 = 3
s.length * factor = 1 * 4 = 4
"(startIdx + sub.length) <= s.length * factor" is "3 <= 4" is true
s[startIdx .. $] : Bang!
```

I think the easy solution is to simply not be too fancy: We're just trying to slice a string here, the generic implementation of `indexOf` already knows how to properly compare the string sizes. Let's rely on that. As a matter of fact it's probably more efficient that way, since it avoids checking for it twice (taking into accound this is a *sanity* check, eg: non-common code path).

Let's keep it at:
```D
if (startIdx <= s.length)
```