mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
52db447c77
Builder-style setters often repeat the setting name in both the method and its sole argument. Calls such as `.enabled(false)` are already self-documenting, so requiring `/*enabled*/` adds noise without clarifying the call. ## What changed - Exempt a method's sole non-self argument when its resolved parameter name matches the method name. - Continue validating any explicit argument comment against the resolved parameter name. - Continue requiring comments when method and parameter names differ or when a method has multiple non-self arguments. - Document the exception in `AGENTS.md` and the lint's own behavior documentation. ## Examples Before this change we'd need redundant comments like this: ```rust builder.enabled(/*false*/ false); builder.retry_count(/*retry_count*/ 3); builder.base_url(/*base_url*/ None); ``` Now can be written like this: ```rust builder.enabled(false); builder.retry_count(3); builder.base_url(None); ``` Still disallowed: ```rust client.set_flag(true); // Method name does not match parameter `enabled`. options.enabled(false, /*retry_count*/ 3); // More than one non-self argument. options.enabled(/*value*/ false); // Explicit comment does not match `enabled`. ``` ## Validation Added UI coverage for boolean, numeric, and `None` builder arguments, multi-argument methods, and explicit comment mismatches. Ran `rustup run nightly-2025-09-18 cargo test` in `tools/argument-comment-lint`.
15 lines
279 B
Rust
15 lines
279 B
Rust
#![warn(uncommented_anonymous_literal_argument)]
|
|
|
|
struct Options;
|
|
|
|
impl Options {
|
|
fn enabled(self, enabled: bool, retry_count: usize) -> Self {
|
|
let _ = (enabled, retry_count);
|
|
self
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let _ = Options.enabled(false, /*retry_count*/ 3);
|
|
}
|