Dotty Documentation

0.14.0-bin-SNAPSHOT

object Applications
extends Object with Serializable

[-] Constructors

[-] Members

[+] class ExtMethodApply

A wrapper indicating that its argument is an application of an extension method.

[+] object ExtMethodApply

The unapply method of this extractor also recognizes ExtMethodApplys in closure blocks. This is necessary to deal with closures as left arguments of extension method applications. A test case is i5606.scala

[+] def extractorMember ( tp: Type , name: Name ) ( implicit ctx: Context ) : SingleDenotation
[+] def extractorMemberType ( tp: Type , name: Name , errorPos: SourcePosition ) ( implicit ctx: Context ) : Type
[+] def getUnapplySelectors ( tp: Type , args: List [ Tree ] , pos: SourcePosition ) ( implicit ctx: Context ) : List [ Type ]
[+] def handleMeta ( tree: Tree ) ( implicit ctx: Context ) : tree.type
  1. If we are in an inline method but not in a nested quote, mark the inline method as a macro.

  2. If selection is a quote or splice node, record that fact in the current compilation unit.
[+] def isGetMatch ( tp: Type , errorPos: SourcePosition ) ( implicit ctx: Context ) : Boolean

Does tp fit the "get match" conditions as an unapply result type? This is the case of tp has a get member as well as a parameterless isEmpty member of result type Boolean.

[+] def isGetMatch$default$2 : NoSourcePosition.type

Does tp fit the "get match" conditions as an unapply result type? This is the case of tp has a get member as well as a parameterless isEmpty member of result type Boolean.

[+] def isProductMatch ( tp: Type , numArgs: Int , errorPos: SourcePosition ) ( implicit ctx: Context ) : Boolean

Does tp fit the "product match" conditions as an unapply result type for a pattern with numArgs subpatterns? This is the case if tp has members _1 to _N where N == numArgs.

[+] def isProductMatch$default$3 : NoSourcePosition.type

Does tp fit the "product match" conditions as an unapply result type for a pattern with numArgs subpatterns? This is the case if tp has members _1 to _N where N == numArgs.

[+] def isProductSeqMatch ( tp: Type , numArgs: Int , errorPos: SourcePosition ) ( implicit ctx: Context ) : Boolean

Does tp fit the "product-seq match" conditions as an unapply result type for a pattern with numArgs subpatterns? This is the case if (1) tp has members _1 to _N where N <= numArgs + 1. (2) tp._N conforms to Seq match

[+] def isProductSeqMatch$default$3 : NoSourcePosition.type

Does tp fit the "product-seq match" conditions as an unapply result type for a pattern with numArgs subpatterns? This is the case if (1) tp has members _1 to _N where N <= numArgs + 1. (2) tp._N conforms to Seq match

[+] def productArity ( tp: Type , errorPos: SourcePosition ) ( implicit ctx: Context ) : Int
[+] def productArity$default$2 : NoSourcePosition.type
[+] def productSelectorTypes ( tp: Type , errorPos: SourcePosition ) ( implicit ctx: Context ) : List [ Type ]
[+] def productSelectors ( tp: Type ) ( implicit ctx: Context ) : List [ Symbol ]
[+] def productSeqSelectors ( tp: Type , argsNum: Int , pos: SourcePosition ) ( implicit ctx: Context ) : List [ Type ]
[+] def unapplyArgs ( unapplyResult: Type , unapplyFn: Tree , args: List [ Tree ] , pos: SourcePosition ) ( implicit ctx: Context ) : List [ Type ]
[+] def unapplySeqTypeElemTp ( getTp: Type ) ( implicit ctx: Context ) : Type

If getType is of the form:

{
  def lengthCompare(len: Int): Int // or, def length: Int
  def apply(i: Int): T = a(i)
  def drop(n: Int): scala.Seq[T]
  def toSeq: scala.Seq[T]
}

returns T, otherwise NoType.

[+] def wrapDefs ( defs: ListBuffer [ Tree ] , tree: Tree ) ( implicit ctx: Context ) : Tree