diff --git a/src/scalar/core.jl b/src/scalar/core.jl index 1e34946..a5eb47c 100644 --- a/src/scalar/core.jl +++ b/src/scalar/core.jl @@ -21,6 +21,7 @@ Base.eltype(::Type{DataValue{T}}) where {T} = T Base.convert(::Type{DataValue{T}}, x::DataValue{T}) where {T} = x Base.convert(::Type{DataValue}, x::DataValue) = x +Base.convert(::Type{D}, ::Missing) where {D <: DataValue} = D() Base.convert(t::Type{DataValue{T}}, x::Any) where {T} = convert(t, convert(T, x)) diff --git a/test/scalar/test_core.jl b/test/scalar/test_core.jl index c7c03d6..afcec20 100644 --- a/test/scalar/test_core.jl +++ b/test/scalar/test_core.jl @@ -248,4 +248,6 @@ io = IOBuffer() show(io, DataValue(enum_val_a)) @test String(take!(io)) == "DataValue{TestEnum}(enum_val_a)" +@test convert(DataValue{String}, missing) == DataValue{String}() + end