From 22f5c798f53638bd9927bb9ddb6934ae11ad894c Mon Sep 17 00:00:00 2001 From: xuwei-k <6b656e6a69@gmail.com> Date: Wed, 23 Oct 2024 12:20:28 +0900 Subject: [PATCH] use to{Int, Long, Double}Option methods --- .../scala/sbt/internal/util/complete/History.scala | 5 +---- .../sbt/internal/util/complete/SizeParser.scala | 12 ++++++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/internal/util-complete/src/main/scala/sbt/internal/util/complete/History.scala b/internal/util-complete/src/main/scala/sbt/internal/util/complete/History.scala index 46b48591d..dc664a467 100644 --- a/internal/util-complete/src/main/scala/sbt/internal/util/complete/History.scala +++ b/internal/util-complete/src/main/scala/sbt/internal/util/complete/History.scala @@ -57,8 +57,5 @@ object History { def apply(lines: Seq[String], path: Option[File]): History = new History(lines.toIndexedSeq, path) - def number(s: String): Option[Int] = - try { - Some(s.toInt) - } catch { case _: NumberFormatException => None } + def number(s: String): Option[Int] = s.toIntOption } diff --git a/internal/util-complete/src/main/scala/sbt/internal/util/complete/SizeParser.scala b/internal/util-complete/src/main/scala/sbt/internal/util/complete/SizeParser.scala index 986321fac..6c8dcc3b3 100644 --- a/internal/util-complete/src/main/scala/sbt/internal/util/complete/SizeParser.scala +++ b/internal/util-complete/src/main/scala/sbt/internal/util/complete/SizeParser.scala @@ -18,11 +18,15 @@ private[sbt] object SizeParser { private case object MegaBytes extends SizeUnit private case object GigaBytes extends SizeUnit private def parseDouble(s: String): Parser[Either[Double, Long]] = - try Parser.success(Left(java.lang.Double.valueOf(s))) - catch { case _: NumberFormatException => Parser.failure(s"Couldn't parse $s as double.") } + s.toDoubleOption match { + case Some(x) => Parser.success(Left(x)) + case _ => Parser.failure(s"Couldn't parse $s as double.") + } private def parseLong(s: String): Parser[Either[Double, Long]] = - try Parser.success(Right(java.lang.Long.valueOf(s))) - catch { case _: NumberFormatException => Parser.failure(s"Couldn't parse $s as double.") } + s.toLongOption match { + case Some(x) => Parser.success(Right(x)) + case _ => Parser.failure(s"Couldn't parse $s as double.") + } private val digit = charClass(_.isDigit, "digit") private val numberParser: Parser[Either[Double, Long]] = (digit.+ ~ ('.'.examples() ~> digit.+).?).flatMap {