Skip to content

Commit d0a3b42

Browse files
committed
Use triple registration
1 parent 12a37aa commit d0a3b42

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

test/IntegrationCompilationTests/Library.fs

+7-10
Original file line numberDiff line numberDiff line change
@@ -557,23 +557,19 @@ module TestInterfaces =
557557
return { Brand = brand; MaxSpeed = maxSpeed; MaxLoad = maxLoad; Extra = extra }
558558
}
559559

560-
let ivehicleObjCodec () = codec {
561-
Car.ObjCodec () <.< ((fun (x: Car ) -> Ok (x :> IVehicle)) <-> fun (x: IVehicle) -> x :?> Car)
562-
Truck.ObjCodec () <.< ((fun (x: Truck) -> Ok (x :> IVehicle)) <-> fun (x: IVehicle) -> x :?> Truck) }
563-
564560
type Garage = { Vehicle : IVehicle } with
565561
static member get_Codec () = ofObjCodec <| codec {
566-
let! v = jreqWith (ofObjCodec (ivehicleObjCodec ())) "Vehicle" (fun x -> Some x.Vehicle)
562+
let! v = jreq "Vehicle" (fun x -> Some x.Vehicle)
567563
return { Vehicle = v} }
568564

569565
let car = Car (Brand = "Volvo", MaxSpeed = 120.0) :> IVehicle
570566
let truck = { Brand = "Ford" ; MaxSpeed = 100.0; MaxLoad = 2500.0; Extra = (1, 2, 3, 4, 5, 6, 7, 8) } :> IVehicle
571567
let gcar = { Vehicle = car }
572568
let gtruck = { Vehicle = truck }
573-
574-
575569

576-
// do ICodecInterface<IVehicle>.RegisterCodec<AdHocEncoding, Car> Car.ObjCodec
570+
do ICodecInterface<IVehicle>.RegisterCodec<Fleece.SystemJson.Encoding , Car> Car.ObjCodec
571+
do ICodecInterface<IVehicle>.RegisterCodec<Fleece.Newtonsoft.Encoding , Car> Car.ObjCodec
572+
do ICodecInterface<IVehicle>.RegisterCodec<Fleece.SystemTextJson.Encoding, Car> Car.ObjCodec
577573

578574
let stjGCarJson = Fleece.SystemTextJson.Operators.toJsonText gcar
579575
let stjCarJson = Fleece.SystemTextJson.Operators.toJsonText car
@@ -583,7 +579,9 @@ module TestInterfaces =
583579
Assert.StringContains ("", "brand", stjCarJson)
584580
Assert.StringContains ("", "brand", stjGCarJson)
585581

586-
// do ICodecInterface<IVehicle>.RegisterCodec<AdHocEncoding, Truck> Truck.ObjCodec
582+
do ICodecInterface<IVehicle>.RegisterCodec<Fleece.SystemJson.Encoding , Truck.ObjCodec
583+
do ICodecInterface<IVehicle>.RegisterCodec<Fleece.Newtonsoft.Encoding , Truck.ObjCodec
584+
do ICodecInterface<IVehicle>.RegisterCodec<Fleece.SystemTextJson.Encoding, Truck.ObjCodec
587585

588586
let stjGTruckJson = Fleece.SystemTextJson.Operators.toJsonText gtruck
589587
let stjTruckJson = Fleece.SystemTextJson.Operators.toJsonText truck
@@ -677,4 +675,3 @@ module TestDateTime =
677675
let json = toJsonText x
678676
Assert.Equal ("DateOnly", "\"2022-05-22\"", json)
679677
#endif
680-

0 commit comments

Comments
 (0)