toBigDecimal: Avoid creating new BigDecimal instance for some values

Avoid creating new `BigDecimal` instance by calling `BigDecimal.valueOf(this)`, which doesn't create a new instance if the argument falls in the range [0..10].
(there's a `private static final BigDecimal[] zeroThroughTen` cache in BigDecimal.java with 11 BigDecimal instances)
This commit is contained in:
Elifarley C
2018-04-02 09:26:49 -03:00
committed by ilya-g
parent e1d75d5581
commit 1b3d539a25
@@ -89,7 +89,7 @@ public inline operator fun BigDecimal.dec(): BigDecimal = this.subtract(BigDecim
*/
@SinceKotlin("1.2")
@kotlin.internal.InlineOnly
public inline fun Int.toBigDecimal(): BigDecimal = BigDecimal(this)
public inline fun Int.toBigDecimal(): BigDecimal = BigDecimal.valueOf(this.toLong())
/**
@@ -105,7 +105,7 @@ public inline fun Int.toBigDecimal(mathContext: MathContext): BigDecimal = BigDe
*/
@SinceKotlin("1.2")
@kotlin.internal.InlineOnly
public inline fun Long.toBigDecimal(): BigDecimal = BigDecimal(this)
public inline fun Long.toBigDecimal(): BigDecimal = BigDecimal.valueOf(this)
/**
* Returns the value of this [Long] number as a [BigDecimal].
@@ -154,4 +154,4 @@ public inline fun Double.toBigDecimal(): BigDecimal = BigDecimal(this.toString()
*/
@SinceKotlin("1.2")
@kotlin.internal.InlineOnly
public inline fun Double.toBigDecimal(mathContext: MathContext): BigDecimal = BigDecimal(this.toString(), mathContext)
public inline fun Double.toBigDecimal(mathContext: MathContext): BigDecimal = BigDecimal(this.toString(), mathContext)