Skip to content

Releases: pointfreeco/swift-case-paths

1.4.1

06 Jun 22:10
Compare
Choose a tag to compare

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

06 Jun 15:26
Compare
Choose a tag to compare

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

26 Apr 17:10
8d71237
Compare
Choose a tag to compare

What's Changed

  • Fixed: Addressed an issue in which optionalValue.is(\Wrapped.Cases.case) would return true for non-matching cases due to an optional promotion bug (#157).

Full Changelog: 1.3.2...1.3.3

1.3.2

05 Apr 19:18
Compare
Choose a tag to compare

What's Changed

  • Fixed: Leading, unindented comments to an enum case should no longer break a @CasePathable enum (thanks @djangovanderheijden, #154).

New Contributors

Full Changelog: 1.3.1...1.3.2

1.3.1

04 Apr 23:02
Compare
Choose a tag to compare

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

04 Mar 22:38
e593aba
Compare
Choose a tag to compare

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

09 Feb 19:54
551150d
Compare
Choose a tag to compare

What's Changed

  • Fixed: @CasePathable can now be applied to enums in public 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

01 Feb 01:50
e072139
Compare
Choose a tag to compare

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

30 Jan 18:18
8cc3bc0
Compare
Choose a tag to compare

What's Changed

  • Fixed: PartialCaseKeyPath.callAsFunction no longer fails to embed values that are already wrapped in Any (#145).

Full Changelog: 1.2.1...1.2.2

1.2.1

10 Jan 21:55
76d7791
Compare
Choose a tag to compare

What's Changed

  • Fixed: Addressed a regression in which Enum.optionalCase(nil).is(\.optionalCase) would return false due to optional promotion introduced in 1.2.0 (thanks @Ryu0118, #142).

New Contributors

Full Changelog: 1.2.0...1.2.1