diff options
author | Michał Muskała <michal@muskala.eu> | 2018-07-12 12:57:56 +0200 |
---|---|---|
committer | Michał Muskała <michal@muskala.eu> | 2018-07-12 12:57:56 +0200 |
commit | 69135ab75a6fb51ec7584a4e41e0af548e0af8f0 (patch) | |
tree | 307c9f73f341e4c22dc67f2492533afb4587e70e | |
parent | af94aca353368d338bf0d5dea341ba78150bc110 (diff) | |
download | elixir-69135ab75a6fb51ec7584a4e41e0af548e0af8f0.tar.gz |
fixupmm/protocols
-rw-r--r-- | lib/elixir/lib/protocol.ex | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/elixir/lib/protocol.ex b/lib/elixir/lib/protocol.ex index 44aed9db8..350d5a3e5 100644 --- a/lib/elixir/lib/protocol.ex +++ b/lib/elixir/lib/protocol.ex @@ -168,8 +168,7 @@ defmodule Protocol do """ defmacro derive(protocol, module, options \\ []) do quote do - module = unquote(module) - Protocol.__derive__([{unquote(protocol), unquote(options)}], module, __ENV__) + Protocol.__derive__([{unquote(protocol), unquote(options)}], unquote(module), __ENV__) end end @@ -313,13 +312,14 @@ defmodule Protocol do opts = [:allow_missing_chunks] case :beam_lib.chunks(beam_file(protocol), chunk_ids, opts) do - {:ok, {^protocol, [{:debug_info, debug_info} | extra_chunks]}} -> + {:ok, {^protocol, [{:debug_info, debug_info} | chunks]}} -> {:debug_info_v1, _backend, {:elixir_v1, info, specs}} = debug_info %{attributes: attributes, definitions: definitions} = info + chunks = :lists.map(fn {name, value} -> {List.to_string(name), value} end, chunks) case attributes[:protocol] do [fallback_to_any: any] -> - {:ok, {any, definitions}, specs, {info, extra_chunks}} + {:ok, {any, definitions}, specs, {info, chunks}} _ -> {:error, :not_a_protocol} @@ -423,9 +423,9 @@ defmodule Protocol do end # Finally compile the module and emit its bytecode. - defp compile(definitions, specs, {info, extra_chunks}) do + defp compile(definitions, specs, {info, chunks}) do info = %{info | definitions: definitions} - {:ok, :elixir_erl.consolidate(info, specs, extra_chunks)} + {:ok, :elixir_erl.consolidate(info, specs, chunks)} end ## Definition callbacks |