summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-07-30 20:50:52 +0200
committerEugene Burmako <xeno.by@gmail.com>2012-08-02 15:36:56 +0200
commit336145f979477e5a8314304202a44606348d3fb8 (patch)
treeaf0d2f9c38915a9f26ddfea6095e5b301c9e4ae7 /src/library
parenta727c6fc198d33842ff85d8a16d48143a6757d51 (diff)
downloadscala-336145f979477e5a8314304202a44606348d3fb8.tar.gz
scala-336145f979477e5a8314304202a44606348d3fb8.tar.bz2
scala-336145f979477e5a8314304202a44606348d3fb8.zip
simplifies flag API
Flag ops now only include | and hasFlag, flag bearer ops now only include flags and hasFlag. These abstractions are enough to implement everything else, so let's stick to them for the sake of minimalism.
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/reflect/base/Base.scala1
-rw-r--r--src/library/scala/reflect/base/FlagSets.scala6
-rw-r--r--src/library/scala/reflect/base/Trees.scala5
3 files changed, 7 insertions, 5 deletions
diff --git a/src/library/scala/reflect/base/Base.scala b/src/library/scala/reflect/base/Base.scala
index ddb502fd44..6d13395019 100644
--- a/src/library/scala/reflect/base/Base.scala
+++ b/src/library/scala/reflect/base/Base.scala
@@ -234,7 +234,6 @@ class Base extends Universe { self =>
override val privateWithin: Name,
override val annotations: List[Tree]) extends ModifiersBase {
def hasFlag(flags: FlagSet) = (this.flags & flags) != 0
- def hasAllFlags(flags: FlagSet) = (flags & ~this.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 57946d0f27..43de9970c0 100644
--- a/src/library/scala/reflect/base/FlagSets.scala
+++ b/src/library/scala/reflect/base/FlagSets.scala
@@ -13,5 +13,11 @@ trait FlagSets { self: Universe =>
/** The empty set of flags */
val NoFlags: FlagSet
+
+ /** The base API all flag bearers support */
+ trait HasFlagsBase {
+ def flags: FlagSet
+ def hasFlag(flags: FlagSet): Boolean
+ }
}
diff --git a/src/library/scala/reflect/base/Trees.scala b/src/library/scala/reflect/base/Trees.scala
index 2814450ae3..ab03b7a89f 100644
--- a/src/library/scala/reflect/base/Trees.scala
+++ b/src/library/scala/reflect/base/Trees.scala
@@ -1356,10 +1356,7 @@ trait Trees { self: Universe =>
implicit val ModifiersTag: ClassTag[Modifiers]
/** ... */
- abstract class ModifiersBase {
- def flags: FlagSet
- def hasFlag(flags: FlagSet): Boolean
- def hasAllFlags(flags: FlagSet): Boolean
+ abstract class ModifiersBase extends HasFlagsBase {
def privateWithin: Name // default: EmptyTypeName
def annotations: List[Tree] // default: List()
def mapAnnotations(f: List[Tree] => List[Tree]): Modifiers =