From 888d5a2004eeb21ac3132e589920f750764ee8c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= <egil@erlang.org>
Date: Thu, 11 Sep 2014 19:21:01 +0200
Subject: edoc, erl_docgen: Enhance internal map type format

---
 lib/edoc/src/edoc_layout.erl | 15 ++++++---------
 lib/edoc/src/edoc_types.erl  |  2 +-
 2 files changed, 7 insertions(+), 10 deletions(-)

(limited to 'lib/edoc')

diff --git a/lib/edoc/src/edoc_layout.erl b/lib/edoc/src/edoc_layout.erl
index f4e78e8f3a..a102d432bc 100644
--- a/lib/edoc/src/edoc_layout.erl
+++ b/lib/edoc/src/edoc_layout.erl
@@ -831,8 +831,6 @@ t_type([#xmlElement{name = nonempty_list, content = Es}]) ->
     t_nonempty_list(Es);
 t_type([#xmlElement{name = map, content = Es}]) ->
     t_map(Es);
-t_type([#xmlElement{name = map_field, content=Es}]) ->
-    t_map_field(Es);
 t_type([#xmlElement{name = tuple, content = Es}]) ->
     t_tuple(Es);
 t_type([#xmlElement{name = 'fun', content = Es}]) ->
@@ -882,9 +880,10 @@ t_fun(Es) ->
 		 [") -> "] ++ t_utype(get_elem(type, Es))).
 
 t_map(Es) ->
-    ["#{"] ++ seq(fun t_utype_elem/1, Es, ["}"]).
+    Fs = get_elem(map_field, Es),
+    ["#{"] ++ seq(fun t_map_field/1, Fs, ["}"]).
 
-t_map_field([K,V]) ->
+t_map_field(#xmlElement{content = [K,V]}) ->
     t_utype_elem(K) ++ [" => "] ++ t_utype_elem(V).
 
 t_record(E, Es) ->
@@ -1084,8 +1083,6 @@ ot_type([#xmlElement{name = tuple, content = Es}]) ->
     ot_tuple(Es);
 ot_type([#xmlElement{name = map, content = Es}]) ->
     ot_map(Es);
-ot_type([#xmlElement{name = map_field, content = Es}]) ->
-    ot_map_field(Es);
 ot_type([#xmlElement{name = 'fun', content = Es}]) ->
     ot_fun(Es);
 ot_type([#xmlElement{name = record, content = Es}]) ->
@@ -1143,10 +1140,10 @@ ot_tuple(Es) ->
     {type,0,tuple,[ot_utype_elem(E) || E <- Es]}.
 
 ot_map(Es) ->
-    {type,0,map,[ot_utype_elem(E) || E <- Es]}.
+    {type,0,map,[ot_map_field(E) || E <- get_elem(map_field,Es)]}.
 
-ot_map_field(Es) ->
-    {type,0,map_field_assoc,[ot_utype_elem(E) || E <- Es]}.
+ot_map_field(#xmlElement{content=[K,V]}) ->
+    {type,0,map_field_assoc,ot_utype_elem(K), ot_utype_elem(V)}.
 
 ot_fun(Es) ->
     Range = ot_utype(get_elem(type, Es)),
diff --git a/lib/edoc/src/edoc_types.erl b/lib/edoc/src/edoc_types.erl
index d4e00d3ecd..8a6c8eb33e 100644
--- a/lib/edoc/src/edoc_types.erl
+++ b/lib/edoc/src/edoc_types.erl
@@ -143,7 +143,7 @@ to_xml(#t_fun{args = As, range = T}, Env) ->
     {'fun', [{argtypes, map(fun wrap_utype/2, As, Env)},
 	     wrap_utype(T, Env)]};
 to_xml(#t_map{ types = Ts}, Env) ->
-    {map, map(fun wrap_utype/2, Ts, Env)};
+    {map, map(fun to_xml/2, Ts, Env)};
 to_xml(#t_map_field{ k_type=K, v_type=V}, Env) ->
     {map_field, [wrap_utype(K,Env), wrap_utype(V, Env)]};
 to_xml(#t_tuple{types = Ts}, Env) ->
-- 
cgit v1.2.3