Releases: pointfreeco/swift-case-paths
Releases 路 pointfreeco/swift-case-paths
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
1.3.3
What's Changed
- Fixed: Addressed an issue in which
optionalValue.is(\Wrapped.Cases.case)
would returntrue
for non-matching cases due to an optional promotion bug (#157).
Full Changelog: 1.3.2...1.3.3
1.3.2
What's Changed
- Fixed: Leading, unindented comments to an enum case should no longer break a
@CasePathable
enum (thanks @djangovanderheijden, #154).
New Contributors
- @djangovanderheijden made their first contribution in #154
Full Changelog: 1.3.1...1.3.2
1.3.1
What's Changed
- Fixed: Macro overloaded case diagnostics are now displayed in Xcode at the expected source (#152).
- Fixed:
\.never
case path autocomplete now shows a warning on non-@CasePathable
enums to help call out that enums are expected to be case-pathable for their cases to be accessible via key path syntax (#153). - Fixed:
@CasePathable
now preserves documentation for each generated case path (#153).
Full Changelog: 1.3.0...1.3.1
1.3.0
What's Changed
- Added: Allow writability when chaining into a dynamic case (#150).
- Fixed: Bump swift-syntax to allow targeting 5.10.0 (#151).
Full Changelog: 1.2.4...1.3.0
1.2.4
What's Changed
- Fixed:
@CasePathable
can now be applied to enums inpublic
extensions (#149). - Fixed:
@CasePathable
can now be applied to enums with@available
annotations (#149).
Full Changelog: 1.2.3...1.2.4
1.2.3
What's Changed
- Fixed: Cases holding optionals are no longer automatically flattened outside of contexts that should flatten them (#147).
- Fixed: Partial case paths no longer fail to embed non-optional values in cases that hold optionals (#147).
- Fixed: Non-partial case paths no longer allow partial embeds (#147).
- Infrastructure: Upgrade CI to use M1 runners (#146)
Full Changelog: 1.2.2...1.2.3
1.2.2
What's Changed
- Fixed:
PartialCaseKeyPath.callAsFunction
no longer fails to embed values that are already wrapped inAny
(#145).
Full Changelog: 1.2.1...1.2.2