summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2008-04-07 04:57:30 +0000
committerBurak Emir <emir@epfl.ch>2008-04-07 04:57:30 +0000
commitb6f12c08007eb558bffe6fd89a8aad3b2fab27f3 (patch)
treebf869305571a11bd5b3cc96e25cc67626bbe2882 /src
parentd235c4d7c11f438f0824171a3a75937105a5e1a1 (diff)
downloadscala-b6f12c08007eb558bffe6fd89a8aad3b2fab27f3.tar.gz
scala-b6f12c08007eb558bffe6fd89a8aad3b2fab27f3.tar.bz2
scala-b6f12c08007eb558bffe6fd89a8aad3b2fab27f3.zip
fixed #495
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/matching/ParallelMatching.scala6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala
index 7bcc73295f..8acbcc8835 100644
--- a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala
+++ b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala
@@ -333,11 +333,15 @@ trait ParallelMatching {
/*block*/{
var xs = column
var i = 0;
+ var last = -1;
while(xs ne Nil) { // forall
+ if (last != -1) {
+ cunit.error(xs.head.pos, "unreachable code")
+ }
strip(xs.head) match {
case (pvars, p @ Literal(Constant(c:Int))) => sanity(p.pos, c , definedVars(xs.head)); insertTagIndexPair(c,i)
case (pvars, p @ Literal(Constant(c:Char))) => sanity(p.pos, c.toInt, definedVars(xs.head)); insertTagIndexPair(c.toInt,i)
- case (pvars, p ) if isDefaultPattern(p) => insertDefault(i,pvars)
+ case (pvars, p ) if isDefaultPattern(p) => last = i; insertDefault(i,pvars)
}
i += 1
xs = xs.tail