From 4824544ec9d7723a23dcaf536b279b2899ed5a38 Mon Sep 17 00:00:00 2001 From: Kim Topley Date: Tue, 5 Sep 2017 13:48:44 -0700 Subject: [PATCH] Synchronize the Linux and Darwin overlay versions of Time.swift rdar://problem/34132958 --- src/swift/Time.swift | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/swift/Time.swift b/src/swift/Time.swift index d7d49c96b..552275894 100644 --- a/src/swift/Time.swift +++ b/src/swift/Time.swift @@ -2,7 +2,7 @@ // // This source file is part of the Swift.org open source project // -// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors +// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See http://swift.org/LICENSE.txt for license information @@ -78,13 +78,14 @@ public struct DispatchTime : Comparable { } } -public func <(a: DispatchTime, b: DispatchTime) -> Bool { - if a.rawValue == ~0 || b.rawValue == ~0 { return false } - return a.rawValue < b.rawValue -} +extension DispatchTime { + public static func < (a: DispatchTime, b: DispatchTime) -> Bool { + return a.rawValue < b.rawValue + } -public func ==(a: DispatchTime, b: DispatchTime) -> Bool { - return a.rawValue == b.rawValue + public static func ==(a: DispatchTime, b: DispatchTime) -> Bool { + return a.rawValue == b.rawValue + } } public struct DispatchWallTime : Comparable { @@ -106,17 +107,20 @@ public struct DispatchWallTime : Comparable { } } -public func <(a: DispatchWallTime, b: DispatchWallTime) -> Bool { - if b.rawValue == ~0 { - return a.rawValue != ~0 - } else if a.rawValue == ~0 { - return false +extension DispatchWallTime { + public static func <(a: DispatchWallTime, b: DispatchWallTime) -> Bool { + let negativeOne: dispatch_time_t = ~0 + if b.rawValue == negativeOne { + return a.rawValue != negativeOne + } else if a.rawValue == negativeOne { + return false + } + return -Int64(bitPattern: a.rawValue) < -Int64(bitPattern: b.rawValue) } - return -Int64(bitPattern: a.rawValue) < -Int64(bitPattern: b.rawValue) -} -public func ==(a: DispatchWallTime, b: DispatchWallTime) -> Bool { - return a.rawValue == b.rawValue + public static func ==(a: DispatchWallTime, b: DispatchWallTime) -> Bool { + return a.rawValue == b.rawValue + } } public enum DispatchTimeInterval {