The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of RuntimeKit, reference v0.2.0 (374c90), with Swift 6.1 for macOS (SPM) on 10 Aug 2025 12:51:31 UTC.

Swift 6 data race errors: 1

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.65.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/nicked/RuntimeKit.git
Reference: v0.2.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/nicked/RuntimeKit
 * tag               v0.2.0     -> FETCH_HEAD
HEAD is now at 374c90e Added a TypeEncoding parser
Cloned https://github.com/nicked/RuntimeKit.git
Revision (git rev-parse @):
374c90e3ecf4c021540d2c18f11a4c553900b029
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/nicked/RuntimeKit.git at v0.2.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "runtimekit",
      "name": "RuntimeKit",
      "url": "https://github.com/nicked/RuntimeKit.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/RuntimeKit",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/nicked/RuntimeKit.git
[1/86] Fetching runtimekit
Fetched https://github.com/nicked/RuntimeKit.git from cache (0.66s)
Creating working copy for https://github.com/nicked/RuntimeKit.git
Working copy of https://github.com/nicked/RuntimeKit.git resolved at v0.2.0 (374c90e)
warning: '.resolve-product-dependencies': dependency 'runtimekit' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/nicked/RuntimeKit.git
https://github.com/nicked/RuntimeKit.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "RuntimeKit",
  "name" : "RuntimeKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "RuntimeKit",
      "targets" : [
        "RuntimeKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RuntimeKitTests",
      "module_type" : "SwiftTarget",
      "name" : "RuntimeKitTests",
      "path" : "Tests/RuntimeKitTests",
      "sources" : [
        "AttributesTests.swift",
        "Invocation/InvocationTests.swift",
        "Invocation/MethodSignatureTests.swift",
        "ObjCClassTests.swift",
        "ProtocolTests.swift",
        "Utils/TypeEncodingTests.swift"
      ],
      "target_dependencies" : [
        "RuntimeKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RuntimeKit",
      "module_type" : "SwiftTarget",
      "name" : "RuntimeKit",
      "path" : "Sources/RuntimeKit",
      "product_memberships" : [
        "RuntimeKit"
      ],
      "sources" : [
        "Invocation/Invocation.swift",
        "Invocation/MethodSignature.swift",
        "ObjCClass+Create.swift",
        "ObjCClass+Ivars.swift",
        "ObjCClass+Methods.swift",
        "ObjCClass+Properties.swift",
        "ObjCClass+Protocols.swift",
        "ObjCClass+RuntimeFuncs.swift",
        "ObjCClass.swift",
        "ObjCIvar.swift",
        "ObjCMethod.swift",
        "ObjCProperty.Attributes.swift",
        "ObjCProperty.swift",
        "ObjCProtocol+Create.swift",
        "ObjCProtocol+RuntimeFuncs.swift",
        "ObjCProtocol.swift",
        "RuntimeList/RuntimeFuncs.swift",
        "RuntimeList/RuntimeList.swift",
        "Utils/MethodTypeEncodings.swift",
        "Utils/Substring+ParseType.swift",
        "Utils/TypeEncoding.swift",
        "Utils/UnsafeBuffer+Utils.swift"
      ],
      "target_dependencies" : [
        "RuntimeFix"
      ],
      "type" : "library"
    },
    {
      "c99name" : "RuntimeFix",
      "module_type" : "ClangTarget",
      "name" : "RuntimeFix",
      "path" : "Sources/RuntimeFix",
      "product_memberships" : [
        "RuntimeKit"
      ],
      "sources" : [
        "RuntimeFix.m"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/3] Write sources
[1/3] Write swift-version-2F0A5646E1D333AE.txt
[2/3] Compiling RuntimeFix RuntimeFix.m
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/24] Emitting module RuntimeKit
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:34:12: error: type 'ObjCClass.Ivars' does not conform to protocol 'RuntimeClassFuncs'
 32 | public extension ObjCClass {
 33 |
 34 |     struct Ivars: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Ivars' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
 35 |         public let cls: ObjCClass
 36 |
    :
 51 |         }
 52 |
 53 |         public static let keyPath = \ObjCClass.ivars
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Ivars>> & Sendable'
 54 |     }
 55 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Ivars>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Ivars>>'
