diff --git a/Package.resolved b/Package.resolved index ba38b909..12783ddb 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "c53c34c164015d035216379ca730f2630209ddabb19d29107d35f34491225ea9", + "originHash" : "3c1107143d7c60927c6fc00f659a2b28094d832d3d52fb0ddac4e46ea04ada28", "pins" : [ { "identity" : "combine-schedulers", @@ -136,6 +136,15 @@ "version" : "602.0.0" } }, + { + "identity" : "swift-tagged", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-tagged", + "state" : { + "revision" : "3907a9438f5b57d317001dc99f3f11b46882272b", + "version" : "0.10.0" + } + }, { "identity" : "xctest-dynamic-overlay", "kind" : "remoteSourceControl", diff --git a/Package.swift b/Package.swift index 2b73bda7..5da66c6e 100644 --- a/Package.swift +++ b/Package.swift @@ -30,8 +30,8 @@ let package = Package( .package(url: "https://github.com/pointfreeco/swift-concurrency-extras", from: "1.0.0"), .package(url: "https://github.com/pointfreeco/swift-custom-dump", from: "1.3.3"), .package(url: "https://github.com/pointfreeco/swift-dependencies", from: "1.9.0"), - // NB: Fork with Swift 6.3 fixes (uses doozMen/swift-perception) - .package(url: "https://github.com/doozMen/swift-sharing", branch: "main"), + // NB: Fork with Swift 6.3 fixes + .package(url: "https://github.com/doozMen/swift-sharing", branch: "fix/swift-623-optimizer-crash"), .package(url: "https://github.com/pointfreeco/swift-snapshot-testing", from: "1.18.4"), // NB: Fork with Swift 6.3 fixes .package( @@ -70,9 +70,6 @@ let package = Package( "SQLiteData", .product(name: "ConcurrencyExtras", package: "swift-concurrency-extras"), .product(name: "CustomDump", package: "swift-custom-dump"), - .product(name: "Perception", package: "swift-perception"), - .product(name: "Sharing", package: "swift-sharing"), - .product(name: "StructuredQueriesSQLite", package: "swift-structured-queries"), ] ), .testTarget( @@ -82,7 +79,6 @@ let package = Package( "SQLiteDataTestSupport", .product(name: "DependenciesTestSupport", package: "swift-dependencies"), .product(name: "InlineSnapshotTesting", package: "swift-snapshot-testing"), - package: "swift-tagged", .product(name: "SnapshotTestingCustomDump", package: "swift-snapshot-testing"), .product(name: "StructuredQueries", package: "swift-structured-queries"), ] diff --git a/Sources/SQLiteData/StructuredQueries+GRDB/Statement+GRDB.swift b/Sources/SQLiteData/StructuredQueries+GRDB/Statement+GRDB.swift index c2c990c1..6c4c6d03 100644 --- a/Sources/SQLiteData/StructuredQueries+GRDB/Statement+GRDB.swift +++ b/Sources/SQLiteData/StructuredQueries+GRDB/Statement+GRDB.swift @@ -186,24 +186,29 @@ extension SelectStatement where QueryValue == (), Joins == () { } } -extension SelectStatement where QueryValue == (), From: PrimaryKeyedTable, Joins == () { - /// Returns a single value fetched from the database for a given primary key. - /// - /// - Parameters - /// - db: A database connection. - /// - primaryKey: A primary key identifying a table row. - /// - Returns: A single value decoded from the database. - @inlinable - public func find( - _ db: Database, - key primaryKey: some QueryExpression - ) throws -> From.QueryOutput { - guard let record = try asSelect().find(primaryKey).fetchOne(db) else { - throw NotFound() +// NB: Swift 6.2.3 and 6.3-dev guard Select.find(_:) in swift-structured-queries due to compiler crashes. +// This extension depends on that method, so it must also be guarded. +// Tracking: https://github.com/swiftlang/swift/issues/82529 +#if !compiler(>=6.2.3) + extension SelectStatement where QueryValue == (), From: PrimaryKeyedTable, Joins == () { + /// Returns a single value fetched from the database for a given primary key. + /// + /// - Parameters + /// - db: A database connection. + /// - primaryKey: A primary key identifying a table row. + /// - Returns: A single value decoded from the database. + @inlinable + public func find( + _ db: Database, + key primaryKey: some QueryExpression + ) throws -> From.QueryOutput { + guard let record = try asSelect().find(primaryKey).fetchOne(db) else { + throw NotFound() + } + return record } - return record } -} +#endif @available(iOS 17, macOS 14, tvOS 17, watchOS 10, *) extension SelectStatement where QueryValue == () { diff --git a/Sources/SQLiteData/StructuredQueries+GRDB/Table+GRDB.swift b/Sources/SQLiteData/StructuredQueries+GRDB/Table+GRDB.swift index d2f7b932..bcf620bc 100644 --- a/Sources/SQLiteData/StructuredQueries+GRDB/Table+GRDB.swift +++ b/Sources/SQLiteData/StructuredQueries+GRDB/Table+GRDB.swift @@ -55,7 +55,7 @@ extension StructuredQueriesCore.PrimaryKeyedTable { try all.find(db, key: primaryKey) } } -#/ +*/ // NB: Swift 6.2.3 and 6.3-dev guard Select.find(_:) in swift-structured-queries due to compiler crashes. // This extension depends on that method, so it must also be guarded.