diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2016-11-11 14:17:36 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-11 14:17:36 +1000 |
commit | 5c3f0fa5dff0a09ba0226f93b690caaa44441654 (patch) | |
tree | 95400fd26ae667a3a583ea7e76c04c6046a9c98c /src/library | |
parent | 411cf28f4506481b261cfc6802a10142a9676bee (diff) | |
parent | 26c87af9a9e86e13efb0b2eb4b8565a8089acaf5 (diff) | |
download | scala-5c3f0fa5dff0a09ba0226f93b690caaa44441654.tar.gz scala-5c3f0fa5dff0a09ba0226f93b690caaa44441654.tar.bz2 scala-5c3f0fa5dff0a09ba0226f93b690caaa44441654.zip |
Merge pull request #5303 from xuwei-k/isNaN-boxing
avoid boxing
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/concurrent/duration/Duration.scala | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/library/scala/concurrent/duration/Duration.scala b/src/library/scala/concurrent/duration/Duration.scala index f69030bd3d..8d77d47b3f 100644 --- a/src/library/scala/concurrent/duration/Duration.scala +++ b/src/library/scala/concurrent/duration/Duration.scala @@ -120,7 +120,7 @@ object Duration { def fromNanos(nanos: Double): Duration = { if (nanos.isInfinite) if (nanos > 0) Inf else MinusInf - else if (nanos.isNaN) + else if (JDouble.isNaN(nanos)) Undefined else if (nanos > Long.MaxValue || nanos < Long.MinValue) throw new IllegalArgumentException("trying to construct too large duration with " + nanos + "ns") @@ -196,11 +196,11 @@ object Duration { } def *(factor: Double): Duration = - if (factor == 0d || factor.isNaN) Undefined + if (factor == 0d || JDouble.isNaN(factor)) Undefined else if (factor < 0d) -this else this def /(divisor: Double): Duration = - if (divisor.isNaN || divisor.isInfinite) Undefined + if (JDouble.isNaN(divisor) || divisor.isInfinite) Undefined else if ((divisor compare 0d) < 0) -this else this def /(divisor: Duration): Double = divisor match { @@ -627,13 +627,13 @@ final class FiniteDuration(val length: Long, val unit: TimeUnit) extends Duratio def *(factor: Double) = if (!factor.isInfinite) fromNanos(toNanos * factor) - else if (factor.isNaN) Undefined + else if (JDouble.isNaN(factor)) Undefined else if ((factor > 0) ^ (this < Zero)) Inf else MinusInf def /(divisor: Double) = if (!divisor.isInfinite) fromNanos(toNanos / divisor) - else if (divisor.isNaN) Undefined + else if (JDouble.isNaN(divisor)) Undefined else Zero // if this is made a constant, then scalac will elide the conditional and always return +0.0, SI-6331 |