summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/internal/Symbols.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/reflect/internal/Symbols.scala')
-rw-r--r--src/compiler/scala/reflect/internal/Symbols.scala13
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) =