Skip to content

Commit a20f413

Browse files
committed
Do not warn for attributes used in after_compile
Closes #10579.
1 parent ffbae20 commit a20f413

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

lib/elixir/src/elixir_module.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,9 @@ compile(Line, Module, Block, Vars, E) ->
139139
},
140140

141141
Binary = elixir_erl:compile(ModuleMap),
142-
warn_unused_attributes(File, DataSet, DataBag, PersistedAttributes),
143142
autoload_module(Module, Binary, CompileOpts, NE),
144143
eval_callbacks(Line, DataBag, after_compile, [NE, Binary], NE),
144+
warn_unused_attributes(File, DataSet, DataBag, PersistedAttributes),
145145
make_module_available(Module, Binary, ModuleMap),
146146
{module, Module, Binary, Result}
147147
catch

lib/elixir/test/elixir/module_test.exs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,16 @@ defmodule ModuleTest do
9595
end
9696

9797
test "supports read access to module from __after_compile__/2" do
98-
contents =
99-
quote do
100-
@after_compile __MODULE__
101-
@foo 42
98+
defmodule ModuleTest.NoRaise do
99+
@after_compile __MODULE__
100+
@foo 42
102101

103-
def __after_compile__(%Macro.Env{module: module}, bin) when is_binary(bin) do
104-
Module.get_attribute(module, :foo)
105-
end
102+
def __after_compile__(%Macro.Env{module: module}, bin) when is_binary(bin) do
103+
send(self(), Module.get_attribute(module, :foo))
106104
end
105+
end
107106

108-
Module.create(ModuleTest.NoRaise, contents, __ENV__)
107+
assert_received 42
109108
end
110109

111110
test "in memory modules are tagged as so" do

0 commit comments

Comments
 (0)