diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2009-06-29 14:18:39 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2009-06-29 14:18:39 +0000 |
commit | 91643c355b853e9bdfb70a5afab426a3537bfc1d (patch) | |
tree | ba479b22274fe6cb79c4a3498a222ff9888bcfff /src | |
parent | f5c93803e45f78c316e239f36e038e725d526a28 (diff) | |
download | scala-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.scala | 10 |
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) |