summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/internal/Symbols.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-07-11 09:00:48 +0000
committerMartin Odersky <odersky@gmail.com>2011-07-11 09:00:48 +0000
commit9e1d24d64283a4caf47cb68c00298538ca0b9999 (patch)
tree368175c8b2adcc68b671b3b9d2acb8821cf04214 /src/compiler/scala/reflect/internal/Symbols.scala
parent7d4cff1dc6040d951b09f8df4af288d16ef53de2 (diff)
downloadscala-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.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) =