Skip to main content Module deps Copy item path Source use super::data::ContractData ; ๐ use super::data::PreprocessorData ; ๐ use super::data::deploy_helper_path ; ๐ use super::data::reserved_identifiers ; ๐ use super::span_to_range ; ๐ use crate::fs::canonicalize_path ; ๐ use crate::fs::normalize_path ; ๐ use alloy_primitives::keccak256; ๐ use foundry_compilers::ProjectPathsConfig; ๐ use foundry_compilers::Updates; ๐ use foundry_compilers::artifacts::SolcLanguage; ๐ use foundry_compilers::artifacts::remappings::Remapping; ๐ use foundry_compilers::project::NativeDependencies; ๐ use foundry_compilers::project::NativeDependencyState; ๐ use foundry_compilers::project::PreprocessorState; ๐ use itertools::Itertools; ๐ use path_slash::PathExt; ๐ use solar::ast::ItemKind; ๐ use solar::ast::UserDefinableOperator; ๐ use solar::sema::Gcx; ๐ use solar::sema::Hir; ๐ use solar::sema::builtins::Builtin; ๐ use solar::sema::hir::CallArgs; ๐ use solar::sema::hir::CallArgsKind; ๐ use solar::sema::hir::CallOptions; ๐ use solar::sema::hir::Contract; ๐ use solar::sema::hir::ContractId; ๐ use solar::sema::hir::ContractKind; ๐ use solar::sema::hir::Expr; ๐ use solar::sema::hir::ExprKind; ๐ use solar::sema::hir::Function; ๐ use solar::sema::hir::FunctionId; ๐ use solar::sema::hir::FunctionKind; ๐ use solar::sema::hir::Modifier; ๐ use solar::sema::hir::Res; ๐ use solar::sema::hir::SourceId; ๐ use solar::sema::hir::StateMutability; ๐ use solar::sema::hir::Stmt; ๐ use solar::sema::hir::StmtKind; ๐ use solar::sema::hir::TypeKind; ๐ use solar::sema::hir::UsingDirective; ๐ use solar::sema::hir::UsingEntryKind; ๐ use solar::sema::hir::Variable; ๐ use solar::sema::hir::VariableId; ๐ use solar::sema::hir::Visibility; ๐ use solar::sema::hir::Visit; ๐ use solar::sema::interface::SourceMap; ๐ use solar::sema::interface::Symbol; ๐ use solar::sema::interface::data_structures::Never; ๐ use solar::sema::interface::source_map::FileName; ๐ use std::collections::BTreeMap ; ๐ use std::collections::BTreeSet ; ๐ use std::collections::HashSet ; ๐ use std::ops::ControlFlow ; ๐ use std::ops::Range ; ๐ use std::path::Path ; ๐ use std::path::PathBuf ; ๐ BytecodeDependency ๐ Represents a single bytecode dependency. BytecodeDependencyCollector ๐ Walks over contract HIR and collects BytecodeDependency s and referenced contracts. ConstructorContext ๐ Compiler and source context whose validation would be lost by rewriting construction. PreprocessorDependencies ๐ Holds data about referenced source contracts and bytecode dependencies. ReturnDataObserver ๐ Finds return-buffer observations in a contract and the helpers it can call internally. BytecodeDependencyKind ๐ Represents a bytecode dependency kind. add_native_dependencies ๐ Adds exact dependency paths unless the source is already classified conservatively. can_rewrite ๐ Returns whether generated helper and artifact references preserve the source-unit identity. constructor_uses_private_constants ๐ Returns whether constructor parameter types reference private constants. handle_call_expr ๐ Helper function to analyze and extract bytecode dependency from a given call expression. import_alias ๐ is_path_in_dir ๐ Returns whether path resolves within dir, accepting relative, absolute, and symlinked paths. named_arg ๐ Helper function to extract value of a given named arg. remapping_applies ๐ Returns whether a generated import would be redirected by remapping. remapping_matches_path ๐ Returns whether path has the string prefix selected by remapping. remove_bytecode_dependencies ๐ Goes over all test/script files and replaces bytecode dependencies with cheatcode
invocations. unique_identifier ๐ Returns an identifier that cannot collide with text in the original source. using_dependency_sources ๐ Returns sources whose code can be embedded through the given using for directives. valid_constructor_call ๐ Checks constraints that disappear when new is replaced by a cheatcode call.
The generated argument struct retains type checks, but not source ABI-coder restrictions.
Keep parameterized ABI-coder-v1 calls native rather than duplicating Solc ABI validation.