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
- Protected
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[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- 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: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- 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(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from FlagSets toStringFormat[FlagSets] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (FlagSets, B)
- Implicit
- This member is added by an implicit conversion from FlagSets toArrowAssoc[FlagSets] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.