@@ -143,16 +143,19 @@ struct NoSuperType end
143143
144144 @test ProjectTo (Ref (true )) isa ProjectTo{NoTangent}
145145 @test ProjectTo (Ref ([false ]' )) isa ProjectTo{NoTangent}
146+
147+ @test ProjectTo (Ref (1.0 ))(Ref (NoTangent ())) === NoTangent () # collapse all-zero
146148 end
147149
148150 @testset " Base: Tuple" begin
149151 pt1 = ProjectTo ((1.0 ,))
150- @test pt1 ((1 + im,)) == Tangent {Tuple{Float64}} (1.0 ,)
151- @test pt1 (pt1 ((1 ,))) == pt1 (pt1 ((1 ,))) # accepts correct Tangent
152- @test pt1 (Tangent {Any} (1 )) == pt1 ((1 ,)) # accepts Tangent{Any}
152+ @test @inferred ( pt1 ((1 + im,) )) == Tangent {Tuple{Float64}} (1.0 ,)
153+ @test @inferred ( pt1 (pt1 ((1 ,) ))) == pt1 (pt1 ((1 ,))) # accepts correct Tangent
154+ @test @inferred ( pt1 (Tangent {Any} (1 ) )) == pt1 ((1 ,)) # accepts Tangent{Any}
153155 @test pt1 ([1 ,]) == Tangent {Tuple{Float64}} (1.0 ,) # accepts Vector
154- @test pt1 (NoTangent ()) === NoTangent ()
155- @test pt1 (ZeroTangent ()) === ZeroTangent ()
156+ @test @inferred (pt1 (NoTangent ())) === NoTangent ()
157+ @test @inferred (pt1 (ZeroTangent ())) === ZeroTangent ()
158+ @test @inferred (pt1 ((NoTangent (),))) === NoTangent () # collapse all-zero
156159
157160 @test_throws Exception pt1 ([1 , 2 ]) # DimensionMismatch, wrong length
158161 @test_throws Exception pt1 ([])
0 commit comments