Description
The interoperability API guidelines suggest that all of the following traits should be eagerly implemented for types where it's appropriate:
Copy
Clone
Eq
PartialEq
Ord
PartialOrd
Hash
Debug
Display
Default
Both Debug
and Copy
have corresponding missing_${TRAIT}_implementations
lints in rustc
for checking that they exist. These lints have recently become of interest for libc
because of RFC2235. However, since some of these traits rely on manual implementations, it'd be useful to have lints to fail CI should any desired lints be missed in a PR.
Given that two of these lints already exist and the API guidelines lay out a clear standard practice, I'm not certain if an RFC is required to add the rest of these lints, so I'm raising this issue. My plan is to work through adding the lints for Clone
, Eq
, Hash
, and PartialEq
, as they're required for rust-lang/libc#1217.