diff options
author | José Valim <jose.valim@plataformatec.com.br> | 2018-07-10 14:02:41 +0200 |
---|---|---|
committer | José Valim <jose.valim@plataformatec.com.br> | 2018-07-10 14:02:41 +0200 |
commit | bed2547895874cd4f646c25d39ba986710144067 (patch) | |
tree | 6a63a894e8207cc45ec361834729870c473fc82d | |
parent | c519d7bec8b11c14e7f6c038a772bfd7cbf9ca95 (diff) | |
download | elixir-bed2547895874cd4f646c25d39ba986710144067.tar.gz |
Properly inflect names for structs
-rw-r--r-- | lib/elixir/src/elixir_erl.erl | 2 | ||||
-rw-r--r-- | lib/elixir/test/elixir/kernel/docs_test.exs | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/elixir/src/elixir_erl.erl b/lib/elixir/src/elixir_erl.erl index 5788714f8..ce45fb072 100644 --- a/lib/elixir/src/elixir_erl.erl +++ b/lib/elixir/src/elixir_erl.erl @@ -591,7 +591,7 @@ signature_to_binary(_Module, Name, _Signature) signature_to_binary(_Module, '%', _) -> <<"%struct{}">>; -signature_to_binary(Module, '__struct__', 0) -> +signature_to_binary(Module, '__struct__', []) -> <<"%", ('Elixir.Kernel':inspect(Module))/binary, "{}">>; signature_to_binary(_, Name, Signature) -> diff --git a/lib/elixir/test/elixir/kernel/docs_test.exs b/lib/elixir/test/elixir/kernel/docs_test.exs index 1618097a2..dfa7a6713 100644 --- a/lib/elixir/test/elixir/kernel/docs_test.exs +++ b/lib/elixir/test/elixir/kernel/docs_test.exs @@ -143,6 +143,9 @@ defmodule Kernel.DocsTest do defmodule SampleDocs do @moduledoc "Module doc" + @doc "My struct" + defstruct [:sample] + @typedoc "Type doc" @since "1.2.3" @type foo(any) :: any @@ -200,6 +203,8 @@ defmodule Kernel.DocsTest do callback_bar, callback_baz, callback_foo, + function_struct_0, + function_struct_1, function_bar, function_baz, function_foo, @@ -216,6 +221,11 @@ defmodule Kernel.DocsTest do assert {{:callback, :foo, 1}, _, [], %{"en" => "Callback doc"}, %{since: "1.2.3", deprecated: "use baz/2 instead"}} = callback_foo + assert {{:function, :__struct__, 0}, _, ["%Kernel.DocsTest.SampleDocs{}"], + %{"en" => "My struct"}, %{}} = function_struct_0 + + assert {{:function, :__struct__, 1}, _, ["__struct__(kv)"], :none, %{}} = function_struct_1 + assert {{:function, :bar, 1}, _, ["bar(arg)"], %{"en" => "Multiple bodiless clause doc"}, %{since: "1.2.3"}} = function_bar |