From 49d5ae769dcf9c01b06cebc75681c7d2800c8d3f Mon Sep 17 00:00:00 2001 From: Frames White Date: Wed, 22 May 2024 19:17:43 +0800 Subject: [PATCH] Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/rulesets/Base/base.jl | 9 +++++---- test/rulesets/Base/base.jl | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/rulesets/Base/base.jl b/src/rulesets/Base/base.jl index a2b195701..0c81b05cc 100644 --- a/src/rulesets/Base/base.jl +++ b/src/rulesets/Base/base.jl @@ -296,11 +296,12 @@ end #### merge #### # need to work around inability to return closures from generated functions -struct MergePullback{T1, T2} -end +struct MergePullback{T1,T2} end (this::MergePullback)(dy::AbstractThunk) = this(unthunk(dy)) (::MergePullback)(x::AbstractZero) = (NoTangent(), x, x) -@generated function(::MergePullback{T1,T2})(dy::Tangent) where {F1,T1<:NamedTuple{F1},F2,T2<:NamedTuple{F2}} +@generated function (::MergePullback{T1,T2})( + dy::Tangent +) where {F1,T1<:NamedTuple{F1},F2,T2<:NamedTuple{F2}} _getproperty_kwexpr(key) = :($key = getproperty(dy, $(Meta.quot(key)))) quote dnt1 = Tangent{T1}(; $(map(_getproperty_kwexpr, setdiff(F1, F2))...)) @@ -309,7 +310,7 @@ end end end -function rrule(::typeof(merge), nt1::T1, nt2::T2) where {T1<:NamedTuple, T2<:NamedTuple} +function rrule(::typeof(merge), nt1::T1, nt2::T2) where {T1<:NamedTuple,T2<:NamedTuple} y = merge(nt1, nt2) return y, MergePullback{T1,T2}() end diff --git a/test/rulesets/Base/base.jl b/test/rulesets/Base/base.jl index 2c8412a65..1e738a6a5 100644 --- a/test/rulesets/Base/base.jl +++ b/test/rulesets/Base/base.jl @@ -259,7 +259,7 @@ end end @testset "merge NamedTuple" begin - test_rrule(merge, (;a=1.0), (;b=2.0)) - test_rrule(merge, (;a=1.0), (;a=2.0)) + test_rrule(merge, (; a=1.0), (; b=2.0)) + test_rrule(merge, (; a=1.0), (; a=2.0)) end end