diff options
author | Eksperimental <eksperimental@autistici.org> | 2021-12-04 14:35:05 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-04 15:35:05 +0100 |
commit | 9e0e0fca565fa24cbdea7dab2636df266b8b72cb (patch) | |
tree | 3533a7c642700324537690b201ecd192c10d2055 | |
parent | 8c11ba5cd7cd120f13b7da6e723577cb0c5c439d (diff) | |
download | elixir-9e0e0fca565fa24cbdea7dab2636df266b8b72cb.tar.gz |
Add guards and specs to Identifier.escape/4 (#11439)
-rw-r--r-- | lib/elixir/lib/code/identifier.ex | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/elixir/lib/code/identifier.ex b/lib/elixir/lib/code/identifier.ex index 823504601..51f254558 100644 --- a/lib/elixir/lib/code/identifier.ex +++ b/lib/elixir/lib/code/identifier.ex @@ -214,8 +214,11 @@ defmodule Code.Identifier do @doc """ Escapes the given identifier. """ - def escape(other, char, count \\ :infinity, fun \\ &escape_map/1) do - escape(other, char, count, [], fun) + @spec escape(binary(), char(), :infinity | non_neg_integer, (char() -> iolist() | false)) :: + {escaped :: iolist(), remaining :: binary()} + def escape(binary, char, limit \\ :infinity, fun \\ &escape_map/1) + when limit == :infinity or (is_integer(limit) and limit >= 0) do + escape(binary, char, limit, [], fun) end defp escape(<<_, _::binary>> = binary, _char, 0, acc, _fun) do |