summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/api/Constants.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-07-11 09:00:48 +0000
committerMartin Odersky <odersky@gmail.com>2011-07-11 09:00:48 +0000
commit9e1d24d64283a4caf47cb68c00298538ca0b9999 (patch)
tree368175c8b2adcc68b671b3b9d2acb8821cf04214 /src/compiler/scala/reflect/api/Constants.scala
parent7d4cff1dc6040d951b09f8df4af288d16ef53de2 (diff)
downloadscala-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-xsrc/compiler/scala/reflect/api/Constants.scala43
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]
+ }
+}