summaryrefslogtreecommitdiff
path: root/src/reflect/scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2014-01-30 00:58:26 +0300
committerEugene Burmako <xeno.by@gmail.com>2014-02-14 23:51:21 +0100
commitda09331324d302d0b85a89cdcfe32ded2587b39a (patch)
tree378d9c217e92e6c47af057a4c7bf85b91408c855 /src/reflect/scala
parent465e538ef59171ac7d9e811dbdaec776f8a64ac7 (diff)
downloadscala-da09331324d302d0b85a89cdcfe32ded2587b39a.tar.gz
scala-da09331324d302d0b85a89cdcfe32ded2587b39a.tar.bz2
scala-da09331324d302d0b85a89cdcfe32ded2587b39a.zip
SI-6732 deprecates internal#Symbol.isPackage
This is the first step in disentangling api#Symbol.isPackage, which is supposed to return false for package classes, and internal#Symbol.isPackage, which has traditionally being used as a synonym for hasPackageFlag and hence returned true for package classes (unlike isModule which is false for module classes).
Diffstat (limited to 'src/reflect/scala')
-rw-r--r--src/reflect/scala/reflect/api/Symbols.scala2
-rw-r--r--src/reflect/scala/reflect/internal/HasFlags.scala1
-rw-r--r--src/reflect/scala/reflect/internal/Mirrors.scala12
-rw-r--r--src/reflect/scala/reflect/internal/Symbols.scala5
-rw-r--r--src/reflect/scala/reflect/internal/TreeGen.scala2
-rw-r--r--src/reflect/scala/reflect/internal/Variances.scala2
-rw-r--r--src/reflect/scala/reflect/internal/tpe/TypeMaps.scala2
-rw-r--r--src/reflect/scala/reflect/runtime/JavaMirrors.scala2
8 files changed, 14 insertions, 14 deletions
diff --git a/src/reflect/scala/reflect/api/Symbols.scala b/src/reflect/scala/reflect/api/Symbols.scala
index 663eb97c58..9831420749 100644
--- a/src/reflect/scala/reflect/api/Symbols.scala
+++ b/src/reflect/scala/reflect/api/Symbols.scala
@@ -457,7 +457,7 @@ trait Symbols { self: Universe =>
def privateWithin: Symbol
/** Does this symbol represent the definition of a package?
- * If yes, `isTerm` is also guaranteed to be true.
+ * Known issues: [[https://issues.scala-lang.org/browse/SI-6732]].
*
* @group Tests
*/
diff --git a/src/reflect/scala/reflect/internal/HasFlags.scala b/src/reflect/scala/reflect/internal/HasFlags.scala
index 8915524bde..aa8f4c532e 100644
--- a/src/reflect/scala/reflect/internal/HasFlags.scala
+++ b/src/reflect/scala/reflect/internal/HasFlags.scala
@@ -108,6 +108,7 @@ trait HasFlags {
def isOverride = hasFlag(OVERRIDE)
def isParamAccessor = hasFlag(PARAMACCESSOR)
def isPrivate = hasFlag(PRIVATE)
+ @deprecated ("Use `hasPackageFlag` instead", "2.11.0")
def isPackage = hasFlag(PACKAGE)
def isPrivateLocal = hasAllFlags(PrivateLocal)
def isProtected = hasFlag(PROTECTED)
diff --git a/src/reflect/scala/reflect/internal/Mirrors.scala b/src/reflect/scala/reflect/internal/Mirrors.scala
index 6cf4944d18..aef99b0ed4 100644
--- a/src/reflect/scala/reflect/internal/Mirrors.scala
+++ b/src/reflect/scala/reflect/internal/Mirrors.scala
@@ -123,8 +123,8 @@ trait Mirrors extends api.Mirrors {
private def ensureModuleSymbol(fullname: String, sym: Symbol, allowPackages: Boolean): ModuleSymbol =
sym match {
- case x: ModuleSymbol if allowPackages || !x.isPackage => x
- case _ => MissingRequirementError.notFound("object " + fullname)
+ case x: ModuleSymbol if allowPackages || !x.hasPackageFlag => x
+ case _ => MissingRequirementError.notFound("object " + fullname)
}
def getModuleByName(fullname: Name): ModuleSymbol =
@@ -161,8 +161,8 @@ trait Mirrors extends api.Mirrors {
private def ensurePackageSymbol(fullname: String, sym: Symbol, allowModules: Boolean): ModuleSymbol =
sym match {
- case x: ModuleSymbol if allowModules || x.isPackage => x
- case _ => MissingRequirementError.notFound("package " + fullname)
+ case x: ModuleSymbol if allowModules || x.hasPackageFlag => x
+ case _ => MissingRequirementError.notFound("package " + fullname)
}
def getPackage(fullname: TermName): ModuleSymbol =
@@ -186,13 +186,13 @@ trait Mirrors extends api.Mirrors {
def getPackageObjectIfDefined(fullname: TermName): Symbol =
wrapMissing(getPackageObject(fullname))
-
+
final def getPackageObjectWithMember(pre: Type, sym: Symbol): Symbol = {
// The owner of a symbol which requires package qualification may be the
// package object iself, but it also could be any superclass of the package
// object. In the latter case, we must go through the qualifier's info
// to obtain the right symbol.
- if (sym.owner.isModuleClass) sym.owner.sourceModule // fast path, if the member is owned by a module class, that must be linked to the package object
+ if (sym.owner.isModuleClass) sym.owner.sourceModule // fast path, if the member is owned by a module class, that must be linked to the package object
else pre member nme.PACKAGE // otherwise we have to findMember
}
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala
index f8f9dbb7ef..63a69e2797 100644
--- a/src/reflect/scala/reflect/internal/Symbols.scala
+++ b/src/reflect/scala/reflect/internal/Symbols.scala
@@ -2424,7 +2424,7 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
else if (isClass) "class"
else if (isType && !isParameter) "type"
else if (isVariable) "var"
- else if (isPackage) "package"
+ else if (hasPackageFlag) "package"
else if (isModule) "object"
else if (isSourceMethod) "def"
else if (isTerm && (!isParameter || isParamAccessor)) "val"
@@ -2435,8 +2435,8 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
if (isTermMacro) ("term macro", "macro method", "MACM")
else if (isInstanceOf[FreeTermSymbol]) ("free term", "free term", "FTE")
else if (isInstanceOf[FreeTypeSymbol]) ("free type", "free type", "FTY")
- else if (isPackage) ("package", "package", "PK")
else if (isPackageClass) ("package class", "package", "PKC")
+ else if (isPackage) ("package", "package", "PK")
else if (isPackageObject) ("package object", "package", "PKO")
else if (isPackageObjectClass) ("package object class", "package", "PKOC")
else if (isAnonymousClass) ("anonymous class", "anonymous class", "AC")
@@ -2660,7 +2660,6 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
(infos ne null) && infos.info.isInstanceOf[OverloadedType]
)
***/
- override def isPackage = this hasFlag PACKAGE
override def isValueParameter = this hasFlag PARAM
override def isSetterParameter = isValueParameter && owner.isSetter
diff --git a/src/reflect/scala/reflect/internal/TreeGen.scala b/src/reflect/scala/reflect/internal/TreeGen.scala
index 29fdba2781..9de5c1a7ea 100644
--- a/src/reflect/scala/reflect/internal/TreeGen.scala
+++ b/src/reflect/scala/reflect/internal/TreeGen.scala
@@ -186,7 +186,7 @@ abstract class TreeGen extends macros.TreeBuilder {
)
val needsPackageQualifier = (
(sym ne null)
- && qualsym.isPackage
+ && qualsym.hasPackageFlag
&& !(sym.isDefinedInPackage || sym.moduleClass.isDefinedInPackage) // SI-7817 work around strangeness in post-flatten `Symbol#owner`
)
val pkgQualifier =
diff --git a/src/reflect/scala/reflect/internal/Variances.scala b/src/reflect/scala/reflect/internal/Variances.scala
index ea301fba1c..ca43fdcb63 100644
--- a/src/reflect/scala/reflect/internal/Variances.scala
+++ b/src/reflect/scala/reflect/internal/Variances.scala
@@ -36,7 +36,7 @@ trait Variances {
* @pre sym.isLocalToThis
*/
@tailrec final def checkForEscape(sym: Symbol, site: Symbol) {
- if (site == sym.owner || site == sym.owner.moduleClass || site.isPackage) () // done
+ if (site == sym.owner || site == sym.owner.moduleClass || site.hasPackageFlag) () // done
else if (site.isTerm || site.isPrivateLocal) checkForEscape(sym, site.owner) // ok - recurse to owner
else escapedLocals += sym
}
diff --git a/src/reflect/scala/reflect/internal/tpe/TypeMaps.scala b/src/reflect/scala/reflect/internal/tpe/TypeMaps.scala
index 07c9242bf3..6d83032c2d 100644
--- a/src/reflect/scala/reflect/internal/tpe/TypeMaps.scala
+++ b/src/reflect/scala/reflect/internal/tpe/TypeMaps.scala
@@ -1099,7 +1099,7 @@ private[internal] trait TypeMaps {
tp
}
case SingleType(pre, sym) =>
- if (sym.isPackage) tp
+ if (sym.hasPackageFlag) tp
else {
val pre1 = this(pre)
try {
diff --git a/src/reflect/scala/reflect/runtime/JavaMirrors.scala b/src/reflect/scala/reflect/runtime/JavaMirrors.scala
index 1e64b805e9..963e4dd3be 100644
--- a/src/reflect/scala/reflect/runtime/JavaMirrors.scala
+++ b/src/reflect/scala/reflect/runtime/JavaMirrors.scala
@@ -935,7 +935,7 @@ private[scala] trait JavaMirrors extends internal.SymbolTable with api.JavaUnive
val owner = ownerModule.moduleClass
val name = (fullname: TermName) drop split + 1
val opkg = owner.info decl name
- if (opkg.isPackage)
+ if (opkg.hasPackageFlag)
opkg.asModule
else if (opkg == NoSymbol) {
val pkg = owner.newPackage(name)