summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/transform/CleanUp.scala12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/CleanUp.scala b/src/compiler/scala/tools/nsc/transform/CleanUp.scala
index 575fe8f295..f04867b889 100644
--- a/src/compiler/scala/tools/nsc/transform/CleanUp.scala
+++ b/src/compiler/scala/tools/nsc/transform/CleanUp.scala
@@ -275,7 +275,17 @@ abstract class CleanUp extends Transform with ast.TreeDSL {
/* ### HANDLING METHODS NORMALLY COMPILED TO OPERATORS ### */
val testForNumber: Tree => Tree = {
- qual1 => (qual1 IS_OBJ BoxedNumberClass.tpe) OR (qual1 IS_OBJ BoxedCharacterClass.tpe)
+ // Can't shortcut on BoxedNumber because BoxesRunTime
+ // is unforgiving of other Numbers showing up.
+ qual1 => (
+ (qual1 IS_OBJ BoxedIntClass.tpe)
+ OR (qual1 IS_OBJ BoxedLongClass.tpe)
+ OR (qual1 IS_OBJ BoxedDoubleClass.tpe)
+ OR (qual1 IS_OBJ BoxedFloatClass.tpe)
+ OR (qual1 IS_OBJ BoxedByteClass.tpe)
+ OR (qual1 IS_OBJ BoxedShortClass.tpe)
+ OR (qual1 IS_OBJ BoxedCharacterClass.tpe)
+ )
}
val testForBoolean: Tree => Tree = {
qual1 => (qual1 IS_OBJ BoxedBooleanClass.tpe)