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