Build Information
Successful build of SwiftScraper with Swift 6.0 for macOS (SPM).
Swift 6 data race errors: 1
Build Command
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Nef10/SwiftScraper.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Nef10/SwiftScraper
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 502db4f 🔄 synced file(s) with Nef10/common-swift-package
Cloned https://github.com/Nef10/SwiftScraper.git
Revision (git rev-parse @):
502db4fdabe178d1791c13a76fd37957176d4922
SUCCESS checkout https://github.com/Nef10/SwiftScraper.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $workDir
https://github.com/Nef10/SwiftScraper.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/3] Write sources
[1/3] Copying SwiftScraper.js
[2/3] Write swift-version-6F35C1178C84523A.txt
[4/21] Compiling SwiftScraper SwiftScraperError.swift
[5/22] Compiling SwiftScraper resource_bundle_accessor.swift
[6/22] Compiling SwiftScraper WaitForConditionStep.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitForConditionStep.swift:71:29: warning: capture of 'self' with non-sendable type 'WaitForConditionStep?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | /// Step that waits for condition to become true before proceeding,
12 | /// failing if the condition is still false when timeout occurs.
13 | public class WaitForConditionStep: Step {
| `- note: class 'WaitForConditionStep' does not conform to the 'Sendable' protocol
14 |
15 | private enum Constants {
:
69 | } else {
70 | DispatchQueue.main.asyncAfter(deadline: .now() + Constants.refreshInterval) { [weak self] in
71 | self?.handleTimer()
| `- warning: capture of 'self' with non-sendable type 'WaitForConditionStep?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitStep.swift:25:13: warning: capture of 'completion' with non-sendable type 'StepCompletionCallback' (aka '(StepCompletionResult) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 | public func run(with browser: Browser, model: JSON, completion: @escaping StepCompletionCallback) {
24 | DispatchQueue.main.asyncAfter(deadline: .now() + waitTimeInSeconds) {
25 | completion(.proceed(model))
| |- warning: capture of 'completion' with non-sendable type 'StepCompletionCallback' (aka '(StepCompletionResult) -> ()') 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'
26 | }
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitStep.swift:25:33: warning: capture of 'model' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 | public func run(with browser: Browser, model: JSON, completion: @escaping StepCompletionCallback) {
24 | DispatchQueue.main.asyncAfter(deadline: .now() + waitTimeInSeconds) {
25 | completion(.proceed(model))
| `- warning: capture of 'model' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | }
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitForConditionStep.swift:71:29: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
69 | } else {
70 | DispatchQueue.main.asyncAfter(deadline: .now() + Constants.refreshInterval) { [weak self] in
71 | self?.handleTimer()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitStep.swift:25:13: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
23 | public func run(with browser: Browser, model: JSON, completion: @escaping StepCompletionCallback) {
24 | DispatchQueue.main.asyncAfter(deadline: .now() + waitTimeInSeconds) {
25 | completion(.proceed(model))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
26 | }
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitStep.swift:25:33: warning: sending 'model' risks causing data races; this is an error in the Swift 6 language mode
23 | public func run(with browser: Browser, model: JSON, completion: @escaping StepCompletionCallback) {
24 | DispatchQueue.main.asyncAfter(deadline: .now() + waitTimeInSeconds) {
25 | completion(.proceed(model))
| |- warning: sending 'model' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'model' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
26 | }
27 | }
[7/22] Compiling SwiftScraper WaitStep.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitForConditionStep.swift:71:29: warning: capture of 'self' with non-sendable type 'WaitForConditionStep?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | /// Step that waits for condition to become true before proceeding,
12 | /// failing if the condition is still false when timeout occurs.
13 | public class WaitForConditionStep: Step {
| `- note: class 'WaitForConditionStep' does not conform to the 'Sendable' protocol
14 |
15 | private enum Constants {
:
69 | } else {
70 | DispatchQueue.main.asyncAfter(deadline: .now() + Constants.refreshInterval) { [weak self] in
71 | self?.handleTimer()
| `- warning: capture of 'self' with non-sendable type 'WaitForConditionStep?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitStep.swift:25:13: warning: capture of 'completion' with non-sendable type 'StepCompletionCallback' (aka '(StepCompletionResult) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 | public func run(with browser: Browser, model: JSON, completion: @escaping StepCompletionCallback) {
24 | DispatchQueue.main.asyncAfter(deadline: .now() + waitTimeInSeconds) {
25 | completion(.proceed(model))
| |- warning: capture of 'completion' with non-sendable type 'StepCompletionCallback' (aka '(StepCompletionResult) -> ()') 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'
26 | }
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitStep.swift:25:33: warning: capture of 'model' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 | public func run(with browser: Browser, model: JSON, completion: @escaping StepCompletionCallback) {
24 | DispatchQueue.main.asyncAfter(deadline: .now() + waitTimeInSeconds) {
25 | completion(.proceed(model))
| `- warning: capture of 'model' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | }
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitForConditionStep.swift:71:29: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
69 | } else {
70 | DispatchQueue.main.asyncAfter(deadline: .now() + Constants.refreshInterval) { [weak self] in
71 | self?.handleTimer()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitStep.swift:25:13: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
23 | public func run(with browser: Browser, model: JSON, completion: @escaping StepCompletionCallback) {
24 | DispatchQueue.main.asyncAfter(deadline: .now() + waitTimeInSeconds) {
25 | completion(.proceed(model))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
26 | }
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/WaitStep.swift:25:33: warning: sending 'model' risks causing data races; this is an error in the Swift 6 language mode
23 | public func run(with browser: Browser, model: JSON, completion: @escaping StepCompletionCallback) {
24 | DispatchQueue.main.asyncAfter(deadline: .now() + waitTimeInSeconds) {
25 | completion(.proceed(model))
| |- warning: sending 'model' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'model' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
26 | }
27 | }
[8/22] Compiling SwiftScraper StepFlowResult.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/DownloadStep.swift:41:25: warning: call to main actor-isolated instance method 'startDownload(using:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
36 | }
37 |
38 | public func run(with browser: Browser, model: JSON, completion: @escaping StepCompletionCallback) {
| `- note: add '@MainActor' to make instance method 'run(with:model:completion:)' part of global actor 'MainActor'
39 | self.completion = completion
40 | self.model = model
41 | browser.webView.startDownload(using: URLRequest(url: url)) { download in
| `- warning: call to main actor-isolated instance method 'startDownload(using:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
42 | download.delegate = self
43 | }
WebKit.WKWebView:144:26: note: calls to instance method 'startDownload(using:completionHandler:)' from outside of its actor context are implicitly asynchronous
142 | open class func handlesURLScheme(_ urlScheme: String) -> Bool
143 | @available(macOS 11.3, *)
144 | @MainActor open func startDownload(using request: URLRequest, completionHandler: @escaping (WKDownload) -> Void)
| `- note: calls to instance method 'startDownload(using:completionHandler:)' from outside of its actor context are implicitly asynchronous
145 | @available(macOS 11.3, *)
146 | open func startDownload(using request: URLRequest) async -> WKDownload
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/DownloadStep.swift:41:25: warning: sending task-isolated value of type '(WKDownload) -> ()' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
39 | self.completion = completion
40 | self.model = model
41 | browser.webView.startDownload(using: URLRequest(url: url)) { download in
| `- warning: sending task-isolated value of type '(WKDownload) -> ()' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
42 | download.delegate = self
43 | }
[9/22] Compiling SwiftScraper DownloadStep.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/DownloadStep.swift:41:25: warning: call to main actor-isolated instance method 'startDownload(using:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
36 | }
37 |
38 | public func run(with browser: Browser, model: JSON, completion: @escaping StepCompletionCallback) {
| `- note: add '@MainActor' to make instance method 'run(with:model:completion:)' part of global actor 'MainActor'
39 | self.completion = completion
40 | self.model = model
41 | browser.webView.startDownload(using: URLRequest(url: url)) { download in
| `- warning: call to main actor-isolated instance method 'startDownload(using:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
42 | download.delegate = self
43 | }
WebKit.WKWebView:144:26: note: calls to instance method 'startDownload(using:completionHandler:)' from outside of its actor context are implicitly asynchronous
142 | open class func handlesURLScheme(_ urlScheme: String) -> Bool
143 | @available(macOS 11.3, *)
144 | @MainActor open func startDownload(using request: URLRequest, completionHandler: @escaping (WKDownload) -> Void)
| `- note: calls to instance method 'startDownload(using:completionHandler:)' from outside of its actor context are implicitly asynchronous
145 | @available(macOS 11.3, *)
146 | open func startDownload(using request: URLRequest) async -> WKDownload
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Steps/DownloadStep.swift:41:25: warning: sending task-isolated value of type '(WKDownload) -> ()' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
39 | self.completion = completion
40 | self.model = model
41 | browser.webView.startDownload(using: URLRequest(url: url)) { download in
| `- warning: sending task-isolated value of type '(WKDownload) -> ()' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
42 | download.delegate = self
43 | }
[10/22] Compiling SwiftScraper ProcessStep.swift
[11/22] Compiling SwiftScraper ScriptStep.swift
[12/22] Compiling SwiftScraper OpenPageStep.swift
[13/22] Compiling SwiftScraper PageChangeStep.swift
[14/22] Compiling SwiftScraper Browser.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:49:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
47 | private let logger = Logger()
48 | /// The webview itself
49 | public private (set) var webView: WKWebView!
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
50 | private let userContentController = WKUserContentController()
51 | private var navigationCallback: NavigationCallback?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:91:19: warning: call to main actor-isolated initializer 'init(frame:configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 | }
67 |
68 | private func setupWebView(moduleName: String, customUserAgent: String?, scriptBundle: Bundle) throws {
| `- note: add '@MainActor' to make instance method 'setupWebView(moduleName:customUserAgent:scriptBundle:)' part of global actor 'MainActor'
69 |
70 | let coreScriptURL = Bundle.module.path(forResource: Constants.coreScript, ofType: "js")
:
89 | config.userContentController = userContentController
90 |
91 | webView = WKWebView(frame: CGRect.zero, configuration: config)
| `- warning: call to main actor-isolated initializer 'init(frame:configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
92 | webView.navigationDelegate = self
93 | webView.allowsBackForwardNavigationGestures = true
WebKit.WKWebView:9:23: note: calls to initializer 'init(frame:configuration:)' from outside of its actor context are implicitly asynchronous
7 | weak open var UIDelegate: (any WKUIDelegate)? { get set }
8 | open var backForwardList: WKBackForwardList { get }
9 | @MainActor public init(frame: CGRect, configuration: WKWebViewConfiguration)
| `- note: calls to initializer 'init(frame:configuration:)' from outside of its actor context are implicitly asynchronous
10 | public init?(coder: NSCoder)
11 | open func load(_ request: URLRequest) -> WKNavigation?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:92:17: warning: main actor-isolated property 'navigationDelegate' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
66 | }
67 |
68 | private func setupWebView(moduleName: String, customUserAgent: String?, scriptBundle: Bundle) throws {
| `- note: add '@MainActor' to make instance method 'setupWebView(moduleName:customUserAgent:scriptBundle:)' part of global actor 'MainActor'
69 |
70 | let coreScriptURL = Bundle.module.path(forResource: Constants.coreScript, ofType: "js")
:
90 |
91 | webView = WKWebView(frame: CGRect.zero, configuration: config)
92 | webView.navigationDelegate = self
| `- warning: main actor-isolated property 'navigationDelegate' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
93 | webView.allowsBackForwardNavigationGestures = true
94 | webView.customUserAgent = customUserAgent
WebKit.WKWebView:4:19: note: mutation of this property is only permitted within the actor
2 | @MainActor open class WKWebView : NSView {
3 | @NSCopying open var configuration: WKWebViewConfiguration { get }
4 | weak open var navigationDelegate: (any WKNavigationDelegate)? { get set }
| `- note: mutation of this property is only permitted within the actor
5 | weak open var uiDelegate: (any WKUIDelegate)? { get set }
6 | @available(swift, obsoleted: 3, renamed: "uiDelegate")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:93:17: warning: main actor-isolated property 'allowsBackForwardNavigationGestures' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
66 | }
67 |
68 | private func setupWebView(moduleName: String, customUserAgent: String?, scriptBundle: Bundle) throws {
| `- note: add '@MainActor' to make instance method 'setupWebView(moduleName:customUserAgent:scriptBundle:)' part of global actor 'MainActor'
69 |
70 | let coreScriptURL = Bundle.module.path(forResource: Constants.coreScript, ofType: "js")
:
91 | webView = WKWebView(frame: CGRect.zero, configuration: config)
92 | webView.navigationDelegate = self
93 | webView.allowsBackForwardNavigationGestures = true
| `- warning: main actor-isolated property 'allowsBackForwardNavigationGestures' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
94 | webView.customUserAgent = customUserAgent
95 | }
WebKit.WKWebView:122:14: note: mutation of this property is only permitted within the actor
120 | @available(swift, obsoleted: 3, renamed: "__createWebArchiveData(completionHandler:)")
121 | open func __createWebArchiveDataWithCompletionHandler(_ completionHandler: @escaping (Data, any Error) -> Void)
122 | open var allowsBackForwardNavigationGestures: Bool { get set }
| `- note: mutation of this property is only permitted within the actor
123 | @available(macOS 10.11, *)
124 | open var customUserAgent: String? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:94:17: warning: main actor-isolated property 'customUserAgent' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
66 | }
67 |
68 | private func setupWebView(moduleName: String, customUserAgent: String?, scriptBundle: Bundle) throws {
| `- note: add '@MainActor' to make instance method 'setupWebView(moduleName:customUserAgent:scriptBundle:)' part of global actor 'MainActor'
69 |
70 | let coreScriptURL = Bundle.module.path(forResource: Constants.coreScript, ofType: "js")
:
92 | webView.navigationDelegate = self
93 | webView.allowsBackForwardNavigationGestures = true
94 | webView.customUserAgent = customUserAgent
| `- warning: main actor-isolated property 'customUserAgent' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
95 | }
96 |
WebKit.WKWebView:124:14: note: mutation of this property is only permitted within the actor
122 | open var allowsBackForwardNavigationGestures: Bool { get set }
123 | @available(macOS 10.11, *)
124 | open var customUserAgent: String? { get set }
| `- note: mutation of this property is only permitted within the actor
125 | @available(macOS 10.11, *)
126 | open var allowsLinkPreview: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:177:16: warning: call to main actor-isolated instance method 'addSubview' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
176 | #else
177 | parent.addSubview(webView)
| `- warning: call to main actor-isolated instance method 'addSubview' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
178 | #endif
179 | webView.translatesAutoresizingMaskIntoConstraints = false
AppKit.NSView:29:26: note: calls to instance method 'addSubview' from outside of its actor context are implicitly asynchronous
27 | @available(macOS 10.5, *)
28 | open func viewDidUnhide()
29 | @MainActor open func addSubview(_ view: NSView)
| `- note: calls to instance method 'addSubview' from outside of its actor context are implicitly asynchronous
30 | open func addSubview(_ view: NSView, positioned place: NSWindow.OrderingMode, relativeTo otherView: NSView?)
31 | open func sortSubviews(_ compare: @convention(c) (NSView, NSView, UnsafeMutableRawPointer?) -> ComparisonResult, context: UnsafeMutableRawPointer?)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:179:17: warning: main actor-isolated property 'translatesAutoresizingMaskIntoConstraints' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
177 | parent.addSubview(webView)
178 | #endif
179 | webView.translatesAutoresizingMaskIntoConstraints = false
| `- warning: main actor-isolated property 'translatesAutoresizingMaskIntoConstraints' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
AppKit.NSView:3:25: note: mutation of this property is only permitted within the actor
1 | extension NSView {
2 | @available(macOS 10.7, *)
3 | @MainActor open var translatesAutoresizingMaskIntoConstraints: Bool { get set }
| `- note: mutation of this property is only permitted within the actor
4 | @available(macOS 10.7, *)
5 | open class var requiresConstraintBasedLayout: Bool { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:180:17: warning: main actor-isolated property 'topAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
178 | #endif
179 | webView.translatesAutoresizingMaskIntoConstraints = false
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
| `- warning: main actor-isolated property 'topAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
AppKit.NSView:11:25: note: property declared here
9 | open var rightAnchor: NSLayoutXAxisAnchor { get }
10 | @available(macOS 10.11, *)
11 | @MainActor open var topAnchor: NSLayoutYAxisAnchor { get }
| `- note: property declared here
12 | @available(macOS 10.11, *)
13 | open var bottomAnchor: NSLayoutYAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:180:54: warning: main actor-isolated property 'topAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
178 | #endif
179 | webView.translatesAutoresizingMaskIntoConstraints = false
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
| `- warning: main actor-isolated property 'topAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
AppKit.NSView:11:25: note: property declared here
9 | open var rightAnchor: NSLayoutXAxisAnchor { get }
10 | @available(macOS 10.11, *)
11 | @MainActor open var topAnchor: NSLayoutYAxisAnchor { get }
| `- note: property declared here
12 | @available(macOS 10.11, *)
13 | open var bottomAnchor: NSLayoutYAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:181:17: warning: main actor-isolated property 'bottomAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
179 | webView.translatesAutoresizingMaskIntoConstraints = false
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
| `- warning: main actor-isolated property 'bottomAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
AppKit.NSView:13:14: note: property declared here
11 | @MainActor open var topAnchor: NSLayoutYAxisAnchor { get }
12 | @available(macOS 10.11, *)
13 | open var bottomAnchor: NSLayoutYAxisAnchor { get }
| `- note: property declared here
14 | @available(macOS 10.11, *)
15 | open var widthAnchor: NSLayoutDimension { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:181:57: warning: main actor-isolated property 'bottomAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
179 | webView.translatesAutoresizingMaskIntoConstraints = false
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
| `- warning: main actor-isolated property 'bottomAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
AppKit.NSView:13:14: note: property declared here
11 | @MainActor open var topAnchor: NSLayoutYAxisAnchor { get }
12 | @available(macOS 10.11, *)
13 | open var bottomAnchor: NSLayoutYAxisAnchor { get }
| `- note: property declared here
14 | @available(macOS 10.11, *)
15 | open var widthAnchor: NSLayoutDimension { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:182:17: warning: main actor-isolated property 'leadingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
| `- warning: main actor-isolated property 'leadingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
184 | }
AppKit.NSView:3:14: note: property declared here
1 | extension NSView {
2 | @available(macOS 10.11, *)
3 | open var leadingAnchor: NSLayoutXAxisAnchor { get }
| `- note: property declared here
4 | @available(macOS 10.11, *)
5 | open var trailingAnchor: NSLayoutXAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:182:58: warning: main actor-isolated property 'leadingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
| `- warning: main actor-isolated property 'leadingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
184 | }
AppKit.NSView:3:14: note: property declared here
1 | extension NSView {
2 | @available(macOS 10.11, *)
3 | open var leadingAnchor: NSLayoutXAxisAnchor { get }
| `- note: property declared here
4 | @available(macOS 10.11, *)
5 | open var trailingAnchor: NSLayoutXAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:183:17: warning: main actor-isolated property 'trailingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
| `- warning: main actor-isolated property 'trailingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
184 | }
185 |
AppKit.NSView:5:14: note: property declared here
3 | open var leadingAnchor: NSLayoutXAxisAnchor { get }
4 | @available(macOS 10.11, *)
5 | open var trailingAnchor: NSLayoutXAxisAnchor { get }
| `- note: property declared here
6 | @available(macOS 10.11, *)
7 | open var leftAnchor: NSLayoutXAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:183:59: warning: main actor-isolated property 'trailingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
| `- warning: main actor-isolated property 'trailingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
184 | }
185 |
AppKit.NSView:5:14: note: property declared here
3 | open var leadingAnchor: NSLayoutXAxisAnchor { get }
4 | @available(macOS 10.11, *)
5 | open var trailingAnchor: NSLayoutXAxisAnchor { get }
| `- note: property declared here
6 | @available(macOS 10.11, *)
7 | open var leftAnchor: NSLayoutXAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:189:17: warning: call to main actor-isolated instance method 'load' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
185 |
186 | /// Loads a page with the given path into the WebView.
187 | func load(path: String, completion: @escaping NavigationCallback) {
| `- note: add '@MainActor' to make instance method 'load(path:completion:)' part of global actor 'MainActor'
188 | self.navigationCallback = completion
189 | webView.load(URLRequest(url: URL(string: path)!))
| `- warning: call to main actor-isolated instance method 'load' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
190 | }
191 |
WebKit.WKWebView:11:15: note: calls to instance method 'load' from outside of its actor context are implicitly asynchronous
9 | @MainActor public init(frame: CGRect, configuration: WKWebViewConfiguration)
10 | public init?(coder: NSCoder)
11 | open func load(_ request: URLRequest) -> WKNavigation?
| `- note: calls to instance method 'load' from outside of its actor context are implicitly asynchronous
12 | @available(swift, obsoleted: 3, renamed: "load(_:)")
13 | open func loadRequest(_ request: URLRequest) -> WKNavigation?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:201:17: warning: call to main actor-isolated instance method 'evaluateJavaScript(_:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
191 |
192 | /// Run some JavaScript with error handling and logging.
193 | func runScript(functionName: String, params: [Any] = [], completion: @escaping ScriptResponseResultCallback) {
| `- note: add '@MainActor' to make instance method 'runScript(functionName:params:completion:)' part of global actor 'MainActor'
194 | guard let script = try? JavaScriptGenerator.generateScript(moduleName: moduleName,
195 | functionName: functionName,
:
199 | }
200 | logger.debug("script to run: \(script)")
201 | webView.evaluateJavaScript(script) { response, error in
| `- warning: call to main actor-isolated instance method 'evaluateJavaScript(_:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
202 | if let nsError = error as NSError?,
203 | nsError.domain == WKError.errorDomain,
WebKit.WKWebView:46:15: note: calls to instance method 'evaluateJavaScript(_:completionHandler:)' from outside of its actor context are implicitly asynchronous
44 | open func reloadFromOrigin() -> WKNavigation?
45 | open func stopLoading()
46 | open func evaluateJavaScript(_ javaScriptString: String, completionHandler: ((Any?, (any Error)?) -> Void)? = nil)
| `- note: calls to instance method 'evaluateJavaScript(_:completionHandler:)' from outside of its actor context are implicitly asynchronous
47 | open func evaluateJavaScript(_ javaScriptString: String) async throws -> Any
48 | @available(macOS 11.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:91:19: warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
89 | config.userContentController = userContentController
90 |
91 | webView = WKWebView(frame: CGRect.zero, configuration: config)
| |- warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'config' to main actor-isolated initializer 'init(frame:configuration:)' risks causing data races between main actor-isolated and task-isolated uses
92 | webView.navigationDelegate = self
93 | webView.allowsBackForwardNavigationGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:201:17: warning: sending task-isolated value of type '(Any?, (any Error)?) -> Void' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
199 | }
200 | logger.debug("script to run: \(script)")
201 | webView.evaluateJavaScript(script) { response, error in
| `- warning: sending task-isolated value of type '(Any?, (any Error)?) -> Void' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
202 | if let nsError = error as NSError?,
203 | nsError.domain == WKError.errorDomain,
[15/22] Compiling SwiftScraper JavaScriptGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:49:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
47 | private let logger = Logger()
48 | /// The webview itself
49 | public private (set) var webView: WKWebView!
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
50 | private let userContentController = WKUserContentController()
51 | private var navigationCallback: NavigationCallback?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:91:19: warning: call to main actor-isolated initializer 'init(frame:configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 | }
67 |
68 | private func setupWebView(moduleName: String, customUserAgent: String?, scriptBundle: Bundle) throws {
| `- note: add '@MainActor' to make instance method 'setupWebView(moduleName:customUserAgent:scriptBundle:)' part of global actor 'MainActor'
69 |
70 | let coreScriptURL = Bundle.module.path(forResource: Constants.coreScript, ofType: "js")
:
89 | config.userContentController = userContentController
90 |
91 | webView = WKWebView(frame: CGRect.zero, configuration: config)
| `- warning: call to main actor-isolated initializer 'init(frame:configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
92 | webView.navigationDelegate = self
93 | webView.allowsBackForwardNavigationGestures = true
WebKit.WKWebView:9:23: note: calls to initializer 'init(frame:configuration:)' from outside of its actor context are implicitly asynchronous
7 | weak open var UIDelegate: (any WKUIDelegate)? { get set }
8 | open var backForwardList: WKBackForwardList { get }
9 | @MainActor public init(frame: CGRect, configuration: WKWebViewConfiguration)
| `- note: calls to initializer 'init(frame:configuration:)' from outside of its actor context are implicitly asynchronous
10 | public init?(coder: NSCoder)
11 | open func load(_ request: URLRequest) -> WKNavigation?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:92:17: warning: main actor-isolated property 'navigationDelegate' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
66 | }
67 |
68 | private func setupWebView(moduleName: String, customUserAgent: String?, scriptBundle: Bundle) throws {
| `- note: add '@MainActor' to make instance method 'setupWebView(moduleName:customUserAgent:scriptBundle:)' part of global actor 'MainActor'
69 |
70 | let coreScriptURL = Bundle.module.path(forResource: Constants.coreScript, ofType: "js")
:
90 |
91 | webView = WKWebView(frame: CGRect.zero, configuration: config)
92 | webView.navigationDelegate = self
| `- warning: main actor-isolated property 'navigationDelegate' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
93 | webView.allowsBackForwardNavigationGestures = true
94 | webView.customUserAgent = customUserAgent
WebKit.WKWebView:4:19: note: mutation of this property is only permitted within the actor
2 | @MainActor open class WKWebView : NSView {
3 | @NSCopying open var configuration: WKWebViewConfiguration { get }
4 | weak open var navigationDelegate: (any WKNavigationDelegate)? { get set }
| `- note: mutation of this property is only permitted within the actor
5 | weak open var uiDelegate: (any WKUIDelegate)? { get set }
6 | @available(swift, obsoleted: 3, renamed: "uiDelegate")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:93:17: warning: main actor-isolated property 'allowsBackForwardNavigationGestures' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
66 | }
67 |
68 | private func setupWebView(moduleName: String, customUserAgent: String?, scriptBundle: Bundle) throws {
| `- note: add '@MainActor' to make instance method 'setupWebView(moduleName:customUserAgent:scriptBundle:)' part of global actor 'MainActor'
69 |
70 | let coreScriptURL = Bundle.module.path(forResource: Constants.coreScript, ofType: "js")
:
91 | webView = WKWebView(frame: CGRect.zero, configuration: config)
92 | webView.navigationDelegate = self
93 | webView.allowsBackForwardNavigationGestures = true
| `- warning: main actor-isolated property 'allowsBackForwardNavigationGestures' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
94 | webView.customUserAgent = customUserAgent
95 | }
WebKit.WKWebView:122:14: note: mutation of this property is only permitted within the actor
120 | @available(swift, obsoleted: 3, renamed: "__createWebArchiveData(completionHandler:)")
121 | open func __createWebArchiveDataWithCompletionHandler(_ completionHandler: @escaping (Data, any Error) -> Void)
122 | open var allowsBackForwardNavigationGestures: Bool { get set }
| `- note: mutation of this property is only permitted within the actor
123 | @available(macOS 10.11, *)
124 | open var customUserAgent: String? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:94:17: warning: main actor-isolated property 'customUserAgent' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
66 | }
67 |
68 | private func setupWebView(moduleName: String, customUserAgent: String?, scriptBundle: Bundle) throws {
| `- note: add '@MainActor' to make instance method 'setupWebView(moduleName:customUserAgent:scriptBundle:)' part of global actor 'MainActor'
69 |
70 | let coreScriptURL = Bundle.module.path(forResource: Constants.coreScript, ofType: "js")
:
92 | webView.navigationDelegate = self
93 | webView.allowsBackForwardNavigationGestures = true
94 | webView.customUserAgent = customUserAgent
| `- warning: main actor-isolated property 'customUserAgent' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
95 | }
96 |
WebKit.WKWebView:124:14: note: mutation of this property is only permitted within the actor
122 | open var allowsBackForwardNavigationGestures: Bool { get set }
123 | @available(macOS 10.11, *)
124 | open var customUserAgent: String? { get set }
| `- note: mutation of this property is only permitted within the actor
125 | @available(macOS 10.11, *)
126 | open var allowsLinkPreview: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:177:16: warning: call to main actor-isolated instance method 'addSubview' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
176 | #else
177 | parent.addSubview(webView)
| `- warning: call to main actor-isolated instance method 'addSubview' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
178 | #endif
179 | webView.translatesAutoresizingMaskIntoConstraints = false
AppKit.NSView:29:26: note: calls to instance method 'addSubview' from outside of its actor context are implicitly asynchronous
27 | @available(macOS 10.5, *)
28 | open func viewDidUnhide()
29 | @MainActor open func addSubview(_ view: NSView)
| `- note: calls to instance method 'addSubview' from outside of its actor context are implicitly asynchronous
30 | open func addSubview(_ view: NSView, positioned place: NSWindow.OrderingMode, relativeTo otherView: NSView?)
31 | open func sortSubviews(_ compare: @convention(c) (NSView, NSView, UnsafeMutableRawPointer?) -> ComparisonResult, context: UnsafeMutableRawPointer?)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:179:17: warning: main actor-isolated property 'translatesAutoresizingMaskIntoConstraints' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
177 | parent.addSubview(webView)
178 | #endif
179 | webView.translatesAutoresizingMaskIntoConstraints = false
| `- warning: main actor-isolated property 'translatesAutoresizingMaskIntoConstraints' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
AppKit.NSView:3:25: note: mutation of this property is only permitted within the actor
1 | extension NSView {
2 | @available(macOS 10.7, *)
3 | @MainActor open var translatesAutoresizingMaskIntoConstraints: Bool { get set }
| `- note: mutation of this property is only permitted within the actor
4 | @available(macOS 10.7, *)
5 | open class var requiresConstraintBasedLayout: Bool { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:180:17: warning: main actor-isolated property 'topAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
178 | #endif
179 | webView.translatesAutoresizingMaskIntoConstraints = false
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
| `- warning: main actor-isolated property 'topAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
AppKit.NSView:11:25: note: property declared here
9 | open var rightAnchor: NSLayoutXAxisAnchor { get }
10 | @available(macOS 10.11, *)
11 | @MainActor open var topAnchor: NSLayoutYAxisAnchor { get }
| `- note: property declared here
12 | @available(macOS 10.11, *)
13 | open var bottomAnchor: NSLayoutYAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:180:54: warning: main actor-isolated property 'topAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
178 | #endif
179 | webView.translatesAutoresizingMaskIntoConstraints = false
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
| `- warning: main actor-isolated property 'topAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
AppKit.NSView:11:25: note: property declared here
9 | open var rightAnchor: NSLayoutXAxisAnchor { get }
10 | @available(macOS 10.11, *)
11 | @MainActor open var topAnchor: NSLayoutYAxisAnchor { get }
| `- note: property declared here
12 | @available(macOS 10.11, *)
13 | open var bottomAnchor: NSLayoutYAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:181:17: warning: main actor-isolated property 'bottomAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
179 | webView.translatesAutoresizingMaskIntoConstraints = false
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
| `- warning: main actor-isolated property 'bottomAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
AppKit.NSView:13:14: note: property declared here
11 | @MainActor open var topAnchor: NSLayoutYAxisAnchor { get }
12 | @available(macOS 10.11, *)
13 | open var bottomAnchor: NSLayoutYAxisAnchor { get }
| `- note: property declared here
14 | @available(macOS 10.11, *)
15 | open var widthAnchor: NSLayoutDimension { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:181:57: warning: main actor-isolated property 'bottomAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
179 | webView.translatesAutoresizingMaskIntoConstraints = false
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
| `- warning: main actor-isolated property 'bottomAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
AppKit.NSView:13:14: note: property declared here
11 | @MainActor open var topAnchor: NSLayoutYAxisAnchor { get }
12 | @available(macOS 10.11, *)
13 | open var bottomAnchor: NSLayoutYAxisAnchor { get }
| `- note: property declared here
14 | @available(macOS 10.11, *)
15 | open var widthAnchor: NSLayoutDimension { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:182:17: warning: main actor-isolated property 'leadingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
| `- warning: main actor-isolated property 'leadingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
184 | }
AppKit.NSView:3:14: note: property declared here
1 | extension NSView {
2 | @available(macOS 10.11, *)
3 | open var leadingAnchor: NSLayoutXAxisAnchor { get }
| `- note: property declared here
4 | @available(macOS 10.11, *)
5 | open var trailingAnchor: NSLayoutXAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:182:58: warning: main actor-isolated property 'leadingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
180 | webView.topAnchor.constraint(equalTo: parent.topAnchor).isActive = true
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
| `- warning: main actor-isolated property 'leadingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
184 | }
AppKit.NSView:3:14: note: property declared here
1 | extension NSView {
2 | @available(macOS 10.11, *)
3 | open var leadingAnchor: NSLayoutXAxisAnchor { get }
| `- note: property declared here
4 | @available(macOS 10.11, *)
5 | open var trailingAnchor: NSLayoutXAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:183:17: warning: main actor-isolated property 'trailingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
| `- warning: main actor-isolated property 'trailingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
184 | }
185 |
AppKit.NSView:5:14: note: property declared here
3 | open var leadingAnchor: NSLayoutXAxisAnchor { get }
4 | @available(macOS 10.11, *)
5 | open var trailingAnchor: NSLayoutXAxisAnchor { get }
| `- note: property declared here
6 | @available(macOS 10.11, *)
7 | open var leftAnchor: NSLayoutXAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:183:59: warning: main actor-isolated property 'trailingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
171 | /// Insert the WebView at index 0 of the given parent view,
172 | /// using AutoLayout to pin all 4 sides to the parent.
173 | func insertIntoView(parent: PlatformView) {
| `- note: add '@MainActor' to make instance method 'insertIntoView(parent:)' part of global actor 'MainActor'
174 | #if canImport(UIKit)
175 | parent.insertSubview(webView, at: 0)
:
181 | webView.bottomAnchor.constraint(equalTo: parent.bottomAnchor).isActive = true
182 | webView.leadingAnchor.constraint(equalTo: parent.leadingAnchor).isActive = true
183 | webView.trailingAnchor.constraint(equalTo: parent.trailingAnchor).isActive = true
| `- warning: main actor-isolated property 'trailingAnchor' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
184 | }
185 |
AppKit.NSView:5:14: note: property declared here
3 | open var leadingAnchor: NSLayoutXAxisAnchor { get }
4 | @available(macOS 10.11, *)
5 | open var trailingAnchor: NSLayoutXAxisAnchor { get }
| `- note: property declared here
6 | @available(macOS 10.11, *)
7 | open var leftAnchor: NSLayoutXAxisAnchor { get }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:189:17: warning: call to main actor-isolated instance method 'load' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
185 |
186 | /// Loads a page with the given path into the WebView.
187 | func load(path: String, completion: @escaping NavigationCallback) {
| `- note: add '@MainActor' to make instance method 'load(path:completion:)' part of global actor 'MainActor'
188 | self.navigationCallback = completion
189 | webView.load(URLRequest(url: URL(string: path)!))
| `- warning: call to main actor-isolated instance method 'load' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
190 | }
191 |
WebKit.WKWebView:11:15: note: calls to instance method 'load' from outside of its actor context are implicitly asynchronous
9 | @MainActor public init(frame: CGRect, configuration: WKWebViewConfiguration)
10 | public init?(coder: NSCoder)
11 | open func load(_ request: URLRequest) -> WKNavigation?
| `- note: calls to instance method 'load' from outside of its actor context are implicitly asynchronous
12 | @available(swift, obsoleted: 3, renamed: "load(_:)")
13 | open func loadRequest(_ request: URLRequest) -> WKNavigation?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:201:17: warning: call to main actor-isolated instance method 'evaluateJavaScript(_:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
191 |
192 | /// Run some JavaScript with error handling and logging.
193 | func runScript(functionName: String, params: [Any] = [], completion: @escaping ScriptResponseResultCallback) {
| `- note: add '@MainActor' to make instance method 'runScript(functionName:params:completion:)' part of global actor 'MainActor'
194 | guard let script = try? JavaScriptGenerator.generateScript(moduleName: moduleName,
195 | functionName: functionName,
:
199 | }
200 | logger.debug("script to run: \(script)")
201 | webView.evaluateJavaScript(script) { response, error in
| `- warning: call to main actor-isolated instance method 'evaluateJavaScript(_:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
202 | if let nsError = error as NSError?,
203 | nsError.domain == WKError.errorDomain,
WebKit.WKWebView:46:15: note: calls to instance method 'evaluateJavaScript(_:completionHandler:)' from outside of its actor context are implicitly asynchronous
44 | open func reloadFromOrigin() -> WKNavigation?
45 | open func stopLoading()
46 | open func evaluateJavaScript(_ javaScriptString: String, completionHandler: ((Any?, (any Error)?) -> Void)? = nil)
| `- note: calls to instance method 'evaluateJavaScript(_:completionHandler:)' from outside of its actor context are implicitly asynchronous
47 | open func evaluateJavaScript(_ javaScriptString: String) async throws -> Any
48 | @available(macOS 11.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:91:19: warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
89 | config.userContentController = userContentController
90 |
91 | webView = WKWebView(frame: CGRect.zero, configuration: config)
| |- warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'config' to main actor-isolated initializer 'init(frame:configuration:)' risks causing data races between main actor-isolated and task-isolated uses
92 | webView.navigationDelegate = self
93 | webView.allowsBackForwardNavigationGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:201:17: warning: sending task-isolated value of type '(Any?, (any Error)?) -> Void' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
199 | }
200 | logger.debug("script to run: \(script)")
201 | webView.evaluateJavaScript(script) { response, error in
| `- warning: sending task-isolated value of type '(Any?, (any Error)?) -> Void' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
202 | if let nsError = error as NSError?,
203 | nsError.domain == WKError.errorDomain,
[16/22] Compiling SwiftScraper AsyncScriptStep.swift
[17/22] Compiling SwiftScraper NavigableStep.swift
[18/22] Compiling SwiftScraper Step.swift
[19/22] Compiling SwiftScraper StepCompletionCallback.swift
[20/22] Compiling SwiftScraper StepRunner.swift
[21/22] Compiling SwiftScraper AsyncProcessStep.swift
[22/22] Emitting module SwiftScraper
/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Browser.swift:49:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
47 | private let logger = Logger()
48 | /// The webview itself
49 | public private (set) var webView: WKWebView!
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
50 | private let userContentController = WKUserContentController()
51 | private var navigationCallback: NavigationCallback?
Build complete! (30.33s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SwiftScraper",
"name" : "SwiftScraper",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "14.0"
},
{
"name" : "macos",
"version" : "11.0"
}
],
"products" : [
{
"name" : "SwiftScraper",
"targets" : [
"SwiftScraper"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SwiftScraperTests",
"module_type" : "SwiftTarget",
"name" : "SwiftScraperTests",
"path" : "Tests/SwiftScraperTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftScraperTests/Resources/page1.html",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftScraperTests/StepRunnerTests.js",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftScraperTests/Resources/page2.html",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftScraperTests/Resources/waitTest.html",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"JavaScriptGeneratorTests.swift",
"StepRunnerTests.swift",
"Steps/AsyncProcessStepTests.swift",
"Steps/AsyncScriptStepTests.swift",
"Steps/DownloadStepTests.swift",
"Steps/OpenPageStepTests.swift",
"Steps/PageChangeStepTests.swift",
"Steps/ProcessStepTests.swift",
"Steps/ScriptStepTests.swift",
"Steps/WaitForConditionStepTests.swift",
"Steps/WaitStepTests.swift",
"SwiftScraperErrorTests.swift"
],
"target_dependencies" : [
"SwiftScraper"
],
"type" : "test"
},
{
"c99name" : "SwiftScraper",
"module_type" : "SwiftTarget",
"name" : "SwiftScraper",
"path" : "Sources/SwiftScraper",
"product_memberships" : [
"SwiftScraper"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/SwiftScraper/Resources/SwiftScraper.js",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Browser.swift",
"JavaScriptGenerator.swift",
"StepRunner.swift",
"Steps/AsyncProcessStep.swift",
"Steps/AsyncScriptStep.swift",
"Steps/Common/NavigableStep.swift",
"Steps/Common/Step.swift",
"Steps/Common/StepCompletionCallback.swift",
"Steps/Common/StepFlowResult.swift",
"Steps/DownloadStep.swift",
"Steps/OpenPageStep.swift",
"Steps/PageChangeStep.swift",
"Steps/ProcessStep.swift",
"Steps/ScriptStep.swift",
"Steps/WaitForConditionStep.swift",
"Steps/WaitStep.swift",
"SwiftScraperError.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
Done.