A class representing flag sets that should be tested conjunctively.
A class representing flag sets that should be tested
conjunctively. I.e. for a flag conjunction fc
,
x is fc
tests whether x
contains all flags in fc
.
A FlagSet represents a set of flags.
A FlagSet represents a set of flags. Flags are encoded as follows:
The first two bits indicate whether a flagset applies to terms,
to types, or to both. Bits 2..63 are available for properties
and can be doubly used for terms and types.
Combining two FlagSets with |
will give a FlagSet
that has the intersection of the applicability to terms/types
of the two flag sets. It is checked that the intersection is not empty.
Labeled with of abstract & override
Labeled with abstract
modifier (an abstract class)
Note: You should never see Abstract on any symbol except a class.
Labeled with abstract
modifier (an abstract class)
Note: You should never see Abstract on any symbol except a class.
Note: the flag counts as common, because it can be combined with OVERRIDE in a term.
An abstract class or a trait
Flags representing access rights
A value or variable accessor (getter or setter)
Accessors always have these flags set
If symbol of a type alias has these flags, prefer the alias
Symbol should be ignored when typechecking; will be marked ACC_SYNTHETIC in bytecode
A binding for a type parameter of a base class or trait.
A binding for a type parameter of a base class or trait. TODO: Replace with combination of isType, ExpandedName, and Override?
A type that is defined by a type bind
A bridge method.
A bridge method. Set by Erasure
Variable is accessed from nested function.
A case class or its companion object
A case parameter accessor
The flags of a class type parameter
A contravariant type variable / a label method
A covariant type variable / an outer accessor
Symbol is a Java default method
Is a default parameter in Scala 2
A method that has default params
A declared, but not defined member
A deferred member or a parameter accessor (these don't have right hand sides)
The empty flag set
Symbol is a Java enum
An error symbol
Symbol's name is expanded
A type parameter with synthesized name
Labeled with final
modifier
value that's final or inline
Symbol always defines a fresh named type
Flags guaranteed to be set upon symbol creation
Class is not allowed to accept new members because fingerprint of subclass has been taken
All class attributes are fully defined
Has defined or inherited default parameters
Symbol is an implementation class of a Scala2 trait
Labeled with implicit
modifier (implicit value)
Symbol is defined in a super call
A method that is known to have inherited default parameters
Symbol is inlined
An inline method
An inline parameter
Symbol is defined by a Java class
A Java interface
A Java companion object
A Java companion object
Symbol is implemented as a Java static
A Java interface, potentially with default methods
Symbol is a Java-style varargs method
Labeled with lazy
(a lazy val).
A lazy or deferred value
Class has been lifted out to package level, local value has been lifted out to class level
Symbol is local to current class (i.e.
Symbol is local to current class (i.e. private[this] or protected[this] pre: Private or Protected are also set
A contravariant type parameter instance
A covariant type parameter instance
A macro (Scala 2.x only)
A method symbol.
Either method or lazy
Either method or lazy or deferred
Term member has been mixed in
Flags representing modifiers that can appear in trees
A value or class implementing a module
Module classes always have these flags set
Modules always have these flags set
Either a module or a final class
A mutable var
Either mutable or lazy
A type parameter introduced with [type ...
A type parameter introduced with [type ... ]
A method that is known to have no default parameters
Trait does not have fields or initialization code
A trait that does not need to be initialized
Labeled with override
modifier
A value or class representing a package
Packages and package classes always have these flags set
A (term or type) parameter to a class or method
A field generated for a primary constructor parameter (no matter if it's a 'val' or not), or an accessor of such a field.
A local parameter
A parameter forwarder
A parameter or parameter accessor
A denotation that is valid in all run-ids
These flags are pickled
Labeled with private
modifier
A private accessor
Labeled private[this]
A private[this] parameter
A private[this] parameter accessor
A private method
Labeled private
, final
, or inline
Labeled private
or protected[local]
A private parameter accessor
Labeled with protected
modifier
Labeled protected[this]
A trait that has only abstract methods as members (and therefore can be represented by a Java interface
Pure interfaces always have these flags
Flags that can apply to a module class
Flags that can apply to both a module val and a module class, except those that are added at creation anyway
Flags that can apply to a module val
Flags that are passed from a type parameter of a class to a refinement symbol that sets the type parameter
An existentially bound symbol (Scala 2.x only)
A module variable (Scala 2.x only)
An overloaded symbol (Scala 2.x only)
A definition that's initialized before the super call (Scala 2.x only)
An unpickled Scala 2.x class
Labeled with sealed
modifier (sealed class)
Symbol is a self name
The flags of the self symbol
Flags representing source modifiers
Symbol is a generated specialized member
Lazy val or method is known or assumed to be stable and realizable
Java symbol which is protected
and static
A super accessor
Symbol is a method which should be marked ACC_SYNCHRONIZED
A compiler-generated symbol, which is visible for type-checking (compare with artifact)
A synthetic or private definition
Denotation is in train of being loaded and completed, used to catch cyclic dependencies
A trait
A type parameter or type parameter accessor
The undefined flag set
A value that's unstable unless complemented with a Stable flag
Symbol is a Java varargs bridge
Is valid forever
Flags that express the variance of a type parameter.
The conjunction of all flags in given flag set
The union of all flags in given flag set