From a3d7b6dacf867e7db8114e1e0466e40d6cdb11f8 Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Mon, 26 Jul 2021 17:52:48 +0100 Subject: [PATCH 1/2] use hasproperty, not hasfield for ProjectTo --- Project.toml | 2 +- src/projection.jl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index bd4235ce0..d6720e438 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ChainRulesCore" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.0.0" +version = "1.0.1" [deps] Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" diff --git a/src/projection.jl b/src/projection.jl index 41e456717..7fb968fb9 100644 --- a/src/projection.jl +++ b/src/projection.jl @@ -183,7 +183,7 @@ function (project::ProjectTo{AbstractArray})(dx::AbstractArray{S,M}) where {S,M} end # Then deal with the elements. One projector if AbstractArray{<:Number}, # or one per element for arrays of anything else, including arrays of arrays: - dz = if hasfield(typeof(backing(project)), :element) + dz = if hasproperty(project, :element) T = project_type(project.element) S <: T ? dy : map(project.element, dy) else From b0f2d778a80d7b98bfd87e33e70440e298d5b2ce Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Mon, 26 Jul 2021 18:26:37 +0100 Subject: [PATCH 2/2] Compat hasproperty --- src/ChainRulesCore.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ChainRulesCore.jl b/src/ChainRulesCore.jl index 09c3ebc4c..08ac3847c 100644 --- a/src/ChainRulesCore.jl +++ b/src/ChainRulesCore.jl @@ -3,7 +3,7 @@ using Base.Broadcast: broadcasted, Broadcasted, broadcastable, materialize, mate using Base.Meta using LinearAlgebra using SparseArrays: SparseVector, SparseMatrixCSC -using Compat: hasfield +using Compat: hasfield, hasproperty export frule, rrule # core function # rule configurations