From 325035cf60cd4fbffd5e8c19c8f61b1bd99fb43f Mon Sep 17 00:00:00 2001 From: Mike J Innes Date: Wed, 14 Nov 2018 23:47:32 +0000 Subject: [PATCH] array conversions --- src/tracker/lib/array.jl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/tracker/lib/array.jl b/src/tracker/lib/array.jl index 488d160f..545cbb99 100644 --- a/src/tracker/lib/array.jl +++ b/src/tracker/lib/array.jl @@ -33,6 +33,14 @@ TrackedArray(x::AbstractArray) = TrackedArray(Call(), x, zero(x)) Base.eltype(x::Type{<:TrackedArray{T}}) where T <: Real = TrackedReal{T} +Base.convert(::Type{T}, x::S) where {T<:TrackedArray,S<:T} = x + +Base.convert(::Type{<:TrackedArray}, x::TrackedArray) = + error("Not implemented: convert $(typeof(x)) to $T") + +Base.convert(::Type{<:TrackedArray{T,N,A}}, x::AbstractArray) where {T,N,A} = + TrackedArray(convert(A, x)) + Base.show(io::IO, t::Type{TrackedArray{T,N,A}}) where {T,N,A<:AbstractArray{T,N}} = @isdefined(A) ? print(io, "TrackedArray{…,$A}") :