Build Information
Successful build of SwiftFormat, reference main (da3695
), with Swift 6.1 for macOS (SPM) on 2 May 2025 23:04:44 UTC.
Swift 6 data race errors: 278
Build Command
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
Build Log
251 | }
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
| |- warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
255 | return
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:254:58: warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
| |- warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
255 | return
256 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:265:13: warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
263 | }
264 | } catch {
265 | onComplete { throw error }
| |- warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
266 | return
267 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:268:9: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
266 | return
267 | }
268 | enumerate(inputURL: inputURL, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
269 | }
270 | group.wait()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:145:10: warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
143 | let queue = concurrent ? DispatchQueue.global(qos: .userInitiated) : completionQueue
144 |
145 | func resolveInputURL(_ inputURL: URL, options: Options) -> (URL, URLResourceValues, Options)? {
| `- warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
146 | let fileOptions = options.fileOptions ?? .default
147 | let inputURL = inputURL.standardizedFileURL
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:137:10: warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
135 | var completionBlocks = [() throws -> Void]()
136 | let completionQueue = DispatchQueue(label: "swiftformat.enumeration")
137 | func onComplete(_ block: @escaping () throws -> Void) {
| `- warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:351:33: warning: reference to captured var 'args' in concurrently-executing code
349 | }
350 | configQueue.async {
351 | configCache[inputURL] = args
| `- warning: reference to captured var 'args' in concurrently-executing code
352 | }
353 | assert(options.formatOptions != nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:17: warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:34: warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/Formatter.swift:40:14: note: class 'Formatter' does not conform to the 'Sendable' protocol
38 | /// directly is that it allows mutation during enumeration, and
39 | /// transparently handles changes that affect the current token index.
40 | public class Formatter: NSObject {
| `- note: class 'Formatter' does not conform to the 'Sendable' protocol
41 | private var enumerationIndex = -1
42 | private var disabledCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapAttributes.swift:12:16: warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapAttributes = FormatRule(
| |- warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapAttributes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap @attributes onto a separate line, or keep them on the same line.",
14 | options: ["funcattributes", "typeattributes", "varattributes", "storedvarattrs", "computedvarattrs", "complexattrs", "noncomplexattrs"],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapConditionalBodies.swift:12:16: warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapConditionalBodies = FormatRule(
| |- warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapConditionalBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline conditional statements onto a new line.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapEnumCases.swift:13:16: warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Formats enum cases declaration into one case per line
13 | static let wrapEnumCases = FormatRule(
| |- warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapEnumCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Rewrite comma-delimited enum cases to one case per line.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapLoopBodies.swift:12:16: warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapLoopBodies = FormatRule(
| |- warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapLoopBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline loop statements onto a new line.",
14 | orderAfter: [.preferForLoop],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineConditionalAssignment.swift:12:16: warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineConditionalAssignment = FormatRule(
| |- warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineConditionalAssignment' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap multiline conditional assignment expressions after the assignment operator.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineStatementBraces.swift:12:16: warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineStatementBraces = FormatRule(
| |- warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineStatementBraces' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the opening brace of multiline statements.",
14 | orderAfter: [.braces, .indent, .wrapArguments],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSingleLineComments.swift:13:16: warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Wrap single-line comments that exceed given `FormatOptions.maxWidth` setting.
13 | static let wrapSingleLineComments = FormatRule(
| |- warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSingleLineComments' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap single line `//` comments that exceed the specified `--maxwidth`.",
15 | sharedOptions: ["maxwidth", "indent", "tabwidth", "assetliterals", "linebreaks"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSwitchCases.swift:13:16: warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Writes one switch case per line
13 | static let wrapSwitchCases = FormatRule(
| |- warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSwitchCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap comma-delimited switch cases onto multiple lines.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/YodaConditions.swift:13:16: warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Reorders "yoda conditions" where constant is placed on lhs of a comparison
13 | static let yodaConditions = FormatRule(
| |- warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'yodaConditions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Prefer constant values to be on the right-hand-side of expressions.",
15 | options: ["yodaswap"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:314:13: warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
312 |
313 | /// Process configuration files in specified directory.
314 | private var configCache = [URL: [String: String]]()
| |- warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'configCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
315 | private let configQueue = DispatchQueue(label: "swiftformat.config", qos: .userInteractive)
316 | private func processDirectory(_ inputURL: URL, with options: inout Options, logger: Logger?) throws {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:37: warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: mutation of captured var 'completionBlocks' in concurrently-executing code
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| `- warning: mutation of captured var 'completionBlocks' in concurrently-executing code
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:21: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:77: warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| `- warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:194:10: warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
192 | }
193 |
194 | func enumerate(inputURL: URL,
| `- warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
195 | outputURL: URL?,
196 | options: Options)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:247:23: warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
245 |
246 | queue.async(group: group) {
247 | var options = baseOptions
| `- warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
248 | var inputURL = inputURL
249 | if options.formatOptions == nil {
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:253:62: warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
251 | }
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
| |- warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
255 | return
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:254:58: warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
| |- warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
255 | return
256 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:265:13: warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
263 | }
264 | } catch {
265 | onComplete { throw error }
| |- warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
266 | return
267 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:268:9: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
266 | return
267 | }
268 | enumerate(inputURL: inputURL, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
269 | }
270 | group.wait()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:145:10: warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
143 | let queue = concurrent ? DispatchQueue.global(qos: .userInitiated) : completionQueue
144 |
145 | func resolveInputURL(_ inputURL: URL, options: Options) -> (URL, URLResourceValues, Options)? {
| `- warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
146 | let fileOptions = options.fileOptions ?? .default
147 | let inputURL = inputURL.standardizedFileURL
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:137:10: warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
135 | var completionBlocks = [() throws -> Void]()
136 | let completionQueue = DispatchQueue(label: "swiftformat.enumeration")
137 | func onComplete(_ block: @escaping () throws -> Void) {
| `- warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:351:33: warning: reference to captured var 'args' in concurrently-executing code
349 | }
350 | configQueue.async {
351 | configCache[inputURL] = args
| `- warning: reference to captured var 'args' in concurrently-executing code
352 | }
353 | assert(options.formatOptions != nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:17: warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:34: warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/Formatter.swift:40:14: note: class 'Formatter' does not conform to the 'Sendable' protocol
38 | /// directly is that it allows mutation during enumeration, and
39 | /// transparently handles changes that affect the current token index.
40 | public class Formatter: NSObject {
| `- note: class 'Formatter' does not conform to the 'Sendable' protocol
41 | private var enumerationIndex = -1
42 | private var disabledCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapAttributes.swift:12:16: warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapAttributes = FormatRule(
| |- warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapAttributes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap @attributes onto a separate line, or keep them on the same line.",
14 | options: ["funcattributes", "typeattributes", "varattributes", "storedvarattrs", "computedvarattrs", "complexattrs", "noncomplexattrs"],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapConditionalBodies.swift:12:16: warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapConditionalBodies = FormatRule(
| |- warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapConditionalBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline conditional statements onto a new line.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapEnumCases.swift:13:16: warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Formats enum cases declaration into one case per line
13 | static let wrapEnumCases = FormatRule(
| |- warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapEnumCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Rewrite comma-delimited enum cases to one case per line.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapLoopBodies.swift:12:16: warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapLoopBodies = FormatRule(
| |- warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapLoopBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline loop statements onto a new line.",
14 | orderAfter: [.preferForLoop],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineConditionalAssignment.swift:12:16: warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineConditionalAssignment = FormatRule(
| |- warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineConditionalAssignment' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap multiline conditional assignment expressions after the assignment operator.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineStatementBraces.swift:12:16: warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineStatementBraces = FormatRule(
| |- warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineStatementBraces' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the opening brace of multiline statements.",
14 | orderAfter: [.braces, .indent, .wrapArguments],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSingleLineComments.swift:13:16: warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Wrap single-line comments that exceed given `FormatOptions.maxWidth` setting.
13 | static let wrapSingleLineComments = FormatRule(
| |- warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSingleLineComments' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap single line `//` comments that exceed the specified `--maxwidth`.",
15 | sharedOptions: ["maxwidth", "indent", "tabwidth", "assetliterals", "linebreaks"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSwitchCases.swift:13:16: warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Writes one switch case per line
13 | static let wrapSwitchCases = FormatRule(
| |- warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSwitchCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap comma-delimited switch cases onto multiple lines.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/YodaConditions.swift:13:16: warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Reorders "yoda conditions" where constant is placed on lhs of a comparison
13 | static let yodaConditions = FormatRule(
| |- warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'yodaConditions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Prefer constant values to be on the right-hand-side of expressions.",
15 | options: ["yodaswap"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:314:13: warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
312 |
313 | /// Process configuration files in specified directory.
314 | private var configCache = [URL: [String: String]]()
| |- warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'configCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
315 | private let configQueue = DispatchQueue(label: "swiftformat.config", qos: .userInteractive)
316 | private func processDirectory(_ inputURL: URL, with options: inout Options, logger: Logger?) throws {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:37: warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: mutation of captured var 'completionBlocks' in concurrently-executing code
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| `- warning: mutation of captured var 'completionBlocks' in concurrently-executing code
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:21: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:77: warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| `- warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:194:10: warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
192 | }
193 |
194 | func enumerate(inputURL: URL,
| `- warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
195 | outputURL: URL?,
196 | options: Options)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:247:23: warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
245 |
246 | queue.async(group: group) {
247 | var options = baseOptions
| `- warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
248 | var inputURL = inputURL
249 | if options.formatOptions == nil {
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:253:62: warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
251 | }
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
| |- warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
255 | return
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:254:58: warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
| |- warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
255 | return
256 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:265:13: warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
263 | }
264 | } catch {
265 | onComplete { throw error }
| |- warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
266 | return
267 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:268:9: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
266 | return
267 | }
268 | enumerate(inputURL: inputURL, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
269 | }
270 | group.wait()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:145:10: warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
143 | let queue = concurrent ? DispatchQueue.global(qos: .userInitiated) : completionQueue
144 |
145 | func resolveInputURL(_ inputURL: URL, options: Options) -> (URL, URLResourceValues, Options)? {
| `- warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
146 | let fileOptions = options.fileOptions ?? .default
147 | let inputURL = inputURL.standardizedFileURL
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:137:10: warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
135 | var completionBlocks = [() throws -> Void]()
136 | let completionQueue = DispatchQueue(label: "swiftformat.enumeration")
137 | func onComplete(_ block: @escaping () throws -> Void) {
| `- warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:351:33: warning: reference to captured var 'args' in concurrently-executing code
349 | }
350 | configQueue.async {
351 | configCache[inputURL] = args
| `- warning: reference to captured var 'args' in concurrently-executing code
352 | }
353 | assert(options.formatOptions != nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:17: warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:34: warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/Formatter.swift:40:14: note: class 'Formatter' does not conform to the 'Sendable' protocol
38 | /// directly is that it allows mutation during enumeration, and
39 | /// transparently handles changes that affect the current token index.
40 | public class Formatter: NSObject {
| `- note: class 'Formatter' does not conform to the 'Sendable' protocol
41 | private var enumerationIndex = -1
42 | private var disabledCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapAttributes.swift:12:16: warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapAttributes = FormatRule(
| |- warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapAttributes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap @attributes onto a separate line, or keep them on the same line.",
14 | options: ["funcattributes", "typeattributes", "varattributes", "storedvarattrs", "computedvarattrs", "complexattrs", "noncomplexattrs"],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapConditionalBodies.swift:12:16: warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapConditionalBodies = FormatRule(
| |- warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapConditionalBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline conditional statements onto a new line.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapEnumCases.swift:13:16: warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Formats enum cases declaration into one case per line
13 | static let wrapEnumCases = FormatRule(
| |- warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapEnumCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Rewrite comma-delimited enum cases to one case per line.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapLoopBodies.swift:12:16: warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapLoopBodies = FormatRule(
| |- warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapLoopBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline loop statements onto a new line.",
14 | orderAfter: [.preferForLoop],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineConditionalAssignment.swift:12:16: warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineConditionalAssignment = FormatRule(
| |- warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineConditionalAssignment' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap multiline conditional assignment expressions after the assignment operator.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineStatementBraces.swift:12:16: warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineStatementBraces = FormatRule(
| |- warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineStatementBraces' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the opening brace of multiline statements.",
14 | orderAfter: [.braces, .indent, .wrapArguments],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSingleLineComments.swift:13:16: warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Wrap single-line comments that exceed given `FormatOptions.maxWidth` setting.
13 | static let wrapSingleLineComments = FormatRule(
| |- warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSingleLineComments' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap single line `//` comments that exceed the specified `--maxwidth`.",
15 | sharedOptions: ["maxwidth", "indent", "tabwidth", "assetliterals", "linebreaks"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSwitchCases.swift:13:16: warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Writes one switch case per line
13 | static let wrapSwitchCases = FormatRule(
| |- warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSwitchCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap comma-delimited switch cases onto multiple lines.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/YodaConditions.swift:13:16: warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Reorders "yoda conditions" where constant is placed on lhs of a comparison
13 | static let yodaConditions = FormatRule(
| |- warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'yodaConditions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Prefer constant values to be on the right-hand-side of expressions.",
15 | options: ["yodaswap"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:314:13: warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
312 |
313 | /// Process configuration files in specified directory.
314 | private var configCache = [URL: [String: String]]()
| |- warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'configCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
315 | private let configQueue = DispatchQueue(label: "swiftformat.config", qos: .userInteractive)
316 | private func processDirectory(_ inputURL: URL, with options: inout Options, logger: Logger?) throws {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:37: warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: mutation of captured var 'completionBlocks' in concurrently-executing code
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| `- warning: mutation of captured var 'completionBlocks' in concurrently-executing code
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:21: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:77: warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| `- warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:194:10: warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
192 | }
193 |
194 | func enumerate(inputURL: URL,
| `- warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
195 | outputURL: URL?,
196 | options: Options)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:247:23: warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
245 |
246 | queue.async(group: group) {
247 | var options = baseOptions
| `- warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
248 | var inputURL = inputURL
249 | if options.formatOptions == nil {
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:253:62: warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
251 | }
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
| |- warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
255 | return
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:254:58: warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
| |- warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
255 | return
256 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:265:13: warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
263 | }
264 | } catch {
265 | onComplete { throw error }
| |- warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
266 | return
267 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:268:9: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
266 | return
267 | }
268 | enumerate(inputURL: inputURL, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
269 | }
270 | group.wait()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:145:10: warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
143 | let queue = concurrent ? DispatchQueue.global(qos: .userInitiated) : completionQueue
144 |
145 | func resolveInputURL(_ inputURL: URL, options: Options) -> (URL, URLResourceValues, Options)? {
| `- warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
146 | let fileOptions = options.fileOptions ?? .default
147 | let inputURL = inputURL.standardizedFileURL
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:137:10: warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
135 | var completionBlocks = [() throws -> Void]()
136 | let completionQueue = DispatchQueue(label: "swiftformat.enumeration")
137 | func onComplete(_ block: @escaping () throws -> Void) {
| `- warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:351:33: warning: reference to captured var 'args' in concurrently-executing code
349 | }
350 | configQueue.async {
351 | configCache[inputURL] = args
| `- warning: reference to captured var 'args' in concurrently-executing code
352 | }
353 | assert(options.formatOptions != nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:17: warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:34: warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/Formatter.swift:40:14: note: class 'Formatter' does not conform to the 'Sendable' protocol
38 | /// directly is that it allows mutation during enumeration, and
39 | /// transparently handles changes that affect the current token index.
40 | public class Formatter: NSObject {
| `- note: class 'Formatter' does not conform to the 'Sendable' protocol
41 | private var enumerationIndex = -1
42 | private var disabledCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapAttributes.swift:12:16: warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapAttributes = FormatRule(
| |- warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapAttributes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap @attributes onto a separate line, or keep them on the same line.",
14 | options: ["funcattributes", "typeattributes", "varattributes", "storedvarattrs", "computedvarattrs", "complexattrs", "noncomplexattrs"],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapConditionalBodies.swift:12:16: warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapConditionalBodies = FormatRule(
| |- warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapConditionalBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline conditional statements onto a new line.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapEnumCases.swift:13:16: warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Formats enum cases declaration into one case per line
13 | static let wrapEnumCases = FormatRule(
| |- warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapEnumCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Rewrite comma-delimited enum cases to one case per line.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapLoopBodies.swift:12:16: warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapLoopBodies = FormatRule(
| |- warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapLoopBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline loop statements onto a new line.",
14 | orderAfter: [.preferForLoop],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineConditionalAssignment.swift:12:16: warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineConditionalAssignment = FormatRule(
| |- warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineConditionalAssignment' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap multiline conditional assignment expressions after the assignment operator.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineStatementBraces.swift:12:16: warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineStatementBraces = FormatRule(
| |- warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineStatementBraces' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the opening brace of multiline statements.",
14 | orderAfter: [.braces, .indent, .wrapArguments],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSingleLineComments.swift:13:16: warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Wrap single-line comments that exceed given `FormatOptions.maxWidth` setting.
13 | static let wrapSingleLineComments = FormatRule(
| |- warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSingleLineComments' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap single line `//` comments that exceed the specified `--maxwidth`.",
15 | sharedOptions: ["maxwidth", "indent", "tabwidth", "assetliterals", "linebreaks"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSwitchCases.swift:13:16: warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Writes one switch case per line
13 | static let wrapSwitchCases = FormatRule(
| |- warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSwitchCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap comma-delimited switch cases onto multiple lines.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/YodaConditions.swift:13:16: warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Reorders "yoda conditions" where constant is placed on lhs of a comparison
13 | static let yodaConditions = FormatRule(
| |- warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'yodaConditions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Prefer constant values to be on the right-hand-side of expressions.",
15 | options: ["yodaswap"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:314:13: warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
312 |
313 | /// Process configuration files in specified directory.
314 | private var configCache = [URL: [String: String]]()
| |- warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'configCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
315 | private let configQueue = DispatchQueue(label: "swiftformat.config", qos: .userInteractive)
316 | private func processDirectory(_ inputURL: URL, with options: inout Options, logger: Logger?) throws {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:37: warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: mutation of captured var 'completionBlocks' in concurrently-executing code
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| `- warning: mutation of captured var 'completionBlocks' in concurrently-executing code
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:21: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:77: warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| `- warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:194:10: warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
192 | }
193 |
194 | func enumerate(inputURL: URL,
| `- warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
195 | outputURL: URL?,
196 | options: Options)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:247:23: warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
245 |
246 | queue.async(group: group) {
247 | var options = baseOptions
| `- warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
248 | var inputURL = inputURL
249 | if options.formatOptions == nil {
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:253:62: warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
251 | }
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
| |- warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
255 | return
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:254:58: warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
| |- warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
255 | return
256 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:265:13: warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
263 | }
264 | } catch {
265 | onComplete { throw error }
| |- warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
266 | return
267 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:268:9: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
266 | return
267 | }
268 | enumerate(inputURL: inputURL, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
269 | }
270 | group.wait()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:145:10: warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
143 | let queue = concurrent ? DispatchQueue.global(qos: .userInitiated) : completionQueue
144 |
145 | func resolveInputURL(_ inputURL: URL, options: Options) -> (URL, URLResourceValues, Options)? {
| `- warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
146 | let fileOptions = options.fileOptions ?? .default
147 | let inputURL = inputURL.standardizedFileURL
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:137:10: warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
135 | var completionBlocks = [() throws -> Void]()
136 | let completionQueue = DispatchQueue(label: "swiftformat.enumeration")
137 | func onComplete(_ block: @escaping () throws -> Void) {
| `- warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:351:33: warning: reference to captured var 'args' in concurrently-executing code
349 | }
350 | configQueue.async {
351 | configCache[inputURL] = args
| `- warning: reference to captured var 'args' in concurrently-executing code
352 | }
353 | assert(options.formatOptions != nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:17: warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:34: warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/Formatter.swift:40:14: note: class 'Formatter' does not conform to the 'Sendable' protocol
38 | /// directly is that it allows mutation during enumeration, and
39 | /// transparently handles changes that affect the current token index.
40 | public class Formatter: NSObject {
| `- note: class 'Formatter' does not conform to the 'Sendable' protocol
41 | private var enumerationIndex = -1
42 | private var disabledCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapAttributes.swift:12:16: warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapAttributes = FormatRule(
| |- warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapAttributes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap @attributes onto a separate line, or keep them on the same line.",
14 | options: ["funcattributes", "typeattributes", "varattributes", "storedvarattrs", "computedvarattrs", "complexattrs", "noncomplexattrs"],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapConditionalBodies.swift:12:16: warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapConditionalBodies = FormatRule(
| |- warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapConditionalBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline conditional statements onto a new line.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapEnumCases.swift:13:16: warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Formats enum cases declaration into one case per line
13 | static let wrapEnumCases = FormatRule(
| |- warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapEnumCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Rewrite comma-delimited enum cases to one case per line.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapLoopBodies.swift:12:16: warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapLoopBodies = FormatRule(
| |- warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapLoopBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline loop statements onto a new line.",
14 | orderAfter: [.preferForLoop],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineConditionalAssignment.swift:12:16: warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineConditionalAssignment = FormatRule(
| |- warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineConditionalAssignment' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap multiline conditional assignment expressions after the assignment operator.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineStatementBraces.swift:12:16: warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineStatementBraces = FormatRule(
| |- warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineStatementBraces' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the opening brace of multiline statements.",
14 | orderAfter: [.braces, .indent, .wrapArguments],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSingleLineComments.swift:13:16: warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Wrap single-line comments that exceed given `FormatOptions.maxWidth` setting.
13 | static let wrapSingleLineComments = FormatRule(
| |- warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSingleLineComments' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap single line `//` comments that exceed the specified `--maxwidth`.",
15 | sharedOptions: ["maxwidth", "indent", "tabwidth", "assetliterals", "linebreaks"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSwitchCases.swift:13:16: warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Writes one switch case per line
13 | static let wrapSwitchCases = FormatRule(
| |- warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSwitchCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap comma-delimited switch cases onto multiple lines.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/YodaConditions.swift:13:16: warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Reorders "yoda conditions" where constant is placed on lhs of a comparison
13 | static let yodaConditions = FormatRule(
| |- warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'yodaConditions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Prefer constant values to be on the right-hand-side of expressions.",
15 | options: ["yodaswap"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:314:13: warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
312 |
313 | /// Process configuration files in specified directory.
314 | private var configCache = [URL: [String: String]]()
| |- warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'configCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
315 | private let configQueue = DispatchQueue(label: "swiftformat.config", qos: .userInteractive)
316 | private func processDirectory(_ inputURL: URL, with options: inout Options, logger: Logger?) throws {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:37: warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: mutation of captured var 'completionBlocks' in concurrently-executing code
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| `- warning: mutation of captured var 'completionBlocks' in concurrently-executing code
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:21: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:77: warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| `- warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:194:10: warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
192 | }
193 |
194 | func enumerate(inputURL: URL,
| `- warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
195 | outputURL: URL?,
196 | options: Options)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:247:23: warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
245 |
246 | queue.async(group: group) {
247 | var options = baseOptions
| `- warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
248 | var inputURL = inputURL
249 | if options.formatOptions == nil {
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:253:62: warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
251 | }
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
| |- warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
255 | return
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:254:58: warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
| |- warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
255 | return
256 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:265:13: warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
263 | }
264 | } catch {
265 | onComplete { throw error }
| |- warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
266 | return
267 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:268:9: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
266 | return
267 | }
268 | enumerate(inputURL: inputURL, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
269 | }
270 | group.wait()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:145:10: warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
143 | let queue = concurrent ? DispatchQueue.global(qos: .userInitiated) : completionQueue
144 |
145 | func resolveInputURL(_ inputURL: URL, options: Options) -> (URL, URLResourceValues, Options)? {
| `- warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
146 | let fileOptions = options.fileOptions ?? .default
147 | let inputURL = inputURL.standardizedFileURL
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:137:10: warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
135 | var completionBlocks = [() throws -> Void]()
136 | let completionQueue = DispatchQueue(label: "swiftformat.enumeration")
137 | func onComplete(_ block: @escaping () throws -> Void) {
| `- warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:351:33: warning: reference to captured var 'args' in concurrently-executing code
349 | }
350 | configQueue.async {
351 | configCache[inputURL] = args
| `- warning: reference to captured var 'args' in concurrently-executing code
352 | }
353 | assert(options.formatOptions != nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:17: warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:34: warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/Formatter.swift:40:14: note: class 'Formatter' does not conform to the 'Sendable' protocol
38 | /// directly is that it allows mutation during enumeration, and
39 | /// transparently handles changes that affect the current token index.
40 | public class Formatter: NSObject {
| `- note: class 'Formatter' does not conform to the 'Sendable' protocol
41 | private var enumerationIndex = -1
42 | private var disabledCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapAttributes.swift:12:16: warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapAttributes = FormatRule(
| |- warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapAttributes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap @attributes onto a separate line, or keep them on the same line.",
14 | options: ["funcattributes", "typeattributes", "varattributes", "storedvarattrs", "computedvarattrs", "complexattrs", "noncomplexattrs"],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapConditionalBodies.swift:12:16: warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapConditionalBodies = FormatRule(
| |- warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapConditionalBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline conditional statements onto a new line.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapEnumCases.swift:13:16: warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Formats enum cases declaration into one case per line
13 | static let wrapEnumCases = FormatRule(
| |- warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapEnumCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Rewrite comma-delimited enum cases to one case per line.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapLoopBodies.swift:12:16: warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapLoopBodies = FormatRule(
| |- warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapLoopBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline loop statements onto a new line.",
14 | orderAfter: [.preferForLoop],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineConditionalAssignment.swift:12:16: warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineConditionalAssignment = FormatRule(
| |- warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineConditionalAssignment' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap multiline conditional assignment expressions after the assignment operator.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineStatementBraces.swift:12:16: warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineStatementBraces = FormatRule(
| |- warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineStatementBraces' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the opening brace of multiline statements.",
14 | orderAfter: [.braces, .indent, .wrapArguments],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSingleLineComments.swift:13:16: warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Wrap single-line comments that exceed given `FormatOptions.maxWidth` setting.
13 | static let wrapSingleLineComments = FormatRule(
| |- warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSingleLineComments' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap single line `//` comments that exceed the specified `--maxwidth`.",
15 | sharedOptions: ["maxwidth", "indent", "tabwidth", "assetliterals", "linebreaks"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSwitchCases.swift:13:16: warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Writes one switch case per line
13 | static let wrapSwitchCases = FormatRule(
| |- warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSwitchCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap comma-delimited switch cases onto multiple lines.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/YodaConditions.swift:13:16: warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Reorders "yoda conditions" where constant is placed on lhs of a comparison
13 | static let yodaConditions = FormatRule(
| |- warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'yodaConditions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Prefer constant values to be on the right-hand-side of expressions.",
15 | options: ["yodaswap"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:314:13: warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
312 |
313 | /// Process configuration files in specified directory.
314 | private var configCache = [URL: [String: String]]()
| |- warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'configCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
315 | private let configQueue = DispatchQueue(label: "swiftformat.config", qos: .userInteractive)
316 | private func processDirectory(_ inputURL: URL, with options: inout Options, logger: Logger?) throws {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:37: warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: mutation of captured var 'completionBlocks' in concurrently-executing code
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| `- warning: mutation of captured var 'completionBlocks' in concurrently-executing code
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:21: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:77: warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| `- warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:194:10: warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
192 | }
193 |
194 | func enumerate(inputURL: URL,
| `- warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
195 | outputURL: URL?,
196 | options: Options)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:247:23: warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
245 |
246 | queue.async(group: group) {
247 | var options = baseOptions
| `- warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
248 | var inputURL = inputURL
249 | if options.formatOptions == nil {
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:253:62: warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
251 | }
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
| |- warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
255 | return
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:254:58: warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
| |- warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
255 | return
256 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:265:13: warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
263 | }
264 | } catch {
265 | onComplete { throw error }
| |- warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
266 | return
267 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:268:9: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
266 | return
267 | }
268 | enumerate(inputURL: inputURL, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
269 | }
270 | group.wait()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:145:10: warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
143 | let queue = concurrent ? DispatchQueue.global(qos: .userInitiated) : completionQueue
144 |
145 | func resolveInputURL(_ inputURL: URL, options: Options) -> (URL, URLResourceValues, Options)? {
| `- warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
146 | let fileOptions = options.fileOptions ?? .default
147 | let inputURL = inputURL.standardizedFileURL
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:137:10: warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
135 | var completionBlocks = [() throws -> Void]()
136 | let completionQueue = DispatchQueue(label: "swiftformat.enumeration")
137 | func onComplete(_ block: @escaping () throws -> Void) {
| `- warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:351:33: warning: reference to captured var 'args' in concurrently-executing code
349 | }
350 | configQueue.async {
351 | configCache[inputURL] = args
| `- warning: reference to captured var 'args' in concurrently-executing code
352 | }
353 | assert(options.formatOptions != nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:17: warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:34: warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/Formatter.swift:40:14: note: class 'Formatter' does not conform to the 'Sendable' protocol
38 | /// directly is that it allows mutation during enumeration, and
39 | /// transparently handles changes that affect the current token index.
40 | public class Formatter: NSObject {
| `- note: class 'Formatter' does not conform to the 'Sendable' protocol
41 | private var enumerationIndex = -1
42 | private var disabledCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapAttributes.swift:12:16: warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapAttributes = FormatRule(
| |- warning: static property 'wrapAttributes' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapAttributes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap @attributes onto a separate line, or keep them on the same line.",
14 | options: ["funcattributes", "typeattributes", "varattributes", "storedvarattrs", "computedvarattrs", "complexattrs", "noncomplexattrs"],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapConditionalBodies.swift:12:16: warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapConditionalBodies = FormatRule(
| |- warning: static property 'wrapConditionalBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapConditionalBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline conditional statements onto a new line.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapEnumCases.swift:13:16: warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Formats enum cases declaration into one case per line
13 | static let wrapEnumCases = FormatRule(
| |- warning: static property 'wrapEnumCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapEnumCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Rewrite comma-delimited enum cases to one case per line.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapLoopBodies.swift:12:16: warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapLoopBodies = FormatRule(
| |- warning: static property 'wrapLoopBodies' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapLoopBodies' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the bodies of inline loop statements onto a new line.",
14 | orderAfter: [.preferForLoop],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineConditionalAssignment.swift:12:16: warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineConditionalAssignment = FormatRule(
| |- warning: static property 'wrapMultilineConditionalAssignment' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineConditionalAssignment' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap multiline conditional assignment expressions after the assignment operator.",
14 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapMultilineStatementBraces.swift:12:16: warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public extension FormatRule {
12 | static let wrapMultilineStatementBraces = FormatRule(
| |- warning: static property 'wrapMultilineStatementBraces' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapMultilineStatementBraces' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | help: "Wrap the opening brace of multiline statements.",
14 | orderAfter: [.braces, .indent, .wrapArguments],
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSingleLineComments.swift:13:16: warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Wrap single-line comments that exceed given `FormatOptions.maxWidth` setting.
13 | static let wrapSingleLineComments = FormatRule(
| |- warning: static property 'wrapSingleLineComments' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSingleLineComments' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap single line `//` comments that exceed the specified `--maxwidth`.",
15 | sharedOptions: ["maxwidth", "indent", "tabwidth", "assetliterals", "linebreaks"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/WrapSwitchCases.swift:13:16: warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Writes one switch case per line
13 | static let wrapSwitchCases = FormatRule(
| |- warning: static property 'wrapSwitchCases' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wrapSwitchCases' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Wrap comma-delimited switch cases onto multiple lines.",
15 | disabledByDefault: true,
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Rules/YodaConditions.swift:13:16: warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
11 | public extension FormatRule {
12 | /// Reorders "yoda conditions" where constant is placed on lhs of a comparison
13 | static let yodaConditions = FormatRule(
| |- warning: static property 'yodaConditions' is not concurrency-safe because non-'Sendable' type 'FormatRule' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'yodaConditions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | help: "Prefer constant values to be on the right-hand-side of expressions.",
15 | options: ["yodaswap"]
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:314:13: warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
312 |
313 | /// Process configuration files in specified directory.
314 | private var configCache = [URL: [String: String]]()
| |- warning: var 'configCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'configCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
315 | private let configQueue = DispatchQueue(label: "swiftformat.config", qos: .userInteractive)
316 | private func processDirectory(_ inputURL: URL, with options: inout Options, logger: Logger?) throws {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'completionBlocks' with non-sendable type '[() throws -> Void]' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:37: warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| |- warning: capture of 'block' with non-sendable type '() throws -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:139:13: warning: mutation of captured var 'completionBlocks' in concurrently-executing code
137 | func onComplete(_ block: @escaping () throws -> Void) {
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
| `- warning: mutation of captured var 'completionBlocks' in concurrently-executing code
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:21: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:240:77: warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
238 | URL(fileURLWithPath: $0.path + url.path[inputURL.path.endIndex ..< url.path.endIndex])
239 | }
240 | enumerate(inputURL: url, outputURL: outputURL, options: options)
| `- warning: capture of 'options' with non-sendable type 'Options' in a '@Sendable' closure
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:194:10: warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
192 | }
193 |
194 | func enumerate(inputURL: URL,
| `- warning: concurrently-executed local function 'enumerate(inputURL:outputURL:options:)' must be marked as '@Sendable'
195 | outputURL: URL?,
196 | options: Options)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:247:23: warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
245 |
246 | queue.async(group: group) {
247 | var options = baseOptions
| `- warning: capture of 'baseOptions' with non-sendable type 'Options' in a '@Sendable' closure
248 | var inputURL = inputURL
249 | if options.formatOptions == nil {
/Users/admin/builder/spi-builder-workspace/Sources/Options.swift:1018:15: note: consider making struct 'Options' conform to the 'Sendable' protocol
1016 |
1017 | /// All options
1018 | public struct Options {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
1019 | public var fileOptions: FileOptions?
1020 | public var formatOptions: FormatOptions?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:253:62: warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
251 | }
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
| |- warning: capture of 'logger' with non-sendable type 'Logger?' (aka 'Optional<(String) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
255 | return
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:254:58: warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
252 | do {
253 | try gatherOptions(&options, for: inputURL, with: logger)
254 | guard let (resolvedURL, resourceValues, _) = resolveInputURL(inputURL, options: options) else {
| |- warning: capture of 'resolveInputURL(_:options:)' with non-sendable type '(URL, Options) -> (URL, URLResourceValues, Options)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
255 | return
256 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:265:13: warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
263 | }
264 | } catch {
265 | onComplete { throw error }
| |- warning: capture of 'onComplete' with non-sendable type '(@escaping () throws -> Void) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
266 | return
267 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:268:9: warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
266 | return
267 | }
268 | enumerate(inputURL: inputURL, outputURL: outputURL, options: options)
| |- warning: capture of 'enumerate(inputURL:outputURL:options:)' with non-sendable type '(URL, URL?, Options) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
269 | }
270 | group.wait()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:145:10: warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
143 | let queue = concurrent ? DispatchQueue.global(qos: .userInitiated) : completionQueue
144 |
145 | func resolveInputURL(_ inputURL: URL, options: Options) -> (URL, URLResourceValues, Options)? {
| `- warning: concurrently-executed local function 'resolveInputURL(_:options:)' must be marked as '@Sendable'
146 | let fileOptions = options.fileOptions ?? .default
147 | let inputURL = inputURL.standardizedFileURL
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:137:10: warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
135 | var completionBlocks = [() throws -> Void]()
136 | let completionQueue = DispatchQueue(label: "swiftformat.enumeration")
137 | func onComplete(_ block: @escaping () throws -> Void) {
| `- warning: concurrently-executed local function 'onComplete' must be marked as '@Sendable'
138 | completionQueue.async(group: group) {
139 | completionBlocks.append(block)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:351:33: warning: reference to captured var 'args' in concurrently-executing code
349 | }
350 | configQueue.async {
351 | configCache[inputURL] = args
| `- warning: reference to captured var 'args' in concurrently-executing code
352 | }
353 | assert(options.formatOptions != nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:17: warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'rule' with non-sendable type 'FormatRule' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/FormatRule.swift:34:20: note: class 'FormatRule' does not conform to the 'Sendable' protocol
32 | import Foundation
33 |
34 | public final class FormatRule: Hashable, Comparable, CustomStringConvertible {
| `- note: class 'FormatRule' does not conform to the 'Sendable' protocol
35 | static let unnamedRule = "[unnamed rule]"
36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFormat.swift:571:34: warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
569 | for rule in rules {
570 | queue.async(group: group) {
571 | rule.apply(with: formatter)
| `- warning: capture of 'formatter' with non-sendable type 'Formatter' in a '@Sendable' closure
572 | }
573 | guard group.wait(timeout: .now() + timeout) != .timedOut else {
/Users/admin/builder/spi-builder-workspace/Sources/Formatter.swift:40:14: note: class 'Formatter' does not conform to the 'Sendable' protocol
38 | /// directly is that it allows mutation during enumeration, and
39 | /// transparently handles changes that affect the current token index.
40 | public class Formatter: NSObject {
| `- note: class 'Formatter' does not conform to the 'Sendable' protocol
41 | private var enumerationIndex = -1
42 | private var disabledCount = 0
[272/278] Compiling CommandLineTool main.swift
/Users/admin/builder/spi-builder-workspace/CommandLineTool/main.swift:69:5: warning: reference to static property 'print' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
67 | private let printQueue = DispatchQueue(label: "swiftformat.print")
68 |
69 | CLI.print = { message, type in
| `- warning: reference to static property 'print' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
70 | printQueue.sync {
71 | switch type {
/Users/admin/builder/spi-builder-workspace/Sources/CommandLine.swift:49:16: note: static property declared here
47 |
48 | /// Output handler - override this to intercept output from the CLI
49 | static var print: (String, OutputType) -> Void = { _, _ in
| `- note: static property declared here
50 | fatalError("No print hook set.")
51 | }
[273/278] Emitting module CommandLineTool
/Users/admin/builder/spi-builder-workspace/CommandLineTool/main.swift:69:5: warning: reference to static property 'print' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
67 | private let printQueue = DispatchQueue(label: "swiftformat.print")
68 |
69 | CLI.print = { message, type in
| `- warning: reference to static property 'print' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
70 | printQueue.sync {
71 | switch type {
/Users/admin/builder/spi-builder-workspace/Sources/CommandLine.swift:49:16: note: static property declared here
47 |
48 | /// Output handler - override this to intercept output from the CLI
49 | static var print: (String, OutputType) -> Void = { _, _ in
| `- note: static property declared here
50 | fatalError("No print hook set.")
51 | }
/Users/admin/builder/spi-builder-workspace/CommandLineTool/main.swift:69:5: warning: reference to static property 'print' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
67 | private let printQueue = DispatchQueue(label: "swiftformat.print")
68 |
69 | CLI.print = { message, type in
| `- warning: reference to static property 'print' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
70 | printQueue.sync {
71 | switch type {
/Users/admin/builder/spi-builder-workspace/Sources/CommandLine.swift:49:16: note: static property declared here
47 |
48 | /// Output handler - override this to intercept output from the CLI
49 | static var print: (String, OutputType) -> Void = { _, _ in
| `- note: static property declared here
50 | fatalError("No print hook set.")
51 | }
[275/278] Compiling CommandLineTool main.swift
/Users/admin/builder/spi-builder-workspace/CommandLineTool/main.swift:69:5: warning: reference to static property 'print' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
67 | private let printQueue = DispatchQueue(label: "swiftformat.print")
68 |
69 | CLI.print = { message, type in
| `- warning: reference to static property 'print' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
70 | printQueue.sync {
71 | switch type {
/Users/admin/builder/spi-builder-workspace/Sources/CommandLine.swift:49:16: note: static property declared here
47 |
48 | /// Output handler - override this to intercept output from the CLI
49 | static var print: (String, OutputType) -> Void = { _, _ in
| `- note: static property declared here
50 | fatalError("No print hook set.")
51 | }
[275/278] Write Objects.LinkFileList
[276/278] Linking swiftformat
[277/278] Applying swiftformat
Build complete! (13.89s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SwiftFormat",
"name" : "SwiftFormat",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "swiftformat",
"targets" : [
"CommandLineTool"
],
"type" : {
"executable" : null
}
},
{
"name" : "SwiftFormat",
"targets" : [
"SwiftFormat"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftFormatPlugin",
"targets" : [
"SwiftFormatPlugin"
],
"type" : {
"plugin" : null
}
}
],
"targets" : [
{
"c99name" : "SwiftFormatTests",
"module_type" : "SwiftTarget",
"name" : "SwiftFormatTests",
"path" : "Tests",
"sources" : [
"ArgumentsTests.swift",
"BadConfig/Test.swift",
"CodeOrganizationTests.swift",
"CommandLineTests.swift",
"EnumAssociableTests.swift",
"FormatterTests.swift",
"GlobsTests.swift",
"InferenceTests.swift",
"MetadataTests.swift",
"OptionDescriptorTests.swift",
"ParsingHelpersTests.swift",
"ProjectFilePaths.swift",
"ReporterTests.swift",
"Rules/AcronymsTests.swift",
"Rules/AndOperatorTests.swift",
"Rules/AnyObjectProtocolTests.swift",
"Rules/ApplicationMainTests.swift",
"Rules/AssertionFailuresTests.swift",
"Rules/BlankLineAfterImportsTests.swift",
"Rules/BlankLineAfterSwitchCaseTests.swift",
"Rules/BlankLinesAroundMarkTests.swift",
"Rules/BlankLinesAtEndOfScopeTests.swift",
"Rules/BlankLinesAtStartOfScopeTests.swift",
"Rules/BlankLinesBetweenChainedFunctionsTests.swift",
"Rules/BlankLinesBetweenImportsTests.swift",
"Rules/BlankLinesBetweenScopesTests.swift",
"Rules/BlockCommentsTests.swift",
"Rules/BracesTests.swift",
"Rules/ConditionalAssignmentTests.swift",
"Rules/ConsecutiveBlankLinesTests.swift",
"Rules/ConsecutiveSpacesTests.swift",
"Rules/ConsistentSwitchCaseSpacingTests.swift",
"Rules/DocCommentsBeforeModifiersTests.swift",
"Rules/DocCommentsTests.swift",
"Rules/DuplicateImportsTests.swift",
"Rules/ElseOnSameLineTests.swift",
"Rules/EmptyBracesTests.swift",
"Rules/EnumNamespacesTests.swift",
"Rules/ExtensionAccessControlTests.swift",
"Rules/FileHeaderTests.swift",
"Rules/GenericExtensionsTests.swift",
"Rules/HeaderFileNameTests.swift",
"Rules/HoistAwaitTests.swift",
"Rules/HoistPatternLetTests.swift",
"Rules/HoistTryTests.swift",
"Rules/IndentTests.swift",
"Rules/InitCoderUnavailableTests.swift",
"Rules/IsEmptyTests.swift",
"Rules/LeadingDelimitersTests.swift",
"Rules/LinebreakAtEndOfFileTests.swift",
"Rules/LinebreaksTests.swift",
"Rules/MarkTypesTests.swift",
"Rules/ModifierOrderTests.swift",
"Rules/NoExplicitOwnershipTests.swift",
"Rules/NumberFormattingTests.swift",
"Rules/OpaqueGenericParametersTests.swift",
"Rules/OrganizeDeclarationsTests.swift",
"Rules/PreferForLoopTests.swift",
"Rules/PreferKeyPathTests.swift",
"Rules/PropertyTypesTests.swift",
"Rules/RedundantBackticksTests.swift",
"Rules/RedundantBreakTests.swift",
"Rules/RedundantClosureTests.swift",
"Rules/RedundantExtensionACLTests.swift",
"Rules/RedundantFileprivateTests.swift",
"Rules/RedundantGetTests.swift",
"Rules/RedundantInitTests.swift",
"Rules/RedundantInternalTests.swift",
"Rules/RedundantLetErrorTests.swift",
"Rules/RedundantLetTests.swift",
"Rules/RedundantNilInitTests.swift",
"Rules/RedundantObjcTests.swift",
"Rules/RedundantOptionalBindingTests.swift",
"Rules/RedundantParensTests.swift",
"Rules/RedundantPatternTests.swift",
"Rules/RedundantPropertyTests.swift",
"Rules/RedundantRawValuesTests.swift",
"Rules/RedundantReturnTests.swift",
"Rules/RedundantSelfTests.swift",
"Rules/RedundantStaticSelfTests.swift",
"Rules/RedundantTypeTests.swift",
"Rules/RedundantTypedThrowsTests.swift",
"Rules/RedundantVoidReturnTypeTests.swift",
"Rules/SemicolonsTests.swift",
"Rules/SortDeclarationsTests.swift",
"Rules/SortImportsTests.swift",
"Rules/SortSwitchCasesTests.swift",
"Rules/SortTypealiasesTests.swift",
"Rules/SpaceAroundBracesTests.swift",
"Rules/SpaceAroundBracketsTests.swift",
"Rules/SpaceAroundCommentsTests.swift",
"Rules/SpaceAroundGenericsTests.swift",
"Rules/SpaceAroundOperatorsTests.swift",
"Rules/SpaceAroundParensTests.swift",
"Rules/SpaceInsideBracesTests.swift",
"Rules/SpaceInsideBracketsTests.swift",
"Rules/SpaceInsideCommentsTests.swift",
"Rules/SpaceInsideGenericsTests.swift",
"Rules/SpaceInsideParensTests.swift",
"Rules/StrongOutletsTests.swift",
"Rules/StrongifiedSelfTests.swift",
"Rules/TodosTests.swift",
"Rules/TrailingClosuresTests.swift",
"Rules/TrailingCommasTests.swift",
"Rules/TrailingSpaceTests.swift",
"Rules/TypeSugarTests.swift",
"Rules/UnusedArgumentsTests.swift",
"Rules/UnusedPrivateDeclarationsTests.swift",
"Rules/VoidTests.swift",
"Rules/WrapArgumentsTests.swift",
"Rules/WrapAttributesTests.swift",
"Rules/WrapConditionalBodiesTests.swift",
"Rules/WrapEnumCasesTests.swift",
"Rules/WrapLoopBodiesTests.swift",
"Rules/WrapMultilineConditionalAssignmentTests.swift",
"Rules/WrapMultilineStatementBracesTests.swift",
"Rules/WrapSingleLineCommentsTests.swift",
"Rules/WrapSwitchCasesTests.swift",
"Rules/WrapTests.swift",
"Rules/YodaConditionsTests.swift",
"SingularizeTests.swift",
"SwiftFormatTests.swift",
"TokenizerTests.swift",
"VersionTests.swift",
"XCTestCase+testFormatting.swift",
"ZRegressionTests.swift"
],
"target_dependencies" : [
"SwiftFormat"
],
"type" : "test"
},
{
"c99name" : "SwiftFormatPlugin",
"module_type" : "PluginTarget",
"name" : "SwiftFormatPlugin",
"path" : "Plugins/SwiftFormatPlugin",
"plugin_capability" : {
"intent" : {
"description" : "Formats Swift source files using SwiftFormat",
"type" : "custom",
"verb" : "swiftformat"
},
"permissions" : [
{
"network_scope" : {
"none" : {
}
},
"reason" : "This command reformats source files",
"type" : "writeToPackageDirectory"
}
],
"type" : "command"
},
"product_memberships" : [
"SwiftFormatPlugin"
],
"sources" : [
"Shared/CommandPlugin+Extension.swift",
"Shared/PluginToolProviding.swift",
"SwiftFormatPlugin.swift",
"SwiftFormatPluginXcode.swift"
],
"target_dependencies" : [
"CommandLineTool"
],
"type" : "plugin"
},
{
"c99name" : "SwiftFormat",
"module_type" : "SwiftTarget",
"name" : "SwiftFormat",
"path" : "Sources",
"product_memberships" : [
"swiftformat",
"SwiftFormat",
"SwiftFormatPlugin"
],
"sources" : [
"Arguments.swift",
"CommandLine.swift",
"DeclarationHelpers.swift",
"EnumAssociable.swift",
"FormatRule.swift",
"Formatter.swift",
"FormattingHelpers.swift",
"GitFileInfo.swift",
"GithubActionsLogReporter.swift",
"Globs.swift",
"Inference.swift",
"JSONReporter.swift",
"OptionDescriptor.swift",
"Options.swift",
"ParsingHelpers.swift",
"Reporter.swift",
"RuleRegistry.generated.swift",
"Rules/Acronyms.swift",
"Rules/AndOperator.swift",
"Rules/AnyObjectProtocol.swift",
"Rules/ApplicationMain.swift",
"Rules/AssertionFailures.swift",
"Rules/BlankLineAfterImports.swift",
"Rules/BlankLineAfterSwitchCase.swift",
"Rules/BlankLinesAroundMark.swift",
"Rules/BlankLinesAtEndOfScope.swift",
"Rules/BlankLinesAtStartOfScope.swift",
"Rules/BlankLinesBetweenChainedFunctions.swift",
"Rules/BlankLinesBetweenImports.swift",
"Rules/BlankLinesBetweenScopes.swift",
"Rules/BlockComments.swift",
"Rules/Braces.swift",
"Rules/ConditionalAssignment.swift",
"Rules/ConsecutiveBlankLines.swift",
"Rules/ConsecutiveSpaces.swift",
"Rules/ConsistentSwitchCaseSpacing.swift",
"Rules/DocComments.swift",
"Rules/DocCommentsBeforeModifiers.swift",
"Rules/DuplicateImports.swift",
"Rules/ElseOnSameLine.swift",
"Rules/EmptyBraces.swift",
"Rules/EnumNamespaces.swift",
"Rules/ExtensionAccessControl.swift",
"Rules/FileHeader.swift",
"Rules/GenericExtensions.swift",
"Rules/HeaderFileName.swift",
"Rules/HoistAwait.swift",
"Rules/HoistPatternLet.swift",
"Rules/HoistTry.swift",
"Rules/Indent.swift",
"Rules/InitCoderUnavailable.swift",
"Rules/IsEmpty.swift",
"Rules/LeadingDelimiters.swift",
"Rules/LinebreakAtEndOfFile.swift",
"Rules/Linebreaks.swift",
"Rules/MarkTypes.swift",
"Rules/ModifierOrder.swift",
"Rules/NoExplicitOwnership.swift",
"Rules/NumberFormatting.swift",
"Rules/OpaqueGenericParameters.swift",
"Rules/OrganizeDeclarations.swift",
"Rules/PreferForLoop.swift",
"Rules/PreferKeyPath.swift",
"Rules/PropertyTypes.swift",
"Rules/RedundantBackticks.swift",
"Rules/RedundantBreak.swift",
"Rules/RedundantClosure.swift",
"Rules/RedundantExtensionACL.swift",
"Rules/RedundantFileprivate.swift",
"Rules/RedundantGet.swift",
"Rules/RedundantInit.swift",
"Rules/RedundantInternal.swift",
"Rules/RedundantLet.swift",
"Rules/RedundantLetError.swift",
"Rules/RedundantNilInit.swift",
"Rules/RedundantObjc.swift",
"Rules/RedundantOptionalBinding.swift",
"Rules/RedundantParens.swift",
"Rules/RedundantPattern.swift",
"Rules/RedundantProperty.swift",
"Rules/RedundantRawValues.swift",
"Rules/RedundantReturn.swift",
"Rules/RedundantSelf.swift",
"Rules/RedundantStaticSelf.swift",
"Rules/RedundantType.swift",
"Rules/RedundantTypedThrows.swift",
"Rules/RedundantVoidReturnType.swift",
"Rules/Semicolons.swift",
"Rules/SortDeclarations.swift",
"Rules/SortImports.swift",
"Rules/SortSwitchCases.swift",
"Rules/SortTypealiases.swift",
"Rules/SortedImports.swift",
"Rules/SortedSwitchCases.swift",
"Rules/SpaceAroundBraces.swift",
"Rules/SpaceAroundBrackets.swift",
"Rules/SpaceAroundComments.swift",
"Rules/SpaceAroundGenerics.swift",
"Rules/SpaceAroundOperators.swift",
"Rules/SpaceAroundParens.swift",
"Rules/SpaceInsideBraces.swift",
"Rules/SpaceInsideBrackets.swift",
"Rules/SpaceInsideComments.swift",
"Rules/SpaceInsideGenerics.swift",
"Rules/SpaceInsideParens.swift",
"Rules/Specifiers.swift",
"Rules/StrongOutlets.swift",
"Rules/StrongifiedSelf.swift",
"Rules/Todos.swift",
"Rules/TrailingClosures.swift",
"Rules/TrailingCommas.swift",
"Rules/TrailingSpace.swift",
"Rules/TypeSugar.swift",
"Rules/UnusedArguments.swift",
"Rules/UnusedPrivateDeclarations.swift",
"Rules/Void.swift",
"Rules/Wrap.swift",
"Rules/WrapArguments.swift",
"Rules/WrapAttributes.swift",
"Rules/WrapConditionalBodies.swift",
"Rules/WrapEnumCases.swift",
"Rules/WrapLoopBodies.swift",
"Rules/WrapMultilineConditionalAssignment.swift",
"Rules/WrapMultilineStatementBraces.swift",
"Rules/WrapSingleLineComments.swift",
"Rules/WrapSwitchCases.swift",
"Rules/YodaConditions.swift",
"Singularize.swift",
"SwiftFormat.swift",
"Tokenizer.swift",
"XMLReporter.swift"
],
"type" : "library"
},
{
"c99name" : "CommandLineTool",
"module_type" : "SwiftTarget",
"name" : "CommandLineTool",
"path" : "CommandLineTool",
"product_memberships" : [
"swiftformat",
"SwiftFormatPlugin"
],
"sources" : [
"main.swift"
],
"target_dependencies" : [
"SwiftFormat"
],
"type" : "executable"
}
],
"tools_version" : "5.6"
}
Done.