diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-09-19 12:05:19 +0200 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-09-19 17:14:42 +0200 |
commit | 50b5bdefec899bf441742a40f525234eac65cbaa (patch) | |
tree | 0fac51fe7d1a99cc12cdb718e30240b32e72bbbc /src | |
parent | 3c542251e04cd85903ec12f5747c86d5c6c1a867 (diff) | |
download | scala-50b5bdefec899bf441742a40f525234eac65cbaa.tar.gz scala-50b5bdefec899bf441742a40f525234eac65cbaa.tar.bz2 scala-50b5bdefec899bf441742a40f525234eac65cbaa.zip |
fixes NameTypes in base names
NameType is introduced in base.StandardNames#NamesBase to abstract away the
difference between term names and type names in order to encode common names
such as EMPTY or WILDCARD.
Flavor-specific name repositories, such as TermNames and TypeNames are supposed
to override NameType fixing it to correspondingly TermName or TypeName.
Unfortunately I completely overlooked this and as a result some standard names
were typed with insufficient precision, e.g. This(tpnme.EMPTY) didn't work.
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/reflect/base/Base.scala | 2 | ||||
-rw-r--r-- | src/library/scala/reflect/base/StandardNames.scala | 6 | ||||
-rw-r--r-- | src/reflect/scala/reflect/internal/StdNames.scala | 2 |
3 files changed, 4 insertions, 6 deletions
diff --git a/src/library/scala/reflect/base/Base.scala b/src/library/scala/reflect/base/Base.scala index 7cbc39a3b6..5136f41df4 100644 --- a/src/library/scala/reflect/base/Base.scala +++ b/src/library/scala/reflect/base/Base.scala @@ -212,7 +212,6 @@ class Base extends Universe { self => def newTypeName(str: String) = new TypeName(str) object nme extends TermNamesBase { - type NameType = TermName val WILDCARD = newTermName("_") val CONSTRUCTOR = newTermName("<init>") val ROOTPKG = newTermName("_root_") @@ -223,7 +222,6 @@ class Base extends Universe { self => } object tpnme extends TypeNamesBase { - type NameType = TypeName val WILDCARD = nme.WILDCARD.toTypeName val EMPTY = nme.EMPTY.toTypeName val WILDCARD_STAR = newTypeName("_*") diff --git a/src/library/scala/reflect/base/StandardNames.scala b/src/library/scala/reflect/base/StandardNames.scala index 0b4ec3728a..fc1d247512 100644 --- a/src/library/scala/reflect/base/StandardNames.scala +++ b/src/library/scala/reflect/base/StandardNames.scala @@ -27,11 +27,13 @@ trait StandardNames { } trait TermNamesBase extends NamesBase { - val CONSTRUCTOR: TermName - val ROOTPKG: TermName + type NameType = TermName + val CONSTRUCTOR: NameType + val ROOTPKG: NameType } trait TypeNamesBase extends NamesBase { + type NameType = TypeName val EMPTY: NameType val WILDCARD_STAR: NameType } diff --git a/src/reflect/scala/reflect/internal/StdNames.scala b/src/reflect/scala/reflect/internal/StdNames.scala index 2f305296f5..8e00ef74e5 100644 --- a/src/reflect/scala/reflect/internal/StdNames.scala +++ b/src/reflect/scala/reflect/internal/StdNames.scala @@ -206,7 +206,6 @@ trait StdNames { } abstract class TypeNames extends Keywords with TypeNamesApi { - type NameType = TypeName protected implicit def createNameType(name: String): TypeName = newTypeNameCached(name) final val BYNAME_PARAM_CLASS_NAME: NameType = "<byname>" @@ -273,7 +272,6 @@ trait StdNames { } abstract class TermNames extends Keywords with TermNamesApi { - type NameType = TermName protected implicit def createNameType(name: String): TermName = newTermNameCached(name) /** Base strings from which synthetic names are derived. */ |