From bd993583ea86a3442ac05b030a12fb8579f5d6a7 Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Sat, 16 Oct 2021 19:55:59 +0100 Subject: [PATCH 1/3] Move deprecated Vararg UnionAll outside --- src/projection.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projection.jl b/src/projection.jl index e5542d4d8..9b986a68b 100644 --- a/src/projection.jl +++ b/src/projection.jl @@ -131,7 +131,7 @@ ProjectTo(::AbstractZero) = ProjectTo{NoTangent}() # Any x::Zero in forward pas # Also, any explicit construction with fields, where all fields project to zero, itself # projects to zero. This simplifies projectors for wrapper types like Diagonal([true, false]). const _PZ = ProjectTo{<:AbstractZero} -const _PZ_Tuple = Tuple{_PZ,Vararg{<:_PZ}} # 1 or more ProjectTo{<:AbstractZeros} +const _PZ_Tuple = Tuple{PZ,Vararg{PZ}} where PZ<:_PZ # 1 or more ProjectTo{<:AbstractZeros} function ProjectTo{P}(::NamedTuple{T,<:_PZ_Tuple}) where {P,T} return ProjectTo{NoTangent}() end From 05530c63cd8221dc86febdca08efc292962f0582 Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Sat, 16 Oct 2021 20:57:35 +0100 Subject: [PATCH 2/3] Update src/projection.jl Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/projection.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projection.jl b/src/projection.jl index 9b986a68b..ace5c8586 100644 --- a/src/projection.jl +++ b/src/projection.jl @@ -131,7 +131,7 @@ ProjectTo(::AbstractZero) = ProjectTo{NoTangent}() # Any x::Zero in forward pas # Also, any explicit construction with fields, where all fields project to zero, itself # projects to zero. This simplifies projectors for wrapper types like Diagonal([true, false]). const _PZ = ProjectTo{<:AbstractZero} -const _PZ_Tuple = Tuple{PZ,Vararg{PZ}} where PZ<:_PZ # 1 or more ProjectTo{<:AbstractZeros} +const _PZ_Tuple = Tuple{PZ,Vararg{PZ}} where {PZ<:_PZ} # 1 or more ProjectTo{<:AbstractZeros} function ProjectTo{P}(::NamedTuple{T,<:_PZ_Tuple}) where {P,T} return ProjectTo{NoTangent}() end From 7255e78653fbdd5a0e7b2b074ae76a593595314b Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Sat, 16 Oct 2021 20:59:28 +0100 Subject: [PATCH 3/3] Update src/projection.jl --- src/projection.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projection.jl b/src/projection.jl index ace5c8586..2986f388f 100644 --- a/src/projection.jl +++ b/src/projection.jl @@ -131,7 +131,7 @@ ProjectTo(::AbstractZero) = ProjectTo{NoTangent}() # Any x::Zero in forward pas # Also, any explicit construction with fields, where all fields project to zero, itself # projects to zero. This simplifies projectors for wrapper types like Diagonal([true, false]). const _PZ = ProjectTo{<:AbstractZero} -const _PZ_Tuple = Tuple{PZ,Vararg{PZ}} where {PZ<:_PZ} # 1 or more ProjectTo{<:AbstractZeros} +const _PZ_Tuple = Tuple{_PZ,Vararg{_PZ}} # 1 or more ProjectTo{<:AbstractZeros} function ProjectTo{P}(::NamedTuple{T,<:_PZ_Tuple}) where {P,T} return ProjectTo{NoTangent}() end