dotty.tools.dotc.typer

Applications

Related Docs: object Applications | package typer

trait Applications extends Compatibility

Self Type
Typer with Dynamic
Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Applications
  2. Compatibility
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. class ApplicableToTrees extends (Applications.this)#TestApplication[ast.tpd.Tree]

    Subclass of Application for applicability tests with type arguments and value argument trees.

  2. class ApplicableToTreesDirectly extends (Applications.this)#ApplicableToTrees

    Subclass of Application for applicability tests with type arguments and value argument trees.

  3. class ApplicableToTypes extends (Applications.this)#TestApplication[Type]

    Subclass of Application for applicability tests with value argument types.

  4. abstract class Application[Arg] extends AnyRef

    Arg

    the type of arguments, could be tpd.Tree, untpd.Tree, or Type

  5. class ApplyToTyped extends (Applications.this)#TypedApply[Type]

    Subclass of Application for type checking an Apply node with typed arguments.

  6. class ApplyToUntyped extends (Applications.this)#TypedApply[Untyped]

    Subclass of Application for type checking an Apply node with untyped arguments.

  7. abstract class TestApplication[Arg] extends (Applications.this)#Application[Arg]

    Subclass of Application for the cases where we are interested only in a "can/cannot apply" answer, without needing to construct trees or issue error messages.

  8. abstract class TypedApply[T >: Untyped] extends (Applications.this)#Application[Tree[T]]

    Subclass of Application for type checking an Apply node, where types of arguments are either known or unknown.

Abstract Value Members

  1. abstract def viewExists(tp: Type, pt: Type)(implicit ctx: Context): Boolean

    Is there an implicit conversion from tp to pt?

    Is there an implicit conversion from tp to pt?

    Definition Classes
    Compatibility

Concrete 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. def argCtx(app: ast.untpd.Tree)(implicit ctx: Context): Context

    If app is a this(...) constructor call, the this-call argument context, otherwise the current context.

  5. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  6. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. def constrainResult(mt: Type, pt: Type)(implicit ctx: Context): Boolean

    Check that the result type of the current method fits the given expected result type.

    Check that the result type of the current method fits the given expected result type.

    Definition Classes
    Compatibility
  8. def convertNewGenericArray(tree: ast.tpd.Tree)(implicit ctx: Context): ast.tpd.Tree

    Rewrite new Array[T](....) if T is an unbounded generic to calls to newGenericArray.

    Rewrite new Array[T](....) if T is an unbounded generic to calls to newGenericArray. It is performed during typer as creation of generic arrays needs a classTag. we rely on implicit search to find one.

  9. final def eq(arg0: AnyRef): Boolean

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

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

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

    Definition Classes
    AnyRef → Any
  13. def handleUnexpectedFunType(tree: ast.untpd.Apply, fun: ast.tpd.Tree)(implicit ctx: Context): ast.tpd.Tree

    Overridden in ReTyper to handle primitive operations that can be generated after erasure

    Overridden in ReTyper to handle primitive operations that can be generated after erasure

    Attributes
    protected
  14. def harmonize(trees: List[ast.tpd.Tree])(implicit ctx: Context): List[ast.tpd.Tree]

    If trees all have numeric value types, and they do not have all the same type, pick a common numeric supertype and convert all trees to this type.

  15. def harmonizeTypes(tpes: List[Type])(implicit ctx: Context): List[Type]

    If all types are numeric value types, and they are not all the same type, pick a common numeric supertype and return it instead of every original type.

  16. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  17. def isApplicable(tp: Type, args: List[Type], resultType: Type)(implicit ctx: Context): Boolean

    Is given type applicable to argument types args, possibly after inserting an apply?

    Is given type applicable to argument types args, possibly after inserting an apply?

    resultType

    The expected result type of the application

  18. def isApplicable(tp: Type, targs: List[Type], args: List[ast.tpd.Tree], resultType: Type)(implicit ctx: Context): Boolean

    Is given type applicable to type arguments targs and argument trees args, possibly after inserting an apply?

    Is given type applicable to type arguments targs and argument trees args, possibly after inserting an apply?

    resultType

    The expected result type of the application

  19. def isApplicable(methRef: TermRef, args: List[Type], resultType: Type)(implicit ctx: Context): Boolean

    Is given method reference applicable to argument types args?

    Is given method reference applicable to argument types args?

    resultType

    The expected result type of the application

  20. def isApplicable(methRef: TermRef, targs: List[Type], args: List[ast.tpd.Tree], resultType: Type)(implicit ctx: Context): Boolean

    Is given method reference applicable to type arguments targs and argument trees args?

    Is given method reference applicable to type arguments targs and argument trees args?

    resultType

    The expected result type of the application

  21. def isAsGood(alt1: TermRef, alt2: TermRef)(implicit ctx: Context): Boolean

    In a set of overloaded applicable alternatives, is alt1 at least as good as alt2? alt1 and alt2 are non-overloaded references.

  22. def isCompatible(tp: Type, pt: Type)(implicit ctx: Context): Boolean

    A type tp is compatible with a type pt if one of the following holds:

    A type tp is compatible with a type pt if one of the following holds:

    1. tp is a subtype of pt 2. pt is by name parameter type, and tp is compatible with its underlying type 3. there is an implicit conversion from tp to pt. 4. tp is a numeric subtype of pt (this case applies even if implicit conversions are disabled)
    Definition Classes
    Compatibility
  23. def isDirectlyApplicable(methRef: TermRef, targs: List[Type], args: List[ast.tpd.Tree], resultType: Type)(implicit ctx: Context): Boolean

    Is given method reference applicable to type arguments targs and argument trees args without inferring views?

    Is given method reference applicable to type arguments targs and argument trees args without inferring views?

    resultType

    The expected result type of the application

  24. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  25. def narrowMostSpecific(alts: List[TermRef])(implicit ctx: Context): List[TermRef]

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

    Definition Classes
    AnyRef
  27. def normalizedCompatible(tp: Type, pt: Type)(implicit ctx: Context): Boolean

    Test compatibility after normalization in a fresh typerstate.

    Test compatibility after normalization in a fresh typerstate.

    Definition Classes
    Compatibility
  28. final def notify(): Unit

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

    Definition Classes
    AnyRef
  30. def resolveOverloaded(alts: List[TermRef], pt: Type)(implicit ctx: Context): List[TermRef]

    Resolve overloaded alternative alts, given expected type pt and possibly also type argument targs that need to be applied to each alternative to form the method type.

    Resolve overloaded alternative alts, given expected type pt and possibly also type argument targs that need to be applied to each alternative to form the method type. todo: use techniques like for implicits to pick candidates quickly?

  31. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  32. def toString(): String

    Definition Classes
    AnyRef → Any
  33. def typedApply(tree: ast.untpd.Apply, pt: Type)(implicit ctx: Context): ast.tpd.Tree

  34. def typedNamedArgs(args: List[ast.untpd.Tree])(implicit ctx: Context): List[NamedArg[Type]]

  35. def typedTypeApply(tree: ast.untpd.TypeApply, pt: Type)(implicit ctx: Context): ast.tpd.Tree

  36. def typedUnApply(tree: ast.untpd.UnApply, selType: Type)(implicit ctx: Context): ast.tpd.UnApply

    A typed unapply hook, can be overridden by re any-typers between frontend and pattern matcher.

  37. def typedUnApply(tree: ast.untpd.Apply, selType: Type)(implicit ctx: Context): ast.tpd.Tree

  38. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Compatibility

Inherited from AnyRef

Inherited from Any

Ungrouped