summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2009-06-19 15:47:18 +0000
committerIulian Dragos <jaguarul@gmail.com>2009-06-19 15:47:18 +0000
commit614ba1f785ef4fcee023babf379af9e3b1f7ce04 (patch)
tree0de1d0934b70545330c9580c21f48a0d867e2bec /src/library
parent2b3218c7886241792a8936d31e509c6edc1ff191 (diff)
downloadscala-614ba1f785ef4fcee023babf379af9e3b1f7ce04.tar.gz
scala-614ba1f785ef4fcee023babf379af9e3b1f7ce04.tar.bz2
scala-614ba1f785ef4fcee023babf379af9e3b1f7ce04.zip
Support for specialization on explicit types.
class Foo[@specialized("Int, Double") T] ..
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/specialized.scala19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/library/scala/specialized.scala b/src/library/scala/specialized.scala
index 8e30261333..fcc1c4b5da 100644
--- a/src/library/scala/specialized.scala
+++ b/src/library/scala/specialized.scala
@@ -3,7 +3,22 @@ package scala
/** Annotate type parameters on which code should be automatically
* specialized. For example:
* <code>
- * class MyList[T @specialized] ...
+ * class MyList[@specialized T] ...
* </code>
+ *
+ * Type T can be specialized on a subset of the primitive types by
+ * specifying a comma-separated string argument:
+ *
+ * <code>
+ * class MyList[@specialized("Int, Double, Boolean") T] ..
+ * </code>
+ * Only primitive types are supported and no name resolution is currently
+ * done on the string arguments (meaning imports and type aliases are
+ * not resolved).
*/
-class specialized extends StaticAnnotation
+class specialized(types: String) extends StaticAnnotation {
+ def this() {
+ this("Boolean, Byte, Short, Char, Int, Long, Float, Double")
+ }
+}
+