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`.
26 lines
499 B
Rust
26 lines
499 B
Rust
#![warn(argument_comment_mismatch)]
|
|
#![warn(uncommented_anonymous_literal_argument)]
|
|
|
|
struct Builder;
|
|
|
|
impl Builder {
|
|
fn enabled(self, enabled: bool) -> Self {
|
|
let _ = enabled;
|
|
self
|
|
}
|
|
|
|
fn retry_count(self, retry_count: usize) -> Self {
|
|
let _ = retry_count;
|
|
self
|
|
}
|
|
|
|
fn base_url(self, base_url: Option<String>) -> Self {
|
|
let _ = base_url;
|
|
self
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let _ = Builder.enabled(false).retry_count(3).base_url(None);
|
|
}
|