diff options
author | Paul Phillips <paulp@improving.org> | 2010-04-15 21:58:47 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-04-15 21:58:47 +0000 |
commit | 41860ffcf7b29f8857b21ec5559f0a9ef9d0e96f (patch) | |
tree | b4187960c0ed304b4eb274f7ac681c008a3463a0 /src/library/scala/math/BigDecimal.scala | |
parent | 4fb3473182262b7cce33406ba7d0701e6622e3c3 (diff) | |
download | scala-41860ffcf7b29f8857b21ec5559f0a9ef9d0e96f.tar.gz scala-41860ffcf7b29f8857b21ec5559f0a9ef9d0e96f.tar.bz2 scala-41860ffcf7b29f8857b21ec5559f0a9ef9d0e96f.zip |
Initialization ordering issue in BigDecimal.
be slipping by because -Xcheckinit doesn't work since specialization
began.) No review.
Diffstat (limited to 'src/library/scala/math/BigDecimal.scala')
-rw-r--r-- | src/library/scala/math/BigDecimal.scala | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/library/scala/math/BigDecimal.scala b/src/library/scala/math/BigDecimal.scala index c4cccd1f52..67604e8b78 100644 --- a/src/library/scala/math/BigDecimal.scala +++ b/src/library/scala/math/BigDecimal.scala @@ -19,24 +19,23 @@ import scala.collection.immutable.NumericRange * @version 1.0 * @since 2.7 */ -object BigDecimal -{ - @serializable - object RoundingMode extends Enumeration(java.math.RoundingMode.values map (_.toString) : _*) { - type RoundingMode = Value - val UP, DOWN, CEILING, FLOOR, HALF_UP, HALF_DOWN, HALF_EVEN, UNNECESSARY = Value - } - +object BigDecimal { private val minCached = -512 private val maxCached = 512 - val MinLong = BigDecimal(Long.MinValue) - val MaxLong = BigDecimal(Long.MaxValue) + val defaultMathContext = MathContext.UNLIMITED + + val MinLong = new BigDecimal(BigDec valueOf Long.MinValue, defaultMathContext) + val MaxLong = new BigDecimal(BigDec valueOf Long.MaxValue, defaultMathContext) /** Cache ony for defaultMathContext using BigDecimals in a small range. */ private lazy val cache = new Array[BigDecimal](maxCached - minCached + 1) - val defaultMathContext = MathContext.UNLIMITED + @serializable + object RoundingMode extends Enumeration(java.math.RoundingMode.values map (_.toString) : _*) { + type RoundingMode = Value + val UP, DOWN, CEILING, FLOOR, HALF_UP, HALF_DOWN, HALF_EVEN, UNNECESSARY = Value + } /** Constructs a <code>BigDecimal</code> using the java BigDecimal static * valueOf constructor. |