elixir-lang/elixir — pull request #2877 by jw2013 (2014-11-03 08:53:02+00:00)
Title: fix wrong String.at/2 output when second arg is not an integer

String.at/2 has the same issue as String.split_at/2 in issue #2874:

```
iex(1)> String.at("elixir", 0.1)
** (FunctionClauseError) no function clause matching in String.do_at/3
(elixir) lib/string.ex:1025: String.do_at({"l", "ixir"}, 0.1, 1)
iex(1)> String.at("elixir", -0.1)
nil
```

The fix is similar.

----
I took a look at the other functions right now at String module using a second parameter, they all seems to be correctly using a is_integer guard.