diff options
author | Martin Odersky <odersky@gmail.com> | 2011-07-11 09:00:48 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2011-07-11 09:00:48 +0000 |
commit | 9e1d24d64283a4caf47cb68c00298538ca0b9999 (patch) | |
tree | 368175c8b2adcc68b671b3b9d2acb8821cf04214 /src/compiler/scala/reflect/api/Constants.scala | |
parent | 7d4cff1dc6040d951b09f8df4af288d16ef53de2 (diff) | |
download | scala-9e1d24d64283a4caf47cb68c00298538ca0b9999.tar.gz scala-9e1d24d64283a4caf47cb68c00298538ca0b9999.tar.bz2 scala-9e1d24d64283a4caf47cb68c00298538ca0b9999.zip |
Refactored reflection into reflect.api and refl...
Refactored reflection into reflect.api and reflect.internal. Severed the
last remaining dependency on reflect.generic. Review by extempore.
Diffstat (limited to 'src/compiler/scala/reflect/api/Constants.scala')
-rwxr-xr-x | src/compiler/scala/reflect/api/Constants.scala | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/compiler/scala/reflect/api/Constants.scala b/src/compiler/scala/reflect/api/Constants.scala new file mode 100755 index 0000000000..42a0fa8a27 --- /dev/null +++ b/src/compiler/scala/reflect/api/Constants.scala @@ -0,0 +1,43 @@ +/* NSC -- new Scala compiler + * Copyright 2005-2011 LAMP/EPFL + * @author Martin Odersky + */ + +package scala.reflect +package api + +import java.lang.Integer.toOctalString +import annotation.switch + +trait Constants { + self: Universe => + + abstract class AbsConstant { + val value: Any + def tpe: Type + def isNaN: Boolean + + def booleanValue: Boolean + def byteValue: Byte + def shortValue: Short + def charValue: Char + def intValue: Int + def longValue: Long + def floatValue: Float + def doubleValue: Double + def stringValue: String + def typeValue: Type + def symbolValue: Symbol + + def convertTo(pt: Type): Constant + } + + type Constant <: AbsConstant + + val Constant: ConstantExtractor + + abstract class ConstantExtractor { + def apply(const: Any): Constant + def unapply(arg: Constant): Option[Any] + } +} |