From 33a914a2ba4018eb6e8bc85577cb0f1290c28c02 Mon Sep 17 00:00:00 2001 From: Guillaume Martres Date: Mon, 21 Apr 2014 01:30:54 +0200 Subject: SI-8520 Fix -Dscalac.patmat.analysisBudget=off Correctly parse "off" instead of throwing java.lang.NumberFormatException --- src/compiler/scala/tools/nsc/transform/patmat/Logic.scala | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/compiler/scala/tools/nsc/transform/patmat') diff --git a/src/compiler/scala/tools/nsc/transform/patmat/Logic.scala b/src/compiler/scala/tools/nsc/transform/patmat/Logic.scala index e0bc478fad..d2ae963ea8 100644 --- a/src/compiler/scala/tools/nsc/transform/patmat/Logic.scala +++ b/src/compiler/scala/tools/nsc/transform/patmat/Logic.scala @@ -162,11 +162,18 @@ trait Logic extends Debugging { // to govern how much time we spend analyzing matches for unreachability/exhaustivity object AnalysisBudget { - private val budgetProp = scala.sys.Prop[Int]("scalac.patmat.analysisBudget") + private val budgetProp = scala.sys.Prop[String]("scalac.patmat.analysisBudget") private val budgetOff = "off" val max: Int = { val DefaultBudget = 256 - budgetProp.option.getOrElse(if (budgetProp.get.equalsIgnoreCase("off")) Integer.MAX_VALUE else DefaultBudget) + budgetProp.option match { + case Some(`budgetOff`) => + Integer.MAX_VALUE + case Some(x) => + x.toInt + case None => + DefaultBudget + } } abstract class Exception(val advice: String) extends RuntimeException("CNF budget exceeded") -- cgit v1.2.3