Skip to main content Module external_function Copy item path Source use super::ExternalFunction ; ๐ use crate::linter::LateLintPass ; ๐ use crate::linter::LintContext ; ๐ use crate::sol::Severity ; ๐ use crate::sol::SolLint ; ๐ use crate::sol::analysis::is_builtin ; ๐ use solar::ast::ContractKind; ๐ use solar::ast::DataLocation; ๐ use solar::ast::Visibility; ๐ use solar::interface::data_structures::Never; ๐ use solar::interface::sym; ๐ use solar::sema::Gcx; ๐ use solar::sema::hir; ๐ use solar::sema::hir::ContractId; ๐ use solar::sema::hir::Expr; ๐ use solar::sema::hir::ExprKind; ๐ use solar::sema::hir::FunctionId; ๐ use solar::sema::hir::Stmt; ๐ use solar::sema::hir::StmtKind; ๐ use solar::sema::hir::VariableId; ๐ use solar::sema::hir::Visit as _; ๐ use solar::sema::ty::TyKind; ๐ use std::cell::RefCell ; ๐ use std::collections::HashMap ; ๐ use std::collections::HashSet ; ๐ use std::ops::ControlFlow ; ๐ use std::rc::Rc ; ๐ IndexBuilder ๐ ParamEscapeFinder ๐ Breaks when a parameter is written, aliased, passed to a callee or modifier that could mutate
it through the internal-call memory-reference aliasing rule. ProjectIndex ๐ PROJECT_INDEX ๐ Project index keyed by the HIR address, which is stable for the whole lint run, so the
index is built once instead of once per contract. EXTERNAL_FUNCTION build_project_index ๐ is_memory_reference ๐ project_index ๐ root_var_is ๐ Whether the variable at the root of expr (through parens, members, indexes and slices)
satisfies pred.