Skip to content

Conversation

@aesilevich
Copy link

This pull request fixes compatibility issues with the Swift toolchain for Linux described in #1041 and #1038, but does so in a safer and more reliable way, as suggested in the latest comments on PR #1083.

The root cause of these issues is that the open-source version of the Foundation library, SwiftFoundation, implements its own comparison operators for the NSNumber type. This causes ambiguity with the comparison operators implemented in SwiftyJSON. To avoid this, we replace SwiftyJSON’s comparison operators with simple functions and use them for all platforms, without conditional compilation or relying on different comparison operators for each platform. This approach is safer because it avoids depending on SwiftFoundation’s operator implementations.

- Does this have tests?
Existing tests already cover the changes in this PR.

- Does this have documentation?
No additional documentation is required.

- Does this break the public API (Requires major version bump)?
No, it does not break the public API.

- Is this a new feature (Requires minor version bump)?
No, this is not a new feature and does not require a minor version bump.

This is required for compatibility with Swift Foundation
on Linux and Android platforms. On those platforms, NSNumber
already implements comparison operators, which causes conflicts.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant