Skip to content

Commit 693df5f

Browse files
committed
Properly handle tags inside typespec in Erlang docs, closes #10430
1 parent b460537 commit 693df5f

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

lib/elixir/lib/io/ansi/docs.ex

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,9 +231,13 @@ defmodule IO.ANSI.Docs do
231231
types =
232232
for {:li, _, lines} <- entries,
233233
line <- lines,
234-
do: ["#{indent} ", line, ?\n]
234+
do: ["#{indent} ", traverse_erlang_html(line, indent <> " ", options), ?\n]
235235

236-
["#{indent}Typespecs:\n\n", types, ?\n]
236+
if types != [] do
237+
["#{indent}Typespecs:\n\n", types, ?\n]
238+
else
239+
[]
240+
end
237241
else
238242
for {:li, _, lines} <- entries do
239243
["#{indent} ", @bullet_text | handle_erlang_html_text(lines, indent <> " ", options)]

lib/elixir/lib/regex.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ defmodule Regex do
280280
Returns `true` if the given `term` is a regex.
281281
Otherwise returns `false`.
282282
"""
283-
# TODO: Remove this on Elixir v1.15
283+
# TODO: deprecate permanently on Elixir v1.15
284284
@doc deprecated: "Use Kernel.is_struct/2 or pattern match on %Regex{} instead"
285285
def regex?(term)
286286
def regex?(%Regex{}), do: true

lib/elixir/test/elixir/io/ansi/docs_test.exs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,8 @@ defmodule IO.ANSI.DocsTest do
727727
end
728728

729729
test "typespecs" do
730+
assert format_erlang([{:ul, [class: "types"], [{:li, [], []}]}]) == ""
731+
730732
assert format_erlang([{:ul, [class: "types"], [{:li, [], ["Hello"]}, {:li, [], ["World"]}]}]) ==
731733
"""
732734
Typespecs:
@@ -735,6 +737,17 @@ defmodule IO.ANSI.DocsTest do
735737
World
736738
737739
"""
740+
741+
assert format_erlang([
742+
{:ul, [class: "types"], [{:li, [], ["Hello", {:code, [], ["World"]}]}]}
743+
]) ==
744+
"""
745+
Typespecs:
746+
747+
Hello
748+
\e[36mWorld\e[0m
749+
750+
"""
738751
end
739752

740753
test "extra markup" do

0 commit comments

Comments
 (0)