Skip to content

Commit 23aa060

Browse files
v0idpwnyordis
andcommitted
Use ensure_compiled! instead of ensure_loaded? on map typespec macro
Instead of raising, holds the file compilation until the module is available. Solves compilation issue when using `one_file_per_module=true` and map types, where it would raise due to `Code.ensure_loaded?` returning false for a module that wasn't compiled yet. Co-authored-by: Yordis Prieto <[email protected]>
1 parent ee340dd commit 23aa060

File tree

1 file changed

+1
-4
lines changed

1 file changed

+1
-4
lines changed

lib/protobuf/dsl/typespecs.ex

+1-4
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,7 @@ defmodule Protobuf.DSL.Typespecs do
5858
end
5959

6060
defp field_prop_to_spec(_syntax, %FieldProps{map?: true, type: map_mod} = prop) do
61-
if not Code.ensure_loaded?(map_mod) do
62-
raise "module #{inspect(map_mod)} was not loaded, but was expected to be since it's used as a map entry"
63-
end
64-
61+
Code.ensure_compiled!(map_mod)
6562
map_props = map_mod.__message_props__()
6663

6764
key_spec = scalar_type_to_spec(map_props.field_props[map_props.field_tags.key].type)

0 commit comments

Comments
 (0)