Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,20 @@ if ProcessInfo.processInfo.environment["OMIT_MACRO_TESTS"] == nil {
)
)
}

for target in package.targets {
target.swiftSettings = target.swiftSettings ?? []
target.swiftSettings?.append(contentsOf: [
.enableUpcomingFeature("ExistentialAny"),
.enableUpcomingFeature("ImmutableWeakCaptures"),
.enableUpcomingFeature("InferIsolatedConformances"),
.enableUpcomingFeature("InternalImportsByDefault"),
.enableUpcomingFeature("MemberImportVisibility"),
.enableUpcomingFeature("NonisolatedNonsendingByDefault"),
])
#if compiler(>=6.4)
target.swiftSettings?.append(contentsOf: [
.treatAllWarnings(as: .error)
])
#endif
}
2 changes: 2 additions & 0 deletions Sources/CasePaths/Internal/TypeName.swift
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import Foundation

// NB: This is adapted from Custom Dump and should ideally be kept in sync.
package func typeName(_ type: Any.Type) -> String {
var name = _typeName(type, qualified: true)
Expand Down
6 changes: 3 additions & 3 deletions Sources/CasePathsMacros/CasePathableMacro.swift
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import SwiftDiagnostics
import SwiftSyntax
public import SwiftSyntax
import SwiftSyntaxBuilder
import SwiftSyntaxMacros
public import SwiftSyntaxMacros

public struct CasePathableMacro {
static let moduleName = "CasePaths"
Expand Down Expand Up @@ -247,7 +247,7 @@ extension CasePathableMacro: MemberMacro {
}

enum CasePathableMacroDiagnostic {
case notAnEnum(DeclGroupSyntax)
case notAnEnum(any DeclGroupSyntax)
case overloadedCaseName(String)
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/CasePathsMacros/Plugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import SwiftSyntaxMacros

@main
struct CasePathsPlugin: CompilerPlugin {
let providingMacros: [Macro.Type] = [
let providingMacros: [any Macro.Type] = [
CasePathableMacro.self
]
}
16 changes: 8 additions & 8 deletions Tests/CasePathsTests/CasePathsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@ final class CasePathsTests: XCTestCase {

func testResult() {
struct SomeError: Error, Equatable {}
XCTAssertEqual(Result<Int, Error>.success(42)[case: \.success], 42)
XCTAssertNil(Result<Int, Error>.failure(SomeError())[case: \.success])
XCTAssertNil(Result<Int, Error>.success(42)[case: \.failure])
XCTAssertNotNil(Result<Int, Error>.failure(SomeError())[case: \.failure])
XCTAssertEqual(Result<Int, any Error>.success(42)[case: \.success], 42)
XCTAssertNil(Result<Int, any Error>.failure(SomeError())[case: \.success])
XCTAssertNil(Result<Int, any Error>.success(42)[case: \.failure])
XCTAssertNotNil(Result<Int, any Error>.failure(SomeError())[case: \.failure])
XCTAssertEqual((\Result<Int, SomeError>.Cases.success)(42), .success(42))
XCTAssertEqual((\Result<Int, SomeError>.Cases.failure)(SomeError()), .failure(SomeError()))
XCTAssertEqual(Result.allCasePaths[Result<Int, Error>.success(42)], \.success)
XCTAssertNotEqual(Result.allCasePaths[Result<Int, Error>.success(42)], \.failure)
XCTAssertEqual(Result.allCasePaths[Result<Int, Error>.failure(SomeError())], \.failure)
XCTAssertNotEqual(Result.allCasePaths[Result<Int, Error>.failure(SomeError())], \.success)
XCTAssertEqual(Result.allCasePaths[Result<Int, any Error>.success(42)], \.success)
XCTAssertNotEqual(Result.allCasePaths[Result<Int, any Error>.success(42)], \.failure)
XCTAssertEqual(Result.allCasePaths[Result<Int, any Error>.failure(SomeError())], \.failure)
XCTAssertNotEqual(Result.allCasePaths[Result<Int, any Error>.failure(SomeError())], \.success)
}

func testSelfCaseKeyPathCallAsFunction() {
Expand Down
2 changes: 1 addition & 1 deletion Tests/CasePathsTests/CaseSetTests.swift
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#if canImport(Testing) && swift(>=6)
import CasePaths
public import CasePaths
import Testing

@dynamicMemberLookup
Expand Down
Loading