Skip to content

Commit 0936fb4

Browse files
committed
Mark functions as generated in Docs chunk
1 parent bccfca4 commit 0936fb4

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

lib/elixir/src/elixir_erl.erl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -510,12 +510,15 @@ get_moduledoc_meta(Set) ->
510510

511511
get_docs(Set, Module, Definitions, Kind) ->
512512
[{Key,
513-
erl_anno:new(Line),
513+
maybe_generated(erl_anno:new(Line), Ctx),
514514
[signature_to_binary(Module, Name, Signature)],
515515
doc_value(Doc, Name),
516516
Meta
517517
} || {Name, Arity} <- Definitions,
518-
{Key, _Ctx, Line, Signature, Doc, Meta} <- ets:lookup(Set, {Kind, Name, Arity})].
518+
{Key, Ctx, Line, Signature, Doc, Meta} <- ets:lookup(Set, {Kind, Name, Arity})].
519+
520+
maybe_generated(Ann, nil) -> Ann;
521+
maybe_generated(Ann, _Ctx) -> erl_anno:set_generated(true, Ann).
519522

520523
get_callback_docs(Set, Callbacks) ->
521524
[{Key,

lib/elixir/test/elixir/kernel/docs_test.exs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,4 +381,30 @@ defmodule Kernel.DocsTest do
381381
{{:fuz, 0}, :none}
382382
] = Enum.sort(function_docs)
383383
end
384+
385+
test "generated functions are annotated as such" do
386+
write_beam(
387+
defmodule ToBeUsed do
388+
defmacro __using__(_) do
389+
quote do
390+
@doc "Hello"
391+
def foo, do: :bar
392+
end
393+
end
394+
end
395+
)
396+
397+
write_beam(
398+
defmodule WillBeUsing do
399+
use ToBeUsed
400+
end
401+
)
402+
403+
{:docs_v1, _, _, _, _, _, docs} = Code.fetch_docs(WillBeUsing)
404+
405+
assert [
406+
{{:function, :foo, 0}, [generated: true, location: 399], ["foo()"],
407+
%{"en" => "Hello"}, %{}}
408+
] = docs
409+
end
384410
end

0 commit comments

Comments
 (0)