Skip to content

Commit 6549b00

Browse files
committed
Ensure context modules are handled in optimized defmodule
1 parent 4431ac6 commit 6549b00

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

lib/elixir/src/elixir_compiler.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,8 @@ fast_compile({defmodule, Meta, [Mod, [{do, TailBlock}]]}, NoLineE) ->
133133
'Elixir.Macro':expand(Mod, E)
134134
end,
135135

136-
elixir_module:compile(Expanded, Block, [], E).
136+
ContextModules = [Expanded | ?key(E, context_modules)],
137+
elixir_module:compile(Expanded, Block, [], E#{context_modules := ContextModules}).
137138

138139
%% Bootstrapper
139140

lib/elixir/test/elixir/macro_test.exs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -810,6 +810,14 @@ defmodule MacroTest do
810810
defmodule Foo.Bar do
811811
assert __MODULE__ in __ENV__.context_modules
812812
end
813+
814+
assert Foo.Bar in __ENV__.context_modules
815+
816+
Code.compile_string("""
817+
defmodule Foo.Bar.Compiled do
818+
true = __MODULE__ in __ENV__.context_modules
819+
end
820+
""")
813821
end
814822

815823
test "to_match/1" do

0 commit comments

Comments
 (0)