dotty.tools.dotc.transform

SuperAccessors

Related Doc: package transform

class SuperAccessors extends AnyRef

This class performs the following functions:

(1) Adds super accessors for all super calls that either appear in a trait or have as a target a member of some outer class.

(2) Adds protected accessors if the access to the protected member happens in a class which is not a subclass of the member's owner.

It also checks that:

(1) Symbols accessed from super are not abstract, or are overridden by an abstract override.

(2) If a symbol accessed from super is defined in a real class (not a trait), there are no abstract members which override this member in Java's rules (see SI-4989; such an access would lead to illegal bytecode)

(3) Super calls do not go to some synthetic members of Any (see isDisallowed)

(4) Super calls do not go to synthetic field accessors

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. SuperAccessors
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SuperAccessors(thisTransformer: DenotTransformer)

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  12. def isProtectedAccessor(tree: ast.tpd.Tree)(implicit ctx: Context): Boolean

  13. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  14. final def notify(): Unit

    Definition Classes
    AnyRef
  15. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  16. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  17. def toString(): String

    Definition Classes
    AnyRef → Any
  18. def transformAssign(tree: ast.tpd.Tree)(implicit ctx: Context): ast.tpd.Tree

    Transform assignment, adding a protected setter if needed

  19. def transformSelect(tree: ast.tpd.Tree, targs: List[ast.tpd.Tree])(implicit ctx: Context): ast.tpd.Tree

    Transform select node, adding super and protected accessors as needed

  20. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. def wrapDefDef(ddef: ast.tpd.DefDef)(op: ⇒ ast.tpd.DefDef)(implicit ctx: Context): ast.tpd.DefDef

    Wrap DefDef producing operation op, potentially setting invalidClass info

  24. def wrapTemplate(tree: ast.tpd.Template)(op: (ast.tpd.Template) ⇒ ast.tpd.Template)(implicit ctx: Context): ast.tpd.Template

    Wrap template to template transform op with needed initialization and finalization

Inherited from AnyRef

Inherited from Any

Ungrouped