This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of ObjectEncoder with Swift 6.0 for Linux.

Swift 6 data race errors: 21

Build Command

bash -c docker run --rm -v "checkouts-4609320-0":/host -w "$workDir" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/norio-nomura/ObjectEncoder.git
Reference: master
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/norio-nomura/ObjectEncoder
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 91461be [GitHub Actions] Update action-swiftlint to 3.0.1
Cloned https://github.com/norio-nomura/ObjectEncoder.git
Revision (git rev-parse @):
91461bedfaee24f418a74adf6b9063fe59907aa2
SUCCESS checkout https://github.com/norio-nomura/ObjectEncoder.git at master
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $workDir
https://github.com/norio-nomura/ObjectEncoder.git
Running build ...
bash -c docker run --rm -v "checkouts-4609320-0":/host -w "$workDir" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/6] Compiling ObjectEncoder JSON.swift
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:397:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
395 |
396 | extension ObjectEncoder.EncodingStrategy where T == Decimal {
397 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<Decimal>.custom { decimal, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
398 |         encoder.object = NSDecimalNumber(decimal: decimal)
399 |     }
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:403:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
401 |
402 | extension ObjectEncoder.EncodingStrategy where T == Double {
403 |     public static let throwOnNonConformingFloat = ObjectEncoder.DoubleEncodingStrategy.custom { double, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
404 |         guard !double.isInfinite && !double.isNaN else {
405 |             throw _invalidFloatingPointValue(double, at: encoder.codingPath)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:428:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
426 |
427 | extension ObjectEncoder.EncodingStrategy where T == Float {
428 |     public static let throwOnNonConformingFloat = ObjectEncoder.FloatEncodingStrategy.custom { float, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
429 |         guard !float.isInfinite && !float.isNaN else {
430 |             throw _invalidFloatingPointValue(float, at: encoder.codingPath)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:453:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
451 |
452 | extension ObjectEncoder.EncodingStrategy where T == URL {
453 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<URL>.custom { url, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
454 |         var container = encoder.singleValueContainer()
455 |         try container.encode(url.absoluteString)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:349:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
347 | extension ObjectEncoder.EncodingStrategy where T == Data {
348 |     /// Defer to `Data` for choosing an encoding.
349 |     public static let deferredToData: ObjectEncoder.DataEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
350 |
351 |     /// Encoded the `Data` as a Base64-encoded string. This is the default strategy.
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:366:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
364 | extension ObjectEncoder.EncodingStrategy where T == Date {
365 |     /// Defer to `Date` for choosing an encoding. This is the default strategy.
366 |     public static let deferredToDate: ObjectEncoder.DateEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
367 |
368 |     /// Encode the `Date` as a UNIX timestamp (as a `Double`).
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:402:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
400 |
401 | extension ObjectDecoder.DecodingStrategy where T == Decimal {
402 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<Decimal>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
403 |         if let decimal = decoder.object as? Decimal {
404 |             return decimal
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:412:23: warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
410 |
411 | extension ObjectDecoder.DecodingStrategy where T == Double {
412 |     public static let deferredToDouble: ObjectDecoder.DoubleDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDouble' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
413 |
414 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:435:23: warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
433 |
434 | extension ObjectDecoder.DecodingStrategy where T == Float {
435 |     public static let deferredToFloat: ObjectDecoder.FloatDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:458:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
456 |
457 | extension ObjectDecoder.DecodingStrategy where T == URL {
458 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<URL>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
459 |         guard let url = URL(string: try String(from: decoder)) else {
460 |             throw _dataCorrupted(at: decoder.codingPath, "Invalid URL string.")
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:357:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
355 | extension ObjectDecoder.DecodingStrategy where T == Data {
356 |     /// Defer to `Data` for decoding.
357 |     public static let deferredToData: ObjectDecoder.DataDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
358 |
359 |     /// Decode the `Data` from a Base64-encoded string. This is the default strategy.
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:370:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
368 | extension ObjectDecoder.DecodingStrategy where T == Date {
369 |     /// Defer to `Date` for decoding.
370 |     public static let deferredToDate: ObjectDecoder.DateDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
371 |
372 |     /// Decode the `Date` as a UNIX timestamp from a `Double`.
[4/6] Compiling ObjectEncoder Decoder.swift
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:357:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
355 | extension ObjectDecoder.DecodingStrategy where T == Data {
356 |     /// Defer to `Data` for decoding.
357 |     public static let deferredToData: ObjectDecoder.DataDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
358 |
359 |     /// Decode the `Data` from a Base64-encoded string. This is the default strategy.
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:360:23: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
358 |
359 |     /// Decode the `Data` from a Base64-encoded string. This is the default strategy.
360 |     public static let base64 = ObjectDecoder.DataDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'base64' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
361 |         guard let data = Data(base64Encoded: try String(from: decoder)) else {
362 |             throw _dataCorrupted(at: decoder.codingPath, "Encountered Data is not valid Base64.")
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:370:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
368 | extension ObjectDecoder.DecodingStrategy where T == Date {
369 |     /// Defer to `Date` for decoding.
370 |     public static let deferredToDate: ObjectDecoder.DateDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
371 |
372 |     /// Decode the `Date` as a UNIX timestamp from a `Double`.
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:373:23: warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
371 |
372 |     /// Decode the `Date` as a UNIX timestamp from a `Double`.
373 |     public static let secondsSince1970 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'secondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
374 |         Date(timeIntervalSince1970: try Double(from: decoder))
375 |     }
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:378:23: warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
376 |
377 |     /// Decode the `Date` as UNIX millisecond timestamp from a `Double`.
378 |     public static let millisecondsSince1970 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'millisecondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
379 |         Date(timeIntervalSince1970: try Double(from: decoder) / 1000.0)
380 |     }
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:383:23: warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
381 |     /// Decode the `Date` as an ISO-8601-formatted string (in RFC 3339 format).
382 |     @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
383 |     public static let iso8601 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'iso8601' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
384 |         guard let date = iso8601Formatter.date(from: try String(from: decoder)) else {
385 |             throw _dataCorrupted(at: decoder.codingPath, "Expected date string to be ISO8601-formatted.")
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:358:5: warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
356 |
357 | @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
358 | var iso8601Formatter: ISO8601DateFormatter = {
    |     |- warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: convert 'iso8601Formatter' to a 'let' constant to make 'Sendable' shared state immutable
    |     |- note: annotate 'iso8601Formatter' with '@MainActor' if property should only be accessed from the main actor
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |     let formatter = ISO8601DateFormatter()
360 |     formatter.formatOptions = .withInternetDateTime
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:402:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
400 |
401 | extension ObjectDecoder.DecodingStrategy where T == Decimal {
402 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<Decimal>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
403 |         if let decimal = decoder.object as? Decimal {
404 |             return decimal
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:412:23: warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
410 |
411 | extension ObjectDecoder.DecodingStrategy where T == Double {
412 |     public static let deferredToDouble: ObjectDecoder.DoubleDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDouble' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
413 |
414 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:435:23: warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
433 |
434 | extension ObjectDecoder.DecodingStrategy where T == Float {
435 |     public static let deferredToFloat: ObjectDecoder.FloatDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:458:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
456 |
457 | extension ObjectDecoder.DecodingStrategy where T == URL {
458 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<URL>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
459 |         guard let url = URL(string: try String(from: decoder)) else {
460 |             throw _dataCorrupted(at: decoder.codingPath, "Invalid URL string.")
[5/6] Compiling ObjectEncoder Encoder.swift
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:349:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
347 | extension ObjectEncoder.EncodingStrategy where T == Data {
348 |     /// Defer to `Data` for choosing an encoding.
349 |     public static let deferredToData: ObjectEncoder.DataEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
350 |
351 |     /// Encoded the `Data` as a Base64-encoded string. This is the default strategy.
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:352:23: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
350 |
351 |     /// Encoded the `Data` as a Base64-encoded string. This is the default strategy.
352 |     public static let base64 = ObjectEncoder.DataEncodingStrategy.custom {
    |                       |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'base64' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
353 |         try $0.base64EncodedString().encode(to: $1)
354 |     }
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:358:5: warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
356 |
357 | @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
358 | var iso8601Formatter: ISO8601DateFormatter = {
    |     |- warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: convert 'iso8601Formatter' to a 'let' constant to make 'Sendable' shared state immutable
    |     |- note: annotate 'iso8601Formatter' with '@MainActor' if property should only be accessed from the main actor
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |     let formatter = ISO8601DateFormatter()
360 |     formatter.formatOptions = .withInternetDateTime
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:366:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
364 | extension ObjectEncoder.EncodingStrategy where T == Date {
365 |     /// Defer to `Date` for choosing an encoding. This is the default strategy.
366 |     public static let deferredToDate: ObjectEncoder.DateEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
367 |
368 |     /// Encode the `Date` as a UNIX timestamp (as a `Double`).
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:369:23: warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
367 |
368 |     /// Encode the `Date` as a UNIX timestamp (as a `Double`).
369 |     public static let secondsSince1970 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'secondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
370 |         var container = encoder.singleValueContainer()
371 |         try container.encode(date.timeIntervalSince1970)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:375:23: warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
373 |
374 |     /// Encode the `Date` as UNIX millisecond timestamp (as a `Double`).
375 |     public static let millisecondsSince1970 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'millisecondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
376 |         var container = encoder.singleValueContainer()
377 |         try container.encode(1000.0 * date.timeIntervalSince1970)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:382:23: warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
380 |     /// Encode the `Date` as an ISO-8601-formatted string (in RFC 3339 format).
381 |     @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
382 |     public static let iso8601 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'iso8601' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
383 |         var container = encoder.singleValueContainer()
384 |         try container.encode(iso8601Formatter.string(from: date))
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:397:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
395 |
396 | extension ObjectEncoder.EncodingStrategy where T == Decimal {
397 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<Decimal>.custom { decimal, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
398 |         encoder.object = NSDecimalNumber(decimal: decimal)
399 |     }
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:403:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
401 |
402 | extension ObjectEncoder.EncodingStrategy where T == Double {
403 |     public static let throwOnNonConformingFloat = ObjectEncoder.DoubleEncodingStrategy.custom { double, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
404 |         guard !double.isInfinite && !double.isNaN else {
405 |             throw _invalidFloatingPointValue(double, at: encoder.codingPath)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:428:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
426 |
427 | extension ObjectEncoder.EncodingStrategy where T == Float {
428 |     public static let throwOnNonConformingFloat = ObjectEncoder.FloatEncodingStrategy.custom { float, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
429 |         guard !float.isInfinite && !float.isNaN else {
430 |             throw _invalidFloatingPointValue(float, at: encoder.codingPath)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:453:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
451 |
452 | extension ObjectEncoder.EncodingStrategy where T == URL {
453 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<URL>.custom { url, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
454 |         var container = encoder.singleValueContainer()
455 |         try container.encode(url.absoluteString)
[6/6] Emitting module ObjectEncoder
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:357:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
355 | extension ObjectDecoder.DecodingStrategy where T == Data {
356 |     /// Defer to `Data` for decoding.
357 |     public static let deferredToData: ObjectDecoder.DataDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
358 |
359 |     /// Decode the `Data` from a Base64-encoded string. This is the default strategy.
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:360:23: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
358 |
359 |     /// Decode the `Data` from a Base64-encoded string. This is the default strategy.
360 |     public static let base64 = ObjectDecoder.DataDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'base64' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
361 |         guard let data = Data(base64Encoded: try String(from: decoder)) else {
362 |             throw _dataCorrupted(at: decoder.codingPath, "Encountered Data is not valid Base64.")
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:370:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
368 | extension ObjectDecoder.DecodingStrategy where T == Date {
369 |     /// Defer to `Date` for decoding.
370 |     public static let deferredToDate: ObjectDecoder.DateDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
371 |
372 |     /// Decode the `Date` as a UNIX timestamp from a `Double`.
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:373:23: warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
371 |
372 |     /// Decode the `Date` as a UNIX timestamp from a `Double`.
373 |     public static let secondsSince1970 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'secondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
374 |         Date(timeIntervalSince1970: try Double(from: decoder))
375 |     }
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:378:23: warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
376 |
377 |     /// Decode the `Date` as UNIX millisecond timestamp from a `Double`.
378 |     public static let millisecondsSince1970 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'millisecondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
379 |         Date(timeIntervalSince1970: try Double(from: decoder) / 1000.0)
380 |     }
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:383:23: warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
381 |     /// Decode the `Date` as an ISO-8601-formatted string (in RFC 3339 format).
382 |     @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
383 |     public static let iso8601 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'iso8601' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
384 |         guard let date = iso8601Formatter.date(from: try String(from: decoder)) else {
385 |             throw _dataCorrupted(at: decoder.codingPath, "Expected date string to be ISO8601-formatted.")
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:358:5: warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
356 |
357 | @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
358 | var iso8601Formatter: ISO8601DateFormatter = {
    |     |- warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: convert 'iso8601Formatter' to a 'let' constant to make 'Sendable' shared state immutable
    |     |- note: annotate 'iso8601Formatter' with '@MainActor' if property should only be accessed from the main actor
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |     let formatter = ISO8601DateFormatter()
360 |     formatter.formatOptions = .withInternetDateTime
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:402:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
400 |
401 | extension ObjectDecoder.DecodingStrategy where T == Decimal {
402 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<Decimal>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
403 |         if let decimal = decoder.object as? Decimal {
404 |             return decimal
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:412:23: warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
410 |
411 | extension ObjectDecoder.DecodingStrategy where T == Double {
412 |     public static let deferredToDouble: ObjectDecoder.DoubleDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDouble' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
413 |
414 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:435:23: warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
433 |
434 | extension ObjectDecoder.DecodingStrategy where T == Float {
435 |     public static let deferredToFloat: ObjectDecoder.FloatDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/host/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:458:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
456 |
457 | extension ObjectDecoder.DecodingStrategy where T == URL {
458 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<URL>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
459 |         guard let url = URL(string: try String(from: decoder)) else {
460 |             throw _dataCorrupted(at: decoder.codingPath, "Invalid URL string.")
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:349:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
347 | extension ObjectEncoder.EncodingStrategy where T == Data {
348 |     /// Defer to `Data` for choosing an encoding.
349 |     public static let deferredToData: ObjectEncoder.DataEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
350 |
351 |     /// Encoded the `Data` as a Base64-encoded string. This is the default strategy.
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:352:23: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
350 |
351 |     /// Encoded the `Data` as a Base64-encoded string. This is the default strategy.
352 |     public static let base64 = ObjectEncoder.DataEncodingStrategy.custom {
    |                       |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'base64' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
353 |         try $0.base64EncodedString().encode(to: $1)
354 |     }
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:366:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
364 | extension ObjectEncoder.EncodingStrategy where T == Date {
365 |     /// Defer to `Date` for choosing an encoding. This is the default strategy.
366 |     public static let deferredToDate: ObjectEncoder.DateEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
367 |
368 |     /// Encode the `Date` as a UNIX timestamp (as a `Double`).
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:369:23: warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
367 |
368 |     /// Encode the `Date` as a UNIX timestamp (as a `Double`).
369 |     public static let secondsSince1970 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'secondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
370 |         var container = encoder.singleValueContainer()
371 |         try container.encode(date.timeIntervalSince1970)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:375:23: warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
373 |
374 |     /// Encode the `Date` as UNIX millisecond timestamp (as a `Double`).
375 |     public static let millisecondsSince1970 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'millisecondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
376 |         var container = encoder.singleValueContainer()
377 |         try container.encode(1000.0 * date.timeIntervalSince1970)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:382:23: warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
380 |     /// Encode the `Date` as an ISO-8601-formatted string (in RFC 3339 format).
381 |     @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
382 |     public static let iso8601 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'iso8601' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
383 |         var container = encoder.singleValueContainer()
384 |         try container.encode(iso8601Formatter.string(from: date))
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:397:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
395 |
396 | extension ObjectEncoder.EncodingStrategy where T == Decimal {
397 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<Decimal>.custom { decimal, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
398 |         encoder.object = NSDecimalNumber(decimal: decimal)
399 |     }
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:403:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
401 |
402 | extension ObjectEncoder.EncodingStrategy where T == Double {
403 |     public static let throwOnNonConformingFloat = ObjectEncoder.DoubleEncodingStrategy.custom { double, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
404 |         guard !double.isInfinite && !double.isNaN else {
405 |             throw _invalidFloatingPointValue(double, at: encoder.codingPath)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:428:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
426 |
427 | extension ObjectEncoder.EncodingStrategy where T == Float {
428 |     public static let throwOnNonConformingFloat = ObjectEncoder.FloatEncodingStrategy.custom { float, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
429 |         guard !float.isInfinite && !float.isNaN else {
430 |             throw _invalidFloatingPointValue(float, at: encoder.codingPath)
/host/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:453:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
451 |
452 | extension ObjectEncoder.EncodingStrategy where T == URL {
453 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<URL>.custom { url, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
454 |         var container = encoder.singleValueContainer()
455 |         try container.encode(url.absoluteString)
Build complete! (15.72s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "ObjectEncoder",
  "name" : "ObjectEncoder",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "ObjectEncoder",
      "targets" : [
        "ObjectEncoder"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ObjectEncoderTests",
      "module_type" : "SwiftTarget",
      "name" : "ObjectEncoderTests",
      "path" : "Tests/ObjectEncoderTests",
      "sources" : [
        "ObjectEncoderTests.swift",
        "TestJSONEncoder.swift"
      ],
      "target_dependencies" : [
        "ObjectEncoder"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ObjectEncoder",
      "module_type" : "SwiftTarget",
      "name" : "ObjectEncoder",
      "path" : "Sources/ObjectEncoder",
      "product_memberships" : [
        "ObjectEncoder"
      ],
      "sources" : [
        "Decoder.swift",
        "Encoder.swift",
        "JSON.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.0"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.