Skip to content

Releases: pointfreeco/swift-case-paths

1.5.6

02 Oct 17:32
bc92c4b
Compare
Choose a tag to compare

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

Full Changelog: 1.5.5...1.5.6

1.5.5

29 Aug 17:40
Compare
Choose a tag to compare

What's Changed

  • Fixed: Fix Wasm builds and add Wasm CI. #192
  • Infrastructure: Minor typo in CasePathable documentation. #187
  • Infrastructure: Some DocC warnings. #188

New Contributors

Full Changelog: 1.5.4...1.5.5

1.5.4

24 Jul 18:31
71344dd
Compare
Choose a tag to compare

What's Changed

  • Fixed: Point Issue Reporting to xctest-dynamic-overlay repo. #186

Full Changelog: 1.5.3...1.5.4

1.5.3

22 Jul 22:46
031704b
Compare
Choose a tag to compare

What's Changed

  • Added: Swift Testing beta support (#178).
  • Fixed: @CasePathable can be applied to enums containing associated values named Element (thanks @iwt-dahlborn, #185).

New Contributors

Full Changelog: 1.5.2...1.5.3

1.5.2

18 Jul 19:40
12bc5b9
Compare
Choose a tag to compare

What's Changed

  • Fixed: @CasePathable enums with associated values of Element 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

16 Jul 23:04
Compare
Choose a tag to compare

What's Changed

  • Fixed: Suppress warning generated by @CasePathable enums that have cases with a Never 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

12 Jul 20:17
b9ad266
Compare
Choose a tag to compare

What's Changed

  • Added: CasePathIterable and CasePathReflectable 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

Full Changelog: 1.4.2...1.5.0

1.4.2

12 Jun 18:20
b871e5e
Compare
Choose a tag to compare

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

Full Changelog: 1.4.1...1.4.2

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