dotty.tools.dotc.typer

Checking

Related Docs: trait Checking | package typer

object Checking

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

Type Members

  1. class CheckNonCyclicMap extends TypeMap

    A type map which checks that the only cycles in a type are F-bounds and that protects all F-bounded references by LazyRefs.

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 checkAppliedType(tree: ast.tpd.AppliedTypeTree)(implicit ctx: Context): Unit

    Check applied type trees for well-formedness.

    Check applied type trees for well-formedness. This means

    • all arguments are within their corresponding bounds
    • if type is a higher-kinded application with wildcard arguments, check that it or one of its supertypes can be reduced to a normal application. Unreducible applications correspond to general existentials, and we cannot handle those.
  6. def checkBounds(args: List[ast.tpd.Tree], poly: PolyType)(implicit ctx: Context): Unit

    Check that type arguments args conform to corresponding bounds in poly Note: This does not check the bounds of AppliedTypeTrees.

    Check that type arguments args conform to corresponding bounds in poly Note: This does not check the bounds of AppliedTypeTrees. These are handled by method checkBounds in FirstTransform

  7. def checkBounds(args: List[ast.tpd.Tree], boundss: List[TypeBounds], instantiate: (Type, List[Type]) ⇒ Type)(implicit ctx: Context): Unit

    A general checkBounds method that can be used for TypeApply nodes as well as for AppliedTypeTree nodes.

    A general checkBounds method that can be used for TypeApply nodes as well as for AppliedTypeTree nodes. Also checks that type arguments to *-type parameters are fully applied.

  8. def checkInstantiable(tp: Type, pos: Position)(implicit ctx: Context): Unit

    Check that tp refers to a nonAbstract class and that the instance conforms to the self type of the created class.

  9. def checkNoPrivateLeaks(sym: Symbol, pos: Position)(implicit ctx: Context): Type

    Check the type signature of the symbol M defined by tree does not refer to a private type or value which is invisible at a point where M is still visible.

    Check the type signature of the symbol M defined by tree does not refer to a private type or value which is invisible at a point where M is still visible. As an exception, we allow references to type aliases if the underlying type of the alias is not a leak. So type aliases are transparent as far as leak testing is concerned.

    returns

    The info of sym, with problematic aliases expanded away. See i997.scala for tests, i1130.scala for a case where it matters that we transform leaky aliases away.

  10. def checkNonCyclic(sym: Symbol, info: Type, reportErrors: Boolean)(implicit ctx: Context): Type

    Check that info of symbol sym is not cyclic.

    Check that info of symbol sym is not cyclic.

    returns

    info where every legal F-bounded reference is proctected by a LazyRef, or ErrorType if a cycle was detected and reported.

  11. def checkRealizable(tp: Type, pos: Position)(implicit ctx: Context): Unit

    Check that type tp is realizable.

  12. def checkRefinementNonCyclic(refinement: ast.tpd.Tree, refineCls: ClassSymbol, seen: Set[Symbol])(implicit ctx: Context): Unit

    Check that refinement satisfies the following two conditions

    Check that refinement satisfies the following two conditions

    1. No part of it refers to a symbol that's defined in the same refinement at a textually later point. 2. All references to the refinement itself via this are followed by selections. Note: It's not yet clear what exactly we want to allow and what we want to rule out. This depends also on firming up the DOT calculus. For the moment we only issue deprecated warnings, not errors.
  13. def checkWellFormed(sym: Symbol)(implicit ctx: Context): Unit

    Check that symbol's definition is well-formed.

  14. def clone(): AnyRef

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

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

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

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

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

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

    Definition Classes
    Any
  21. final def ne(arg0: AnyRef): Boolean

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

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

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

    Definition Classes
    AnyRef
  25. def toString(): String

    Definition Classes
    AnyRef → Any
  26. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped