diff options
| author | Jason Newcomb <jsnewcomb@pm.me> | 2022-06-01 01:33:06 -0400 |
|---|---|---|
| committer | Jason Newcomb <jsnewcomb@pm.me> | 2022-06-28 12:51:30 -0400 |
| commit | a8df16ae1df9084dc8e20e835f3de981e32d110c (patch) | |
| tree | 486fee7cc55dca50d9c52c03512a67d483dc5baa /clippy_lints/src/operators/integer_division.rs | |
| parent | 83de67cfec4a1e68c8b63ec8153777c51a19addc (diff) | |
Move `IntegerDivision` into `Operators` lint pass
Diffstat (limited to 'clippy_lints/src/operators/integer_division.rs')
| -rw-r--r-- | clippy_lints/src/operators/integer_division.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/clippy_lints/src/operators/integer_division.rs b/clippy_lints/src/operators/integer_division.rs new file mode 100644 index 00000000000..631d10f4a72 --- /dev/null +++ b/clippy_lints/src/operators/integer_division.rs @@ -0,0 +1,27 @@ +use clippy_utils::diagnostics::span_lint_and_help; +use rustc_hir as hir; +use rustc_lint::LateContext; + +use super::INTEGER_DIVISION; + +pub(crate) fn check<'tcx>( + cx: &LateContext<'tcx>, + expr: &'tcx hir::Expr<'_>, + op: hir::BinOpKind, + left: &'tcx hir::Expr<'_>, + right: &'tcx hir::Expr<'_>, +) { + if op == hir::BinOpKind::Div + && cx.typeck_results().expr_ty(left).is_integral() + && cx.typeck_results().expr_ty(right).is_integral() + { + span_lint_and_help( + cx, + INTEGER_DIVISION, + expr.span, + "integer division", + None, + "division of integers may cause loss of precision. consider using floats", + ); + } +} |
