@@ -430,15 +430,17 @@ end
430
430
mutable struct MDemo
431
431
x:: Float64
432
432
end
433
- function ChainRulesCore. frule ((_, ȯbj, _, ẋ), :: typeof (setfield!), obj:: MDemo , field, x)
433
+ function ChainRulesCore. frule (
434
+ (_, ȯbj, _, ẋ), :: typeof (setfield!), obj:: MDemo , field, x
435
+ )
434
436
y = setfield! (obj, field, x)
435
437
ẏ = setproperty! (ȯbj, field, ẋ)
436
438
return y, ẏ
437
439
end
438
440
439
441
@testset " usecase" begin
440
442
obj = MDemo (99.0 )
441
- ∂obj = MutableTangent {MDemo} (;x= 1.5 )
443
+ ∂obj = MutableTangent {MDemo} (; x= 1.5 )
442
444
frule ((NoTangent (), ∂obj, NoTangent (), 10.0 ), setfield!, obj, :x , 95.0 )
443
445
@test ∂obj. x == 10.0
444
446
@test obj. x == 95.0
@@ -450,14 +452,14 @@ end
450
452
end
451
453
452
454
@testset " == and hash" begin
453
- @test MutableTangent {Any} (x= 1.0 ) == MutableTangent {MDemo} (x= 1.0 )
454
- @test MutableTangent {MDemo} (x= 1.0 ) == MutableTangent {Any} (x= 1.0 )
455
- @test MutableTangent {Any} (x= 2.0 ) != MutableTangent {MDemo} (x= 1.0 )
456
- @test MutableTangent {MDemo} (x= 1.0 ) != MutableTangent {Any} (x= 2.0 )
455
+ @test MutableTangent {Any} (; x= 1.0 ) == MutableTangent {MDemo} (; x= 1.0 )
456
+ @test MutableTangent {MDemo} (; x= 1.0 ) == MutableTangent {Any} (; x= 1.0 )
457
+ @test MutableTangent {Any} (; x= 2.0 ) != MutableTangent {MDemo} (; x= 1.0 )
458
+ @test MutableTangent {MDemo} (; x= 1.0 ) != MutableTangent {Any} (; x= 2.0 )
457
459
458
- nt = (;x= 1.0 )
459
- @test MutableTangent {typeof(nt)} (nt) != MutableTangent {MDemo} (x= 1.0 )
460
+ nt = (; x= 1.0 )
461
+ @test MutableTangent {typeof(nt)} (nt) != MutableTangent {MDemo} (; x= 1.0 )
460
462
461
- @test hash (MutableTangent {Any} (x= 1.0 )) == hash (MutableTangent {MDemo} (x= 1.0 ))
463
+ @test hash (MutableTangent {Any} (; x= 1.0 )) == hash (MutableTangent {MDemo} (; x= 1.0 ))
462
464
end
463
465
end
0 commit comments