Dotty Documentation

0.8.0-bin-SNAPSHOT

class ExprDecompiler
extends ExprCompiler

Compiler that takes the contents of a quoted expression expr and outputs it's tree.

[-] Constructors

ExprDecompiler ( output: Tree => Context => Unit )

[-] Members

[+] class QuoteTreeOutput
[+] private val output : Tree => Context => Unit
[+] override def phases : List [ List [ Phase ] ]

Meta-ordering constraint:

DenotTransformers that change the signature of their denotation's info must go after erasure. The reason is that denotations are permanently referred to by TermRefs which contain a signature. If the signature of a symbol would change, all refs to it would become outdated - they could not be dereferenced in the new phase.

After erasure, signature changing denot-transformers are OK because erasure will make sure that only term refs with fixed SymDenotations survive beyond it. This is possible because:

  • splitter has run, so every ident or select refers to a unique symbol
  • after erasure, asSeenFrom is the identity, so every reference has a plain SymDenotation, as opposed to a UniqueRefDenotation.