@@ -16,6 +16,10 @@ defmodule ExDoc.Retriever.ElixirTest do
16
16
@spec function() :: atom()
17
17
def function(), do: :ok
18
18
19
+ @doc "macro/0 docs."
20
+ @spec macro() :: Macro.t()
21
+ defmacro macro(), do: :ok
22
+
19
23
def empty_doc_and_specs(), do: :ok
20
24
21
25
@doc false
@@ -32,7 +36,7 @@ defmodule ExDoc.Retriever.ElixirTest do
32
36
title: "Mod" ,
33
37
type: :module ,
34
38
typespecs: [ ] ,
35
- docs: [ empty_doc_and_specs , function ] ,
39
+ docs: [ empty_doc_and_specs , function , macro ] ,
36
40
annotations: [ :public ]
37
41
} = mod
38
42
@@ -56,14 +60,25 @@ defmodule ExDoc.Retriever.ElixirTest do
56
60
} = function
57
61
58
62
assert DocAST . to_string ( function . doc ) == "<p>function/0 docs.</p>"
63
+ assert Macro . to_string ( spec ) == "function() :: atom()"
64
+
65
+ assert % ExDoc.FunctionNode {
66
+ arity: 0 ,
67
+ annotations: [ "macro" ] ,
68
+ id: "macro/0" ,
69
+ signature: "macro()" ,
70
+ specs: [ spec ] ,
71
+ type: :macro
72
+ } = macro
73
+
74
+ assert DocAST . to_string ( macro . doc ) == "<p>macro/0 docs.</p>"
75
+ assert Macro . to_string ( spec ) == "macro() :: Macro.t()"
59
76
60
77
assert % ExDoc.FunctionNode {
61
78
id: "empty_doc_and_specs/0" ,
62
79
doc: nil ,
63
80
specs: [ ]
64
81
} = empty_doc_and_specs
65
-
66
- assert Macro . to_string ( spec ) == "function() :: atom()"
67
82
end
68
83
69
84
test "Elixir functions with defaults" , c do
0 commit comments