Skip to content

Commit b5ad462

Browse files
author
José Valim
committed
Simplify binding implementation
1 parent a9b2a95 commit b5ad462

File tree

1 file changed

+3
-9
lines changed

1 file changed

+3
-9
lines changed

lib/elixir/lib/kernel.ex

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2206,7 +2206,7 @@ defmodule Kernel do
22062206
22072207
"""
22082208
defmacro binding() do
2209-
do_binding(nil, __CALLER__.vars, Macro.Env.in_match?(__CALLER__))
2209+
do_binding(nil, nil, __CALLER__.vars, Macro.Env.in_match?(__CALLER__))
22102210
end
22112211

22122212
@doc """
@@ -2229,7 +2229,7 @@ defmodule Kernel do
22292229
end
22302230

22312231
defmacro binding(context) when is_atom(context) do
2232-
do_binding(context, __CALLER__.vars, Macro.Env.in_match?(__CALLER__))
2232+
do_binding(nil, context, __CALLER__.vars, Macro.Env.in_match?(__CALLER__))
22332233
end
22342234

22352235
@doc """
@@ -2254,14 +2254,8 @@ defmodule Kernel do
22542254
do_binding(list, context, __CALLER__.vars, Macro.Env.in_match?(__CALLER__))
22552255
end
22562256

2257-
defp do_binding(context, vars, in_match) do
2258-
for {v, c} <- vars, c == context, v != :_@CALLER do
2259-
{v, wrap_binding(in_match, {v, [], c})}
2260-
end
2261-
end
2262-
22632257
defp do_binding(list, context, vars, in_match) do
2264-
for {v, c} <- vars, c == context, :lists.member(v, list) do
2258+
for {v, c} <- vars, c == context, list == nil or :lists.member(v, list) do
22652259
{v, wrap_binding(in_match, {v, [], c})}
22662260
end
22672261
end

0 commit comments

Comments
 (0)