diff --git a/src/Serialization/QuadForm.jl b/src/Serialization/QuadForm.jl index 29d476e830b3..cd407aa0671e 100644 --- a/src/Serialization/QuadForm.jl +++ b/src/Serialization/QuadForm.jl @@ -31,5 +31,5 @@ end function load_object(s::DeserializerState, ::Type{ZZLat}, params::Dict) mat_space = params[:basis] B = load_object(s, elem_type(mat_space), mat_space) - return lattice(params[:ambient_space], B) + return lattice(params[:ambient_space], B; check=false) end diff --git a/src/Serialization/Upgrades/1.4.0.jl b/src/Serialization/Upgrades/1.4.0.jl index b628b20b27d2..012c03112c39 100644 --- a/src/Serialization/Upgrades/1.4.0.jl +++ b/src/Serialization/Upgrades/1.4.0.jl @@ -257,6 +257,16 @@ push!(upgrade_scripts_set, UpgradeScript( :data => entry ))) end + if allequal(x -> x[:_type], upgraded_entries) + if !isempty(upgraded_entries) + upgraded_dict[:_type][:params] = upgraded_entries[1][:_type] + end + else + upgraded_dict[:_type][:name] = "Tuple" + upgraded_dict[:_type][:params] = [ + x[:_type] for x in upgraded_entries + ] + end upgraded_dict[:data] = [e[:data] for e in upgraded_entries] end elseif type_name == "NamedTuple" diff --git a/src/Serialization/containers.jl b/src/Serialization/containers.jl index c410dd972bdb..385340de83c2 100644 --- a/src/Serialization/containers.jl +++ b/src/Serialization/containers.jl @@ -170,7 +170,7 @@ function load_type_params(s::DeserializerState, T::Type{Tuple}) U = decode_type(s) load_type_params(s, U) end - return collect(zip(tuple_params...)) + return Tuple([x[1] for x in tuple_params]), Tuple(x[2] for x in tuple_params) end return T{subtype...}, params end diff --git a/src/Serialization/main.jl b/src/Serialization/main.jl index 7c4234a22521..e4daf9c09d80 100644 --- a/src/Serialization/main.jl +++ b/src/Serialization/main.jl @@ -746,7 +746,6 @@ function load(io::IO; params::Any = nothing, type::Any = nothing, file_version = load_node(s) do obj serialization_version_info(obj) end - if file_version < VERSION_NUMBER # we need a mutable dictionary jsondict = copy(s.obj)