summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-08-10 20:48:28 +0200
committerEugene Burmako <xeno.by@gmail.com>2012-08-10 20:53:33 +0200
commit79b0da95b4532b6ed408e86c3fa41f905b26374f (patch)
tree1209be7d4c32c4a7b997b93399818af863527b2a
parenta9c00f2dff1f86f5cfcba4f8d88e784d866515ec (diff)
downloadscala-79b0da95b4532b6ed408e86c3fa41f905b26374f.tar.gz
scala-79b0da95b4532b6ed408e86c3fa41f905b26374f.tar.bz2
scala-79b0da95b4532b6ed408e86c3fa41f905b26374f.zip
a follow up on e01ec05a1e
Removes all traces of flags from symbol API, adds general flag set (hasFlag) to Modifiers (because Modifiers don't have isXXX checks that symbols have). This also removes macros.Symbol.setFlags, because taking into account current state of affairs that method was at best incomplete.
-rw-r--r--src/library/scala/reflect/base/Base.scala4
-rw-r--r--src/library/scala/reflect/base/FlagSets.scala6
-rw-r--r--src/library/scala/reflect/base/Trees.scala4
-rw-r--r--src/reflect/scala/reflect/api/Symbols.scala2
-rw-r--r--src/reflect/scala/reflect/internal/Symbols.scala2
-rw-r--r--src/reflect/scala/reflect/macros/Universe.scala2
6 files changed, 7 insertions, 13 deletions
diff --git a/src/library/scala/reflect/base/Base.scala b/src/library/scala/reflect/base/Base.scala
index e8f29ccd57..714fd365ef 100644
--- a/src/library/scala/reflect/base/Base.scala
+++ b/src/library/scala/reflect/base/Base.scala
@@ -233,7 +233,9 @@ class Base extends Universe { self =>
class Modifiers(override val flags: FlagSet,
override val privateWithin: Name,
- override val annotations: List[Tree]) extends ModifiersBase
+ override val annotations: List[Tree]) extends ModifiersBase {
+ def hasFlag(flags: FlagSet) = (this.flags & flags) != 0
+ }
implicit val ModifiersTag = ClassTag[Modifiers](classOf[Modifiers])
diff --git a/src/library/scala/reflect/base/FlagSets.scala b/src/library/scala/reflect/base/FlagSets.scala
index 4d87ab26ee..96cdbe894c 100644
--- a/src/library/scala/reflect/base/FlagSets.scala
+++ b/src/library/scala/reflect/base/FlagSets.scala
@@ -13,10 +13,4 @@ trait FlagSets { self: Universe =>
/** The empty set of flags */
val NoFlags: FlagSet
-
- /** The base API all flag bearers support */
- trait HasFlagsBase {
- def flags: FlagSet
- }
}
-
diff --git a/src/library/scala/reflect/base/Trees.scala b/src/library/scala/reflect/base/Trees.scala
index 7fa3c90e7d..70993fd77f 100644
--- a/src/library/scala/reflect/base/Trees.scala
+++ b/src/library/scala/reflect/base/Trees.scala
@@ -1359,7 +1359,9 @@ trait Trees { self: Universe =>
implicit val ModifiersTag: ClassTag[Modifiers]
/** ... */
- abstract class ModifiersBase extends HasFlagsBase {
+ abstract class ModifiersBase {
+ def flags: FlagSet // default: NoFlags
+ def hasFlag(flag: FlagSet): Boolean
def privateWithin: Name // default: EmptyTypeName
def annotations: List[Tree] // default: List()
def mapAnnotations(f: List[Tree] => List[Tree]): Modifiers =
diff --git a/src/reflect/scala/reflect/api/Symbols.scala b/src/reflect/scala/reflect/api/Symbols.scala
index 1efffc910f..fda76c7b95 100644
--- a/src/reflect/scala/reflect/api/Symbols.scala
+++ b/src/reflect/scala/reflect/api/Symbols.scala
@@ -13,7 +13,7 @@ trait Symbols extends base.Symbols { self: Universe =>
override type FreeTypeSymbol >: Null <: TypeSymbol with FreeTypeSymbolApi
/** The API of symbols */
- trait SymbolApi extends SymbolBase with HasFlagsBase { this: Symbol =>
+ trait SymbolApi extends SymbolBase { this: Symbol =>
/** The position of this symbol
*/
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala
index 2a306d7c6e..ea7198fef5 100644
--- a/src/reflect/scala/reflect/internal/Symbols.scala
+++ b/src/reflect/scala/reflect/internal/Symbols.scala
@@ -80,8 +80,6 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
def toType: Type = tpe
def toTypeIn(site: Type): Type = site.memberType(this)
def toTypeConstructor: Type = typeConstructor
- def setFlags(flags: FlagSet): this.type = setInternalFlags(flags)
- def setInternalFlags(flag: Long): this.type = { setFlag(flag); this }
def setTypeSignature(tpe: Type): this.type = { setInfo(tpe); this }
def getAnnotations: List[AnnotationInfo] = { initialize; annotations }
def setAnnotations(annots: AnnotationInfo*): this.type = { setAnnotations(annots.toList); this }
diff --git a/src/reflect/scala/reflect/macros/Universe.scala b/src/reflect/scala/reflect/macros/Universe.scala
index 44a7de3d3a..8d9711dedd 100644
--- a/src/reflect/scala/reflect/macros/Universe.scala
+++ b/src/reflect/scala/reflect/macros/Universe.scala
@@ -24,8 +24,6 @@ abstract class Universe extends scala.reflect.api.Universe {
*/
trait SymbolContextApi extends SymbolApi with AttachableApi { self: Symbol =>
- def setFlags(flags: FlagSet): Symbol
-
def setTypeSignature(tpe: Type): Symbol
def setAnnotations(annots: AnnotationInfo*): Symbol