Packages

trait States extends AnyRef

Self Type
Reifier
Source
States.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. States
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class State extends AnyRef

Value Members

  1. val state: Reifier.State

    Encapsulates reifier state

    Encapsulates reifier state

    When untangling reifier symbol tables from the reifier itself, I discovered that encoding of a symbol table (e.g. producing corresponding reificode) might cause subsequent reification (e.g. when filling in signatures and annotations for syms).

    This is a mess in the face of nested reifications, splices and inlining of thereof, so I made SymbolTable immutable, which brought a significant amount of sanity.

    However that wasn't enough. Sure, symbol table became immutable, but the reifier still needed to mutate its symtab field during reification. This caused nasty desyncs between the table being encoded and the table of the underlying reifier, so I decided to encapsulate the entire state here, so that encoding can backup the state before it starts and restore it after it completes.