Aladdin - Scala Bugtracking
[#866] project: compiler priority: category: bug
submitter assigned to status date submitted
Burak 2006-12-13 19:00:57.0
subject [contrib #274] crash caused by incorrect access of case class parameters in case block
code
object Test extends Application {
  val x : Option[String] = Some("")
  x match { case Some(y) | None => y }
}
what happened
Compiler crash:

Exception in thread "main" java.lang.Error: symbol value y does not exist in Test.
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$\
genLoad(GenICode.scala:844)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadLabelArguments(GenICode.scala:991)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$\
genLoad(GenICode.scala:673)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$\
genStat(GenICode.scala:178)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$1.apply(GenICode.scala:138)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$1.apply(GenICode.scala:137)
        at scala.List.foreach(List.scala:701)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genStat(GenICode.scala:137)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$\
genLoad(GenICode.scala:859)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genCond(GenICode.scala:1334)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$\
genLoad(GenICode.scala:702)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$\
genStat(GenICode.scala:178)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$1.apply(GenICode.scala:138)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$1.apply(GenICode.scala:137)
        at scala.List.foreach(List.scala:701)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genStat(GenICode.scala:137)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$\
genLoad(GenICode.scala:859)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$\
genStat(GenICode.scala:178)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$1.apply(GenICode.scala:138)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$1.apply(GenICode.scala:137)
        at scala.List.foreach(List.scala:701)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genStat(GenICode.scala:137)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$\
genLoad(GenICode.scala:859)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:108)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$0.apply(GenICode.scala:67)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$0.apply(GenICode.scala:66)
        at scala.List.foreach(List.scala:701)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:66)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:128)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:85)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$0.apply(GenICode.scala:67)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$0.apply(GenICode.scala:66)
        at scala.List.foreach(List.scala:701)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:66)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:78)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:62)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.apply(GenICode.scala:58)
        at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:220)
        at scala.tools.nsc.Global$GlobalPhase$$anonfun$1.apply(Global.scala:209)
        at scala.tools.nsc.Global$GlobalPhase$$anonfun$1.apply(Global.scala:209)
        at scala.Iterator$class.foreach(Iterator.scala:341)
        at scala.collection.mutable.ListBuffer$$anon$0.foreach(ListBuffer.scala:244)
        at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:209)
        at scala.tools.nsc.backend.icode.GenICode$ICodePhase.run(GenICode.scala:52)
        at scala.tools.nsc.Global$Run.compileSources(Global.scala:474)
        at scala.tools.nsc.Global$Run.compile(Global.scala:545)
        at scala.tools.nsc.Main$.process(Main.scala:58)
        at scala.tools.nsc.Main$.main(Main.scala:80)
        at scala.tools.nsc.Main.main(Main.scala)

what expected No crash; sensible error, such as "y may not be bound."
[back to overview]
Changes of this bug report