Skip to content

Commit

Permalink
elixir: Fix exception on literal empty list
Browse files Browse the repository at this point in the history
  • Loading branch information
dubek committed Mar 28, 2016
1 parent 9f81ae1 commit 52cee85
Show file tree
Hide file tree
Showing 8 changed files with 8 additions and 0 deletions.
1 change: 1 addition & 0 deletions elixir/lib/mix/tasks/step3_env.ex
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ defmodule Mix.Tasks.Step3Env do
end
defp eval_bindings(_bindings, _env), do: throw({:error, "Unbalanced let* bindings"})

defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

Expand Down
1 change: 1 addition & 0 deletions elixir/lib/mix/tasks/step4_if_fn_do.ex
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ defmodule Mix.Tasks.Step4IfFnDo do
end
defp eval_bindings(_bindings, _env), do: throw({:error, "Unbalanced let* bindings"})

defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

Expand Down
1 change: 1 addition & 0 deletions elixir/lib/mix/tasks/step5_tco.ex
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ defmodule Mix.Tasks.Step5Tco do
end
defp eval_bindings(_bindings, _env), do: throw({:error, "Unbalanced let* bindings"})

defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

Expand Down
1 change: 1 addition & 0 deletions elixir/lib/mix/tasks/step6_file.ex
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ defmodule Mix.Tasks.Step6File do
end
defp eval_bindings(_bindings, _env), do: throw({:error, "Unbalanced let* bindings"})

defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

Expand Down
1 change: 1 addition & 0 deletions elixir/lib/mix/tasks/step7_quote.ex
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ defmodule Mix.Tasks.Step7Quote do
end
defp quasiquote(ast, _env), do: list([{:symbol, "quote"}, ast])

defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

Expand Down
1 change: 1 addition & 0 deletions elixir/lib/mix/tasks/step8_macros.ex
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ defmodule Mix.Tasks.Step8Macros do
end
end

defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, _list, _meta} = ast, env) do
case macroexpand(ast, env) do
{:list, list, meta} -> eval_list(list, env, meta)
Expand Down
1 change: 1 addition & 0 deletions elixir/lib/mix/tasks/step9_try.ex
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ defmodule Mix.Tasks.Step9Try do
end
end

defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, _list, _meta} = ast, env) do
case macroexpand(ast, env) do
{:list, list, meta} -> eval_list(list, env, meta)
Expand Down
1 change: 1 addition & 0 deletions elixir/lib/mix/tasks/stepA_mal.ex
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ defmodule Mix.Tasks.StepAMal do
end
end

defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, _list, _meta} = ast, env) do
case macroexpand(ast, env) do
{:list, list, meta} -> eval_list(list, env, meta)
Expand Down

0 comments on commit 52cee85

Please sign in to comment.