diff --git a/library/src/scala/util/FromDigits.scala b/library/src/scala/util/FromDigits.scala index 39c66136f8e0..605e4047cb00 100644 --- a/library/src/scala/util/FromDigits.scala +++ b/library/src/scala/util/FromDigits.scala @@ -158,7 +158,7 @@ object FromDigits { def fromDigits(digits: String, radix: Int): BigInt = BigInt(digits, radix) } - given BigDecimalFromDigits : FromDigits.Decimal[BigDecimal] { + given BigDecimalFromDigits : FromDigits.Floating[BigDecimal] { def fromDigits(digits: String): BigDecimal = BigDecimal(digits) } } diff --git a/tests/run/genericNumLits.check b/tests/run/genericNumLits.check index 9376befb1c30..588ef81cbae3 100644 --- a/tests/run/genericNumLits.check +++ b/tests/run/genericNumLits.check @@ -1,5 +1,7 @@ 13232202002020202020202 -50390822187678765893036 132322020020.223 +1.00000000000000001234E+239 +1.00000000000000001234E-203 Even(1234) malformed diff --git a/tests/run/genericNumLits.scala b/tests/run/genericNumLits.scala index ef1bdc51e9f9..5c0970cc3982 100644 --- a/tests/run/genericNumLits.scala +++ b/tests/run/genericNumLits.scala @@ -4,6 +4,8 @@ object Test extends App { val x: BigInt = 13232202002020202020202 val y: BigInt = -0xaabb12345ACF12345AC val z: BigDecimal = 132322020020.223 + val w: BigDecimal = 10000000000000000.1234e223 + val q: BigDecimal = 100000000000000001234e-223 case class Even(n: Int) @@ -20,6 +22,8 @@ object Test extends App { println(x) println(y) println(z) + println(w) + println(q) println(e) try println(123: Even) @@ -45,6 +49,18 @@ object Test extends App { (z: Any) match { case 132_322_020_020.223: BigDecimal => () } + w match { + case 10000000000000000.1234e223 => () + } + (w: Any) match { + case 10_000_000_000_000_000.1234e223: BigDecimal => () + } + q match { + case 100000000000000001234e-223 => () + } + (q: Any) match { + case 100_000_000_000_000_001_234e-223: BigDecimal => () + } e match { case 1234 => @@ -54,4 +70,4 @@ object Test extends App { case 1234: Even => case _: Even => } -} \ No newline at end of file +}