Module move_model::ast

source ·
Expand description

Contains AST definitions for the specification language fragments of the Move language. Note that in this crate, specs are represented in AST form, whereas code is represented as bytecodes. Therefore we do not need an AST for the Move code itself.

Structs

  • An internalized expression. We do use a wrapper around the underlying internement implementation variant to ensure a unique API (LocalIntern and ArcIntern e.g. differ in the presence of the Copy trait, and by wrapping we effectively remove the Copy from LocalIntern).
  • Helper type for expression display.
  • Describes a global invariant.
  • Names
  • A helper to support module names in formatting.
  • Helper type for operation display.
  • A helper to support qualified symbols in formatting.
  • Specification and properties associated with a language item.
  • Information about a specification block in the source. This is used for documentation generation. In the object model, the original locations and documentation of spec blocks is reduced to conditions on a Spec, with expansion of schemas. This data structure allows us to discover the original spec blocks and their content.
  • Declarations

Enums

Type Definitions