summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-11-16 21:30:36 +0000
committerPaul Phillips <paulp@improving.org>2009-11-16 21:30:36 +0000
commit773b7a287b7db8793b971e2aa920d5c56c7b4b51 (patch)
tree05ee38485e1d527815d7d00967965bf0bd678d9f /src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala
parent0da0208af4e3824e9ccc5fe8fe641ee541737fcc (diff)
downloadscala-773b7a287b7db8793b971e2aa920d5c56c7b4b51.tar.gz
scala-773b7a287b7db8793b971e2aa920d5c56c7b4b51.tar.bz2
scala-773b7a287b7db8793b971e2aa920d5c56c7b4b51.zip
Some organization & duplication removal in GenI...
Some organization & duplication removal in GenICode stemming from optimizer appeasement.
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala')
-rw-r--r--src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala b/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala
index 290d90b3e9..88e867e487 100644
--- a/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala
+++ b/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala
@@ -469,6 +469,18 @@ abstract class ScalaPrimitives {
def isCoercion(code: Int): Boolean = (code >= B2B) && (code <= D2D)
+ final val typeOfArrayOp: Map[Int, TypeKind] = Map(
+ (List(ZARRAY_LENGTH, ZARRAY_GET, ZARRAY_SET) map (_ -> BOOL)) ++
+ (List(BARRAY_LENGTH, BARRAY_GET, BARRAY_SET) map (_ -> BYTE)) ++
+ (List(SARRAY_LENGTH, SARRAY_GET, SARRAY_SET) map (_ -> SHORT)) ++
+ (List(CARRAY_LENGTH, CARRAY_GET, CARRAY_SET) map (_ -> CHAR)) ++
+ (List(IARRAY_LENGTH, IARRAY_GET, IARRAY_SET) map (_ -> INT)) ++
+ (List(LARRAY_LENGTH, LARRAY_GET, LARRAY_SET) map (_ -> LONG)) ++
+ (List(FARRAY_LENGTH, FARRAY_GET, FARRAY_SET) map (_ -> FLOAT)) ++
+ (List(DARRAY_LENGTH, DARRAY_GET, DARRAY_SET) map (_ -> DOUBLE)) ++
+ (List(OARRAY_LENGTH, OARRAY_GET, OARRAY_SET) map (_ -> REFERENCE(AnyRefClass))) : _*
+ )
+
/** Check whether the given operation code is an array operation. */
def isArrayOp(code: Int): Boolean =
isArrayNew(code) | isArrayLength(code) | isArrayGet(code) | isArraySet(code)