diff options
author | Martin Odersky <odersky@gmail.com> | 2011-07-11 09:00:48 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2011-07-11 09:00:48 +0000 |
commit | 9e1d24d64283a4caf47cb68c00298538ca0b9999 (patch) | |
tree | 368175c8b2adcc68b671b3b9d2acb8821cf04214 /src/compiler/scala/reflect/internal/Symbols.scala | |
parent | 7d4cff1dc6040d951b09f8df4af288d16ef53de2 (diff) | |
download | scala-9e1d24d64283a4caf47cb68c00298538ca0b9999.tar.gz scala-9e1d24d64283a4caf47cb68c00298538ca0b9999.tar.bz2 scala-9e1d24d64283a4caf47cb68c00298538ca0b9999.zip |
Refactored reflection into reflect.api and refl...
Refactored reflection into reflect.api and reflect.internal. Severed the
last remaining dependency on reflect.generic. Review by extempore.
Diffstat (limited to 'src/compiler/scala/reflect/internal/Symbols.scala')
-rw-r--r-- | src/compiler/scala/reflect/internal/Symbols.scala | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/compiler/scala/reflect/internal/Symbols.scala b/src/compiler/scala/reflect/internal/Symbols.scala index a900af6451..749368f93e 100644 --- a/src/compiler/scala/reflect/internal/Symbols.scala +++ b/src/compiler/scala/reflect/internal/Symbols.scala @@ -11,8 +11,9 @@ import scala.collection.{ mutable, immutable } import scala.collection.mutable.ListBuffer import util.Statistics._ import Flags._ +import api.Modifier -trait Symbols /* extends reflect.generic.Symbols*/ { self: SymbolTable => +trait Symbols extends api.Symbols { self: SymbolTable => import definitions._ private var ids = 0 @@ -41,7 +42,7 @@ trait Symbols /* extends reflect.generic.Symbols*/ { self: SymbolTable => val originalOwner = perRunCaches.newMap[Symbol, Symbol]() /** The class for all symbols */ - abstract class Symbol(initOwner: Symbol, initPos: Position, initName: Name) extends HasFlags /*AbsSymbol */ { + abstract class Symbol(initOwner: Symbol, initPos: Position, initName: Name) extends AbsSymbol with HasFlags { type FlagsType = Long type AccessBoundaryType = Symbol @@ -59,6 +60,14 @@ trait Symbols /* extends reflect.generic.Symbols*/ { self: SymbolTable => def pos = rawpos def setPos(pos: Position): this.type = { this.rawpos = pos; this } + override def hasModifier(mod: Modifier.Value) = + hasFlag(flagOfModifier(mod)) && + (!(mod == Modifier.bynameParameter) || isTerm) && + (!(mod == Modifier.covariant) || isType) + + override def allModifiers: Set[Modifier.Value] = + Modifier.values filter hasModifier + // ------ creators ------------------------------------------------------------------- final def newValue(pos: Position, name: TermName) = |