diff options
Diffstat (limited to 'src/compiler/scala/reflect/api/Names.scala')
-rwxr-xr-x | src/compiler/scala/reflect/api/Names.scala | 30 |
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 +} + |