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 | |
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')
-rw-r--r-- | src/library/scala/concurrent/duration/Duration.scala | 10 | ||||
-rw-r--r-- | src/reflect/scala/reflect/internal/Constants.scala | 4 |
2 files changed, 7 insertions, 7 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 diff --git a/src/reflect/scala/reflect/internal/Constants.scala b/src/reflect/scala/reflect/internal/Constants.scala index 7b47798ff7..cd2debfaf4 100644 --- a/src/reflect/scala/reflect/internal/Constants.scala +++ b/src/reflect/scala/reflect/internal/Constants.scala @@ -87,8 +87,8 @@ trait Constants extends api.Constants { } def isNaN = value match { - case f: Float => f.isNaN - case d: Double => d.isNaN + case f: Float => java.lang.Float.isNaN(f) + case d: Double => java.lang.Double.isNaN(d) case _ => false } |