diff options
author | Björn-Egil Dahlberg <[email protected]> | 2014-09-22 17:55:15 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2014-09-22 17:55:15 +0200 |
commit | 8c8bd46bcc9d839e5de0687784d15dc819cb3ee8 (patch) | |
tree | e96eeeef77fbff40138ddf35576823921dc110fb /lib/stdlib | |
parent | c5afc45c9236a90dc408c9284a069a9dc233ad4e (diff) | |
parent | bca562455e1e8cb8be5a5a5de53c926eba51f977 (diff) | |
download | otp-8c8bd46bcc9d839e5de0687784d15dc819cb3ee8.tar.gz otp-8c8bd46bcc9d839e5de0687784d15dc819cb3ee8.tar.bz2 otp-8c8bd46bcc9d839e5de0687784d15dc819cb3ee8.zip |
Merge branch 'maint'
Conflicts:
lib/stdlib/src/erl_pp.erl
Diffstat (limited to 'lib/stdlib')
-rw-r--r-- | lib/stdlib/src/erl_pp.erl | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/stdlib/src/erl_pp.erl b/lib/stdlib/src/erl_pp.erl index 10842d21ab..004aae5330 100644 --- a/lib/stdlib/src/erl_pp.erl +++ b/lib/stdlib/src/erl_pp.erl @@ -311,7 +311,15 @@ map_pair_types(Fs) -> tuple_type(Fs, fun map_pair_type/1). map_pair_type({type,_Line,map_field_assoc,[Ktype,Vtype]}) -> - {seq,[],[]," =>",[ltype(Ktype),ltype(Vtype)]}. + map_assoc_typed(lexpr(Ktype, options(none)), Vtype). + +map_assoc_typed(B, {type,_,union,Ts}) -> + {first,[B,$\s],{seq,[],[],[],map_assoc_union_type(Ts)}}; +map_assoc_typed(B, Type) -> + {list,[{cstep,[B," =>"],ltype(Type)}]}. + +map_assoc_union_type([T|Ts]) -> + [[leaf("=> "),ltype(T)] | ltypes(Ts, fun union_elem/1)]. record_type(Name, Fields) -> {first,[record_name(Name)],field_types(Fields)}. |