charon_lib::ast

Module gast

source
Expand description

Definitions common to crate::ullbc_ast and crate::llbc_ast

Structs§

  • Asserts are special constructs introduced by Rust to perform dynamic checks, to detect out-of-bounds accesses or divisions by zero for instance. We eliminate the assertions in [crate::remove_dynamic_checks], then introduce other dynamic checks in [crate::reconstruct_asserts].
  • A function definition
  • An expression body. TODO: arg_count should be stored in GFunDecl below. But then, the print is obfuscated and Aeneas may need some refactoring.
  • A global variable definition (constant or static).
  • Reference to a global declaration.
  • The local variables of a body.
  • Marker to indicate that a declaration is opaque (i.e. we don’t inspect its body).
  • A trait declaration.
  • A trait implementation.
  • A variable

Enums§

  • The body of a function or a constant.
  • A function operand is used in function calls. It either designates a top-level function, or a place in case we are using function pointers stored in local variables.
  • Item kind: whether this function/const is part of a trait declaration, trait implementation, or neither.