mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
30 lines
855 B
Swift
30 lines
855 B
Swift
// RUN: %target-typecheck-verify-swift -diagnostics-editor-mode
|
|
|
|
typealias TimeInterval = Double
|
|
|
|
let NSEC_PER_USEC : UInt64 = 1000
|
|
let NSEC_PER_SEC : UInt64 = 1000000000
|
|
|
|
public enum TemporalProxy {
|
|
case seconds(Int)
|
|
case milliseconds(Int)
|
|
case microseconds(Int)
|
|
case nanoseconds(Int)
|
|
@_downgrade_exhaustivity_check
|
|
case never
|
|
}
|
|
|
|
func unproxify(t : TemporalProxy) -> TimeInterval {
|
|
switch t { // expected-warning {{switch must be exhaustive}}
|
|
// expected-note@-1 {{do you want to add missing cases?}}
|
|
case let .seconds(s):
|
|
return TimeInterval(s)
|
|
case let .milliseconds(ms):
|
|
return TimeInterval(TimeInterval(ms) / 1000.0)
|
|
case let .microseconds(us):
|
|
return TimeInterval( UInt64(us) * NSEC_PER_USEC ) / TimeInterval(NSEC_PER_SEC)
|
|
case let .nanoseconds(ns):
|
|
return TimeInterval(ns) / TimeInterval(NSEC_PER_SEC)
|
|
}
|
|
}
|