Build Information
Successful build of INISerialization, reference main (9185c4
), with Swift 6.0 for macOS (SPM) on 31 Oct 2024 22:19:33 UTC.
Swift 6 data race errors: 9
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/gwynne/iniserialization.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/gwynne/iniserialization
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 9185c43 Heavily update the README to (minimally) document both reading and writing and give basic sample code for using INIEncoder and INIDecoder.
Cloned https://github.com/gwynne/iniserialization.git
Revision (git rev-parse @):
9185c4378ef5b33d7f24892136d21ad7b8d6d37f
SUCCESS checkout https://github.com/gwynne/iniserialization.git at main
========================================
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": "iniserialization",
"name": "INISerialization",
"url": "https://github.com/gwynne/iniserialization.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/iniserialization",
"dependencies": [
]
}
]
}
Fetching https://github.com/gwynne/iniserialization.git
[1/118] Fetching iniserialization
Fetched https://github.com/gwynne/iniserialization.git from cache (0.65s)
Creating working copy for https://github.com/gwynne/iniserialization.git
Working copy of https://github.com/gwynne/iniserialization.git resolved at main (9185c43)
warning: '.resolve-product-dependencies': dependency 'iniserialization' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
https://github.com/gwynne/iniserialization.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--7754E27361AE5C74.txt
[3/9] Compiling INISerialization INIWriter.swift
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INIWriter.swift:16:96: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
14 | private func serializeKey(_ key: String, under topKey: String?) throws -> String {
15 | if let _ = key.rangeOfCharacter(from: INITokenizer.notIdentifier) {
16 | throw INISerialization.SerializationError.invalidIdentifier(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."))
| |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
| `- note: use 'compactMap(_:)' instead
17 | }
18 | return key
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INIWriter.swift:60:92: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
58 |
59 | if let _ = value as? INIUnorderedObject {
60 | throw INISerialization.SerializationError.nestedTooDeep(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."))
| |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
| `- note: use 'compactMap(_:)' instead
61 | } else if let _ = value as? INIOrderedObject {
62 | throw INISerialization.SerializationError.nestedTooDeep(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."))
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INIWriter.swift:62:92: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
60 | throw INISerialization.SerializationError.nestedTooDeep(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."))
61 | } else if let _ = value as? INIOrderedObject {
62 | throw INISerialization.SerializationError.nestedTooDeep(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."))
| |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
| `- note: use 'compactMap(_:)' instead
63 | }
64 | else if let uintValue = value as? UInt { valuePart = try serializeUInt(uintValue) }
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INIWriter.swift:79:94: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
77 | else if let boolValue = value as? Bool { valuePart = try serializeBool(boolValue) }
78 | else {
79 | throw INISerialization.SerializationError.unsupportedType(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."), type: type(of: value))
| |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
| `- note: use 'compactMap(_:)' instead
80 | }
81 | return keyPart + " " + "=" + " " + valuePart
[4/9] Compiling INISerialization INIDecoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:31:27: warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
29 |
30 | /// If set, allow `#` as a comment character in addition to `;`.
31 | public static let allowHashComments = ReadingOptions(rawValue: 1 << 2)
| |- warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowHashComments' 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
32 |
33 | /// If set, allow comments to appear after values as well as on their
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:61:27: warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
59 | /// KEY foo ; always a syntax error
60 | /// ````
61 | public static let allowMissingValues = ReadingOptions(rawValue: 1 << 7)
| |- warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowMissingValues' 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
62 |
63 | /// If set, a section header with no name (e.g. `[]`) will "reset" the
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:67:27: warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
65 | /// unset, a section header with no name is a syntax error. Ignored if
66 | /// `.detectSections` is not also set.
67 | public static let allowSectionReset = ReadingOptions(rawValue: 1 << 8)
| |- warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowSectionReset' 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
68 | }
69 |
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:35:27: warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
33 | /// If set, allow comments to appear after values as well as on their
34 | /// own lines.
35 | public static let allowTrailingComments = ReadingOptions(rawValue: 1 << 3)
| |- warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowTrailingComments' 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
36 |
37 | /// If set, all keys are uppercased in the returned dictionary. Section
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:50:27: warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
48 | /// are "false", "true", "yes", "no", "on", and "off", all case-
49 | /// insensitive.
50 | public static let detectBooleanValues = ReadingOptions(rawValue: 1 << 6)
| |- warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectBooleanValues' 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
51 |
52 | /// If set, a key with no `=` and no trailing non-whitespace text on the
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:22:27: warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
20 | /// as Strings. If `detectQuotedValues` is also set, quoting a value
21 | /// will disable numeric detection.
22 | public static let detectNumericValues = ReadingOptions(rawValue: 1 << 0)
| |- warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectNumericValues' 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
23 |
24 | /// If set, detect INI section headers of the form `[HEADER]` and return
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:28:27: warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
26 | /// supported; only one level of nesting is allowed. If not set, section
27 | /// headers are treated as a syntax error.
28 | public static let detectSections = ReadingOptions(rawValue: 1 << 1)
| |- warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectSections' 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
29 |
30 | /// If set, allow `#` as a comment character in addition to `;`.
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INIDecoder.swift:169:60: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
167 |
168 | public var codingPath: [CodingKey]
169 | public var allKeys: [Key] { return self.container.keys.flatMap { Key(stringValue: $0) } }
| |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
| `- note: use 'compactMap(_:)' instead
170 | public func contains(_ key: Key) -> Bool { return self.container[key.stringValue] != nil }
171 |
[5/9] Compiling INISerialization INIEncoder.swift
[6/9] Compiling INISerialization INIParser.swift
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:45:27: warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
43 | /// header names **are** affected by this setting. If `uppercaseKeys` is
44 | /// also set, lowercase always wins.
45 | public static let lowercaseKeys = ReadingOptions(rawValue: 1 << 5)
| |- warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'lowercaseKeys' 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
46 |
47 | /// If set, boolean values are detected. The recognized boolean values
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:40:27: warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
38 | /// header names **are** affected by this setting. If `lowercaseKeys` is
39 | /// also set, lowercase always wins.
40 | public static let uppercaseKeys = ReadingOptions(rawValue: 1 << 4)
| |- warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'uppercaseKeys' 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
41 |
42 | /// If set, all keys are lowercased in the returned dictionary. Section
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:22:27: warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
20 | /// as Strings. If `detectQuotedValues` is also set, quoting a value
21 | /// will disable numeric detection.
22 | public static let detectNumericValues = ReadingOptions(rawValue: 1 << 0)
| |- warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectNumericValues' 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
23 |
24 | /// If set, detect INI section headers of the form `[HEADER]` and return
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:50:27: warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
48 | /// are "false", "true", "yes", "no", "on", and "off", all case-
49 | /// insensitive.
50 | public static let detectBooleanValues = ReadingOptions(rawValue: 1 << 6)
| |- warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectBooleanValues' 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
51 |
52 | /// If set, a key with no `=` and no trailing non-whitespace text on the
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:31:27: warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
29 |
30 | /// If set, allow `#` as a comment character in addition to `;`.
31 | public static let allowHashComments = ReadingOptions(rawValue: 1 << 2)
| |- warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowHashComments' 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
32 |
33 | /// If set, allow comments to appear after values as well as on their
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:35:27: warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
33 | /// If set, allow comments to appear after values as well as on their
34 | /// own lines.
35 | public static let allowTrailingComments = ReadingOptions(rawValue: 1 << 3)
| |- warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowTrailingComments' 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
36 |
37 | /// If set, all keys are uppercased in the returned dictionary. Section
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:61:27: warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
59 | /// KEY foo ; always a syntax error
60 | /// ````
61 | public static let allowMissingValues = ReadingOptions(rawValue: 1 << 7)
| |- warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowMissingValues' 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
62 |
63 | /// If set, a section header with no name (e.g. `[]`) will "reset" the
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:28:27: warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
26 | /// supported; only one level of nesting is allowed. If not set, section
27 | /// headers are treated as a syntax error.
28 | public static let detectSections = ReadingOptions(rawValue: 1 << 1)
| |- warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectSections' 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
29 |
30 | /// If set, allow `#` as a comment character in addition to `;`.
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:67:27: warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
65 | /// unset, a section header with no name is a syntax error. Ignored if
66 | /// `.detectSections` is not also set.
67 | public static let allowSectionReset = ReadingOptions(rawValue: 1 << 8)
| |- warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowSectionReset' 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
68 | }
69 |
[7/9] Compiling INISerialization INISerialization.swift
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:22:27: warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
20 | /// as Strings. If `detectQuotedValues` is also set, quoting a value
21 | /// will disable numeric detection.
22 | public static let detectNumericValues = ReadingOptions(rawValue: 1 << 0)
| |- warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectNumericValues' 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
23 |
24 | /// If set, detect INI section headers of the form `[HEADER]` and return
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:28:27: warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
26 | /// supported; only one level of nesting is allowed. If not set, section
27 | /// headers are treated as a syntax error.
28 | public static let detectSections = ReadingOptions(rawValue: 1 << 1)
| |- warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectSections' 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
29 |
30 | /// If set, allow `#` as a comment character in addition to `;`.
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:31:27: warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
29 |
30 | /// If set, allow `#` as a comment character in addition to `;`.
31 | public static let allowHashComments = ReadingOptions(rawValue: 1 << 2)
| |- warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowHashComments' 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
32 |
33 | /// If set, allow comments to appear after values as well as on their
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:35:27: warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
33 | /// If set, allow comments to appear after values as well as on their
34 | /// own lines.
35 | public static let allowTrailingComments = ReadingOptions(rawValue: 1 << 3)
| |- warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowTrailingComments' 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
36 |
37 | /// If set, all keys are uppercased in the returned dictionary. Section
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:40:27: warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
38 | /// header names **are** affected by this setting. If `lowercaseKeys` is
39 | /// also set, lowercase always wins.
40 | public static let uppercaseKeys = ReadingOptions(rawValue: 1 << 4)
| |- warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'uppercaseKeys' 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
41 |
42 | /// If set, all keys are lowercased in the returned dictionary. Section
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:45:27: warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
43 | /// header names **are** affected by this setting. If `uppercaseKeys` is
44 | /// also set, lowercase always wins.
45 | public static let lowercaseKeys = ReadingOptions(rawValue: 1 << 5)
| |- warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'lowercaseKeys' 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
46 |
47 | /// If set, boolean values are detected. The recognized boolean values
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:50:27: warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
48 | /// are "false", "true", "yes", "no", "on", and "off", all case-
49 | /// insensitive.
50 | public static let detectBooleanValues = ReadingOptions(rawValue: 1 << 6)
| |- warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectBooleanValues' 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
51 |
52 | /// If set, a key with no `=` and no trailing non-whitespace text on the
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:61:27: warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
59 | /// KEY foo ; always a syntax error
60 | /// ````
61 | public static let allowMissingValues = ReadingOptions(rawValue: 1 << 7)
| |- warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowMissingValues' 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
62 |
63 | /// If set, a section header with no name (e.g. `[]`) will "reset" the
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:67:27: warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
65 | /// unset, a section header with no name is a syntax error. Ignored if
66 | /// `.detectSections` is not also set.
67 | public static let allowSectionReset = ReadingOptions(rawValue: 1 << 8)
| |- warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowSectionReset' 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
68 | }
69 |
[8/9] Compiling INISerialization INITokenizer.swift
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INITokenizer.swift:132:33: warning: 'IndexDistance' is deprecated: All index distances are now of type Int
130 | /// String.index(_, offsetBy:, limitedBy:) that returns the limit instead of
131 | /// nil if it's reached.
132 | func minIdx(for adv: String.IndexDistance) -> String.Index {
| `- warning: 'IndexDistance' is deprecated: All index distances are now of type Int
133 | return text.index(loc, offsetBy: adv, limitedBy: end()) ?? end()
134 | }
[9/9] Emitting module INISerialization
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:22:27: warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
20 | /// as Strings. If `detectQuotedValues` is also set, quoting a value
21 | /// will disable numeric detection.
22 | public static let detectNumericValues = ReadingOptions(rawValue: 1 << 0)
| |- warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectNumericValues' 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
23 |
24 | /// If set, detect INI section headers of the form `[HEADER]` and return
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:28:27: warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
26 | /// supported; only one level of nesting is allowed. If not set, section
27 | /// headers are treated as a syntax error.
28 | public static let detectSections = ReadingOptions(rawValue: 1 << 1)
| |- warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectSections' 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
29 |
30 | /// If set, allow `#` as a comment character in addition to `;`.
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:31:27: warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
29 |
30 | /// If set, allow `#` as a comment character in addition to `;`.
31 | public static let allowHashComments = ReadingOptions(rawValue: 1 << 2)
| |- warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowHashComments' 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
32 |
33 | /// If set, allow comments to appear after values as well as on their
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:35:27: warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
33 | /// If set, allow comments to appear after values as well as on their
34 | /// own lines.
35 | public static let allowTrailingComments = ReadingOptions(rawValue: 1 << 3)
| |- warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowTrailingComments' 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
36 |
37 | /// If set, all keys are uppercased in the returned dictionary. Section
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:40:27: warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
38 | /// header names **are** affected by this setting. If `lowercaseKeys` is
39 | /// also set, lowercase always wins.
40 | public static let uppercaseKeys = ReadingOptions(rawValue: 1 << 4)
| |- warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'uppercaseKeys' 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
41 |
42 | /// If set, all keys are lowercased in the returned dictionary. Section
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:45:27: warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
43 | /// header names **are** affected by this setting. If `uppercaseKeys` is
44 | /// also set, lowercase always wins.
45 | public static let lowercaseKeys = ReadingOptions(rawValue: 1 << 5)
| |- warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'lowercaseKeys' 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
46 |
47 | /// If set, boolean values are detected. The recognized boolean values
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:50:27: warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
48 | /// are "false", "true", "yes", "no", "on", and "off", all case-
49 | /// insensitive.
50 | public static let detectBooleanValues = ReadingOptions(rawValue: 1 << 6)
| |- warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'detectBooleanValues' 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
51 |
52 | /// If set, a key with no `=` and no trailing non-whitespace text on the
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:61:27: warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
59 | /// KEY foo ; always a syntax error
60 | /// ````
61 | public static let allowMissingValues = ReadingOptions(rawValue: 1 << 7)
| |- warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowMissingValues' 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
62 |
63 | /// If set, a section header with no name (e.g. `[]`) will "reset" the
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:67:27: warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 | open class INISerialization {
11 |
12 | public struct ReadingOptions: OptionSet {
| `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
13 | public let rawValue: UInt
14 | public init(rawValue: UInt) { self.rawValue = rawValue }
:
65 | /// unset, a section header with no name is a syntax error. Ignored if
66 | /// `.detectSections` is not also set.
67 | public static let allowSectionReset = ReadingOptions(rawValue: 1 << 8)
| |- warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allowSectionReset' 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
68 | }
69 |
/Users/admin/builder/spi-builder-workspace/Sources/INISerialization/INITokenizer.swift:132:33: warning: 'IndexDistance' is deprecated: All index distances are now of type Int
130 | /// String.index(_, offsetBy:, limitedBy:) that returns the limit instead of
131 | /// nil if it's reached.
132 | func minIdx(for adv: String.IndexDistance) -> String.Index {
| `- warning: 'IndexDistance' is deprecated: All index distances are now of type Int
133 | return text.index(loc, offsetBy: adv, limitedBy: end()) ?? end()
134 | }
Build complete! (8.59s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "INISerialization",
"name" : "INISerialization",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "INISerialization",
"targets" : [
"INISerialization"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "INISerializationTests",
"module_type" : "SwiftTarget",
"name" : "INISerializationTests",
"path" : "Tests/INISerializationTests",
"sources" : [
"INICoderTests.swift",
"INIParserTests.swift",
"INISerializerTests.swift",
"INITokenizerTests.swift",
"INIWriterTests.swift",
"TestCommon.swift"
],
"target_dependencies" : [
"INISerialization"
],
"type" : "test"
},
{
"c99name" : "INISerialization",
"module_type" : "SwiftTarget",
"name" : "INISerialization",
"path" : "Sources/INISerialization",
"product_memberships" : [
"INISerialization"
],
"sources" : [
"INIDecoder.swift",
"INIEncoder.swift",
"INIParser.swift",
"INISerialization.swift",
"INITokenizer.swift",
"INIWriter.swift"
],
"type" : "library"
}
],
"tools_version" : "4.0"
}
Done.