-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Correct fix for #1041 and #1038 #1083
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
…xes linux error
@@ -1236,6 +1236,8 @@ extension NSNumber { | |||
} | |||
} | |||
|
|||
#if os(Linux) | |||
#else |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This gives an impression that Linux platform is not finished.
I would prefer more explicit unary not
comparison here.
#if !os(Linux)
#endif
Hey @seriyvolk83 I've just noticed your PR, any reason for rolling back the fix? |
I don’t remember, but seems the first commit has change that is excessive because on Linux the method are already implemented, no need to add ‘.<‘ like methods. The only change is needed is to have ‘#if’ condition to skip definitions that are presented on Linux. It should compile on both platforms. |
Btw, #1088 is wrong fix, these mew methods will never be used. Linux has these methods implemented and it’s the reason the code is not complied. |
What is the status of this? |
any update on this? |
Hey y'all couldn't we just replace the failing operator overrides with standard functions? Example:Change this func < (lhs: NSNumber, rhs: NSNumber) -> Bool {
switch (lhs.isBool, rhs.isBool) {
case (false, true): return false
case (true, false): return false
default: return lhs.compare(rhs) == .orderedAscending
}
} To this func lt(lhs: NSNumber, rhs: NSNumber) -> Bool {
switch (lhs.isBool, rhs.isBool) {
case (false, true): return false
case (true, false): return false
default: return lhs.compare(rhs) == .orderedAscending
}
} And then any time we compare two We would just need to do that for any of those places where the compiler fails in linux land. |
I bring this up cuz I'm currently working on a cross platform client library for Swift and this is how I got around this issue. Willing to make a PR if this approach looks good to y'all |
The PR should summarize what was changed and why. Here are some questions to
help you if you're not sure:
none. It just removes the duplicated code from Linux version (NSNumber comparators)
Linux support
ambiguous use of operator '<' #1041 and Compilation breaks in Swift 5.1 Ubuntu 16.04 #1038