PR: #41 (feat/executor: transaction builder + eth_call simulator)
File: crates/charon-executor/Cargo.toml
Refs #41
Problem
crates/charon-executor/Cargo.toml has no [lints] section. CLAUDE.md documents workspace lint policy:
forbid unsafe_code, deny arithmetic_side_effects, deny cast_possible_truncation, deny unwrap_used
These are only enforced if the root Cargo.toml has a [workspace.lints] table and each crate opts in via lints.workspace = true, or if the crate declares them individually. Neither is present for charon-executor. cargo clippy --workspace silently skips enforcement of these rules in this crate.
Note: the root [workspace.lints] table is also absent from Cargo.toml — this is a pre-existing gap across all crates, but this PR introduces a new crate that compounds the problem.
Fix
Add to crates/charon-executor/Cargo.toml:
Add to the root Cargo.toml:
[workspace.lints.rust]
unsafe_code = "forbid"
unwrap_used = "deny"
[workspace.lints.clippy]
arithmetic_side_effects = "deny"
cast_possible_truncation = "deny"
PR: #41 (feat/executor: transaction builder + eth_call simulator)
File: crates/charon-executor/Cargo.toml
Refs #41
Problem
crates/charon-executor/Cargo.toml has no [lints] section. CLAUDE.md documents workspace lint policy:
These are only enforced if the root Cargo.toml has a [workspace.lints] table and each crate opts in via lints.workspace = true, or if the crate declares them individually. Neither is present for charon-executor. cargo clippy --workspace silently skips enforcement of these rules in this crate.
Note: the root [workspace.lints] table is also absent from Cargo.toml — this is a pre-existing gap across all crates, but this PR introduces a new crate that compounds the problem.
Fix
Add to crates/charon-executor/Cargo.toml:
Add to the root Cargo.toml: