[WIP] Add discarded_future restriction lint #15617
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rain mentioned during their RustConf talk that it is easy to accidentally discard a Future before awaiting it when it is wrapped in a Result that you wish to ignore.
It generally makes sense that there are many reasons to ignore a Result, but fewer to ignore a future; so enabling it as a restriction lint seems useful for codebases that are heavily async.
This lint isn't correct yet: I'm not sure if we should lint on
Result<Future>,Future<Result>, both, or those types + options.Open q on naming:
discarded_futuresordiscarded_future?.stderrfile)cargo testpasses locallycargo dev update_lintscargo dev fmtchangelog: [
discarded_future]: new lintSummary Notes
Managed by
@rustbot—see help for details