neo_solidity/
ir.rs

1//! Canonical intermediate representation for Neo Solidity.
2
3use crate::solidity::{
4    ContractMetadata, EnumMetadata, FunctionKind as MetadataFunctionKind, FunctionMetadata,
5    ParameterMetadata, SelectorRegistry, StateVariableMetadata,
6};
7use crate::storage_key::compute_state_slot;
8use hex::decode as hex_decode;
9use num_bigint::BigInt;
10use num_traits::{One, ToPrimitive, Zero};
11use sha3::{Digest, Keccak256};
12use solang_parser::pt::{
13    Expression, HexLiteral as PtHexLiteral, Identifier, Statement,
14    StorageLocation as PtStorageLocation, StringLiteral as PtStringLiteral, Type as PtType,
15};
16use std::collections::{HashMap, HashSet};
17
18include!("ir/ir_types.rs");
19include!("ir/ir_build.rs");
20include!("ir/ir_context.rs");
21include!("ir/ir_statements.rs");
22include!("ir/ir_expressions.rs");
23include!("ir/ir_deploy.rs");
24
25#[cfg(test)]
26mod tests;