Skip to content

useless op on lhs of integer division or modulo #1324

Open
@oli-obk

Description

@oli-obk

(x + n + y) % n or (x + n + y) / n can simply be replaced by (x + y) % n or (x + y) / n + 1

this isn't true for the following computations on unsigned integers:

(x + n - y) % n or (x + n - y) / n

as they might go negative due to the subtraction. For explicitly evading INT_MAX issues, this lint will cause false positives, but that could be evaded by not linting if INT_MAX is mentioned somewhere near the operation.

most likely, whenever this lint triggers, it is a bug in the equation, so the suggestion doesn't fix the underlying issue, but it will raise awareness of it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-lintArea: New lintsL-correctnessLint: Belongs in the correctness lint groupL-unnecessaryLint: Warn about unnecessary codeT-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