5

Improve wording of the `drop_bounds` lint by FabianWolff · Pull Request #86747 ·...

 3 years ago
source link: https://github.com/rust-lang/rust/pull/86747
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Copy link

Contributor

FabianWolff commented on Jun 30

edited

This PR addresses #86653. The issue is sort of a false positive of the drop_bounds lint, but I would argue that the best solution for #86653 is simply a rewording of the warning message and lint description, because even if the lint is technically wrong, it still forces the programmer to think about what they are doing, and they can always use #[allow(drop_bounds)] if they think that they really need the Drop bound.

There are two issues with the current warning message and lint description:

  • First, it says that Drop bounds are "useless", which is technically incorrect because they actually do have the effect of allowing you e.g. to call methods that also have a Drop bound on their generic arguments for some reason. I have changed the wording to emphasize not that the bound is "useless", but that it is most likely not what was intended.
  • Second, it claims that std::mem::needs_drop detects whether a type has a destructor. But I think this is also technically wrong: The Drop bound says whether the type has a destructor or not, whereas std::mem::needs_drop also takes nested types with destructors into account, even if the top-level type does not itself have one (although I'm not 100% sure about the exact terminology here, i.e. whether the "drop glue" of the top-level type counts as a destructor or not).

cc @jonhoo, does this solve the issue for you?

r? @GuillaumeGomez


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK