Constructors
Members
this map contains mutable state of transformation: OffsetDefs to be appended to companion object definitions, and number of bits currently used
this map contains mutable state of transformation: OffsetDefs to be appended to companion object definitions, and number of bits currently used
Create non-threadsafe lazy accessor for not-nullable types equivalent to such code def methodSymbol() = { if (target eq null) { target = rhs target } else...
Create non-threadsafe lazy accessor for not-nullable types equivalent to such code def methodSymbol() = { if (target eq null) { target = rhs target } else target }
Create non-threadsafe lazy accessor equivalent to such code def methodSymbol() = { if (flag) target else { target = rhs flag = true target } }
Create non-threadsafe lazy accessor equivalent to such code def methodSymbol() = { if (flag) target else { target = rhs flag = true target } }
Create a threadsafe lazy accessor equivalent to such code
def methodSymbol(): Int = { val result: Int = 0 val retry: Boolean = true var flag: Long = 0L whi...
Create a threadsafe lazy accessor equivalent to such code
def methodSymbol(): Int = { val result: Int = 0 val retry: Boolean = true var flag: Long = 0L while retry do { flag = dotty.runtime.LazyVals.get(this, $claz.$OFFSET) dotty.runtime.LazyVals.STATE(flag, 0) match { case 0 => if dotty.runtime.LazyVals.CAS(this, $claz.$OFFSET, flag, 1, $ord) { try {result = rhs} catch { case x: Throwable => dotty.runtime.LazyVals.setFlag(this, $claz.$OFFSET, 0, $ord) throw x } $target = result dotty.runtime.LazyVals.setFlag(this, $claz.$OFFSET, 3, $ord) retry = false } case 1 => dotty.runtime.LazyVals.wait4Notification(this, $claz.$OFFSET, flag, $ord) case 2 => dotty.runtime.LazyVals.wait4Notification(this, $claz.$OFFSET, flag, $ord) case 3 => retry = false result = $target } } result }
A name given to the Phase
that can be used to debug the compiler. For
instance, it is possible to print trees after a given phase using:
A name given to the Phase
that can be used to debug the compiler. For
instance, it is possible to print trees after a given phase using:
$ ./bin/dotc -Xprint:<phaseNameHere> sourceFile.scala
List of names of phases that should have finished processing of tree before this phase starts processing same tree
List of names of phases that should have finished processing of tree before this phase starts processing same tree
Replace a local lazy val inside a method, with a LazyHolder from dotty.runtime(eg dotty.runtime.LazyInt)
Replace a local lazy val inside a method, with a LazyHolder from dotty.runtime(eg dotty.runtime.LazyInt)
Make an eager val that would implement synthetic module. Eager val ensures thread safety and has less code generated.
Make an eager val that would implement synthetic module. Eager val ensures thread safety and has less code generated.
Append offset fields to companion objects
Append offset fields to companion objects