about summary refs log tree commit diff
path: root/tests/ui
diff options
context:
space:
mode:
authorCatherine <114838443+Centri3@users.noreply.github.com>2023-06-30 11:31:08 -0500
committerCatherine <114838443+Centri3@users.noreply.github.com>2023-07-06 20:27:21 -0500
commitf12edfdb53b13008dcff9eba2a3fd9a19370d2ee (patch)
treed021e96ce7d4b54a29acadb55bf07a549fc8e229 /tests/ui
parentdd8e44c5a22ab646821252604420c5bb82c36aa9 (diff)
`manual_float_methods`
Diffstat (limited to 'tests/ui')
-rw-r--r--tests/ui/manual_float_methods.fixed37
-rw-r--r--tests/ui/manual_float_methods.rs37
-rw-r--r--tests/ui/manual_float_methods.stderr42
3 files changed, 116 insertions, 0 deletions
diff --git a/tests/ui/manual_float_methods.fixed b/tests/ui/manual_float_methods.fixed
new file mode 100644
index 00000000000..87a23b5a75b
--- /dev/null
+++ b/tests/ui/manual_float_methods.fixed
@@ -0,0 +1,37 @@
+//@run-rustfix
+//@aux-build:proc_macros.rs:proc-macro
+#![allow(clippy::needless_if, unused)]
+#![warn(clippy::manual_is_infinite, clippy::manual_is_finite)]
+
+#[macro_use]
+extern crate proc_macros;
+
+const INFINITE: f32 = f32::INFINITY;
+const NEG_INFINITE: f32 = f32::NEG_INFINITY;
+
+fn main() {
+    let x = 1.0f32;
+    if x.is_infinite() {}
+    if x.is_finite() {}
+    if x.is_infinite() {}
+    if x.is_finite() {}
+    let x = 1.0f64;
+    if x.is_infinite() {}
+    if x.is_finite() {}
+    // Don't lint
+    if x.is_infinite() {}
+    if x.is_finite() {}
+    // If they're doing it this way, they probably know what they're doing
+    if x.abs() < f64::INFINITY {}
+    external! {
+        let x = 1.0;
+        if x == f32::INFINITY || x == f32::NEG_INFINITY {}
+        if x != f32::INFINITY && x != f32::NEG_INFINITY {}
+    }
+    with_span! {
+        span
+        let x = 1.0;
+        if x == f32::INFINITY || x == f32::NEG_INFINITY {}
+        if x != f32::INFINITY && x != f32::NEG_INFINITY {}
+    }
+}
diff --git a/tests/ui/manual_float_methods.rs b/tests/ui/manual_float_methods.rs
new file mode 100644
index 00000000000..9255bf93418
--- /dev/null
+++ b/tests/ui/manual_float_methods.rs
@@ -0,0 +1,37 @@
+//@run-rustfix
+//@aux-build:proc_macros.rs:proc-macro
+#![allow(clippy::needless_if, unused)]
+#![warn(clippy::manual_is_infinite, clippy::manual_is_finite)]
+
+#[macro_use]
+extern crate proc_macros;
+
+const INFINITE: f32 = f32::INFINITY;
+const NEG_INFINITE: f32 = f32::NEG_INFINITY;
+
+fn main() {
+    let x = 1.0f32;
+    if x == f32::INFINITY || x == f32::NEG_INFINITY {}
+    if x != f32::INFINITY && x != f32::NEG_INFINITY {}
+    if x == INFINITE || x == NEG_INFINITE {}
+    if x != INFINITE && x != NEG_INFINITE {}
+    let x = 1.0f64;
+    if x == f64::INFINITY || x == f64::NEG_INFINITY {}
+    if x != f64::INFINITY && x != f64::NEG_INFINITY {}
+    // Don't lint
+    if x.is_infinite() {}
+    if x.is_finite() {}
+    // If they're doing it this way, they probably know what they're doing
+    if x.abs() < f64::INFINITY {}
+    external! {
+        let x = 1.0;
+        if x == f32::INFINITY || x == f32::NEG_INFINITY {}
+        if x != f32::INFINITY && x != f32::NEG_INFINITY {}
+    }
+    with_span! {
+        span
+        let x = 1.0;
+        if x == f32::INFINITY || x == f32::NEG_INFINITY {}
+        if x != f32::INFINITY && x != f32::NEG_INFINITY {}
+    }
+}
diff --git a/tests/ui/manual_float_methods.stderr b/tests/ui/manual_float_methods.stderr
new file mode 100644
index 00000000000..00227593a9e
--- /dev/null
+++ b/tests/ui/manual_float_methods.stderr
@@ -0,0 +1,42 @@
+error: manually checking if a float is infinite
+  --> $DIR/manual_float_methods.rs:14:8
+   |
+LL |     if x == f32::INFINITY || x == f32::NEG_INFINITY {}
+   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.is_infinite()`
+   |
+   = note: `-D clippy::manual-is-infinite` implied by `-D warnings`
+
+error: manually checking if a float is finite
+  --> $DIR/manual_float_methods.rs:15:8
+   |
+LL |     if x != f32::INFINITY && x != f32::NEG_INFINITY {}
+   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.is_finite()`
+   |
+   = note: `-D clippy::manual-is-finite` implied by `-D warnings`
+
+error: manually checking if a float is infinite
+  --> $DIR/manual_float_methods.rs:16:8
+   |
+LL |     if x == INFINITE || x == NEG_INFINITE {}
+   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.is_infinite()`
+
+error: manually checking if a float is finite
+  --> $DIR/manual_float_methods.rs:17:8
+   |
+LL |     if x != INFINITE && x != NEG_INFINITE {}
+   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.is_finite()`
+
+error: manually checking if a float is infinite
+  --> $DIR/manual_float_methods.rs:19:8
+   |
+LL |     if x == f64::INFINITY || x == f64::NEG_INFINITY {}
+   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.is_infinite()`
+
+error: manually checking if a float is finite
+  --> $DIR/manual_float_methods.rs:20:8
+   |
+LL |     if x != f64::INFINITY && x != f64::NEG_INFINITY {}
+   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.is_finite()`
+
+error: aborting due to 6 previous errors
+