rust-lang/rust-clippy

useless op on lhs of integer division or modulo

Open

#1.324 aberto em 7 de nov. de 2016

Ver no GitHub
 (2 comments) (0 reactions) (1 assignee)Rust (1.391 forks)batch import
A-lintL-correctnessL-unnecessaryT-middlegood first issue

Métricas do repositório

Stars
 (10.406 stars)
Métricas de merge de PR
 (Mesclagem média 19d 22h) (113 fundiu PRs em 30d)

Description

(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.

Guia do colaborador