Skip to content

Commit 954a8c6

Browse files
committed
Less indirection
1 parent 5413679 commit 954a8c6

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

lib/elixir/lib/module/types.ex

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,9 @@ defmodule Module.Types do
6262
end
6363

6464
stack = stack(:infer, file, module, {:__info__, 1}, :all, env, handler)
65-
context = context(%{})
6665

6766
{types, %{local_sigs: local_sigs}} =
68-
for {fun_arity, kind, meta, clauses} = def <- defs, reduce: {[], context} do
67+
for {fun_arity, kind, meta, clauses} = def <- defs, reduce: {[], context()} do
6968
{types, context} ->
7069
cond do
7170
kind in [:def, :defmacro] ->
@@ -166,10 +165,9 @@ defmodule Module.Types do
166165

167166
handler = &local_handler(&1, &2, &3, &4, finder)
168167
stack = stack(:dynamic, file, module, {:__info__, 1}, no_warn_undefined, cache, handler)
169-
context = context(%{})
170168

171169
context =
172-
Enum.reduce(defs, context, fn {fun_arity, _kind, meta, _clauses} = def, context ->
170+
Enum.reduce(defs, context(), fn {fun_arity, _kind, meta, _clauses} = def, context ->
173171
finder = fn _ -> {:dynamic, def} end
174172
{_kind, _inferred, context} = local_handler(meta, fun_arity, stack, context, finder)
175173
context
@@ -326,7 +324,7 @@ defmodule Module.Types do
326324
end
327325

328326
@doc false
329-
def context(local_sigs) do
327+
def context() do
330328
%{
331329
# A list of all warnings found so far
332330
warnings: [],
@@ -336,9 +334,9 @@ defmodule Module.Types do
336334
pattern_info: nil,
337335
# If type checking has found an error/failure
338336
failed: false,
339-
# Local signatures
340-
local_sigs: local_sigs,
341-
# Local clauses
337+
# Local signatures used by local handler
338+
local_sigs: %{},
339+
# Track which clauses have been used across private local calls
342340
local_used: %{}
343341
}
344342
end

lib/elixir/test/elixir/module/types/type_helper.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ defmodule TypeHelper do
143143
end
144144

145145
defp new_context() do
146-
Types.context(%{})
146+
Types.context()
147147
end
148148

149149
@doc """

0 commit comments

Comments
 (0)