Skip to content

Commit a9ce579

Browse files
committed
Revert structs into export time dependencies
1 parent 8df8f92 commit a9ce579

4 files changed

Lines changed: 5 additions & 18 deletions

File tree

lib/elixir/src/elixir_lexical.erl

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,8 @@ trace({require, Meta, Module, _Opts}, #{lexical_tracker := Pid}) ->
4141
_ -> ?tracker:add_export(Pid, Module)
4242
end,
4343
ok;
44-
trace({struct_expansion, Meta, Module, _Keys}, #{lexical_tracker := Pid} = E) ->
45-
maybe
46-
#{function := {_, _}} ?= E,
47-
Operation = proplists:get_value(operation, Meta, unknown),
48-
true ?= (Operation =:= match) orelse (Operation =:= update),
49-
?tracker:remote_dispatch(Pid, Module, runtime)
50-
else
51-
_ -> ?tracker:add_export(Pid, Module)
52-
end,
44+
trace({struct_expansion, _Meta, Module, _Keys}, #{lexical_tracker := Pid}) ->
45+
?tracker:add_export(Pid, Module),
5346
ok;
5447
trace({alias_reference, _Meta, Module}, #{lexical_tracker := Pid} = E) ->
5548
case E of

lib/elixir/test/elixir/kernel/lexical_tracker_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ defmodule Kernel.LexicalTrackerTest do
433433
""")
434434

435435
refute URI in compile
436-
refute URI in exports
436+
assert URI in exports
437437
assert URI in runtime
438438
end
439439

lib/mix/lib/mix/tasks/xref.ex

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -733,13 +733,7 @@ defmodule Mix.Tasks.Xref do
733733

734734
defp require_mode(meta), do: if(meta[:from_macro], do: :compile, else: :export)
735735

736-
defp struct_mode(meta, %{function: function}) do
737-
if function != nil and meta[:operation] in [:match, :update] do
738-
:runtime
739-
else
740-
:export
741-
end
742-
end
736+
defp struct_mode(_meta, _env), do: :export
743737

744738
defp mode(%{function: nil}), do: :compile
745739
defp mode(_), do: :runtime

lib/mix/test/mix/tasks/xref_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ defmodule Mix.Tasks.XrefTest do
258258
lib/b.ex:7: call A.macro/0 (compile)
259259
lib/b.ex:8: call A.fun/0 (runtime)
260260
lib/b.ex:9: struct A (export)
261-
lib/b.ex:10: struct A (runtime)
261+
lib/b.ex:10: struct A (export)
262262
lib/b.ex:11: struct A (export)
263263
"""
264264

0 commit comments

Comments
 (0)