Skip to content

Commit 88dd85c

Browse files
committed
Mark vars in codegen as generated to prevent warnings for __meta__
Closes #41
1 parent 1c93d91 commit 88dd85c

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

lib/encoder.ex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ end
7777
defimpl Jason.Encoder, for: Any do
7878
defmacro __deriving__(module, struct, opts) do
7979
fields = fields_to_encode(struct, opts)
80-
kv = Enum.map(fields, &{&1, Macro.var(&1, __MODULE__)})
80+
kv = Enum.map(fields, &{&1, generated_var(&1, __MODULE__)})
8181
escape = quote(do: escape)
8282
encode_map = quote(do: encode_map)
8383
encode_args = [escape, encode_map]
@@ -94,6 +94,11 @@ defimpl Jason.Encoder, for: Any do
9494
end
9595
end
9696

97+
# The same as Macro.var/2 except it sets generated: true
98+
defp generated_var(name, context) do
99+
{name, [generated: true], context}
100+
end
101+
97102
def encode(%_{} = struct, _opts) do
98103
raise Protocol.UndefinedError,
99104
protocol: @protocol,

lib/helpers.ex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ defmodule Jason.Helpers do
6161
"""
6262
defmacro json_map_take(map, take) do
6363
take = Macro.expand(take, __CALLER__)
64-
kv = Enum.map(take, &{&1, Macro.var(&1, Codegen)})
64+
kv = Enum.map(take, &{&1, generated_var(&1, Codegen)})
6565
escape = quote(do: escape)
6666
encode_map = quote(do: encode_map)
6767
encode_args = [escape, encode_map]
@@ -82,4 +82,9 @@ defmodule Jason.Helpers do
8282
end
8383
end
8484
end
85+
86+
# The same as Macro.var/2 except it sets generated: true
87+
defp generated_var(name, context) do
88+
{name, [generated: true], context}
89+
end
8590
end

0 commit comments

Comments
 (0)