Skip to content

Commit

Permalink
Improve approx_constant output
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Wright committed Sep 5, 2021
1 parent 4ee9ec9 commit 19d8a3e
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 29 deletions.
12 changes: 5 additions & 7 deletions clippy_lints/src/approx_const.rs
@@ -1,4 +1,4 @@
use clippy_utils::diagnostics::span_lint;
use clippy_utils::diagnostics::span_lint_and_help;
use clippy_utils::{meets_msrv, msrvs};
use rustc_ast::ast::{FloatTy, LitFloatType, LitKind};
use rustc_hir::{Expr, ExprKind};
Expand Down Expand Up @@ -88,15 +88,13 @@ impl ApproxConstant {
if is_approx_const(constant, &s, min_digits)
&& msrv.as_ref().map_or(true, |msrv| meets_msrv(self.msrv.as_ref(), msrv))
{
span_lint(
span_lint_and_help(
cx,
APPROX_CONSTANT,
e.span,
&format!(
"approximate value of `{}::consts::{}` found. \
Consider using it directly",
module, &name
),
&format!("approximate value of `{}::consts::{}` found", module, &name),
None,
"consider using the constant directly",
);
return;
}
Expand Down
83 changes: 62 additions & 21 deletions tests/ui/approx_const.stderr
@@ -1,130 +1,171 @@
error: approximate value of `f{32, 64}::consts::E` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::E` found
--> $DIR/approx_const.rs:4:16
|
LL | let my_e = 2.7182;
| ^^^^^^
|
= note: `-D clippy::approx-constant` implied by `-D warnings`
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::E` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::E` found
--> $DIR/approx_const.rs:5:20
|
LL | let almost_e = 2.718;
| ^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::FRAC_1_PI` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::FRAC_1_PI` found
--> $DIR/approx_const.rs:8:24
|
LL | let my_1_frac_pi = 0.3183;
| ^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::FRAC_1_SQRT_2` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::FRAC_1_SQRT_2` found
--> $DIR/approx_const.rs:11:28
|
LL | let my_frac_1_sqrt_2 = 0.70710678;
| ^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::FRAC_1_SQRT_2` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::FRAC_1_SQRT_2` found
--> $DIR/approx_const.rs:12:32
|
LL | let almost_frac_1_sqrt_2 = 0.70711;
| ^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::FRAC_2_PI` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::FRAC_2_PI` found
--> $DIR/approx_const.rs:15:24
|
LL | let my_frac_2_pi = 0.63661977;
| ^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::FRAC_2_SQRT_PI` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::FRAC_2_SQRT_PI` found
--> $DIR/approx_const.rs:18:27
|
LL | let my_frac_2_sq_pi = 1.128379;
| ^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::FRAC_PI_2` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::FRAC_PI_2` found
--> $DIR/approx_const.rs:21:24
|
LL | let my_frac_pi_2 = 1.57079632679;
| ^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::FRAC_PI_3` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::FRAC_PI_3` found
--> $DIR/approx_const.rs:24:24
|
LL | let my_frac_pi_3 = 1.04719755119;
| ^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::FRAC_PI_4` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::FRAC_PI_4` found
--> $DIR/approx_const.rs:27:24
|
LL | let my_frac_pi_4 = 0.785398163397;
| ^^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::FRAC_PI_6` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::FRAC_PI_6` found
--> $DIR/approx_const.rs:30:24
|
LL | let my_frac_pi_6 = 0.523598775598;
| ^^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::FRAC_PI_8` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::FRAC_PI_8` found
--> $DIR/approx_const.rs:33:24
|
LL | let my_frac_pi_8 = 0.3926990816987;
| ^^^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::LN_10` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::LN_10` found
--> $DIR/approx_const.rs:36:20
|
LL | let my_ln_10 = 2.302585092994046;
| ^^^^^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::LN_2` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::LN_2` found
--> $DIR/approx_const.rs:39:19
|
LL | let my_ln_2 = 0.6931471805599453;
| ^^^^^^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::LOG10_E` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::LOG10_E` found
--> $DIR/approx_const.rs:42:22
|
LL | let my_log10_e = 0.4342944819032518;
| ^^^^^^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::LOG2_E` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::LOG2_E` found
--> $DIR/approx_const.rs:45:21
|
LL | let my_log2_e = 1.4426950408889634;
| ^^^^^^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::LOG2_10` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::LOG2_10` found
--> $DIR/approx_const.rs:48:19
|
LL | let log2_10 = 3.321928094887362;
| ^^^^^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::LOG10_2` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::LOG10_2` found
--> $DIR/approx_const.rs:51:19
|
LL | let log10_2 = 0.301029995663981;
| ^^^^^^^^^^^^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::PI` found
--> $DIR/approx_const.rs:54:17
|
LL | let my_pi = 3.1415;
| ^^^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::PI` found
--> $DIR/approx_const.rs:55:21
|
LL | let almost_pi = 3.14;
| ^^^^
|
= help: consider using the constant directly

error: approximate value of `f{32, 64}::consts::SQRT_2` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::SQRT_2` found
--> $DIR/approx_const.rs:58:18
|
LL | let my_sq2 = 1.4142;
| ^^^^^^
|
= help: consider using the constant directly

error: aborting due to 21 previous errors

3 changes: 2 additions & 1 deletion tests/ui/proc_macro.stderr
@@ -1,10 +1,11 @@
error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly
error: approximate value of `f{32, 64}::consts::PI` found
--> $DIR/proc_macro.rs:10:14
|
LL | let _x = 3.14;
| ^^^^
|
= note: `#[deny(clippy::approx_constant)]` on by default
= help: consider using the constant directly

error: aborting due to previous error

0 comments on commit 19d8a3e

Please sign in to comment.