final case class FlagSet
extends AnyVal

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.

Constructors

FlagSet ( bits: Long )

Members

[+] val bits : Long
[+] def & ( that: FlagSet ) : R

The intersection of this flag set and the given flag set

The intersection of this flag set and the given flag set

[+] def &~ ( that: FlagSet ) : R

The intersection of this flag set with the complement of the given flag set

The intersection of this flag set with the complement of the given flag set

[+] def <= ( that: FlagSet ) : Boolean

Is this flag set a subset of that one?

Is this flag set a subset of that one?

[+] def _1 : T1
[+] def copy ( bits: Long ) : FlagSet
[+] def copy$default$1 : Long
[+] def firstBit : Int

The lowest non-kind bit set in this flagset

The lowest non-kind bit set in this flagset

[+] private def flagString ( idx: Int ) : List [ String ]

The list of non-empty names of flags with given index idx that are set in this FlagSet

The list of non-empty names of flags with given index idx that are set in this FlagSet

[+] def flagStrings : Seq [ String ]

The list of non-empty names of flags that are set in this FlagSet

The list of non-empty names of flags that are set in this FlagSet

[+] def is ( flags: FlagSet ) : Boolean

Does this flag set have a non-empty intersection with the given flag set? This means that both the kind flags and the carrier bits have non-empty inter...

Does this flag set have a non-empty intersection with the given flag set? This means that both the kind flags and the carrier bits have non-empty intersection.

[+] def is ( flags: FlagSet , butNot: FlagSet ) : Boolean

Does this flag set have a non-empty intersection with the given flag set, and at the same time contain none of the flags in the butNot set?

Does this flag set have a non-empty intersection with the given flag set, and at the same time contain none of the flags in the butNot set?

[+] def is ( flags: FlagConjunction ) : Boolean

Does this flag set have all of the flags in given flag conjunction? Pre: The intersection of the typeflags of both sets must be non-empty.

Does this flag set have all of the flags in given flag conjunction? Pre: The intersection of the typeflags of both sets must be non-empty.

[+] def is ( flags: FlagConjunction , butNot: FlagSet ) : Boolean

Does this flag set have all of the flags in given flag conjunction? and at the same time contain none of the flags in the butNot set? Pre: The intersect...

Does this flag set have all of the flags in given flag conjunction? and at the same time contain none of the flags in the butNot set? Pre: The intersection of the typeflags of both sets must be non-empty.

[+] def isEmpty : Boolean
[+] def isTermFlags : Boolean

Does this flag set apply to terms?

Does this flag set apply to terms?

[+] def isTypeFlags : Boolean

Does this flag set apply to terms?

Does this flag set apply to terms?

[+] def numFlags : Int

The number of non-kind flags in this set

The number of non-kind flags in this set

[+] def toCommonFlags : R

This flag set with all flags transposed to be common flags

This flag set with all flags transposed to be common flags

[+] override def toString : String

The string representation of this flag set

The string representation of this flag set

[+] def toTermFlags : R

This flag set with all flags transposed to be term flags

This flag set with all flags transposed to be term flags

[+] def toTypeFlags : R

This flag set with all flags transposed to be type flags

This flag set with all flags transposed to be type flags

[+] def | ( that: FlagSet ) : FlagSet

The union of this flag set and the given flag set

The union of this flag set and the given flag set