 
 extension ObjectEncoder.EncodingStrategy where T == Double {
     public static let throwOnNonConformingFloat = ObjectEncoder.DoubleEncodingStrategy.custom {
-        guard let encoder = $1 as? _Encoder else {
+        guard let encoder = $1 as? ObjectEncoder.Encoder else {
             fatalError("unreachable")
         }
         guard !$0.isInfinite && !$0.isNaN else {

struct _KeyedEncodingContainer<K: CodingKey> : KeyedEncodingContainerProtocol { // swiftlint:disable:this type_name
    typealias Key = K

    private let encoder: _Encoder

    fileprivate init(referencing encoder: _Encoder) {
        self.encoder = encoder
    }



extension ObjectEncoder.EncodingStrategy where T == Float {
    public static let throwOnNonConformingFloat = ObjectEncoder.FloatEncodingStrategy.custom {
        guard let encoder = $1 as? ObjectEncoder.Encoder else {
            fatalError("unreachable")
        }
        guard !$0.isInfinite && !$0.isNaN else {
