summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2009-06-29 14:18:39 +0000
committerIulian Dragos <jaguarul@gmail.com>2009-06-29 14:18:39 +0000
commit91643c355b853e9bdfb70a5afab426a3537bfc1d (patch)
treeba479b22274fe6cb79c4a3498a222ff9888bcfff /src
parentf5c93803e45f78c316e239f36e038e725d526a28 (diff)
downloadscala-91643c355b853e9bdfb70a5afab426a3537bfc1d.tar.gz
scala-91643c355b853e9bdfb70a5afab426a3537bfc1d.tar.bz2
scala-91643c355b853e9bdfb70a5afab426a3537bfc1d.zip
Fixed #2107.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala
index 6ffd1645db..f156f0e8c2 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala
@@ -387,9 +387,13 @@ abstract class TypeFlowAnalysis {
stack push toTypeKind(const.tpe)
case LOAD_ARRAY_ITEM(kind) =>
- val Pair(idxKind, ARRAY(elem)) = stack.pop2
- assert(idxKind == INT || idxKind == CHAR || idxKind == SHORT || idxKind == BYTE)
- stack.push(elem)
+ stack.pop2 match {
+ case (idxKind, ARRAY(elem)) =>
+ assert(idxKind == INT || idxKind == CHAR || idxKind == SHORT || idxKind == BYTE)
+ stack.push(elem)
+ case (_, _) =>
+ stack.push(kind)
+ }
case LOAD_LOCAL(local) =>
val t = bindings(local)