summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/api/Names.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/reflect/api/Names.scala')
-rwxr-xr-xsrc/compiler/scala/reflect/api/Names.scala30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/compiler/scala/reflect/api/Names.scala b/src/compiler/scala/reflect/api/Names.scala
new file mode 100755
index 0000000000..76e50497de
--- /dev/null
+++ b/src/compiler/scala/reflect/api/Names.scala
@@ -0,0 +1,30 @@
+package scala.reflect
+package api
+
+trait Names {
+
+ type Name >: Null <: AbsName
+ type TypeName <: Name
+ type TermName <: Name
+
+ abstract class AbsName {
+ def isTermName: Boolean
+ def isTypeName: Boolean
+ def toTermName: TermName
+ def toTypeName: TypeName
+ }
+
+ def newTermName(cs: Array[Char], offset: Int, len: Int): TermName
+ def newTermName(cs: Array[Byte], offset: Int, len: Int): TermName
+ def newTermName(s: String): TermName
+
+ def newTypeName(cs: Array[Char], offset: Int, len: Int): TypeName
+ def newTypeName(cs: Array[Byte], offset: Int, len: Int): TypeName
+ def newTypeName(s: String): TypeName
+
+ implicit def promoteTermNamesAsNecessary(name: Name): TermName = name.toTermName
+
+ def EmptyTermName: TermName = newTermName("")
+ def EmptyTypeName: TypeName = EmptyTermName.toTypeName
+}
+