@@ -85,6 +85,8 @@ function show(io::IO, ::MIME"text/plain", t::AbstractDict{K,V}) where {K,V}
85
85
if ! haskey (io, :compact )
86
86
recur_io = IOContext (recur_io, :compact => true )
87
87
end
88
+ recur_io_k = IOContext (recur_io, :typeinfo => keytype (t))
89
+ recur_io_v = IOContext (recur_io, :typeinfo => valtype (t))
88
90
89
91
summary (io, t)
90
92
isempty (t) && return
@@ -105,8 +107,8 @@ function show(io::IO, ::MIME"text/plain", t::AbstractDict{K,V}) where {K,V}
105
107
vallen = 0
106
108
for (i, (k, v)) in enumerate (t)
107
109
i > rows && break
108
- ks[i] = sprint (show, k, context= recur_io , sizehint= 0 )
109
- vs[i] = sprint (show, v, context= recur_io , sizehint= 0 )
110
+ ks[i] = sprint (show, k, context= recur_io_k , sizehint= 0 )
111
+ vs[i] = sprint (show, v, context= recur_io_v , sizehint= 0 )
110
112
keylen = clamp (length (ks[i]), keylen, cols)
111
113
vallen = clamp (length (vs[i]), vallen, cols)
112
114
end
@@ -127,7 +129,7 @@ function show(io::IO, ::MIME"text/plain", t::AbstractDict{K,V}) where {K,V}
127
129
if limit
128
130
key = rpad (_truncate_at_width_or_chars (ks[i], keylen, " \r\n " ), keylen)
129
131
else
130
- key = sprint (show, k, context= recur_io , sizehint= 0 )
132
+ key = sprint (show, k, context= recur_io_k , sizehint= 0 )
131
133
end
132
134
print (recur_io, key)
133
135
print (io, " => " )
@@ -136,7 +138,7 @@ function show(io::IO, ::MIME"text/plain", t::AbstractDict{K,V}) where {K,V}
136
138
val = _truncate_at_width_or_chars (vs[i], cols - keylen, " \r\n " )
137
139
print (io, val)
138
140
else
139
- show (recur_io , v)
141
+ show (recur_io_v , v)
140
142
end
141
143
end
142
144
end
0 commit comments