Skip to content

Commit dec997e

Browse files
author
José Valim
committed
Merge pull request #1055 from alco/record-rewriter-fix
Add missing trivial clauses to record rewriter
2 parents 8de27bf + fcba926 commit dec997e

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

lib/elixir/lib/kernel/record_rewriter.ex

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,10 @@ defmodule Kernel.RecordRewriter do
350350
vars
351351
end
352352

353+
defp join_dict([]) do
354+
[]
355+
end
356+
353357
defp join_dict([{ _, dict, _ }|t]) do
354358
join_dict(t, dict)
355359
end
@@ -374,6 +378,10 @@ defmodule Kernel.RecordRewriter do
374378
other
375379
end
376380

381+
defp join_result([]) do
382+
[]
383+
end
384+
377385
defp join_result([{ _, _, res }|t]) do
378386
join_result(t, res)
379387
end

lib/elixir/test/elixir/kernel/record_rewriter_test.exs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,11 @@ defmodule Kernel.RecordRewriterTest do
172172
assert optimize_clause(clause) == { clause, [x: Range], { Range, [nil, { :foo, nil }, nil] } }
173173
end
174174

175+
test "empty receive" do
176+
clause = clause(fn -> receive do end end)
177+
assert optimize_clause(clause) == { clause, [], [] }
178+
end
179+
175180
test "inside receive" do
176181
clause = clause(fn -> receive do x = Macro.Env[] -> x; Macro.Env[] = x -> x end end)
177182
assert optimize_clause(clause) == { clause, [x: Macro.Env], { Macro.Env, nil } }

0 commit comments

Comments
 (0)