Bring back Duration construction extensions KT-46229

Return the extension properties for constructing Duration from numbers,
but this time place them in Duration.Companion rather than on top-level.

- provide the new set of construction extension properties
  in companion of Duration
- leave top-level extension properties experimental,
  increase their deprecation level to ERROR,
  propose the extension properties in companion instead.
- leave Duration companion static factory functions experimental,
  deprecate them and propose the extension properties in companion instead.
This commit is contained in:
Ilya Gorbunov
2021-09-19 04:50:41 +03:00
committed by Space
parent 96611de344
commit 21a9198fff
10 changed files with 818 additions and 288 deletions
@@ -9,6 +9,7 @@ package test.time
import kotlin.random.Random
import kotlin.test.*
import kotlin.time.*
import kotlin.time.Duration.Companion.nanoseconds
class MeasureTimeTest {
@@ -52,20 +53,20 @@ class MeasureTimeTest {
val timeSource = TestTimeSource()
val expectedNs = Random.nextLong(1_000_000_000L)
val elapsed = timeSource.measureTime {
timeSource += Duration.nanoseconds(expectedNs)
timeSource += expectedNs.nanoseconds
}
assertEquals(Duration.nanoseconds(expectedNs), elapsed)
assertEquals(expectedNs.nanoseconds, elapsed)
val expectedResult: Long
val (result, elapsed2) = timeSource.measureTimedValue {
timeSource += Duration.nanoseconds(expectedNs)
timeSource += expectedNs.nanoseconds
expectedResult = expectedNs
expectedNs
}
assertEquals(expectedResult, result)
assertEquals(Duration.nanoseconds(result), elapsed2)
assertEquals(result.nanoseconds, elapsed2)
}
}