ITADN

no-unused-vars rule not detecting unused variables in modifiers

#711Closedloki-sama 创建于 2025-08-19
L
loki-samacommented
# Solhint Bug Report: no-unused-vars rule not detecting unused variables in modifiers ## Bug Description The `no-unused-vars` rule is not detecting unused variables in Solidity modifiers, even when configured as an error in `.solhint.json`. ## Expected Behavior When the `no-unused-vars` rule is enabled, it should detect and report unused variables in all contexts including: - Function parameters - Local variables - Modifier parameters - Modifier local variables ## Actual Behavior The rule only detects unused variables in regular functions but ignores them in modifiers. ## Steps to Reproduce ### 1. Create a test contract with unused variables in modifiers ```solidity // SPDX-License-Identifier: MIT pragma solidity 0.8.27; contract UnusedVariableTest { uint256 public value; address public owner; modifier onlyOwner(uint256 _unusedParam) { // This parameter is declared but never used require(msg.sender == owner, "Not owner"); _; } modifier withUnusedVariable(uint256 amount) { uint256 unusedLocalVar = 42; // This local variable is never used require(amount > 0, "Amount must be positive"); _; } constructor() { owner = msg.sender; } function setValue(uint256 newValue) external onlyOwner(123) { value = newValue; } function incrementValue(uint256 increment) external withUnusedVariable(increment) { value += increment; } } ``` ## Environment - Solhint version: 6.0.0 - Solidity version: 0.8.27
关闭于 2025-08-22 2 条评论