Skip to content

Commit 0e0bb1c

Browse files
author
José Valim
committed
Do not raise conflicts on imports used from quotes, closes #2589
1 parent 736406a commit 0e0bb1c

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

lib/elixir/src/elixir_dispatch.erl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,20 @@ default_macros() ->
3131
default_requires() ->
3232
['Elixir.Kernel', 'Elixir.Kernel.Typespec'].
3333

34+
%% This is used by elixir_quote. Note we don't record the
35+
%% import locally because at that point there is no
36+
%% ambiguity.
3437
find_import(Meta, Name, Arity, E) ->
3538
Tuple = {Name, Arity},
3639

3740
case find_dispatch(Meta, Tuple, [], E) of
3841
{function, Receiver} ->
3942
elixir_lexical:record_import(Receiver, ?m(E, lexical_tracker)),
40-
elixir_locals:record_import(Tuple, Receiver, ?m(E, module), ?m(E, function)),
43+
%% elixir_locals:record_import(Tuple, Receiver, ?m(E, module), ?m(E, function)),
4144
Receiver;
4245
{macro, Receiver} ->
4346
elixir_lexical:record_import(Receiver, ?m(E, lexical_tracker)),
44-
elixir_locals:record_import(Tuple, Receiver, ?m(E, module), ?m(E, function)),
47+
%% elixir_locals:record_import(Tuple, Receiver, ?m(E, module), ?m(E, function)),
4548
Receiver;
4649
_ ->
4750
false

lib/elixir/test/elixir/kernel/quote_test.exs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,3 +409,11 @@ defmodule Kernel.QuoteTest.ImportsHygieneTest do
409409
assert with_length == 5
410410
end
411411
end
412+
413+
defmodule Kernel.QuoteTest.NoQuoteConflictTest do
414+
defmacro x |> f do
415+
quote do
416+
unquote(x) |> unquote(f)
417+
end
418+
end
419+
end

0 commit comments

Comments
 (0)