trait FlagSets extends AnyRef
EXPERIMENTAL
The trait that defines flag sets and operations on them.
Flag
s are used to provide modifiers for abstract syntax trees that represent definitions
via the flags
field of scala.reflect.api.Trees#Modifiers. Trees that accept modifiers are:
- scala.reflect.api.Trees#ClassDef. Classes and traits.
- scala.reflect.api.Trees#ModuleDef. Objects.
- scala.reflect.api.Trees#ValDef. Vals, vars, parameters and self-type annotations.
- scala.reflect.api.Trees#DefDef. Methods and constructors.
- scala.reflect.api.Trees#TypeDef. Type aliases, abstract type members and type parameters.
For example, to create a class named C
one would write something like:
ClassDef(Modifiers(NoFlags), TypeName("C"), Nil, ...)
Here, the flag set is empty.
To make C
private, one would write something like:
ClassDef(Modifiers(PRIVATE), TypeName("C"), Nil, ...)
Flags can also be combined with the vertical bar operator (|
).
For example, a private final class is written something like:
ClassDef(Modifiers(PRIVATE | FINAL), TypeName("C"), Nil, ...)
The list of all available flags is defined in scala.reflect.api.FlagSets#FlagValues, available via
scala.reflect.api.FlagSets#Flag. (Typically one writes a wildcard import for this, e.g.
import scala.reflect.runtime.universe.Flag._
).
Definition trees are compiled down to symbols, so flags on modifiers of these trees are transformed into flags
on the resulting symbols. Unlike trees, symbols don't expose flags, but rather provide isXXX
test methods
(e.g. isFinal
can be used to test finality). These test methods might require an upcast with asTerm
,
asType
or asClass
as some flags only make sense for certain kinds of symbols.
Of Note: This part of the Reflection API is being considered as a candidate for redesign. It is quite possible that in future releases of the reflection API, flag sets could be replaced with something else.
For more details about FlagSet
s and other aspects of Scala reflection, see the
Reflection Guide
- Self Type
- Universe
- Source
- FlagSets.scala
- Grouped
- Alphabetic
- By Inheritance
- FlagSets
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Type Members
-
trait
FlagOps extends Any
The API of
FlagSet
instances.The API of
FlagSet
instances. The main source of information about flag sets is the scala.reflect.api.FlagSets page. -
abstract
type
FlagSet
An abstract type representing sets of flags (like private, final, etc.) that apply to definition trees and symbols
-
trait
FlagValues extends AnyRef
All possible values that can constitute flag sets.
All possible values that can constitute flag sets. The main source of information about flag sets is the scala.reflect.api.FlagSets page.
Abstract Value Members
-
abstract
val
Flag: Universe.FlagValues
A module that contains all possible values that can constitute flag sets.
-
abstract
val
NoFlags: Universe.FlagSet
The empty set of flags
-
implicit abstract
def
addFlagOps(left: Universe.FlagSet): Universe.FlagOps
The API of
FlagSet
instances.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (FlagSets, B)
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- def ensuring(cond: (FlagSets) ⇒ Boolean, msg: ⇒ Any): FlagSets
- def ensuring(cond: (FlagSets) ⇒ Boolean): FlagSets
- def ensuring(cond: Boolean, msg: ⇒ Any): FlagSets
- def ensuring(cond: Boolean): FlagSets
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- def formatted(fmtstr: String): String
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- def →[B](y: B): (FlagSets, B)