From 084971918ce000a561a87979734684e16501f69b Mon Sep 17 00:00:00 2001 From: 0xull Date: Tue, 26 May 2026 20:46:45 +0100 Subject: [PATCH] fix(soroban): skip placeholder CFGs in emit_functions_with_spec fixes #1906 Signed-off-by: 0xull --- src/emit/soroban/mod.rs | 3 +++ tests/soroban_testcases/mod.rs | 1 + tests/soroban_testcases/modifiers.rs | 17 +++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 tests/soroban_testcases/modifiers.rs diff --git a/src/emit/soroban/mod.rs b/src/emit/soroban/mod.rs index dab19fba5..7147ea316 100644 --- a/src/emit/soroban/mod.rs +++ b/src/emit/soroban/mod.rs @@ -279,6 +279,9 @@ impl SorobanTarget { .add_function("storage_initializer", init_type, None); for (func_decl, cfg) in defines { + if cfg.is_placeholder() { + continue; + } emit_cfg(&mut SorobanTarget, bin, contract, cfg, func_decl); } } diff --git a/tests/soroban_testcases/mod.rs b/tests/soroban_testcases/mod.rs index e1df43ec2..ad179907c 100644 --- a/tests/soroban_testcases/mod.rs +++ b/tests/soroban_testcases/mod.rs @@ -13,6 +13,7 @@ mod integer_width_warnings; mod liquidity_pool; mod mappings; mod math; +mod modifiers; mod print; mod storage; mod storage_array; diff --git a/tests/soroban_testcases/modifiers.rs b/tests/soroban_testcases/modifiers.rs new file mode 100644 index 000000000..851cc87b2 --- /dev/null +++ b/tests/soroban_testcases/modifiers.rs @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: Apache-2.0 + +use crate::build_solidity; + +#[test] +fn unused_modifier_compiles_without_panic() { + let src = build_solidity( + r#"contract C { + modifier m0() { _; } + function run() external pure {} + }"#, + |_| {}, + ); + + let addr = src.contracts.last().unwrap(); + src.invoke_contract(addr, "run", vec![]); +}