summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/symtab/Definitions.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-11-30 17:13:52 +0000
committerPaul Phillips <paulp@improving.org>2010-11-30 17:13:52 +0000
commit81f38907b838caa64d26b4ea49efe938a3d0673f (patch)
tree06d272e24be36f359be3ea8b788491f0f26c30fd /src/compiler/scala/tools/nsc/symtab/Definitions.scala
parent4be5e11cccace4974ed9a449052455392570139f (diff)
downloadscala-81f38907b838caa64d26b4ea49efe938a3d0673f.tar.gz
scala-81f38907b838caa64d26b4ea49efe938a3d0673f.tar.bz2
scala-81f38907b838caa64d26b4ea49efe938a3d0673f.zip
Found several minor thigns wrong with checkSens...
Found several minor thigns wrong with checkSensible, which tries to issue warnings for comparisons which will always be true or false. No review.
Diffstat (limited to 'src/compiler/scala/tools/nsc/symtab/Definitions.scala')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Definitions.scala8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
index 5a4fa51899..12a91a2a8c 100644
--- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
@@ -801,11 +801,17 @@ trait Definitions extends reflect.generic.StandardDefinitions {
def isValueClass(sym: Symbol): Boolean =
(sym eq UnitClass) || (boxedClass contains sym)
+ /** If symbol is a value class or a boxed value class, return the value class: otherwise NoSymbol. */
+ def unboxedValueClass(sym: Symbol): Symbol =
+ if (isValueClass(sym)) sym
+ else if (sym == BoxedUnitClass) sym
+ else boxedClass.map(_.swap).getOrElse(sym, NoSymbol)
+
/** Is symbol a numeric value class? */
def isNumericValueClass(sym: Symbol): Boolean =
numericWeight contains sym
- /** Is symbol a numeric value class? */
+ /** Is type's symbol a numeric value class? */
def isNumericValueType(tp: Type): Boolean = tp match {
case TypeRef(_, sym, _) => isNumericValueClass(sym)
case _ => false