I’ve noticed that recent 1.9 nightlies became more eager in converting array elements to a common type. This seems unambiguously breaking, and not sure about the motivation: what were the reasons for such a change?
For example, 1.8 properly keeps both original values as-is:
julia> using StructArrays
julia> A = [StructArray([1+2im]), [3]];
julia> A[1]
1-element StructArray(::Vector{Int64}, ::Vector{Int64}) with eltype Complex{Int64}:
1 + 2im
julia> A[2]
1-element Vector{Int64}:
3
While nightly Julia changes types of both elements:
julia> A = [StructArray([1+2im]), [3]];
julia> A[1]
1-element Vector{Complex{Int64}}:
1 + 2im
julia> A[2]
1-element Vector{Complex{Int64}}:
3 + 0im
This changes the meaning of perfectly fine and working code.