diff options
author | mihaylov <mihaylov@epfl.ch> | 2007-02-26 15:23:10 +0000 |
---|---|---|
committer | mihaylov <mihaylov@epfl.ch> | 2007-02-26 15:23:10 +0000 |
commit | 7be3105727abac1d64862f52ec22c5605b005329 (patch) | |
tree | f301f52fda1d10b9ccc5b9d6c7568125acf1142f /src/compiler | |
parent | 02e108bcf24f5c02cef221b995b60ca86aece287 (diff) | |
download | scala-7be3105727abac1d64862f52ec22c5605b005329.tar.gz scala-7be3105727abac1d64862f52ec22c5605b005329.tar.bz2 scala-7be3105727abac1d64862f52ec22c5605b005329.zip |
Fixed exhaustivity warnings in GenMSIL
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala b/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala index 8ffd4da396..553669d162 100644 --- a/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala +++ b/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala @@ -1213,7 +1213,7 @@ abstract class GenMSIL extends SubComponent { } case LOAD_ARRAY_ITEM(kind) => - kind match { + (kind: @unsealed) match { case BOOL => mcode.Emit(OpCodes.Ldelem_I1) case BYTE => mcode.Emit(OpCodes.Ldelem_U1) case SHORT => mcode.Emit(OpCodes.Ldelem_I2) @@ -1264,7 +1264,7 @@ abstract class GenMSIL extends SubComponent { mcode.Emit(OpCodes.Ldsfld, getModuleInstanceField(module)) case STORE_ARRAY_ITEM(kind) => - kind match { + (kind: @unsealed) match { case BOOL => mcode.Emit(OpCodes.Stelem_I1) case BYTE => mcode.Emit(OpCodes.Stelem_I1) case SHORT => mcode.Emit(OpCodes.Stelem_I2) @@ -1323,7 +1323,7 @@ abstract class GenMSIL extends SubComponent { case CALL_METHOD(msym, style) => if (msym.isClassConstructor) { val constructorInfo: ConstructorInfo = getConstructor(msym) - style match { + (style: @unsealed) match { // normal constructor calls are Static.. case Static(_) => if (method.symbol.isClassConstructor && method.symbol.owner == msym.owner) @@ -1514,7 +1514,7 @@ abstract class GenMSIL extends SubComponent { } case CZJUMP(success, failure, cond, kind) => - kind match { + (kind: @unsealed) match { case BOOL | REFERENCE(_) => if (nextBlock == success || omitJumpBlocks.contains(currentBlock)) { emitBrBool(cond.negate, labels(failure)) @@ -1913,7 +1913,7 @@ abstract class GenMSIL extends SubComponent { // ##################################################################### // get and create types - private def msilType(t: TypeKind): MsilType = t match { + private def msilType(t: TypeKind): MsilType = (t: @unsealed) match { case UNIT => MVOID case BOOL => MBOOL case BYTE => MBYTE @@ -2238,7 +2238,7 @@ abstract class GenMSIL extends SubComponent { } //def createDelegateCaller - def emitBox(code: ILGenerator, boxType: TypeKind) = boxType match { + def emitBox(code: ILGenerator, boxType: TypeKind) = (boxType: @unsealed) match { // doesn't make sense, unit as parameter.. case UNIT => code.Emit(OpCodes.Ldsfld, boxedUnit) case BOOL | BYTE | SHORT | CHAR | INT | LONG | FLOAT | DOUBLE => @@ -2248,21 +2248,7 @@ abstract class GenMSIL extends SubComponent { case REFERENCE(_) | ARRAY(_) => () } -// def emitUnbox(code: ILGenerator, boxType: Type) = toTypeKind(boxType) match { -// case UNIT => code.Emit(OpCodes.Pop) -// case BOOL => code.Emit(OpCodes.Unbox, MBOOL); code.Emit(OpCodes.Ldind_I1) -// case BYTE => code.Emit(OpCodes.Unbox, MBYTE); code.Emit(OpCodes.Ldind_U1) -// case SHORT => code.Emit(OpCodes.Unbox, MSHORT); code.Emit(OpCodes.Ldind_I2) -// case CHAR => code.Emit(OpCodes.Unbox, MCHAR); code.Emit(OpCodes.Ldind_U2) -// case INT => code.Emit(OpCodes.Unbox, MINT); code.Emit(OpCodes.Ldind_I4) -// case LONG => code.Emit(OpCodes.Unbox, MLONG); code.Emit(OpCodes.Ldind_I8) -// case FLOAT => code.Emit(OpCodes.Unbox, MFLOAT); code.Emit(OpCodes.Ldind_R4) -// case DOUBLE => code.Emit(OpCodes.Unbox, MDOUBLE); code.Emit(OpCodes.Ldind_R8) -// case REFERENCE(typ) => () ///code.Emit(OpCode.Unbox, msilType(typ)); code.Emit(OpCodes.Ldobj, msilType(typ)) -// case ARRAY(_) => () -// } - - def emitUnbox(code: ILGenerator, boxType: TypeKind) = boxType match { + def emitUnbox(code: ILGenerator, boxType: TypeKind) = (boxType: @unsealed) match { case UNIT => code.Emit(OpCodes.Pop) case BOOL => code.Emit(OpCodes.Unbox, MBOOL); code.Emit(OpCodes.Ldind_I1) case BYTE => code.Emit(OpCodes.Call, toByte) |