Dotty Documentation


object PatternMatcher
extends Object with Serializable

[-] Constructors

[-] Members

[+] class Translator

The pattern matching translator. Its general structure is a pipeline:

Match tree ---matchPlan---> Plan ---optimize---> Plan ---emit---> Tree

The pipeline consists of three steps:

  • build a plan, using methods matchPlan, caseDefPlan, patternPlan.
  • optimize the plan, using methods listed in optimization,
  • emit the translated tree, using methods emit, collectSwitchCases, emitSwitchCases, and emitCondition.

A plan represents the underlying decision graph. It consists of tests, let bindings, labeled blocks, return from said labeled blocks and code blocks. It's represented by its own data type. Plans are optimized by merging common tests and eliminating dead code.

[+] final val MinSwitchCases : 4

Minimal number of cases to emit a switch

[+] val name : String
[+] final val selfCheck : false
[+] def isPatmatGenerated ( sym: Symbol ) ( implicit ctx: Context ) : Boolean

Was symbol generated by pattern matcher?