Crate cairo_lang_semantic

Source
Expand description

Semantic model representation and queries for Cairo. The semantic model represents the Cairo program after type resolution and some syntax desugaring.

Re-exports§

pub use diagnostic::SemanticDiagnostic;
pub use substitution::SemanticObject;
pub use crate::expr::pattern::Pattern;
pub use crate::expr::pattern::PatternEnumVariant;
pub use crate::expr::pattern::PatternFixedSizeArray;
pub use crate::expr::pattern::PatternLiteral;
pub use crate::expr::pattern::PatternOtherwise;
pub use crate::expr::pattern::PatternStringLiteral;
pub use crate::expr::pattern::PatternStruct;
pub use crate::expr::pattern::PatternTuple;
pub use crate::expr::pattern::PatternVariable;
pub use crate::items::enm::ConcreteVariant;
pub use crate::items::enm::MatchArmSelector;
pub use crate::items::enm::ValueSelectorArm;
pub use crate::items::enm::Variant;
pub use crate::items::function_with_body::FunctionBody;
pub use crate::items::functions::ConcreteFunction;
pub use crate::items::functions::ConcreteFunctionWithBodyId;
pub use crate::items::functions::FunctionId;
pub use crate::items::functions::FunctionLongId;
pub use crate::items::functions::Signature;
pub use crate::items::generics::GenericArgumentId;
pub use crate::items::generics::GenericParam;
pub use crate::items::imp::ConcreteImplId;
pub use crate::items::imp::ConcreteImplLongId;
pub use crate::items::structure::Member;
pub use crate::items::trt::ConcreteTraitId;
pub use crate::items::trt::ConcreteTraitLongId;
pub use crate::types::ConcreteEnumId;
pub use crate::types::ConcreteExternTypeId;
pub use crate::types::ConcreteStructId;
pub use crate::types::ConcreteTypeId;
pub use crate::types::TypeId;
pub use crate::types::TypeLongId;
pub use super::expr::objects::*;

Modules§

corelib
db
diagnostic
expr
This module is responsible for inner code elements, such as expressions and statements.
inline_macros
items
literals
lookup_item
lsp_helpers
plugin
resolve
substitution
types
usage
Introduces Usages, which is responsible for computing variables usage in semantic blocks
of a function.

Macros§

add_basic_rewrites
add_expr_rewrites
add_rewrite
add_rewrite_identity
prune_single
semantic_object_for_id

Structs§

LocalItem
Semantic model of a local item.
LocalVariable
Semantic model of a variable.
ParamId
Parameter

Enums§

Binding
Mutability
The mutability attribute of a variable.
StatementItemKind
Semantic model of statement item kind.
VarId
Id for any variable definition.