diff --git a/src/Serialization/containers.jl b/src/Serialization/containers.jl index 128673e7f21d..8081f034f1d8 100644 --- a/src/Serialization/containers.jl +++ b/src/Serialization/containers.jl @@ -51,7 +51,9 @@ end function load_object(s::DeserializerState, ::Type{<: Vector}, params::Type) load_node(s) do v if serialize_with_id(params) - loaded_v = params[load_ref(s, x) for x in v] + loaded_v::Vector{params} = load_array_node(s) do _ + load_ref(s) + end else loaded_v = params[] for (i, entry) in enumerate(v) @@ -65,7 +67,9 @@ end function load_object(s::DeserializerState, ::Type{<: Vector{params}}) where params load_node(s) do v if serialize_with_id(params) - loaded_v = params[load_ref(s, x) for x in v] + loaded_v::Vector{params} = load_array_node(s) do _ + load_ref(s) + end else loaded_v = params[] for (i, entry) in enumerate(v) diff --git a/test/Serialization/Fields.jl b/test/Serialization/Fields.jl index 458c82607252..0d11ec0d275c 100644 --- a/test/Serialization/Fields.jl +++ b/test/Serialization/Fields.jl @@ -1,15 +1,17 @@ @testset "Fields" begin mktempdir() do path + Qx, x = QQ["x"] + K1, _ = number_field(x^2 + 5) + K2, _ = number_field([x^2 + 5, x^2 + 7]) + K3, _ = number_field(x^2 + 7) + Kt, t = polynomial_ring(K1, cached = false) + L1, = number_field(t^2 + 2) + L2, = number_field([t^2 + 2, t^2 + 3]) + Kt, t = polynomial_ring(K2, cached = false) + L3, = number_field(t^2 + 2) + L4, = number_field([t^2 + 2, t^2 + 3]) + @testset "Field Embeddings" begin - Qx, x = QQ["x"] - K1, _ = number_field(x^2 + 5) - K2, _ = number_field([x^2 + 5, x^2 + 7]) - Kt, t = polynomial_ring(K1, cached = false) - L1, = number_field(t^2 + 2) - L2, = number_field([t^2 + 2, t^2 + 3]) - Kt, t = polynomial_ring(K2, cached = false) - L3, = number_field(t^2 + 2) - L4, = number_field([t^2 + 2, t^2 + 3]) for K in (K1, K2, L1, L2, L3, L4) for E in complex_embeddings(K) test_save_load_roundtrip(path, E) do loaded @@ -24,5 +26,12 @@ end end end + + @testset "Vector of Fields" begin + v = [K1, K3] + test_save_load_roundtrip(path, v) do loaded + @test loaded == v + end + end end end