diff --git a/ext/OffsetArraysAdaptExt.jl b/ext/OffsetArraysAdaptExt.jl index 506bf90..88e9b71 100644 --- a/ext/OffsetArraysAdaptExt.jl +++ b/ext/OffsetArraysAdaptExt.jl @@ -8,4 +8,9 @@ using OffsetArrays, Adapt import Adapt Adapt.adapt_structure(to, O::OffsetArray) = OffsetArrays.parent_call(x -> Adapt.adapt(to, x), O) +@static if isdefined(Adapt, :parent_type) + # To support Adapt 3.0 which doesn't have parent_type defined + Adapt.parent_type(::Type{OffsetArray{T,N,AA}}) where {T,N,AA} = AA +end + end diff --git a/test/runtests.jl b/test/runtests.jl index ea59997..b8d74b0 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -2500,6 +2500,10 @@ end s_arr = adapt(SMatrix{3,3}, arr) @test parent(s_arr) isa SArray @test arr == adapt(Array, s_arr) + + if isdefined(Adapt, :parent_type) + @test Adapt.parent_type(typeof(arr)) == typeof(arr.parent) + end end @testset "Pointer" begin