diff options
author | Paul Phillips <paulp@improving.org> | 2011-11-11 01:35:40 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-11-11 01:35:40 +0000 |
commit | 042fdbc42a632e4b3b8510ff7638295e7aa3e981 (patch) | |
tree | f5aeabfe4e3fcdc729c3879ffdb0163e6a1e16b7 /src/compiler/scala/reflect/internal/Symbols.scala | |
parent | 7f4fa0ec6f303c4ec535865a6cc5f117df221980 (diff) | |
download | scala-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.scala | 13 |
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 |