rust-lang/rust-clippy
Auf GitHub ansehenlint idea: `useless_default_generic_parameters`
Open
#14.848 geöffnet am 19. Mai 2025
A-lintG-Rust-for-Linuxgood first issue
Repository-Metriken
- Stars
- (10.406 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 16T 6h) (79 gemergte PRs in 30 T)
Beschreibung
What it does
Given a type with a generic argument that has a default:
type Result<T = ()> = core::result::Result<T, MyError>;
Usage of this type when specifying the default should not use generics:
fn foo() -> Result<()> { Ok(()) }
// ^^^^ unnecessary generic, `()` already is the default
// hint: use `Result` instead.
Advantage
- Removes duplication of the default value
- Reduces visual clutter
- Reminds people that the type has a default value
Drawbacks
- when a library adds a default value, one gets this warning when updating
- macros might trigger this involuntarily
Example
type Result<T = ()> = core::result::Result<T, MyError>;
fn foo() -> Result<()> {
Ok(())
}
Could be written as:
type Result<T = ()> = core::result::Result<T, MyError>;
fn foo() -> Result {
Ok(())
}