| // 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) |
| } |
| } |