summaryrefslogtreecommitdiff
path: root/lib/elixir
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@dashbit.co>2022-07-11 21:31:40 +0200
committerJosé Valim <jose.valim@dashbit.co>2022-07-11 21:31:47 +0200
commit0e5ceb343e1946c0650ba4c6a61bc13d64584981 (patch)
treec3db69e5bbebf31bb11e34bf1c4b0e12efc26c0d /lib/elixir
parented01637ec21bda7a6671732ea9619360f1d861e6 (diff)
downloadelixir-0e5ceb343e1946c0650ba4c6a61bc13d64584981.tar.gz
Do not reset the lexical tracker
Diffstat (limited to 'lib/elixir')
-rw-r--r--lib/elixir/lib/protocol.ex6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/elixir/lib/protocol.ex b/lib/elixir/lib/protocol.ex
index 49807b773..1d02e720c 100644
--- a/lib/elixir/lib/protocol.ex
+++ b/lib/elixir/lib/protocol.ex
@@ -931,7 +931,7 @@ defmodule Protocol do
raise ArgumentError, "defimpl/3 expects a :for option when declared outside a module"
end)
- for = Macro.expand_literal(for, %{env | lexical_tracker: nil})
+ for = Macro.expand_literal(for, %{env | module: Kernel, function: {:defimpl, 3}})
case opts do
[] -> raise ArgumentError, "defimpl expects a do-end block"
@@ -951,11 +951,11 @@ defmodule Protocol do
impl =
quote unquote: false do
@doc false
- @spec __impl__(:for) :: unquote(for)
@spec __impl__(:target) :: __MODULE__
+ @spec __impl__(:for) :: unquote(for)
@spec __impl__(:protocol) :: unquote(protocol)
- def __impl__(:for), do: unquote(for)
def __impl__(:target), do: __MODULE__
+ def __impl__(:for), do: unquote(for)
def __impl__(:protocol), do: unquote(protocol)
end