diff options
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) = |