Skip to content

Commit 6c7f6e7

Browse files
committed
Add a test to ensure no compile time deps on defimpl
1 parent bf068de commit 6c7f6e7

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ defmodule Kernel.LexicalTrackerTest do
44
use ExUnit.Case, async: true
55

66
alias Kernel.LexicalTracker, as: D
7+
defstruct used_by_tests: :ok
78

89
setup do
910
{:ok, pid} = D.start_link()
@@ -517,5 +518,19 @@ defmodule Kernel.LexicalTrackerTest do
517518
refute URI in exports
518519
refute URI in runtime
519520
end
521+
522+
test "defimpl does not add dependencies" do
523+
{{compile, exports, runtime, _}, _binding} =
524+
Code.eval_string("""
525+
defimpl String.Chars, for: Kernel.LexicalTrackerTest do
526+
def to_string(val), do: val.used_by_tests
527+
Kernel.LexicalTracker.references(__ENV__.lexical_tracker)
528+
end |> elem(3)
529+
""")
530+
531+
refute Kernel.LexicalTrackerTest in compile
532+
refute Kernel.LexicalTrackerTest in exports
533+
refute Kernel.LexicalTrackerTest in runtime
534+
end
520535
end
521536
end

0 commit comments

Comments
 (0)