```
import std.algorithm;
char[1024] buffer;
buffer.find("LOCATION: "); // get error about how all the different versions of find don't match
```

```
import std.algorithm;
char[1024] buffer;
buffer[0..$].find("LOCATION: "); // works as expected
```

Before trying the slice I manually pragma(msg) all the template constraints to see why it was failing. Apparently a static array is not a ForwardRange. Now, there is probably a good reason for that, that is not what I want to discuss.

The point is that it is rather hard to find out what went wrong.

What I would like the compiler to emit is this: `Error: buffer is not a ForwardRange`. But I know that wouldn't be so easy.

At least the compiler shouldn't show me candidates with non-matching arguments length (e.g. `std.algorithm.searching.find(alias pred, InputRange)(InputRange haystack) if (isInputRange!InputRange)`)

Reply via email to