Skip to main content

Module external_function

Module external_function 

Source

Re-exportsยง

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; ๐Ÿ”’

Structsยง

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 ๐Ÿ”’

Constantsยง

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.

Staticsยง

EXTERNAL_FUNCTION

Functionsยง

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.