Skip to content

Commit deb26f3

Browse files
authored
Fix warnings in Xcode 26 (#382)
Fix Xcode 26 warnings in sources copied from ComposableArchitecture that use SwiftSyntax (fixed in pointfreeco/swift-composable-architecture#3160) and add dependencies to `IssueReporting` in modules that import it in tests to fix: ``` Package.swift: dependency 'xctest-dynamic-overlay' is not used by any target ``` ## Checklist - [ ] Unit Tests - [ ] UI Tests - [ ] Snapshot Tests (iOS only) - [ ] I have made corresponding changes to the documentation
1 parent 0061902 commit deb26f3

File tree

3 files changed

+40
-24
lines changed

3 files changed

+40
-24
lines changed

Package.swift

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ let package = Package(
7676
dependencies: [
7777
"Workflow",
7878
.product(name: "CustomDump", package: "swift-custom-dump"),
79+
.product(name: "IssueReporting", package: "xctest-dynamic-overlay"),
7980
],
8081
path: "WorkflowTesting/Sources",
8182
linkerSettings: [.linkedFramework("XCTest")]
@@ -144,7 +145,11 @@ let package = Package(
144145
),
145146
.target(
146147
name: "WorkflowRxSwiftTesting",
147-
dependencies: ["WorkflowRxSwift", "WorkflowTesting"],
148+
dependencies: [
149+
"WorkflowRxSwift",
150+
"WorkflowTesting",
151+
.product(name: "IssueReporting", package: "xctest-dynamic-overlay"),
152+
],
148153
path: "WorkflowRxSwift/Testing",
149154
linkerSettings: [.linkedFramework("XCTest")]
150155
),
@@ -158,7 +163,11 @@ let package = Package(
158163
),
159164
.target(
160165
name: "WorkflowCombineTesting",
161-
dependencies: ["WorkflowCombine", "WorkflowTesting"],
166+
dependencies: [
167+
"WorkflowCombine",
168+
"WorkflowTesting",
169+
.product(name: "IssueReporting", package: "xctest-dynamic-overlay"),
170+
],
162171
path: "WorkflowCombine/Testing",
163172
linkerSettings: [.linkedFramework("XCTest")]
164173
),
@@ -172,7 +181,11 @@ let package = Package(
172181
),
173182
.target(
174183
name: "WorkflowConcurrencyTesting",
175-
dependencies: ["WorkflowConcurrency", "WorkflowTesting"],
184+
dependencies: [
185+
"WorkflowConcurrency",
186+
"WorkflowTesting",
187+
.product(name: "IssueReporting", package: "xctest-dynamic-overlay"),
188+
],
176189
path: "WorkflowConcurrency/Testing",
177190
linkerSettings: [.linkedFramework("XCTest")]
178191
),

WorkflowSwiftUIMacros/Sources/Derived/Extensions.swift

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Derived from
2-
// https://github.com/pointfreeco/swift-composable-architecture/blob/1.12.1/Sources/ComposableArchitectureMacros/Extensions.swift
2+
// https://github.com/pointfreeco/swift-composable-architecture/blob/1.22.3/Sources/ComposableArchitectureMacros/Extensions.swift
33

44
//===----------------------------------------------------------------------===//
55
//
@@ -43,27 +43,15 @@ extension VariableDeclSyntax {
4343
}
4444

4545
func accessorsMatching(_ predicate: (TokenKind) -> Bool) -> [AccessorDeclSyntax] {
46-
let patternBindings = bindings.compactMap { binding in
47-
binding.as(PatternBindingSyntax.self)
48-
}
49-
let accessors: [AccessorDeclListSyntax.Element] = patternBindings.compactMap { patternBinding in
46+
let accessors: [AccessorDeclListSyntax.Element] = bindings.compactMap { patternBinding in
5047
switch patternBinding.accessorBlock?.accessors {
5148
case .accessors(let accessors):
5249
accessors
5350
default:
5451
nil
5552
}
5653
}.flatMap { $0 }
57-
return accessors.compactMap { accessor in
58-
guard let decl = accessor.as(AccessorDeclSyntax.self) else {
59-
return nil
60-
}
61-
if predicate(decl.accessorSpecifier.tokenKind) {
62-
return decl
63-
} else {
64-
return nil
65-
}
66-
}
54+
return accessors.compactMap { predicate($0.accessorSpecifier.tokenKind) ? $0 : nil }
6755
}
6856

6957
var willSetAccessors: [AccessorDeclSyntax] {
@@ -152,7 +140,7 @@ extension TypeSyntax {
152140
genericParameters[parameter.name.text] = parameter.inheritedType
153141
}
154142
}
155-
var iterator = asProtocol(TypeSyntaxProtocol.self).tokens(viewMode: .sourceAccurate)
143+
var iterator = asProtocol((any TypeSyntaxProtocol).self).tokens(viewMode: .sourceAccurate)
156144
.makeIterator()
157145
guard let base = iterator.next() else {
158146
return nil
@@ -233,7 +221,7 @@ extension DeclGroupSyntax {
233221
var memberFunctionStandins: [FunctionDeclSyntax.SignatureStandin] {
234222
var standins = [FunctionDeclSyntax.SignatureStandin]()
235223
for member in memberBlock.members {
236-
if let function = member.as(MemberBlockItemSyntax.self)?.decl.as(FunctionDeclSyntax.self) {
224+
if let function = member.decl.as(FunctionDeclSyntax.self) {
237225
standins.append(function.signatureStandin)
238226
}
239227
}
@@ -242,7 +230,7 @@ extension DeclGroupSyntax {
242230

243231
func hasMemberFunction(equvalentTo other: FunctionDeclSyntax) -> Bool {
244232
for member in memberBlock.members {
245-
if let function = member.as(MemberBlockItemSyntax.self)?.decl.as(FunctionDeclSyntax.self) {
233+
if let function = member.decl.as(FunctionDeclSyntax.self) {
246234
if function.isEquivalent(to: other) {
247235
return true
248236
}
@@ -253,7 +241,7 @@ extension DeclGroupSyntax {
253241

254242
func hasMemberProperty(equivalentTo other: VariableDeclSyntax) -> Bool {
255243
for member in memberBlock.members {
256-
if let variable = member.as(MemberBlockItemSyntax.self)?.decl.as(VariableDeclSyntax.self) {
244+
if let variable = member.decl.as(VariableDeclSyntax.self) {
257245
if variable.isEquivalent(to: other) {
258246
return true
259247
}
@@ -264,7 +252,7 @@ extension DeclGroupSyntax {
264252

265253
var definedVariables: [VariableDeclSyntax] {
266254
memberBlock.members.compactMap { member in
267-
if let variableDecl = member.as(MemberBlockItemSyntax.self)?.decl.as(VariableDeclSyntax.self) {
255+
if let variableDecl = member.decl.as(VariableDeclSyntax.self) {
268256
return variableDecl
269257
}
270258
return nil
@@ -300,3 +288,15 @@ extension DeclGroupSyntax {
300288
self.is(StructDeclSyntax.self)
301289
}
302290
}
291+
292+
extension AttributedTypeSyntax {
293+
var isInout: Bool {
294+
#if canImport(SwiftSyntax600)
295+
specifiers.contains(
296+
where: { $0.as(SimpleTypeSpecifierSyntax.self)?.specifier.tokenKind == .keyword(.inout) }
297+
) == true
298+
#else
299+
specifier?.tokenKind == .keyword(.inout)
300+
#endif
301+
}
302+
}

WorkflowSwiftUIMacros/Sources/Derived/ObservableStateMacro.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@ import SwiftDiagnostics
1616
import SwiftOperators
1717
import SwiftSyntax
1818
import SwiftSyntaxBuilder
19-
import SwiftSyntaxMacroExpansion
2019
import SwiftSyntaxMacros
2120

21+
#if !canImport(SwiftSyntax600)
22+
import SwiftSyntaxMacroExpansion
23+
#endif
24+
2225
public enum ObservableStateMacro {
2326
static let moduleName = "WorkflowSwiftUI"
2427

0 commit comments

Comments
 (0)