The Swift Package Index logo.Swift Package Index

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

Build Information

Failed to build Neon, reference 0.6.0 (7df7d0), with Swift 6.0 for Linux on 4 Nov 2024 05:08:46 UTC.

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ChimeHQ/Neon.git
Reference: 0.6.0
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/ChimeHQ/Neon
 * tag               0.6.0      -> FETCH_HEAD
HEAD is now at 7df7d08 Removing these - will come back in another form
Submodule path 'tree-sitter-swift': checked out '50b8c5e61c29fa30e760c7a1cbf24b59970e6233'
Submodule 'tree-sitter-swift' (https://github.com/alex-pinkus/tree-sitter-swift) registered for path 'tree-sitter-swift'
Cloning into '/host/spi-builder-workspace/tree-sitter-swift'...
Cloned https://github.com/ChimeHQ/Neon.git
Revision (git rev-parse @):
7df7d080a271cfa4dc87f94cccc024665a75047e
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/ChimeHQ/Neon.git at 0.6.0
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/ChimeHQ/Neon.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Fetching https://github.com/ChimeHQ/Rearrange
Fetching https://github.com/ChimeHQ/SwiftTreeSitter
[1/532] Fetching rearrange
[246/2114] Fetching rearrange, swifttreesitter
Fetched https://github.com/ChimeHQ/Rearrange from cache (0.18s)
Fetched https://github.com/ChimeHQ/SwiftTreeSitter from cache (0.19s)
Computing version for https://github.com/ChimeHQ/SwiftTreeSitter
Computed https://github.com/ChimeHQ/SwiftTreeSitter at 0.8.0 (0.44s)
Computing version for https://github.com/ChimeHQ/Rearrange
Computed https://github.com/ChimeHQ/Rearrange at 1.8.1 (2.03s)
Creating working copy for https://github.com/ChimeHQ/SwiftTreeSitter
Working copy of https://github.com/ChimeHQ/SwiftTreeSitter resolved at 0.8.0
Creating working copy for https://github.com/ChimeHQ/Rearrange
Working copy of https://github.com/ChimeHQ/Rearrange resolved at 1.8.1
Building for debugging...
[0/8] Write sources
[4/8] Compiling scanner.c
[5/8] Compiling lib.c
[6/8] Compiling parser.c
[7/8] Write swift-version-24593BA9C3E375BF.txt
[9/36] Emitting module SwiftTreeSitter
[10/38] Compiling Rearrange String+NSRange.swift
[11/39] Compiling SwiftTreeSitter String+TextProvider.swift
[12/39] Compiling SwiftTreeSitter TSRange.swift
[13/39] Compiling SwiftTreeSitter QueryDefinitions.swift
[14/39] Compiling SwiftTreeSitter ResolvingQueryCursor.swift
[15/39] Compiling SwiftTreeSitter ResolvingQueryMatchSequence.swift
[16/39] Compiling SwiftTreeSitter String+Data.swift
[17/39] Compiling Rearrange NSTextLocation+Comparable.swift
[18/39] Compiling Rearrange NSTextRange+NSRange.swift
[19/39] Compiling Rearrange RangeMutation.swift
[20/39] Compiling SwiftTreeSitter Tree.swift
[21/39] Compiling SwiftTreeSitter TreeCursor.swift
[22/39] Compiling Rearrange UITextRange+Convenience.swift
[23/39] Compiling Rearrange NSRange+Shift.swift
[24/39] Emitting module Rearrange
[25/39] Compiling SwiftTreeSitter Input.swift
[26/39] Compiling SwiftTreeSitter InputEdit.swift
[27/39] Compiling SwiftTreeSitter Bundle+Extensions.swift
[28/39] Compiling SwiftTreeSitter Encoding+Helpers.swift
[29/40] Compiling SwiftTreeSitter Node.swift
[30/40] Compiling SwiftTreeSitter Parser.swift
[31/40] Compiling SwiftTreeSitter Point.swift
[36/40] Compiling SwiftTreeSitter Language.swift
[37/40] Compiling SwiftTreeSitter LanguageConfiguration.swift
[38/40] Compiling SwiftTreeSitter Predicate.swift
[39/40] Compiling SwiftTreeSitter Query.swift
[42/46] Compiling TreeSitterClient TreeSitterParseState.swift
[43/46] Compiling TreeSitterClient TreeSitter+Extensions.swift
[44/46] Emitting module TreeSitterClient
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:272:58: warning: 'ResolvingQueryCursor' is deprecated: Please use ResolvingQueryMatchSequence
270 | extension TreeSitterClient {
271 |     public typealias QueryCursorResult = Result<QueryCursor, TreeSitterClientError>
272 |     public typealias ResolvingQueryCursorResult = Result<ResolvingQueryCursor, TreeSitterClientError>
    |                                                          `- warning: 'ResolvingQueryCursor' is deprecated: Please use ResolvingQueryMatchSequence
273 |
274 |     /// Determine if it is likely that a synchronous query will execute quickly
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:374:62: warning: 'ResolvingQueryCursor' is deprecated: Please use ResolvingQueryMatchSequence
372 |                                      in range: NSRange,
373 |                                      executionMode: ExecutionMode = .asynchronous(prefetch: true),
374 | 									 textProvider: TextProvider? = nil) async throws -> ResolvingQueryCursor {
    |                                                              `- warning: 'ResolvingQueryCursor' is deprecated: Please use ResolvingQueryMatchSequence
375 |         try await withCheckedThrowingContinuation { continuation in
376 | 			self.executeResolvingQuery(query, in: range, executionMode: executionMode, textProvider: textProvider) { result in
[45/46] Compiling TreeSitterClient TreeSitterClient.swift
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:272:58: warning: 'ResolvingQueryCursor' is deprecated: Please use ResolvingQueryMatchSequence
270 | extension TreeSitterClient {
271 |     public typealias QueryCursorResult = Result<QueryCursor, TreeSitterClientError>
272 |     public typealias ResolvingQueryCursorResult = Result<ResolvingQueryCursor, TreeSitterClientError>
    |                                                          `- warning: 'ResolvingQueryCursor' is deprecated: Please use ResolvingQueryMatchSequence
273 |
274 |     /// Determine if it is likely that a synchronous query will execute quickly
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:374:62: warning: 'ResolvingQueryCursor' is deprecated: Please use ResolvingQueryMatchSequence
372 |                                      in range: NSRange,
373 |                                      executionMode: ExecutionMode = .asynchronous(prefetch: true),
374 | 									 textProvider: TextProvider? = nil) async throws -> ResolvingQueryCursor {
    |                                                              `- warning: 'ResolvingQueryCursor' is deprecated: Please use ResolvingQueryMatchSequence
375 |         try await withCheckedThrowingContinuation { continuation in
376 | 			self.executeResolvingQuery(query, in: range, executionMode: executionMode, textProvider: textProvider) { result in
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:213:40: warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | }
 12 |
 13 | public final class TreeSitterClient {
    |                    `- note: class 'TreeSitterClient' does not conform to the 'Sendable' protocol
 14 |     public typealias TextProvider = SwiftTreeSitter.Predicate.TextProvider
 15 |
    :
211 |
212 |         queue.async {
213 |             let (oldState, newState) = self.applyEdit(edit, readHandler: readHandler)
    |                                        `- warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
214 | 			let set = doInvalidations ? self.computeInvalidatedSet(from: oldState, to: newState, with: edit) : IndexSet()
215 |
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:213:74: warning: capture of 'readHandler' with non-sendable type 'Parser.ReadBlock' (aka '(Int, Point) -> Optional<Data>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
211 |
212 |         queue.async {
213 |             let (oldState, newState) = self.applyEdit(edit, readHandler: readHandler)
    |                                                                          |- warning: capture of 'readHandler' with non-sendable type 'Parser.ReadBlock' (aka '(Int, Point) -> Optional<Data>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                                                          `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
214 | 			let set = doInvalidations ? self.computeInvalidatedSet(from: oldState, to: newState, with: edit) : IndexSet()
215 |
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:223:5: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
221 | 				self.dispatchInvalidatedSet(set)
222 |
223 | 				completionHandler()
    |     |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
224 | 			}
225 |         }
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:217:25: warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | }
 12 |
 13 | public final class TreeSitterClient {
    |                    `- note: class 'TreeSitterClient' does not conform to the 'Sendable' protocol
 14 |     public typealias TextProvider = SwiftTreeSitter.Predicate.TextProvider
 15 |
    :
215 |
216 | 			OperationQueue.main.addOperation {
217 | 				let completedEdit = self.outstandingEdits.removeFirst()
    |                         `- warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
218 |
219 | 				assert(completedEdit.inputEdit == edit.inputEdit)
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:223:5: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
221 | 				self.dispatchInvalidatedSet(set)
222 |
223 | 				completionHandler()
    |     |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
224 | 			}
225 |         }
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:336:13: warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | }
 12 |
 13 | public final class TreeSitterClient {
    |                    `- note: class 'TreeSitterClient' does not conform to the 'Sendable' protocol
 14 |     public typealias TextProvider = SwiftTreeSitter.Predicate.TextProvider
 15 |
    :
334 |             // let's be optimistic and only check once at the end.
335 |
336 |             self.semaphore.wait()
    |             `- warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
337 |             let state = self.parseState.copy()
338 |             self.semaphore.signal()
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:351:25: warning: capture of 'completionHandler' with non-sendable type '(TreeSitterClient.ResolvingQueryCursorResult) -> Void' (aka '(Result<ResolvingQueryCursor, TreeSitterClientError>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
349 |                 OperationQueue.main.addOperation {
350 |                     guard startedVersion == self.version else {
351 |                         completionHandler(.failure(.staleContent))
    |                         |- warning: capture of 'completionHandler' with non-sendable type '(TreeSitterClient.ResolvingQueryCursorResult) -> Void' (aka '(Result<ResolvingQueryCursor, TreeSitterClientError>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
352 |
353 |                         return
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:356:28: warning: capture of 'textProvider' with non-sendable type 'TreeSitterClient.TextProvider?' (aka 'Optional<(_NSRange, Range<Point>) -> Optional<String>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     }
355 |
356 | 					if let textProvider = textProvider, let cursor = try? result.get() {
    |                            |- warning: capture of 'textProvider' with non-sendable type 'TreeSitterClient.TextProvider?' (aka 'Optional<(_NSRange, Range<Point>) -> Optional<String>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
357 | 						cursor.prepare(with: textProvider)
358 | 					}
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:341:30: warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | }
 12 |
 13 | public final class TreeSitterClient {
    |                    `- note: class 'TreeSitterClient' does not conform to the 'Sendable' protocol
 14 |     public typealias TextProvider = SwiftTreeSitter.Predicate.TextProvider
 15 |
    :
339 |
340 |             DispatchQueue.global().async {
341 |                 let result = self.executeResolvingQuerySynchronouslyWithoutCheck(query,
    |                              `- warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |                                                                                  in: range,
343 |                                                                                  with: state)
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:343:88: warning: capture of 'state' with non-sendable type 'TreeSitterParseState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
341 |                 let result = self.executeResolvingQuerySynchronouslyWithoutCheck(query,
342 |                                                                                  in: range,
343 |                                                                                  with: state)
    |                                                                                        `- warning: capture of 'state' with non-sendable type 'TreeSitterParseState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
344 |
345 |                 if case .success(let cursor) = result, prefetchMatches {
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterParseState.swift:4:8: note: consider making struct 'TreeSitterParseState' conform to the 'Sendable' protocol
 2 | import SwiftTreeSitter
 3 |
 4 | struct TreeSitterParseState {
   |        `- note: consider making struct 'TreeSitterParseState' conform to the 'Sendable' protocol
 5 |     var tree: MutableTree?
 6 |
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:351:25: warning: capture of 'completionHandler' with non-sendable type '(TreeSitterClient.ResolvingQueryCursorResult) -> Void' (aka '(Result<ResolvingQueryCursor, TreeSitterClientError>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
349 |                 OperationQueue.main.addOperation {
350 |                     guard startedVersion == self.version else {
351 |                         completionHandler(.failure(.staleContent))
    |                         |- warning: capture of 'completionHandler' with non-sendable type '(TreeSitterClient.ResolvingQueryCursorResult) -> Void' (aka '(Result<ResolvingQueryCursor, TreeSitterClientError>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
352 |
353 |                         return
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:356:28: warning: capture of 'textProvider' with non-sendable type 'TreeSitterClient.TextProvider?' (aka 'Optional<(_NSRange, Range<Point>) -> Optional<String>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     }
355 |
356 | 					if let textProvider = textProvider, let cursor = try? result.get() {
    |                            |- warning: capture of 'textProvider' with non-sendable type 'TreeSitterClient.TextProvider?' (aka 'Optional<(_NSRange, Range<Point>) -> Optional<String>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
357 | 						cursor.prepare(with: textProvider)
358 | 					}
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:350:45: warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | }
 12 |
 13 | public final class TreeSitterClient {
    |                    `- note: class 'TreeSitterClient' does not conform to the 'Sendable' protocol
 14 |     public typealias TextProvider = SwiftTreeSitter.Predicate.TextProvider
 15 |
    :
348 |
349 |                 OperationQueue.main.addOperation {
350 |                     guard startedVersion == self.version else {
    |                                             `- warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                         completionHandler(.failure(.staleContent))
352 |
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:351:25: warning: capture of 'completionHandler' with non-sendable type '(TreeSitterClient.ResolvingQueryCursorResult) -> Void' (aka '(Result<ResolvingQueryCursor, TreeSitterClientError>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
349 |                 OperationQueue.main.addOperation {
350 |                     guard startedVersion == self.version else {
351 |                         completionHandler(.failure(.staleContent))
    |                         |- warning: capture of 'completionHandler' with non-sendable type '(TreeSitterClient.ResolvingQueryCursorResult) -> Void' (aka '(Result<ResolvingQueryCursor, TreeSitterClientError>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
352 |
353 |                         return
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:356:28: warning: capture of 'textProvider' with non-sendable type 'TreeSitterClient.TextProvider?' (aka 'Optional<(_NSRange, Range<Point>) -> Optional<String>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     }
355 |
356 | 					if let textProvider = textProvider, let cursor = try? result.get() {
    |                            |- warning: capture of 'textProvider' with non-sendable type 'TreeSitterClient.TextProvider?' (aka 'Optional<(_NSRange, Range<Point>) -> Optional<String>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
357 | 						cursor.prepare(with: textProvider)
358 | 					}
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:356:60: warning: capture of 'result' with non-sendable type 'TreeSitterClient.ResolvingQueryCursorResult' (aka 'Result<ResolvingQueryCursor, TreeSitterClientError>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     }
355 |
356 | 					if let textProvider = textProvider, let cursor = try? result.get() {
    |                                                            `- warning: capture of 'result' with non-sendable type 'TreeSitterClient.ResolvingQueryCursorResult' (aka 'Result<ResolvingQueryCursor, TreeSitterClientError>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
357 | 						cursor.prepare(with: textProvider)
358 | 					}
/host/spi-builder-workspace/.build/checkouts/SwiftTreeSitter/Sources/SwiftTreeSitter/ResolvingQueryCursor.swift:36:20: note: class 'ResolvingQueryCursor' does not conform to the 'Sendable' protocol
 34 | /// ```
 35 | @available(*, deprecated, message: "Please use ResolvingQueryMatchSequence")
 36 | public final class ResolvingQueryCursor {
    |                    `- note: class 'ResolvingQueryCursor' does not conform to the 'Sendable' protocol
 37 | 	/// A function that can produce text content.
 38 | 	public typealias TextProvider = Predicate.TextProvider
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'SwiftTreeSitter'
  1 | import Foundation
  2 | import SwiftTreeSitter
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'SwiftTreeSitter'
  3 | import Rearrange
  4 |
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:391:13: warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | }
 12 |
 13 | public final class TreeSitterClient {
    |                    `- note: class 'TreeSitterClient' does not conform to the 'Sendable' protocol
 14 |     public typealias TextProvider = SwiftTreeSitter.Predicate.TextProvider
 15 |
    :
389 |         let startedVersion = version
390 |         queue.async {
391 |             self.semaphore.wait()
    |             `- warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
392 |             let tree = self.parseState.tree?.copy()
393 |             self.semaphore.signal()
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:397:21: warning: capture of 'completionHandler' with non-sendable type '(Result<Tree, TreeSitterClientError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
395 |             OperationQueue.main.addOperation {
396 |                 guard startedVersion == self.version else {
397 |                     completionHandler(.failure(.staleContent))
    |                     |- warning: capture of 'completionHandler' with non-sendable type '(Result<Tree, TreeSitterClientError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
398 |                     return
399 |                 }
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:396:41: warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | }
 12 |
 13 | public final class TreeSitterClient {
    |                    `- note: class 'TreeSitterClient' does not conform to the 'Sendable' protocol
 14 |     public typealias TextProvider = SwiftTreeSitter.Predicate.TextProvider
 15 |
    :
394 |
395 |             OperationQueue.main.addOperation {
396 |                 guard startedVersion == self.version else {
    |                                         `- warning: capture of 'self' with non-sendable type 'TreeSitterClient' in a `@Sendable` closure; this is an error in the Swift 6 language mode
397 |                     completionHandler(.failure(.staleContent))
398 |                     return
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:397:21: warning: capture of 'completionHandler' with non-sendable type '(Result<Tree, TreeSitterClientError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
395 |             OperationQueue.main.addOperation {
396 |                 guard startedVersion == self.version else {
397 |                     completionHandler(.failure(.staleContent))
    |                     |- warning: capture of 'completionHandler' with non-sendable type '(Result<Tree, TreeSitterClientError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
398 |                     return
399 |                 }
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:451:20: warning: 'ResolvingQueryCursor' is deprecated: Please use ResolvingQueryMatchSequence
449 |     private func executeResolvingQuerySynchronouslyWithoutCheck(_ query: Query, in range: NSRange, with state: TreeSitterParseState) -> ResolvingQueryCursorResult {
450 |         return executeQuerySynchronouslyWithoutCheck(query, in: range, with: state)
451 |             .map({ ResolvingQueryCursor(cursor: $0) })
    |                    `- warning: 'ResolvingQueryCursor' is deprecated: Please use ResolvingQueryMatchSequence
452 |     }
453 | }
/host/spi-builder-workspace/Sources/TreeSitterClient/TreeSitterClient.swift:377:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
375 |         try await withCheckedThrowingContinuation { continuation in
376 | 			self.executeResolvingQuery(query, in: range, executionMode: executionMode, textProvider: textProvider) { result in
377 |                 continuation.resume(with: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: main actor-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later main actor-isolated uses
378 |             }
379 |         }
[46/46] Compiling TreeSitterClient Compatibility.swift
[48/59] Compiling Neon Token.swift
[49/59] Compiling Neon TokenApplication.swift
/host/spi-builder-workspace/Sources/Neon/TokenApplication.swift:19:23: warning: static property 'noChange' is not concurrency-safe because non-'Sendable' type 'TokenApplication' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct TokenApplication {
   |               `- note: consider making struct 'TokenApplication' conform to the 'Sendable' protocol
 4 |     public enum Action {
 5 |         case replace
   :
17 |     }
18 |
19 |     public static let noChange = TokenApplication(tokens: [], action: .apply)
   |                       |- warning: static property 'noChange' is not concurrency-safe because non-'Sendable' type 'TokenApplication' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'noChange' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | }
21 |
[50/59] Compiling Neon TextViewHighlighter.swift
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:13:55: error: cannot find type 'NSAttributedString' in scope
 11 | import Rearrange
 12 |
 13 | public typealias TokenAttributeProvider = (Token) -> [NSAttributedString.Key: Any]
    |                                                       `- error: cannot find type 'NSAttributedString' in scope
 14 |
 15 | #if os(macOS) || os(iOS)
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:164:32: error: cannot find type 'NSTextLayoutManager' in scope
162 | @MainActor
163 | public struct TextLayoutManagerSystemInterface {
164 | 	public let textLayoutManager: NSTextLayoutManager
    |                                `- error: cannot find type 'NSTextLayoutManager' in scope
165 | 	public let attributeProvider: TokenAttributeProvider
166 | 	public let visibleRangeProvider: () -> NSRange
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:166:41: error: cannot find type 'NSRange' in scope
164 | 	public let textLayoutManager: NSTextLayoutManager
165 | 	public let attributeProvider: TokenAttributeProvider
166 | 	public let visibleRangeProvider: () -> NSRange
    |                                         `- error: cannot find type 'NSRange' in scope
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:33: error: cannot find type 'NSTextLayoutManager' in scope
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                 `- error: cannot find type 'NSTextLayoutManager' in scope
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:73: error: @escaping attribute only applies to function types
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                                                         `- error: @escaping attribute only applies to function types
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:145: error: cannot find type 'NSRange' in scope
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                                                                                                                                 `- error: cannot find type 'NSRange' in scope
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:129: error: @escaping attribute only applies to function types
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                                                                                                                 `- error: @escaping attribute only applies to function types
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:174:25: error: cannot find type 'TextView' in scope
172 | 	}
173 |
174 | 	public init?(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                         `- error: cannot find type 'TextView' in scope
175 | 		guard let textLayoutManager = textView.textLayoutManager else { return nil }
176 | 		self.textLayoutManager = textLayoutManager
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:174:54: error: @escaping attribute only applies to function types
172 | 	}
173 |
174 | 	public init?(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                                                      `- error: @escaping attribute only applies to function types
175 | 		guard let textLayoutManager = textView.textLayoutManager else { return nil }
176 | 		self.textLayoutManager = textLayoutManager
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:184:35: error: cannot find type 'NSTextElementProvider' in scope
182 | @available(macOS 12.0, iOS 16.0, tvOS 16.0, *)
183 | extension TextLayoutManagerSystemInterface: TextSystemInterface {
184 | 	private var textElementProvider: NSTextElementProvider? {
    |                                   `- error: cannot find type 'NSTextElementProvider' in scope
185 | 		textLayoutManager.textContentManager
186 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:188:39: error: cannot find type 'NSAttributedString' in scope
186 | 	}
187 |
188 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                       `- error: cannot find type 'NSAttributedString' in scope
189 | 		let clampedRange = range.clamped(to: length)
190 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:188:80: error: cannot find type 'NSRange' in scope
186 | 	}
187 |
188 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                                                                `- error: cannot find type 'NSRange' in scope
189 | 		let clampedRange = range.clamped(to: length)
190 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:201:35: error: cannot find type 'NSRange' in scope
199 | 	}
200 |
201 | 	public func clearStyle(in range: NSRange) {
    |                                   `- error: cannot find type 'NSRange' in scope
202 | 		setAttributes([:], in: range)
203 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:217:27: error: cannot find type 'NSRange' in scope
215 | 	}
216 |
217 | 	public var visibleRange: NSRange {
    |                           `- error: cannot find type 'NSRange' in scope
218 | 		visibleRangeProvider()
219 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:225:27: error: cannot find type 'NSTextStorage' in scope
223 | @MainActor
224 | public struct TextStorageSystemInterface {
225 | 	private let textStorage: NSTextStorage?
    |                           `- error: cannot find type 'NSTextStorage' in scope
226 | 	public let attributeProvider: TokenAttributeProvider
227 | 	public let defaultAttributesProvider: () -> [NSAttributedString.Key : Any]
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:227:47: error: cannot find type 'NSAttributedString' in scope
225 | 	private let textStorage: NSTextStorage?
226 | 	public let attributeProvider: TokenAttributeProvider
227 | 	public let defaultAttributesProvider: () -> [NSAttributedString.Key : Any]
    |                                               `- error: cannot find type 'NSAttributedString' in scope
228 | 	public let visibleRangeProvider: () -> NSRange
229 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:228:41: error: cannot find type 'NSRange' in scope
226 | 	public let attributeProvider: TokenAttributeProvider
227 | 	public let defaultAttributesProvider: () -> [NSAttributedString.Key : Any]
228 | 	public let visibleRangeProvider: () -> NSRange
    |                                         `- error: cannot find type 'NSRange' in scope
229 |
230 | 	public init(
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:231:16: error: cannot find type 'NSTextStorage' in scope
229 |
230 | 	public init(
231 | 		textStorage: NSTextStorage,
    |                `- error: cannot find type 'NSTextStorage' in scope
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:232:22: error: @escaping attribute only applies to function types
230 | 	public init(
231 | 		textStorage: NSTextStorage,
232 | 		attributeProvider: @escaping TokenAttributeProvider,
    |                      `- error: @escaping attribute only applies to function types
233 | 		visibleRangeProvider: @escaping () -> NSRange,
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:233:41: error: cannot find type 'NSRange' in scope
231 | 		textStorage: NSTextStorage,
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
    |                                         `- error: cannot find type 'NSRange' in scope
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
235 | 	) {
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:233:25: error: @escaping attribute only applies to function types
231 | 		textStorage: NSTextStorage,
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
    |                         `- error: @escaping attribute only applies to function types
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
235 | 	) {
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:234:47: error: cannot find type 'NSAttributedString' in scope
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
    |                                               `- error: cannot find type 'NSAttributedString' in scope
235 | 	) {
236 | 		self.textStorage = textStorage
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:234:30: error: @escaping attribute only applies to function types
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
    |                              `- error: @escaping attribute only applies to function types
235 | 	) {
236 | 		self.textStorage = textStorage
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:242:24: error: cannot find type 'TextView' in scope
240 | 	}
241 |
242 | 	public init(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                        `- error: cannot find type 'TextView' in scope
243 | 		self.textStorage = textView.textStorage
244 | 		self.visibleRangeProvider = { textView.visibleTextRange }
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:242:53: error: @escaping attribute only applies to function types
240 | 	}
241 |
242 | 	public init(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                                                     `- error: @escaping attribute only applies to function types
243 | 		self.textStorage = textView.textStorage
244 | 		self.visibleRangeProvider = { textView.visibleTextRange }
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:251:39: error: cannot find type 'NSAttributedString' in scope
249 |
250 | extension TextStorageSystemInterface: TextSystemInterface {
251 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                       `- error: cannot find type 'NSAttributedString' in scope
252 | 		let clampedRange = range.clamped(to: length)
253 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:251:80: error: cannot find type 'NSRange' in scope
249 |
250 | extension TextStorageSystemInterface: TextSystemInterface {
251 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                                                                `- error: cannot find type 'NSRange' in scope
252 | 		let clampedRange = range.clamped(to: length)
253 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:257:35: error: cannot find type 'NSRange' in scope
255 | 	}
256 |
257 | 	public func clearStyle(in range: NSRange) {
    |                                   `- error: cannot find type 'NSRange' in scope
258 | 		setAttributes(defaultAttributesProvider(), in: range)
259 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:271:27: error: cannot find type 'NSRange' in scope
269 | 	}
270 |
271 | 	public var visibleRange: NSRange {
    |                           `- error: cannot find type 'NSRange' in scope
272 | 		visibleRangeProvider()
273 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:193:20: error: cannot find 'NSTextRange' in scope
191 | 		guard
192 | 			let contentManager = textElementProvider,
193 | 			let textRange = NSTextRange(clampedRange, provider: contentManager)
    |                    `- error: cannot find 'NSTextRange' in scope
194 | 		else {
195 | 			return
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:214:10: error: cannot find 'NSRange' in scope
212 | 		guard let textElementProvider = textElementProvider else { return 0 }
213 |
214 | 		return NSRange(textLayoutManager.documentRange, provider: textElementProvider).length
    |          `- error: cannot find 'NSRange' in scope
215 | 	}
216 |
[51/59] Compiling Neon TextViewSystemInterface.swift
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:13:55: error: cannot find type 'NSAttributedString' in scope
 11 | import Rearrange
 12 |
 13 | public typealias TokenAttributeProvider = (Token) -> [NSAttributedString.Key: Any]
    |                                                       `- error: cannot find type 'NSAttributedString' in scope
 14 |
 15 | #if os(macOS) || os(iOS)
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:164:32: error: cannot find type 'NSTextLayoutManager' in scope
162 | @MainActor
163 | public struct TextLayoutManagerSystemInterface {
164 | 	public let textLayoutManager: NSTextLayoutManager
    |                                `- error: cannot find type 'NSTextLayoutManager' in scope
165 | 	public let attributeProvider: TokenAttributeProvider
166 | 	public let visibleRangeProvider: () -> NSRange
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:166:41: error: cannot find type 'NSRange' in scope
164 | 	public let textLayoutManager: NSTextLayoutManager
165 | 	public let attributeProvider: TokenAttributeProvider
166 | 	public let visibleRangeProvider: () -> NSRange
    |                                         `- error: cannot find type 'NSRange' in scope
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:33: error: cannot find type 'NSTextLayoutManager' in scope
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                 `- error: cannot find type 'NSTextLayoutManager' in scope
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:73: error: @escaping attribute only applies to function types
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                                                         `- error: @escaping attribute only applies to function types
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:145: error: cannot find type 'NSRange' in scope
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                                                                                                                                 `- error: cannot find type 'NSRange' in scope
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:129: error: @escaping attribute only applies to function types
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                                                                                                                 `- error: @escaping attribute only applies to function types
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:174:25: error: cannot find type 'TextView' in scope
172 | 	}
173 |
174 | 	public init?(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                         `- error: cannot find type 'TextView' in scope
175 | 		guard let textLayoutManager = textView.textLayoutManager else { return nil }
176 | 		self.textLayoutManager = textLayoutManager
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:174:54: error: @escaping attribute only applies to function types
172 | 	}
173 |
174 | 	public init?(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                                                      `- error: @escaping attribute only applies to function types
175 | 		guard let textLayoutManager = textView.textLayoutManager else { return nil }
176 | 		self.textLayoutManager = textLayoutManager
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:184:35: error: cannot find type 'NSTextElementProvider' in scope
182 | @available(macOS 12.0, iOS 16.0, tvOS 16.0, *)
183 | extension TextLayoutManagerSystemInterface: TextSystemInterface {
184 | 	private var textElementProvider: NSTextElementProvider? {
    |                                   `- error: cannot find type 'NSTextElementProvider' in scope
185 | 		textLayoutManager.textContentManager
186 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:188:39: error: cannot find type 'NSAttributedString' in scope
186 | 	}
187 |
188 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                       `- error: cannot find type 'NSAttributedString' in scope
189 | 		let clampedRange = range.clamped(to: length)
190 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:188:80: error: cannot find type 'NSRange' in scope
186 | 	}
187 |
188 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                                                                `- error: cannot find type 'NSRange' in scope
189 | 		let clampedRange = range.clamped(to: length)
190 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:201:35: error: cannot find type 'NSRange' in scope
199 | 	}
200 |
201 | 	public func clearStyle(in range: NSRange) {
    |                                   `- error: cannot find type 'NSRange' in scope
202 | 		setAttributes([:], in: range)
203 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:217:27: error: cannot find type 'NSRange' in scope
215 | 	}
216 |
217 | 	public var visibleRange: NSRange {
    |                           `- error: cannot find type 'NSRange' in scope
218 | 		visibleRangeProvider()
219 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:225:27: error: cannot find type 'NSTextStorage' in scope
223 | @MainActor
224 | public struct TextStorageSystemInterface {
225 | 	private let textStorage: NSTextStorage?
    |                           `- error: cannot find type 'NSTextStorage' in scope
226 | 	public let attributeProvider: TokenAttributeProvider
227 | 	public let defaultAttributesProvider: () -> [NSAttributedString.Key : Any]
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:227:47: error: cannot find type 'NSAttributedString' in scope
225 | 	private let textStorage: NSTextStorage?
226 | 	public let attributeProvider: TokenAttributeProvider
227 | 	public let defaultAttributesProvider: () -> [NSAttributedString.Key : Any]
    |                                               `- error: cannot find type 'NSAttributedString' in scope
228 | 	public let visibleRangeProvider: () -> NSRange
229 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:228:41: error: cannot find type 'NSRange' in scope
226 | 	public let attributeProvider: TokenAttributeProvider
227 | 	public let defaultAttributesProvider: () -> [NSAttributedString.Key : Any]
228 | 	public let visibleRangeProvider: () -> NSRange
    |                                         `- error: cannot find type 'NSRange' in scope
229 |
230 | 	public init(
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:231:16: error: cannot find type 'NSTextStorage' in scope
229 |
230 | 	public init(
231 | 		textStorage: NSTextStorage,
    |                `- error: cannot find type 'NSTextStorage' in scope
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:232:22: error: @escaping attribute only applies to function types
230 | 	public init(
231 | 		textStorage: NSTextStorage,
232 | 		attributeProvider: @escaping TokenAttributeProvider,
    |                      `- error: @escaping attribute only applies to function types
233 | 		visibleRangeProvider: @escaping () -> NSRange,
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:233:41: error: cannot find type 'NSRange' in scope
231 | 		textStorage: NSTextStorage,
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
    |                                         `- error: cannot find type 'NSRange' in scope
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
235 | 	) {
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:233:25: error: @escaping attribute only applies to function types
231 | 		textStorage: NSTextStorage,
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
    |                         `- error: @escaping attribute only applies to function types
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
235 | 	) {
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:234:47: error: cannot find type 'NSAttributedString' in scope
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
    |                                               `- error: cannot find type 'NSAttributedString' in scope
235 | 	) {
236 | 		self.textStorage = textStorage
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:234:30: error: @escaping attribute only applies to function types
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
    |                              `- error: @escaping attribute only applies to function types
235 | 	) {
236 | 		self.textStorage = textStorage
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:242:24: error: cannot find type 'TextView' in scope
240 | 	}
241 |
242 | 	public init(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                        `- error: cannot find type 'TextView' in scope
243 | 		self.textStorage = textView.textStorage
244 | 		self.visibleRangeProvider = { textView.visibleTextRange }
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:242:53: error: @escaping attribute only applies to function types
240 | 	}
241 |
242 | 	public init(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                                                     `- error: @escaping attribute only applies to function types
243 | 		self.textStorage = textView.textStorage
244 | 		self.visibleRangeProvider = { textView.visibleTextRange }
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:251:39: error: cannot find type 'NSAttributedString' in scope
249 |
250 | extension TextStorageSystemInterface: TextSystemInterface {
251 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                       `- error: cannot find type 'NSAttributedString' in scope
252 | 		let clampedRange = range.clamped(to: length)
253 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:251:80: error: cannot find type 'NSRange' in scope
249 |
250 | extension TextStorageSystemInterface: TextSystemInterface {
251 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                                                                `- error: cannot find type 'NSRange' in scope
252 | 		let clampedRange = range.clamped(to: length)
253 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:257:35: error: cannot find type 'NSRange' in scope
255 | 	}
256 |
257 | 	public func clearStyle(in range: NSRange) {
    |                                   `- error: cannot find type 'NSRange' in scope
258 | 		setAttributes(defaultAttributesProvider(), in: range)
259 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:271:27: error: cannot find type 'NSRange' in scope
269 | 	}
270 |
271 | 	public var visibleRange: NSRange {
    |                           `- error: cannot find type 'NSRange' in scope
272 | 		visibleRangeProvider()
273 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:193:20: error: cannot find 'NSTextRange' in scope
191 | 		guard
192 | 			let contentManager = textElementProvider,
193 | 			let textRange = NSTextRange(clampedRange, provider: contentManager)
    |                    `- error: cannot find 'NSTextRange' in scope
194 | 		else {
195 | 			return
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:214:10: error: cannot find 'NSRange' in scope
212 | 		guard let textElementProvider = textElementProvider else { return 0 }
213 |
214 | 		return NSRange(textLayoutManager.documentRange, provider: textElementProvider).length
    |          `- error: cannot find 'NSRange' in scope
215 | 	}
216 |
[52/60] Compiling Neon TextSystemInterface.swift
[53/60] Compiling Neon TextTarget.swift
[54/60] Compiling Neon HighlighterInvalidationBuffer.swift
[55/60] Compiling Neon NSTextView+VisibleRange.swift
[56/60] Compiling Neon TreeSitterClient+Highlight.swift
[57/60] Compiling Neon UITextView+VisibleRange.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[58/60] Compiling Neon Compatibility.swift
/host/spi-builder-workspace/Sources/Neon/Compatibility.swift:6:24: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | func assumeMainActor<T>(_ body: @MainActor () throws -> T) rethrows -> T {
   |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 | #if swift(>=5.9)
 5 | 	if #available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *) {
 6 | 		return try MainActor.assumeIsolated(body)
   |                        `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 7 | 	}
 8 | #endif
[59/60] Compiling Neon Highlighter.swift
/host/spi-builder-workspace/Sources/Neon/Compatibility.swift:6:24: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | func assumeMainActor<T>(_ body: @MainActor () throws -> T) rethrows -> T {
   |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 | #if swift(>=5.9)
 5 | 	if #available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *) {
 6 | 		return try MainActor.assumeIsolated(body)
   |                        `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 7 | 	}
 8 | #endif
[60/60] Emitting module Neon
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:13:55: error: cannot find type 'NSAttributedString' in scope
 11 | import Rearrange
 12 |
 13 | public typealias TokenAttributeProvider = (Token) -> [NSAttributedString.Key: Any]
    |                                                       `- error: cannot find type 'NSAttributedString' in scope
 14 |
 15 | #if os(macOS) || os(iOS)
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:164:32: error: cannot find type 'NSTextLayoutManager' in scope
162 | @MainActor
163 | public struct TextLayoutManagerSystemInterface {
164 | 	public let textLayoutManager: NSTextLayoutManager
    |                                `- error: cannot find type 'NSTextLayoutManager' in scope
165 | 	public let attributeProvider: TokenAttributeProvider
166 | 	public let visibleRangeProvider: () -> NSRange
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:166:41: error: cannot find type 'NSRange' in scope
164 | 	public let textLayoutManager: NSTextLayoutManager
165 | 	public let attributeProvider: TokenAttributeProvider
166 | 	public let visibleRangeProvider: () -> NSRange
    |                                         `- error: cannot find type 'NSRange' in scope
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:33: error: cannot find type 'NSTextLayoutManager' in scope
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                 `- error: cannot find type 'NSTextLayoutManager' in scope
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:73: error: @escaping attribute only applies to function types
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                                                         `- error: @escaping attribute only applies to function types
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:145: error: cannot find type 'NSRange' in scope
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                                                                                                                                 `- error: cannot find type 'NSRange' in scope
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:168:129: error: @escaping attribute only applies to function types
166 | 	public let visibleRangeProvider: () -> NSRange
167 |
168 | 	public init(textLayoutManager: NSTextLayoutManager, attributeProvider: @escaping TokenAttributeProvider, visibleRangeProvider: @escaping () -> NSRange) {
    |                                                                                                                                 `- error: @escaping attribute only applies to function types
169 | 		self.textLayoutManager = textLayoutManager
170 | 		self.attributeProvider = attributeProvider
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:174:25: error: cannot find type 'TextView' in scope
172 | 	}
173 |
174 | 	public init?(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                         `- error: cannot find type 'TextView' in scope
175 | 		guard let textLayoutManager = textView.textLayoutManager else { return nil }
176 | 		self.textLayoutManager = textLayoutManager
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:174:54: error: @escaping attribute only applies to function types
172 | 	}
173 |
174 | 	public init?(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                                                      `- error: @escaping attribute only applies to function types
175 | 		guard let textLayoutManager = textView.textLayoutManager else { return nil }
176 | 		self.textLayoutManager = textLayoutManager
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:184:35: error: cannot find type 'NSTextElementProvider' in scope
182 | @available(macOS 12.0, iOS 16.0, tvOS 16.0, *)
183 | extension TextLayoutManagerSystemInterface: TextSystemInterface {
184 | 	private var textElementProvider: NSTextElementProvider? {
    |                                   `- error: cannot find type 'NSTextElementProvider' in scope
185 | 		textLayoutManager.textContentManager
186 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:188:39: error: cannot find type 'NSAttributedString' in scope
186 | 	}
187 |
188 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                       `- error: cannot find type 'NSAttributedString' in scope
189 | 		let clampedRange = range.clamped(to: length)
190 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:188:80: error: cannot find type 'NSRange' in scope
186 | 	}
187 |
188 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                                                                `- error: cannot find type 'NSRange' in scope
189 | 		let clampedRange = range.clamped(to: length)
190 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:201:35: error: cannot find type 'NSRange' in scope
199 | 	}
200 |
201 | 	public func clearStyle(in range: NSRange) {
    |                                   `- error: cannot find type 'NSRange' in scope
202 | 		setAttributes([:], in: range)
203 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:217:27: error: cannot find type 'NSRange' in scope
215 | 	}
216 |
217 | 	public var visibleRange: NSRange {
    |                           `- error: cannot find type 'NSRange' in scope
218 | 		visibleRangeProvider()
219 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:225:27: error: cannot find type 'NSTextStorage' in scope
223 | @MainActor
224 | public struct TextStorageSystemInterface {
225 | 	private let textStorage: NSTextStorage?
    |                           `- error: cannot find type 'NSTextStorage' in scope
226 | 	public let attributeProvider: TokenAttributeProvider
227 | 	public let defaultAttributesProvider: () -> [NSAttributedString.Key : Any]
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:227:47: error: cannot find type 'NSAttributedString' in scope
225 | 	private let textStorage: NSTextStorage?
226 | 	public let attributeProvider: TokenAttributeProvider
227 | 	public let defaultAttributesProvider: () -> [NSAttributedString.Key : Any]
    |                                               `- error: cannot find type 'NSAttributedString' in scope
228 | 	public let visibleRangeProvider: () -> NSRange
229 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:228:41: error: cannot find type 'NSRange' in scope
226 | 	public let attributeProvider: TokenAttributeProvider
227 | 	public let defaultAttributesProvider: () -> [NSAttributedString.Key : Any]
228 | 	public let visibleRangeProvider: () -> NSRange
    |                                         `- error: cannot find type 'NSRange' in scope
229 |
230 | 	public init(
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:231:16: error: cannot find type 'NSTextStorage' in scope
229 |
230 | 	public init(
231 | 		textStorage: NSTextStorage,
    |                `- error: cannot find type 'NSTextStorage' in scope
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:232:22: error: @escaping attribute only applies to function types
230 | 	public init(
231 | 		textStorage: NSTextStorage,
232 | 		attributeProvider: @escaping TokenAttributeProvider,
    |                      `- error: @escaping attribute only applies to function types
233 | 		visibleRangeProvider: @escaping () -> NSRange,
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:233:41: error: cannot find type 'NSRange' in scope
231 | 		textStorage: NSTextStorage,
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
    |                                         `- error: cannot find type 'NSRange' in scope
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
235 | 	) {
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:233:25: error: @escaping attribute only applies to function types
231 | 		textStorage: NSTextStorage,
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
    |                         `- error: @escaping attribute only applies to function types
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
235 | 	) {
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:234:47: error: cannot find type 'NSAttributedString' in scope
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
    |                                               `- error: cannot find type 'NSAttributedString' in scope
235 | 	) {
236 | 		self.textStorage = textStorage
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:234:30: error: @escaping attribute only applies to function types
232 | 		attributeProvider: @escaping TokenAttributeProvider,
233 | 		visibleRangeProvider: @escaping () -> NSRange,
234 | 		defaultAttributesProvider: @escaping () -> [NSAttributedString.Key : Any]
    |                              `- error: @escaping attribute only applies to function types
235 | 	) {
236 | 		self.textStorage = textStorage
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:242:24: error: cannot find type 'TextView' in scope
240 | 	}
241 |
242 | 	public init(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                        `- error: cannot find type 'TextView' in scope
243 | 		self.textStorage = textView.textStorage
244 | 		self.visibleRangeProvider = { textView.visibleTextRange }
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:242:53: error: @escaping attribute only applies to function types
240 | 	}
241 |
242 | 	public init(textView: TextView, attributeProvider: @escaping TokenAttributeProvider) {
    |                                                     `- error: @escaping attribute only applies to function types
243 | 		self.textStorage = textView.textStorage
244 | 		self.visibleRangeProvider = { textView.visibleTextRange }
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:251:39: error: cannot find type 'NSAttributedString' in scope
249 |
250 | extension TextStorageSystemInterface: TextSystemInterface {
251 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                       `- error: cannot find type 'NSAttributedString' in scope
252 | 		let clampedRange = range.clamped(to: length)
253 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:251:80: error: cannot find type 'NSRange' in scope
249 |
250 | extension TextStorageSystemInterface: TextSystemInterface {
251 | 	private func setAttributes(_ attrs: [NSAttributedString.Key : Any], in range: NSRange) {
    |                                                                                `- error: cannot find type 'NSRange' in scope
252 | 		let clampedRange = range.clamped(to: length)
253 |
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:257:35: error: cannot find type 'NSRange' in scope
255 | 	}
256 |
257 | 	public func clearStyle(in range: NSRange) {
    |                                   `- error: cannot find type 'NSRange' in scope
258 | 		setAttributes(defaultAttributesProvider(), in: range)
259 | 	}
/host/spi-builder-workspace/Sources/Neon/TextViewSystemInterface.swift:271:27: error: cannot find type 'NSRange' in scope
269 | 	}
270 |
271 | 	public var visibleRange: NSRange {
    |                           `- error: cannot find type 'NSRange' in scope
272 | 		visibleRangeProvider()
273 | 	}
/host/spi-builder-workspace/Sources/Neon/TokenApplication.swift:19:23: warning: static property 'noChange' is not concurrency-safe because non-'Sendable' type 'TokenApplication' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct TokenApplication {
   |               `- note: consider making struct 'TokenApplication' conform to the 'Sendable' protocol
 4 |     public enum Action {
 5 |         case replace
   :
17 |     }
18 |
19 |     public static let noChange = TokenApplication(tokens: [], action: .apply)
   |                       |- warning: static property 'noChange' is not concurrency-safe because non-'Sendable' type 'TokenApplication' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'noChange' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | }
21 |
BUILD FAILURE 6.0 linux