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

Failed to build Thingy, reference 3.0.2 (1ed5bf), with Swift 6.1 for macOS (SPM) on 25 Apr 2025 20:57:52 UTC.

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bojan/Thingy.git
Reference: 3.0.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bojan/Thingy
 * tag               3.0.2      -> FETCH_HEAD
HEAD is now at 1ed5bfc Update the documentation.
Cloned https://github.com/bojan/Thingy.git
Revision (git rev-parse @):
1ed5bfc174be905e4aed9c15269c17e3e6facec1
SUCCESS checkout https://github.com/bojan/Thingy.git at 3.0.2
========================================
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": "thingy",
      "name": "Thingy",
      "url": "https://github.com/bojan/Thingy.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Thingy",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/bojan/Thingy.git
[1/1177] Fetching thingy
Fetched https://github.com/bojan/Thingy.git from cache (0.86s)
Creating working copy for https://github.com/bojan/Thingy.git
Working copy of https://github.com/bojan/Thingy.git resolved at 3.0.2 (1ed5bfc)
warning: '.resolve-product-dependencies': dependency 'thingy' 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/bojan/Thingy.git
https://github.com/bojan/Thingy.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Thingy",
  "name" : "Thingy",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "8.0"
    },
    {
      "name" : "tvos",
      "version" : "9.0"
    },
    {
      "name" : "watchos",
      "version" : "2.0"
    }
  ],
  "products" : [
    {
      "name" : "Thingy",
      "targets" : [
        "Thingy"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ThingyTests",
      "module_type" : "SwiftTarget",
      "name" : "ThingyTests",
      "path" : "Tests",
      "sources" : [
        "ComparisonTests.swift",
        "DeviceTests.swift",
        "RawDeviceTests.swift",
        "XCTest+Throwable.swift"
      ],
      "target_dependencies" : [
        "Thingy"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Thingy",
      "module_type" : "SwiftTarget",
      "name" : "Thingy",
      "path" : "Sources",
      "product_memberships" : [
        "Thingy"
      ],
      "sources" : [
        "Device.swift",
        "Extensions/Device+Comparison.swift",
        "Extensions/Device+Display.swift",
        "Extensions/Device+Family.swift",
        "Extensions/Device+MarketingName.swift",
        "Extensions/Device+ModelNumbers.swift",
        "Extensions/Device+ProductLines.swift",
        "Model/Display.swift",
        "Model/Family.swift",
        "Model/Lines.swift",
        "Model/ThingyError.swift",
        "Protocols.swift",
        "RawDevice.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
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/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/15] Compiling Thingy Lines.swift
[4/16] Compiling Thingy Protocols.swift
[5/16] Compiling Thingy Family.swift
[6/16] Compiling Thingy ThingyError.swift
[7/16] Compiling Thingy Device+ProductLines.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[8/16] Compiling Thingy Device+MarketingName.swift
[9/16] Compiling Thingy Device+ModelNumbers.swift
[10/16] Compiling Thingy Device.swift
/Users/admin/builder/spi-builder-workspace/Sources/Device.swift:148:20: warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
 27 | ///
 28 | /// For iOS devices, only devices supporting iOS 8 are included.
 29 | public enum Device: CaseIterable {
    |             `- note: consider making enum 'Device' conform to the 'Sendable' protocol
 30 |
 31 | 	/// - iPhone4S: iPhone 4S.
    :
146 |
147 | 	/// All real-device values.
148 | 	public static let allCases: [Device] = [
    |                    |- warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: add '@MainActor' to make static property 'allCases' part of global actor 'MainActor'
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
149 | 		.iPhone4S,
150 | 		.iPhone5,
[11/16] Compiling Thingy Device+Comparison.swift
/Users/admin/builder/spi-builder-workspace/Sources/Device.swift:148:20: warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
 27 | ///
 28 | /// For iOS devices, only devices supporting iOS 8 are included.
 29 | public enum Device: CaseIterable {
    |             `- note: consider making enum 'Device' conform to the 'Sendable' protocol
 30 |
 31 | 	/// - iPhone4S: iPhone 4S.
    :
146 |
147 | 	/// All real-device values.
148 | 	public static let allCases: [Device] = [
    |                    |- warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: add '@MainActor' to make static property 'allCases' part of global actor 'MainActor'
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
149 | 		.iPhone4S,
150 | 		.iPhone5,
[12/16] Emitting module Thingy
/Users/admin/builder/spi-builder-workspace/Sources/Device.swift:148:20: warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
 27 | ///
 28 | /// For iOS devices, only devices supporting iOS 8 are included.
 29 | public enum Device: CaseIterable {
    |             `- note: consider making enum 'Device' conform to the 'Sendable' protocol
 30 |
 31 | 	/// - iPhone4S: iPhone 4S.
    :
146 |
147 | 	/// All real-device values.
148 | 	public static let allCases: [Device] = [
    |                    |- warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: add '@MainActor' to make static property 'allCases' part of global actor 'MainActor'
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
149 | 		.iPhone4S,
150 | 		.iPhone5,
/Users/admin/builder/spi-builder-workspace/Sources/Model/Display.swift:27:15: error: type 'Display' does not conform to protocol 'Equatable'
 25 |
 26 | /// A struct that provides an extended info on the display.
 27 | public struct Display: Equatable {
    |               |- error: type 'Display' does not conform to protocol 'Equatable'
    |               `- note: add stubs for conformance
 28 |
 29 | 	/// An enum that describes the display size.
    :
 98 |
 99 | 	/// Resolution of the device.
100 | 	public var resolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
101 |
102 | 	/// Full physical resolution of the device, without any down-/up-sampling.
103 | 	public var physicalResolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
104 |
105 | 	/// Rendered resolution of the device, with down-/up-sampling.
106 | 	public var renderedResolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
107 |
108 | 	/// Screen scale, 1.0 for non-Retina devices.
Swift.==:1:24: note: candidate would match if 'Display' conformed to 'RawRepresentable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
  |                        `- note: candidate would match if 'Display' conformed to 'RawRepresentable'
Swift.FloatingPoint.==:2:20: note: candidate would match if 'Display' conformed to 'FloatingPoint'
1 | protocol FloatingPoint {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to 'FloatingPoint'
3 |
Swift.BinaryInteger.==:2:20: note: candidate would match if 'Display' conformed to 'BinaryInteger'
1 | protocol BinaryInteger {
2 | public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger}
  |                    `- note: candidate would match if 'Display' conformed to 'BinaryInteger'
3 |
Swift._Pointer.==:2:20: note: candidate would match if 'Display' conformed to '_Pointer'
1 | protocol _Pointer {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_Pointer'
3 |
Swift._Pointer.==:2:31: note: candidate would match if 'Display' conformed to '_Pointer'
1 | protocol _Pointer {
2 | @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer}
  |                               `- note: candidate would match if 'Display' conformed to '_Pointer'
3 |
Swift.Strideable.==:2:31: note: candidate would match if 'Display' conformed to 'Strideable'
1 | protocol Strideable {
2 | @inlinable public static func == (x: Self, y: Self) -> Bool}
  |                               `- note: candidate would match if 'Display' conformed to 'Strideable'
3 |
Swift.StringProtocol.==:2:31: note: candidate would match if 'Display' conformed to 'StringProtocol'
1 | protocol StringProtocol {
2 | @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol}
  |                               `- note: candidate would match if 'Display' conformed to 'StringProtocol'
3 |
Swift.SIMD.==:2:20: note: candidate would match if 'Display' conformed to 'SIMD'
1 | protocol SIMD {
2 | public static func == (a: Self, b: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to 'SIMD'
3 |
Foundation.AttributedStringProtocol.==:2:20: note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
1 | protocol AttributedStringProtocol {
2 | public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol}
  |                    `- note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
3 |
Foundation._BridgedStoredNSError.==:2:20: note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
1 | protocol _BridgedStoredNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
3 |
CoreFoundation._CFObject.==:2:20: note: candidate would match if 'Display' conformed to '_CFObject'
1 | protocol _CFObject {
2 | public static func == (left: Self, right: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_CFObject'
3 |
Swift.Equatable.==:2:13: note: protocol requires function '==' with type '(Display, Display) -> Bool'
1 | protocol Equatable {
2 | static func == (lhs: Self, rhs: Self) -> Bool}
  |             `- note: protocol requires function '==' with type '(Display, Display) -> Bool'
3 |
[13/16] Compiling Thingy Display.swift
/Users/admin/builder/spi-builder-workspace/Sources/Model/Display.swift:27:15: error: type 'Display' does not conform to protocol 'Equatable'
 25 |
 26 | /// A struct that provides an extended info on the display.
 27 | public struct Display: Equatable {
    |               |- error: type 'Display' does not conform to protocol 'Equatable'
    |               `- note: add stubs for conformance
 28 |
 29 | 	/// An enum that describes the display size.
    :
 98 |
 99 | 	/// Resolution of the device.
100 | 	public var resolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
101 |
102 | 	/// Full physical resolution of the device, without any down-/up-sampling.
103 | 	public var physicalResolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
104 |
105 | 	/// Rendered resolution of the device, with down-/up-sampling.
106 | 	public var renderedResolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
107 |
108 | 	/// Screen scale, 1.0 for non-Retina devices.
Swift.==:1:24: note: candidate would match if 'Display' conformed to 'RawRepresentable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
  |                        `- note: candidate would match if 'Display' conformed to 'RawRepresentable'
Swift.FloatingPoint.==:2:20: note: candidate would match if 'Display' conformed to 'FloatingPoint'
1 | protocol FloatingPoint {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to 'FloatingPoint'
3 |
Swift.BinaryInteger.==:2:20: note: candidate would match if 'Display' conformed to 'BinaryInteger'
1 | protocol BinaryInteger {
2 | public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger}
  |                    `- note: candidate would match if 'Display' conformed to 'BinaryInteger'
3 |
Swift._Pointer.==:2:20: note: candidate would match if 'Display' conformed to '_Pointer'
1 | protocol _Pointer {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_Pointer'
3 |
Swift._Pointer.==:2:31: note: candidate would match if 'Display' conformed to '_Pointer'
1 | protocol _Pointer {
2 | @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer}
  |                               `- note: candidate would match if 'Display' conformed to '_Pointer'
3 |
Swift.Strideable.==:2:31: note: candidate would match if 'Display' conformed to 'Strideable'
1 | protocol Strideable {
2 | @inlinable public static func == (x: Self, y: Self) -> Bool}
  |                               `- note: candidate would match if 'Display' conformed to 'Strideable'
3 |
Swift.StringProtocol.==:2:31: note: candidate would match if 'Display' conformed to 'StringProtocol'
1 | protocol StringProtocol {
2 | @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol}
  |                               `- note: candidate would match if 'Display' conformed to 'StringProtocol'
3 |
Swift.SIMD.==:2:20: note: candidate would match if 'Display' conformed to 'SIMD'
1 | protocol SIMD {
2 | public static func == (a: Self, b: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to 'SIMD'
3 |
Foundation.AttributedStringProtocol.==:2:20: note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
1 | protocol AttributedStringProtocol {
2 | public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol}
  |                    `- note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
3 |
Foundation._BridgedStoredNSError.==:2:20: note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
1 | protocol _BridgedStoredNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
3 |
CoreFoundation._CFObject.==:2:20: note: candidate would match if 'Display' conformed to '_CFObject'
1 | protocol _CFObject {
2 | public static func == (left: Self, right: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_CFObject'
3 |
Swift.Equatable.==:2:13: note: protocol requires function '==' with type '(Display, Display) -> Bool'
1 | protocol Equatable {
2 | static func == (lhs: Self, rhs: Self) -> Bool}
  |             `- note: protocol requires function '==' with type '(Display, Display) -> Bool'
3 |
[14/16] Compiling Thingy Device+Display.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:60: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                            `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:93: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                                                             `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:126: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                                                                                              `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
[15/16] Compiling Thingy Device+Family.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:60: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                            `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:93: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                                                             `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:126: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                                                                                              `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
[16/16] Compiling Thingy RawDevice.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/14] Compiling Thingy Protocols.swift
[3/14] Compiling Thingy Lines.swift
[4/14] Compiling Thingy ThingyError.swift
[5/14] Compiling Thingy Display.swift
/Users/admin/builder/spi-builder-workspace/Sources/Model/Display.swift:27:15: error: type 'Display' does not conform to protocol 'Equatable'
 25 |
 26 | /// A struct that provides an extended info on the display.
 27 | public struct Display: Equatable {
    |               |- error: type 'Display' does not conform to protocol 'Equatable'
    |               `- note: add stubs for conformance
 28 |
 29 | 	/// An enum that describes the display size.
    :
 98 |
 99 | 	/// Resolution of the device.
100 | 	public var resolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
101 |
102 | 	/// Full physical resolution of the device, without any down-/up-sampling.
103 | 	public var physicalResolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
104 |
105 | 	/// Rendered resolution of the device, with down-/up-sampling.
106 | 	public var renderedResolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
107 |
108 | 	/// Screen scale, 1.0 for non-Retina devices.
Swift.==:1:24: note: candidate would match if 'Display' conformed to 'RawRepresentable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
  |                        `- note: candidate would match if 'Display' conformed to 'RawRepresentable'
Swift.FloatingPoint.==:2:20: note: candidate would match if 'Display' conformed to 'FloatingPoint'
1 | protocol FloatingPoint {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to 'FloatingPoint'
3 |
Swift.BinaryInteger.==:2:20: note: candidate would match if 'Display' conformed to 'BinaryInteger'
1 | protocol BinaryInteger {
2 | public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger}
  |                    `- note: candidate would match if 'Display' conformed to 'BinaryInteger'
3 |
Swift._Pointer.==:2:20: note: candidate would match if 'Display' conformed to '_Pointer'
1 | protocol _Pointer {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_Pointer'
3 |
Swift._Pointer.==:2:31: note: candidate would match if 'Display' conformed to '_Pointer'
1 | protocol _Pointer {
2 | @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer}
  |                               `- note: candidate would match if 'Display' conformed to '_Pointer'
3 |
Swift.Strideable.==:2:31: note: candidate would match if 'Display' conformed to 'Strideable'
1 | protocol Strideable {
2 | @inlinable public static func == (x: Self, y: Self) -> Bool}
  |                               `- note: candidate would match if 'Display' conformed to 'Strideable'
3 |
Swift.StringProtocol.==:2:31: note: candidate would match if 'Display' conformed to 'StringProtocol'
1 | protocol StringProtocol {
2 | @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol}
  |                               `- note: candidate would match if 'Display' conformed to 'StringProtocol'
3 |
Swift.SIMD.==:2:20: note: candidate would match if 'Display' conformed to 'SIMD'
1 | protocol SIMD {
2 | public static func == (a: Self, b: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to 'SIMD'
3 |
Foundation.AttributedStringProtocol.==:2:20: note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
1 | protocol AttributedStringProtocol {
2 | public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol}
  |                    `- note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
3 |
Foundation._BridgedStoredNSError.==:2:20: note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
1 | protocol _BridgedStoredNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
3 |
CoreFoundation._CFObject.==:2:20: note: candidate would match if 'Display' conformed to '_CFObject'
1 | protocol _CFObject {
2 | public static func == (left: Self, right: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_CFObject'
3 |
Swift.Equatable.==:2:13: note: protocol requires function '==' with type '(Display, Display) -> Bool'
1 | protocol Equatable {
2 | static func == (lhs: Self, rhs: Self) -> Bool}
  |             `- note: protocol requires function '==' with type '(Display, Display) -> Bool'
3 |
[6/15] Compiling Thingy Device+ProductLines.swift
[7/15] Compiling Thingy Family.swift
[8/15] Compiling Thingy Device+MarketingName.swift
[9/15] Compiling Thingy Device+ModelNumbers.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[10/15] Compiling Thingy Device.swift
[11/15] Compiling Thingy Device+Comparison.swift
[12/15] Emitting module Thingy
/Users/admin/builder/spi-builder-workspace/Sources/Model/Display.swift:27:15: error: type 'Display' does not conform to protocol 'Equatable'
 25 |
 26 | /// A struct that provides an extended info on the display.
 27 | public struct Display: Equatable {
    |               |- error: type 'Display' does not conform to protocol 'Equatable'
    |               `- note: add stubs for conformance
 28 |
 29 | 	/// An enum that describes the display size.
    :
 98 |
 99 | 	/// Resolution of the device.
100 | 	public var resolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
101 |
102 | 	/// Full physical resolution of the device, without any down-/up-sampling.
103 | 	public var physicalResolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
104 |
105 | 	/// Rendered resolution of the device, with down-/up-sampling.
106 | 	public var renderedResolution: CGSize
    |             `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
107 |
108 | 	/// Screen scale, 1.0 for non-Retina devices.
Swift.==:1:24: note: candidate would match if 'Display' conformed to 'RawRepresentable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
  |                        `- note: candidate would match if 'Display' conformed to 'RawRepresentable'
Swift.FloatingPoint.==:2:20: note: candidate would match if 'Display' conformed to 'FloatingPoint'
1 | protocol FloatingPoint {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to 'FloatingPoint'
3 |
Swift.BinaryInteger.==:2:20: note: candidate would match if 'Display' conformed to 'BinaryInteger'
1 | protocol BinaryInteger {
2 | public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger}
  |                    `- note: candidate would match if 'Display' conformed to 'BinaryInteger'
3 |
Swift._Pointer.==:2:20: note: candidate would match if 'Display' conformed to '_Pointer'
1 | protocol _Pointer {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_Pointer'
3 |
Swift._Pointer.==:2:31: note: candidate would match if 'Display' conformed to '_Pointer'
1 | protocol _Pointer {
2 | @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer}
  |                               `- note: candidate would match if 'Display' conformed to '_Pointer'
3 |
Swift.Strideable.==:2:31: note: candidate would match if 'Display' conformed to 'Strideable'
1 | protocol Strideable {
2 | @inlinable public static func == (x: Self, y: Self) -> Bool}
  |                               `- note: candidate would match if 'Display' conformed to 'Strideable'
3 |
Swift.StringProtocol.==:2:31: note: candidate would match if 'Display' conformed to 'StringProtocol'
1 | protocol StringProtocol {
2 | @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol}
  |                               `- note: candidate would match if 'Display' conformed to 'StringProtocol'
3 |
Swift.SIMD.==:2:20: note: candidate would match if 'Display' conformed to 'SIMD'
1 | protocol SIMD {
2 | public static func == (a: Self, b: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to 'SIMD'
3 |
Foundation.AttributedStringProtocol.==:2:20: note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
1 | protocol AttributedStringProtocol {
2 | public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol}
  |                    `- note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
3 |
Foundation._BridgedStoredNSError.==:2:20: note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
1 | protocol _BridgedStoredNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
3 |
CoreFoundation._CFObject.==:2:20: note: candidate would match if 'Display' conformed to '_CFObject'
1 | protocol _CFObject {
2 | public static func == (left: Self, right: Self) -> Bool}
  |                    `- note: candidate would match if 'Display' conformed to '_CFObject'
3 |
Swift.Equatable.==:2:13: note: protocol requires function '==' with type '(Display, Display) -> Bool'
1 | protocol Equatable {
2 | static func == (lhs: Self, rhs: Self) -> Bool}
  |             `- note: protocol requires function '==' with type '(Display, Display) -> Bool'
3 |
[13/15] Compiling Thingy Device+Display.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:60: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                            `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:93: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                                                             `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:126: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                                                                                              `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
[14/15] Compiling Thingy Device+Family.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:60: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                            `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:93: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                                                             `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:126: error: type 'CGSize' has no member 'zero'
130 |
131 | 		default:
132 | 			return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
    |                                                                                                                              `- error: type 'CGSize' has no member 'zero'
133 |
134 | 		}
[15/15] Compiling Thingy RawDevice.swift
BUILD FAILURE 6.1 macosSpm