dotty.tools.dotc.staging

Members list

Type members

Classlikes

Checks that staging level consistency holds and heals staged types .

Checks that staging level consistency holds and heals staged types .

Local term references are level consistent if and only if they are used at the same level as their definition.

Local type references can be used at the level of their definition or lower. If used used at a higher level, it will be healed if possible, otherwise it is inconsistent.

Type healing consists in transforming a level inconsistent type T into summon[Type[T]].Underlying.

As references to types do not necessarily have an associated tree it is not always possible to replace the types directly. Instead we always generate a type alias for it and place it at the start of the surrounding quote. This also avoids duplication. For example: '{ val x: List[T] = ListT () }

is transformed to

'{ type t$1 = summon[Type[T]].Underlying val x: List[t$1] = Listt$1; () }

Attributes

Supertypes
class TreeMap
class Object
trait Matchable
class Any
Show all
object DirectTypeOf

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
class HealType(pos: SrcPos)(using x$2: Context) extends TypeMap

Attributes

Supertypes
class TypeMap
trait Type => Type
class Object
trait Matchable
class Any
Show all
object QuoteContext

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object QuoteTypeTags

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
class QuoteTypeTags(span: Span)(using x$2: Context)

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object StagingLevel

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
abstract class TreeMapWithStages extends TreeMapWithImplicits

TreeMap that keeps track of staging levels using StagingLevel.

TreeMap that keeps track of staging levels using StagingLevel.

Attributes

Supertypes
class TreeMap
class Object
trait Matchable
class Any
Show all
Known subtypes