diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-07-30 20:50:52 +0200 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-08-02 15:36:56 +0200 |
commit | 336145f979477e5a8314304202a44606348d3fb8 (patch) | |
tree | af0d2f9c38915a9f26ddfea6095e5b301c9e4ae7 /src/library | |
parent | a727c6fc198d33842ff85d8a16d48143a6757d51 (diff) | |
download | scala-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.scala | 1 | ||||
-rw-r--r-- | src/library/scala/reflect/base/FlagSets.scala | 6 | ||||
-rw-r--r-- | src/library/scala/reflect/base/Trees.scala | 5 |
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 = |