Periods

dotty.tools.dotc.core.Periods
object Periods

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Periods.type

Members list

Type members

Classlikes

final class Period(val code: Int) extends AnyVal

A period is a contiguous sequence of phase ids in some run. It is coded as follows:

A period is a contiguous sequence of phase ids in some run. It is coded as follows:

sign, always 0 1 bit runid 17 bits last phase id: 7 bits #phases before last: 7 bits

// Dmitry: sign == 0 isn't actually always true, in some cases phaseId == -1 is used for shifts, that easily creates code < 0

Attributes

Companion
object
Supertypes
class AnyVal
trait Matchable
class Any
object Period

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Period.type

Types

type PhaseId = Int

An ordinal number for phases. First phase has number 1.

An ordinal number for phases. First phase has number 1.

Attributes

type RunId = Int

An ordinal number for compiler runs. First run has number 1.

An ordinal number for compiler runs. First run has number 1.

Attributes

Value members

Concrete methods

Are all base types in the current period guaranteed to be the same as in period p?

Are all base types in the current period guaranteed to be the same as in period p?

Attributes

The period containing the current period where denotations do not change. We compute this by taking as first phase the first phase less or equal to the current phase that has the same "nextTransformerId". As last phase we take the next transformer id following the current phase.

The period containing the current period where denotations do not change. We compute this by taking as first phase the first phase less or equal to the current phase that has the same "nextTransformerId". As last phase we take the next transformer id following the current phase.

Attributes

Concrete fields

inline val FirstPhaseId: 1
final val InitialPeriod: Period
inline val InitialRunId: 1
final val InvalidPeriod: Period
inline val MaxPossiblePhaseId: 127
inline val MaxPossibleRunId: 131071
inline val NoPhaseId: 0
inline val NoRunId: 0
final val Nowhere: Period
inline val NowhereCode: 0
inline val PhaseMask: 127
inline val PhaseWidth: 7

The number of bits needed to encode a phase identifier.

The number of bits needed to encode a phase identifier.

Attributes

inline val RunWidth: 17