Skip to content

Lint to suggest .saturating_add/sub(x) for .checked_add/sub(x).unwrap_or(MAX/MIN) #1557

Closed
@sinkuu

Description

@sinkuu
unsigned.checked_add(x).unwrap_or(unsigned::MAX)
 -> unsigned.saturating_add(x)
unsigned.checked_sub(x).unwrap_or(0)
 -> unsigned.saturating_sub(x)

Signed versions can also be linted if literals are used.

signed.checked_add(non_negative_literal).unwrap_or(signed::MAX)
 -> signed.saturating_add(x)
signed.checked_add(    negative_literal).unwrap_or(signed::MIN)
 -> signed.saturating_add(x)

signed.checked_sub(non_negative_literal).unwrap_or(signed::MIN)
 -> signed.saturating_sub(x)
signed.checked_sub(    negative_literal).unwrap_or(signed::MAX)
 -> signed.saturating_sub(x)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-lintArea: New lintsT-middleType: Probably requires verifiying typesgood first issueThese issues are a good way to get started with Clippy

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions