Releases: pointfreeco/swift-case-paths
Releases · pointfreeco/swift-case-paths
1.5.6
What's Changed
- Fixed: Xcode 16 library evolution support (thanks @gemmakbarlow, #199).
- Fixed: Address Package.swift deprecation warning (thanks @finestructure, #191).
- Infrastructure: Add Swift Macro Compatibility Check GitHub Action (thanks @Matejkob, #197).
- Infrastructure: Bump dependencies to avoid CI build issues with Xcode 16 (thanks @gemmakbarlow, #198).
- Infrastructure: SwiftWasm CI (#200).
New Contributors
- @gemmakbarlow made their first contribution in #198
- @finestructure made their first contribution in #191
Full Changelog: 1.5.5...1.5.6
1.5.5
1.5.4
1.5.3
What's Changed
- Added: Swift Testing beta support (#178).
- Fixed:
@CasePathable
can be applied to enums containing associated values namedElement
(thanks @iwt-dahlborn, #185).
New Contributors
- @iwt-dahlborn made their first contribution in #185
Full Changelog: 1.5.2...1.5.3
1.5.2
What's Changed
- Fixed:
@CasePathable
enums with associated values ofElement
no longer conflict with macro-generated case path iteration (#183). - Fixed: More warnings related to
@CasePathable
enums containing empty/uninhabited enums have been silenced (#184).
Full Changelog: 1.5.1...1.5.2
1.5.1
What's Changed
- Fixed: Suppress warning generated by
@CasePathable
enums that have cases with aNever
associated type (#179). - Fixed: Temporarily work around a Swift bug in Xcode 16 related to forming case key paths in Swift 6 language mode (#181).
Full Changelog: 1.5.0...1.5.1
1.5.0
What's Changed
- Added:
CasePathIterable
andCasePathReflectable
protocols for abstracting over all of a type's case paths, as well as an enum's given case path (#173). - Changed: Bumped to Swift 6 Language Mode support, dropping support for <5.9 (#168; #172; #174).
- Fixed: Update Package.swift for SwiftSyntax 601-prerelease via new swiftlang organization (#175; thanks @NachoSoto, #177).
- Infrastructure: Make
Optional
/Result
more consistent with macro-generated code (#166). - Infrastructure: Added
.editorconfig
for consistent code formatting (thanks @Matejkob, #176).
New Contributors
- @Matejkob made their first contribution in #176
- @NachoSoto made their first contribution in #177
Full Changelog: 1.4.2...1.5.0
1.4.2
What's Changed
- Fixed: Address a
@CasePathable
regression that produced warnings when@CasePathable
was applied to enums with no cases (#162 ; thanks @jpsim, #164). - Fixed: Address a
@CasePathable
regression that broke the macro when applied to enums with comments on cases without associated values (thanks @twocentstudios, #163). - Fixed: Support swift-syntax from 600.0.0-latest (#165).
New Contributors
- @twocentstudios made their first contribution in #163
- @jpsim made their first contribution in #164
Full Changelog: 1.4.1...1.4.2
1.4.1
What's Changed
- Fixed: New macro code introduced in 1.4.0 could cause a regression in compilation for
@CasePathable
enums with trailing comments. This has been fixed (#160).
Full Changelog: 1.4.0...1.4.1
1.4.0
What's Changed
-
Added: A
@CasePathable
instance can now be used to look up its associated case path (#158).@CasePathable enum Foo { case bar(Int) case baz(String) } let baz = Foo.baz("Blob") let bazCase = Foo.allCasePaths[baz] // PartialCaseKeyPath<Foo> baz.is(bazCase) // true
-
Added: A
@CasePathable
enum can now iterate over all of its case key paths (#159).@CasePathable enum Foo { case bar(Int) case baz(String) } let baz = Foo.baz("Blob") for casePath in Foo.allCasePaths { print(baz.is(casePath)) } // false // true let casePaths = Array(Foo.allCasePaths) // [PartialCaseKeyPath<Foo>] casePaths == [\.bar, \.baz] // true
-
Infrastructure: Strict concurrency has been enabled in preparation for Swift 6 (#156).
Full Changelog: 1.3.3...1.4.0