File tree Expand file tree Collapse file tree 2 files changed +8
-2
lines changed Expand file tree Collapse file tree 2 files changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -120,12 +120,13 @@ function (ss::SummarySize)(obj::Array)
120120 if ! haskey (ss. seen, datakey)
121121 ss. seen[datakey] = true
122122 dsize = Core. sizeof (obj)
123- if isbitsunion (eltype (obj))
123+ T = eltype (obj)
124+ if isbitsunion (T)
124125 # add 1 union selector byte for each element
125126 dsize += length (obj)
126127 end
127128 size += dsize
128- if ! isempty (obj) && ! Base. allocatedinline (eltype (obj ))
129+ if ! isempty (obj) && ( ! Base. allocatedinline (T) || (T isa DataType && ! Base . datatype_pointerfree (T) ))
129130 push! (ss. frontier_x, obj)
130131 push! (ss. frontier_i, 1 )
131132 end
Original file line number Diff line number Diff line change @@ -291,6 +291,11 @@ let vec = vcat(missing, ones(100000))
291291 @test length (unique (summarysize (vec) for i = 1 : 20 )) == 1
292292end
293293
294+ # issue #40773
295+ let s = Set (1 : 100 )
296+ @test summarysize ([s]) > summarysize (s)
297+ end
298+
294299# issue #13021
295300let ex = try
296301 Main. x13021 = 0
You can’t perform that action at this time.
0 commit comments