summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/internal/Symbols.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-11-11 01:35:40 +0000
committerPaul Phillips <paulp@improving.org>2011-11-11 01:35:40 +0000
commit042fdbc42a632e4b3b8510ff7638295e7aa3e981 (patch)
treef5aeabfe4e3fcdc729c3879ffdb0163e6a1e16b7 /src/compiler/scala/reflect/internal/Symbols.scala
parent7f4fa0ec6f303c4ec535865a6cc5f117df221980 (diff)
downloadscala-042fdbc42a632e4b3b8510ff7638295e7aa3e981.tar.gz
scala-042fdbc42a632e4b3b8510ff7638295e7aa3e981.tar.bz2
scala-042fdbc42a632e4b3b8510ff7638295e7aa3e981.zip
Cleanup around typeref creation and rebinding.
Diffstat (limited to 'src/compiler/scala/reflect/internal/Symbols.scala')
-rw-r--r--src/compiler/scala/reflect/internal/Symbols.scala13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/compiler/scala/reflect/internal/Symbols.scala b/src/compiler/scala/reflect/internal/Symbols.scala
index fc3fea0fd4..a49a5ebd1e 100644
--- a/src/compiler/scala/reflect/internal/Symbols.scala
+++ b/src/compiler/scala/reflect/internal/Symbols.scala
@@ -338,6 +338,7 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
final def isModuleClass = isClass && hasFlag(MODULE)
final def isNumericValueClass = definitions.isNumericValueClass(this)
final def isOverloaded = hasFlag(OVERLOADED)
+ final def isOverridableMember = !(isClass || isEffectivelyFinal) && owner.isClass
final def isRefinementClass = isClass && name == tpnme.REFINE_CLASS_NAME
final def isSourceMethod = isMethod && !hasFlag(STABLE) // exclude all accessors!!!
final def isTypeParameter = isType && isParameter && !isSkolem
@@ -362,9 +363,6 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
*/
def isEffectiveRoot = isRoot || isEmptyPackageClass
- final def isPossibleInRefinement = !isConstructor && !isOverridingSymbol
- final def isStructuralRefinementMember = owner.isStructuralRefinement && isPossibleInRefinement && isPublic
-
/** Term symbols with the exception of static parts of Java classes and packages.
*/
final def isValue = isTerm && !(isModule && hasFlag(PACKAGE | JAVA))
@@ -402,9 +400,9 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
// class C extends D( { class E { ... } ... } ). Here, E is a class local to a constructor
final def isClassLocalToConstructor = isClass && hasFlag(INCONSTRUCTOR)
- final def isAnonymousClass = isClass && (name containsName tpnme.ANON_CLASS_NAME)
- final def isAnonymousFunction = isSynthetic && (name containsName tpnme.ANON_FUN_NAME)
- final def isAnonOrRefinementClass = isAnonymousClass || isRefinementClass
+ final def isAnonymousClass = isClass && (name containsName tpnme.ANON_CLASS_NAME)
+ final def isAnonymousFunction = isSynthetic && (name containsName tpnme.ANON_FUN_NAME)
+ final def isAnonOrRefinementClass = isAnonymousClass || isRefinementClass
// A package object or its module class
final def isPackageObjectOrClass = name == nme.PACKAGE || name == tpnme.PACKAGE
@@ -595,6 +593,9 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
final def isStructuralRefinement: Boolean =
(isClass || isType || isModule) && info.normalize/*.underlying*/.isStructuralRefinement
+ final def isStructuralRefinementMember = owner.isStructuralRefinement && isPossibleInRefinement && isPublic
+ final def isPossibleInRefinement = !isConstructor && !isOverridingSymbol
+
/** Is this symbol a member of class `clazz`? */
def isMemberOf(clazz: Symbol) =
clazz.info.member(name).alternatives contains this