50 | }
51 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:56:12: error: type 'ObjCClass.Properties' does not conform to protocol 'RuntimeClassFuncs'
 54 |     }
 55 |
 56 |     struct Properties: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Properties' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
 57 |         public let cls: ObjCClass
 58 |
    :
 73 |         }
 74 |
 75 |         public static let keyPath = \ObjCClass.properties
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Properties>> & Sendable'
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Properties>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Properties>>'
50 | }
51 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:78:12: error: type 'ObjCClass.Methods' does not conform to protocol 'RuntimeClassFuncs'
 76 |     }
 77 |
 78 |     struct Methods: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Methods' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
 79 |         public let cls: ObjCClass
 80 |
    :
 95 |         }
 96 |
 97 |         public static let keyPath = \ObjCClass.methods
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Methods>> & Sendable'
 98 |     }
 99 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Methods>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Methods>>'
50 | }
51 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:100:12: error: type 'ObjCClass.Protocols' does not conform to protocol 'RuntimeClassFuncs'
 98 |     }
 99 |
100 |     struct Protocols: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Protocols' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
101 |         public let cls: ObjCClass
102 |
    :
118 |         }
119 |
120 |         public static let keyPath = \ObjCClass.protocols
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Protocols>> & Sendable'
121 |     }
122 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Protocols>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Protocols>>'
50 | }
51 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/Utils/TypeEncoding.swift:69:23: warning: static property 'id' is not concurrency-safe because non-'Sendable' type 'TypeEncoding' may have shared mutable state; this is an error in the Swift 6 language mode
 19 | /// Even the runtime fails to parse these encodings correctly. Since commas are used to delimit property attributes,
 20 | /// this also causes functions like `property_copyAttributeValue` to not work.
 21 | public indirect enum TypeEncoding: Equatable {
    |                      `- note: consider making enum 'TypeEncoding' conform to the 'Sendable' protocol
 22 |     // Standard scalars
 23 |     case char
    :
 67 |     case empty
 68 |
 69 |     public static let id = Self.object()
    |                       |- warning: static property 'id' is not concurrency-safe because non-'Sendable' type 'TypeEncoding' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'id' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 70 |
 71 |     public static func `struct`(_ name: String, _ types: TypeEncoding...) -> Self {
[5/26] Compiling RuntimeKit ObjCMethod.swift
[6/26] Compiling RuntimeKit ObjCProperty.Attributes.swift
[7/26] Compiling RuntimeKit TypeEncoding.swift
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/Utils/TypeEncoding.swift:69:23: warning: static property 'id' is not concurrency-safe because non-'Sendable' type 'TypeEncoding' may have shared mutable state; this is an error in the Swift 6 language mode
 19 | /// Even the runtime fails to parse these encodings correctly. Since commas are used to delimit property attributes,
 20 | /// this also causes functions like `property_copyAttributeValue` to not work.
 21 | public indirect enum TypeEncoding: Equatable {
    |                      `- note: consider making enum 'TypeEncoding' conform to the 'Sendable' protocol
 22 |     // Standard scalars
 23 |     case char
    :
 67 |     case empty
 68 |
 69 |     public static let id = Self.object()
    |                       |- warning: static property 'id' is not concurrency-safe because non-'Sendable' type 'TypeEncoding' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'id' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 70 |
 71 |     public static func `struct`(_ name: String, _ types: TypeEncoding...) -> Self {
[8/26] Compiling RuntimeKit UnsafeBuffer+Utils.swift
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/Utils/TypeEncoding.swift:69:23: warning: static property 'id' is not concurrency-safe because non-'Sendable' type 'TypeEncoding' may have shared mutable state; this is an error in the Swift 6 language mode
 19 | /// Even the runtime fails to parse these encodings correctly. Since commas are used to delimit property attributes,
 20 | /// this also causes functions like `property_copyAttributeValue` to not work.
 21 | public indirect enum TypeEncoding: Equatable {
    |                      `- note: consider making enum 'TypeEncoding' conform to the 'Sendable' protocol
 22 |     // Standard scalars
 23 |     case char
    :
 67 |     case empty
 68 |
 69 |     public static let id = Self.object()
    |                       |- warning: static property 'id' is not concurrency-safe because non-'Sendable' type 'TypeEncoding' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'id' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 70 |
 71 |     public static func `struct`(_ name: String, _ types: TypeEncoding...) -> Self {
[9/26] Compiling RuntimeKit RuntimeFuncs.swift
[10/26] Compiling RuntimeKit RuntimeList.swift
[11/26] Compiling RuntimeKit Invocation.swift
[12/26] Compiling RuntimeKit MethodSignature.swift
[13/26] Compiling RuntimeKit ObjCClass+Create.swift
[14/26] Compiling RuntimeKit ObjCClass+Protocols.swift
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:34:12: error: type 'ObjCClass.Ivars' does not conform to protocol 'RuntimeClassFuncs'
 32 | public extension ObjCClass {
 33 |
 34 |     struct Ivars: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Ivars' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
 35 |         public let cls: ObjCClass
 36 |
    :
 51 |         }
 52 |
 53 |         public static let keyPath = \ObjCClass.ivars
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Ivars>> & Sendable'
 54 |     }
 55 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Ivars>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Ivars>>'
50 | }
51 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:56:12: error: type 'ObjCClass.Properties' does not conform to protocol 'RuntimeClassFuncs'
 54 |     }
 55 |
 56 |     struct Properties: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Properties' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
 57 |         public let cls: ObjCClass
 58 |
    :
 73 |         }
 74 |
 75 |         public static let keyPath = \ObjCClass.properties
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Properties>> & Sendable'
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Properties>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Properties>>'
50 | }
51 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:78:12: error: type 'ObjCClass.Methods' does not conform to protocol 'RuntimeClassFuncs'
 76 |     }
 77 |
 78 |     struct Methods: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Methods' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
 79 |         public let cls: ObjCClass
 80 |
    :
 95 |         }
 96 |
 97 |         public static let keyPath = \ObjCClass.methods
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Methods>> & Sendable'
 98 |     }
 99 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Methods>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Methods>>'
50 | }
51 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:100:12: error: type 'ObjCClass.Protocols' does not conform to protocol 'RuntimeClassFuncs'
 98 |     }
 99 |
100 |     struct Protocols: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Protocols' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
101 |         public let cls: ObjCClass
102 |
    :
118 |         }
119 |
120 |         public static let keyPath = \ObjCClass.protocols
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Protocols>> & Sendable'
121 |     }
122 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Protocols>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Protocols>>'
50 | }
51 |
[15/26] Compiling RuntimeKit ObjCClass+RuntimeFuncs.swift
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:34:12: error: type 'ObjCClass.Ivars' does not conform to protocol 'RuntimeClassFuncs'
 32 | public extension ObjCClass {
 33 |
 34 |     struct Ivars: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Ivars' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
 35 |         public let cls: ObjCClass
 36 |
    :
 51 |         }
 52 |
 53 |         public static let keyPath = \ObjCClass.ivars
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Ivars>> & Sendable'
 54 |     }
 55 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Ivars>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Ivars>>'
50 | }
51 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:56:12: error: type 'ObjCClass.Properties' does not conform to protocol 'RuntimeClassFuncs'
 54 |     }
 55 |
 56 |     struct Properties: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Properties' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
 57 |         public let cls: ObjCClass
 58 |
    :
 73 |         }
 74 |
 75 |         public static let keyPath = \ObjCClass.properties
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Properties>> & Sendable'
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Properties>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Properties>>'
50 | }
51 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:78:12: error: type 'ObjCClass.Methods' does not conform to protocol 'RuntimeClassFuncs'
 76 |     }
 77 |
 78 |     struct Methods: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Methods' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
 79 |         public let cls: ObjCClass
 80 |
    :
 95 |         }
 96 |
 97 |         public static let keyPath = \ObjCClass.methods
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Methods>> & Sendable'
 98 |     }
 99 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Methods>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Methods>>'
50 | }
51 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/ObjCClass+RuntimeFuncs.swift:100:12: error: type 'ObjCClass.Protocols' does not conform to protocol 'RuntimeClassFuncs'
 98 |     }
 99 |
100 |     struct Protocols: RuntimeClassFuncs {
    |            |- error: type 'ObjCClass.Protocols' does not conform to protocol 'RuntimeClassFuncs'
    |            `- note: add stubs for conformance
101 |         public let cls: ObjCClass
102 |
    :
118 |         }
119 |
120 |         public static let keyPath = \ObjCClass.protocols
    |                           `- note: candidate has non-matching type 'any KeyPath<ObjCClass, RuntimeList<ObjCClass.Protocols>> & Sendable'
121 |     }
122 |
/Users/admin/builder/spi-builder-workspace/Sources/RuntimeKit/RuntimeList/RuntimeFuncs.swift:49:16: note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Protocols>>'
47 |     ///
48 |     /// - Note: Making this non-static adds a ton of retain/release calls.
49 |     static var keyPath: KeyPath<ObjCClass, RuntimeList<Self>> { get }
   |                `- note: protocol requires property 'keyPath' with type 'KeyPath<ObjCClass, RuntimeList<ObjCClass.Protocols>>'
50 | }
51 |
[16/26] Compiling RuntimeKit MethodTypeEncodings.swift
[17/26] Compiling RuntimeKit Substring+ParseType.swift
[18/26] Compiling RuntimeKit ObjCClass+Ivars.swift
[19/26] Compiling RuntimeKit ObjCClass+Methods.swift
[20/26] Compiling RuntimeKit ObjCClass+Properties.swift
[21/26] Compiling RuntimeKit ObjCClass.swift
[22/26] Compiling RuntimeKit ObjCIvar.swift
[23/26] Compiling RuntimeKit ObjCProperty.swift
[24/26] Compiling RuntimeKit ObjCProtocol+Create.swift
[25/26] Compiling RuntimeKit ObjCProtocol+RuntimeFuncs.swift
[26/26] Compiling RuntimeKit ObjCProtocol.swift
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/22] Emitting module RuntimeKit
[3/24] Compiling RuntimeKit ObjCClass.swift
[4/24] Compiling RuntimeKit ObjCIvar.swift
[5/24] Compiling RuntimeKit ObjCProtocol+RuntimeFuncs.swift
[6/24] Compiling RuntimeKit ObjCProtocol.swift
[7/24] Compiling RuntimeKit ObjCProperty.swift
[8/24] Compiling RuntimeKit ObjCProtocol+Create.swift
[9/24] Compiling RuntimeKit RuntimeFuncs.swift
[10/24] Compiling RuntimeKit RuntimeList.swift
[11/24] Compiling RuntimeKit MethodTypeEncodings.swift
[12/24] Compiling RuntimeKit Substring+ParseType.swift
[13/24] Compiling RuntimeKit ObjCClass+Ivars.swift
[14/24] Compiling RuntimeKit ObjCClass+Methods.swift
[15/24] Compiling RuntimeKit ObjCClass+Properties.swift
[16/24] Compiling RuntimeKit ObjCClass+Protocols.swift
[17/24] Compiling RuntimeKit ObjCClass+RuntimeFuncs.swift
[18/24] Compiling RuntimeKit ObjCMethod.swift
[19/24] Compiling RuntimeKit ObjCProperty.Attributes.swift
[20/24] Compiling RuntimeKit Invocation.swift
[21/24] Compiling RuntimeKit MethodSignature.swift
[22/24] Compiling RuntimeKit ObjCClass+Create.swift
[23/24] Compiling RuntimeKit TypeEncoding.swift
[24/24] Compiling RuntimeKit UnsafeBuffer+Utils.swift
Build complete! (1.49s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "RuntimeKit",
  "name" : "RuntimeKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "RuntimeKit",
      "targets" : [
        "RuntimeKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RuntimeKitTests",
      "module_type" : "SwiftTarget",
      "name" : "RuntimeKitTests",
      "path" : "Tests/RuntimeKitTests",
      "sources" : [
        "AttributesTests.swift",
        "Invocation/InvocationTests.swift",
        "Invocation/MethodSignatureTests.swift",
        "ObjCClassTests.swift",
        "ProtocolTests.swift",
        "Utils/TypeEncodingTests.swift"
      ],
      "target_dependencies" : [
        "RuntimeKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RuntimeKit",
      "module_type" : "SwiftTarget",
      "name" : "RuntimeKit",
      "path" : "Sources/RuntimeKit",
      "product_memberships" : [
        "RuntimeKit"
      ],
      "sources" : [
        "Invocation/Invocation.swift",
        "Invocation/MethodSignature.swift",
        "ObjCClass+Create.swift",
        "ObjCClass+Ivars.swift",
        "ObjCClass+Methods.swift",
        "ObjCClass+Properties.swift",
        "ObjCClass+Protocols.swift",
        "ObjCClass+RuntimeFuncs.swift",
        "ObjCClass.swift",
        "ObjCIvar.swift",
        "ObjCMethod.swift",
        "ObjCProperty.Attributes.swift",
        "ObjCProperty.swift",
        "ObjCProtocol+Create.swift",
        "ObjCProtocol+RuntimeFuncs.swift",
        "ObjCProtocol.swift",
        "RuntimeList/RuntimeFuncs.swift",
        "RuntimeList/RuntimeList.swift",
        "Utils/MethodTypeEncodings.swift",
        "Utils/Substring+ParseType.swift",
        "Utils/TypeEncoding.swift",
        "Utils/UnsafeBuffer+Utils.swift"
      ],
      "target_dependencies" : [
        "RuntimeFix"
      ],
      "type" : "library"
    },
    {
      "c99name" : "RuntimeFix",
      "module_type" : "ClangTarget",
      "name" : "RuntimeFix",
      "path" : "Sources/RuntimeFix",
      "product_memberships" : [
        "RuntimeKit"
      ],
      "sources" : [
        "RuntimeFix.m"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/nicked/runtimekit/v0.2.0
Repository:               nicked/RuntimeKit
Swift version used:       6.1
Target:                   RuntimeKit
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/swift-docc-render-artifact/.git/
From https://github.com/swiftlang/swift-docc-render-artifact
 * branch            4633b45fc732d8c55568be09dd852f9dc1582c25 -> FETCH_HEAD
HEAD is now at 4633b45 Update the artifact
Cloned https://github.com/swiftlang/swift-docc-render-artifact
Extracting symbol information for 'RuntimeKit'...
Finished extracting symbol information for 'RuntimeKit'. (2.19s)
Building documentation for 'RuntimeKit'...
warning: Parameter 'imp' is missing documentation
  --> Sources/RuntimeKit/ObjCClass+Methods.swift:30:118-30:118
28 |     /// To add a class method, call `self.classMethods.add(with:types:imp:canReplace:)`.
29 |     /// - Returns: Returns `false` if a method with the same name already exists and `canReplace` was not set.
30 +     /// - Parameter types: The full method encoding including the return type, receiver, selector and argument types.
   |                                                                                                                      ╰─suggestion: Document 'imp' parameter
31 |     /// - Returns: Returns `false` if a method with the same name already exists and `canReplace` was not set.
32 |     func add(with selector: Selector, types: MethodTypeEncodings, imp: IMP, canReplace: Bool = false) -> Bool {
warning: Parameter 'canReplace' is missing documentation
  --> Sources/RuntimeKit/ObjCClass+Methods.swift:30:118-30:118
28 |     /// To add a class method, call `self.classMethods.add(with:types:imp:canReplace:)`.
29 |     /// - Returns: Returns `false` if a method with the same name already exists and `canReplace` was not set.
30 +     /// - Parameter types: The full method encoding including the return type, receiver, selector and argument types.
   |                                                                                                                      ╰─suggestion: Document 'canReplace' parameter
31 |     /// - Returns: Returns `false` if a method with the same name already exists and `canReplace` was not set.
32 |     func add(with selector: Selector, types: MethodTypeEncodings, imp: IMP, canReplace: Bool = false) -> Bool {
warning: Parameter 'selector' is missing documentation
  --> Sources/RuntimeKit/ObjCClass+Methods.swift:30:118-30:118
28 |     /// To add a class method, call `self.classMethods.add(with:types:imp:canReplace:)`.
29 |     /// - Returns: Returns `false` if a method with the same name already exists and `canReplace` was not set.
30 +     /// - Parameter types: The full method encoding including the return type, receiver, selector and argument types.
   |         ╰─suggestion: Document 'selector' parameter
31 |     /// - Returns: Returns `false` if a method with the same name already exists and `canReplace` was not set.
32 |     func add(with selector: Selector, types: MethodTypeEncodings, imp: IMP, canReplace: Bool = false) -> Bool {
warning: Parameter 'canReplace' is missing documentation
  --> Sources/RuntimeKit/ObjCClass+Methods.swift:47:59-47:59
45 |     /// - Parameter types: The full method encoding including the return type, receiver, selector and argument types.
46 |     /// - Parameter block: A closure that accepts an instance of this class (the receiver) as the first argument.
47 +     ///     It must be declared with `@convention(block)`.
   |                                                           ╰─suggestion: Document 'canReplace' parameter
48 |     /// - Returns: Returns `false` if a method with the same name already exists and `canReplace` was not set.
49 |     func add(with selector: Selector, types: MethodTypeEncodings, block: Any, canReplace: Bool = false) -> Bool {
warning: Parameter 'selector' is missing documentation
  --> Sources/RuntimeKit/ObjCClass+Methods.swift:47:59-47:59
45 |     /// - Parameter types: The full method encoding including the return type, receiver, selector and argument types.
   |         ╰─suggestion: Document 'selector' parameter
46 |     /// - Parameter block: A closure that accepts an instance of this class (the receiver) as the first argument.
47 +     ///     It must be declared with `@convention(block)`.
48 |     /// - Returns: Returns `false` if a method with the same name already exists and `canReplace` was not set.
49 |     func add(with selector: Selector, types: MethodTypeEncodings, block: Any, canReplace: Bool = false) -> Bool {
warning: Parameter 'other' is missing documentation
   --> Sources/RuntimeKit/ObjCClass.swift:119:130-119:130
117 |
118 |     /// Returns a Boolean value that indicates whether the receiving class is a subclass of a given class.
119 +     /// - Parameter directOnly: Whether to test for a direct subclass relationship only or to also include ancestor superclasses.
    |         ╰─suggestion: Document 'other' parameter
120 |     func isSubclass(of other: ObjCClass, directOnly: Bool = false) -> Bool {
121 |         if directOnly {
Finished building documentation for 'RuntimeKit' (0.23s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/nicked/runtimekit/v0.2.0
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.66s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.5 (3.14s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.75s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.38s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.5
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Building for debugging...
[0/8] Write sources
[2/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version-2F0A5646E1D333AE.txt
[6/53] Compiling SymbolKit Mixin+Equals.swift
[7/53] Compiling SymbolKit Mixin+Hash.swift
[8/53] Compiling SymbolKit Mixin.swift
[9/53] Compiling SymbolKit LineList.swift
[10/53] Compiling SymbolKit Position.swift
[11/57] Compiling SymbolKit Identifier.swift
[12/57] Compiling SymbolKit KindIdentifier.swift
[13/57] Compiling SymbolKit Location.swift
[14/57] Compiling SymbolKit Mutability.swift
[15/57] Compiling SymbolKit GenericConstraint.swift
[16/57] Compiling SymbolKit GenericParameter.swift
[17/57] Compiling SymbolKit Generics.swift
[18/57] Compiling SymbolKit Namespace.swift
[19/57] Compiling SymbolKit Names.swift
[20/57] Compiling SymbolKit SPI.swift
[21/57] Compiling SymbolKit Snippet.swift
[22/57] Compiling SymbolKit Extension.swift
[23/57] Compiling SymbolKit SemanticVersion.swift
[24/57] Compiling SymbolKit AccessControl.swift
[25/57] Compiling SymbolKit Availability.swift
[26/57] Compiling SymbolKit AvailabilityItem.swift
[27/57] Compiling SymbolKit Domain.swift
[28/57] Compiling Snippets Snippet.swift
[29/57] Emitting module Snippets
[30/57] Compiling Snippets SnippetParser.swift
[31/57] Emitting module SymbolKit
[32/57] Compiling SymbolKit SourceRange.swift
[33/57] Compiling SymbolKit Metadata.swift
[34/57] Compiling SymbolKit Module.swift
[35/57] Compiling SymbolKit OperatingSystem.swift
[36/57] Compiling SymbolKit Platform.swift
[37/57] Compiling SymbolKit Relationship.swift
[38/57] Compiling SymbolKit RelationshipKind.swift
[39/57] Compiling SymbolKit SourceOrigin.swift
[40/57] Compiling SymbolKit GenericConstraints.swift
[41/57] Compiling SymbolKit Swift.swift
[42/57] Compiling SymbolKit DeclarationFragments.swift
[43/57] Compiling SymbolKit Fragment.swift
[44/57] Compiling SymbolKit FragmentKind.swift
[45/57] Compiling SymbolKit FunctionParameter.swift
[46/57] Compiling SymbolKit FunctionSignature.swift
[47/57] Compiling SymbolKit Symbol.swift
[48/57] Compiling SymbolKit SymbolKind.swift
[49/57] Compiling SymbolKit SymbolGraph.swift
[50/57] Compiling SymbolKit GraphCollector.swift
[51/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[52/57] Compiling SymbolKit UnifiedSymbol.swift
[53/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[54/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[55/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[56/61] Compiling snippet_extract URL+Status.swift
[57/61] Emitting module snippet_extract
[58/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.17s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
Build of target: 'RuntimeKit' complete! (0.22s)
     628
5	/Users/admin/builder/spi-builder-workspace/.docs/nicked/runtimekit/v0.2.0
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/nicked/runtimekit/v0.2.0
File count: 628
Doc size:   5.0MB
Preparing doc bundle ...
Uploading prod-nicked-runtimekit-v0.2.0-9d444083.zip to s3://spi-docs-inbox/prod-nicked-runtimekit-v0.2.0-9d444083.zip
Copying... [13%]
Copying... [20%]
Copying... [33%]
Copying... [40%]
Copying... [53%]
Copying... [60%]
Copying... [74%]
Copying... [80%]
Copying... [94%]
Copying... [100%]
Done.