I'm migrating an app from play 2.0.4 to play 2.1
But the following code raises this warning:
def toConditionOperator(value: String): ConditionOperator.Value = {
if (value==null) {
ConditionOperator.Unknown
} else {
value.toLowerCase match {
case "equal" | "=" | ":" => ConditionOperator.Equal
case "notequal" | "!=" | "!:" | "<>" => ConditionOperator.NotEqual
case "greaterorequal" | ">=" => ConditionOperator.GreaterOrEqual
case "greater" | ">" => ConditionOperator.Greater
case "lessorequal" | "<=" => ConditionOperator.LessOrEqual
case "less" | "<" => ConditionOperator.Less
case "between" => ConditionOperator.Between
case "in" => ConditionOperator.In
case "startswith" => ConditionOperator.StartsWith
case "endswith" => ConditionOperator.EndsWith
case "contains" | "$" => ConditionOperator.Contains
case "missing" | "" => ConditionOperator.Missing
case "unknown" | _ => ConditionOperator.Unknown
}
}
}
[info] Compiling 98 Scala sources and 2 Java sources to /home/sas/tmp/ideas-ba/webservice/target/scala-2.10/classes...
[warn] /home/sas/tmp/ideas-ba/webservice/app/utils/query/ConditionParser.scala:203: Cannot check match for unreachability.
[warn] (The analysis required more space than allowed. Please try with scalac -Dscalac.patmat.analysisBudget=512 or -Dscalac.patmat.analysisBudget=off.)
[warn] value.toLowerCase match {
[warn] ^
In play 2.0.4 (with scala 2.9.1) it worked ok, with this version (scala 2.10) it yields this warning
Any idea what could be wrong?
Maybe this?
What happens if you add
scalacOptions ++= Seq("-Dscalac.patmat.analysisBudget=1024")
to your project/Build.scala
?
[UPDATE / CORRECTION]
I was wrong about scalacOptions
- -D
options need to be passed as JVM arguments, not arguments to scalac
. Since sbt
/play
respect the JAVA_OPTS
environment, variable, maybe you could try running play
or sbt
like this?
JAVA_OPTS="-Dscalac.patmat.analysisBudget=off" sbt
# Or
JAVA_OPTS="-Dscalac.patmat.analysisBudget=off" play
That's assuming you are on a Unix-y OS.
Just ran into the same issue(but not in Play). For a more permanent fix simply create a file ~/.sbtconfig
, and add these lines:
#!/bin/sh
SBT_OPTS="-Dscalac.patmat.analysisBudget=off"
This file and the SBT_OPTS
defined inside it will be used every time you run sbt
. Depending on where you got Play from it might be bundled with its own version of sbt and may not use this file at launch time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With