From 27fec15fcc5fc9af64edf533377f206f2be06443 Mon Sep 17 00:00:00 2001 From: JohnnyChen Date: Tue, 9 Oct 2018 03:34:41 +0800 Subject: [PATCH] Add explicit copy(x::TrackedArray) method --- src/tracker/array.jl | 2 ++ src/tracker/scalar.jl | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/tracker/array.jl b/src/tracker/array.jl index 3d9836d0..b8b06471 100644 --- a/src/tracker/array.jl +++ b/src/tracker/array.jl @@ -43,6 +43,8 @@ end Base.print_array(io::IO, x::TrackedArray) = Base.print_array(io, data(x)) +Base.copy(x::TrackedArray) = copy(data(x)) + Base.setindex!(xs::TrackedArray, v, i...) = error("Can't differentiate `setindex!`") diff --git a/src/tracker/scalar.jl b/src/tracker/scalar.jl index ad7b643d..e0ae7db1 100644 --- a/src/tracker/scalar.jl +++ b/src/tracker/scalar.jl @@ -23,6 +23,8 @@ end Base.decompose(x::TrackedReal) = Base.decompose(data(x)) +Base.copy(x::TrackedArray) = copy(data(x)) + Base.convert(::Type{T}, x::TrackedReal{S}) where {T<:Real,S} = convert(T, data(x)) Base.convert(::Type{TrackedReal{T}}, x::TrackedReal{T}) where T = x