about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorEtienne Millon <me@emillon.org>2013-07-24 18:00:33 +0200
committerEtienne Millon <me@emillon.org>2013-07-24 23:20:57 +0200
commit5c729c0dca65a014b6dec10cfd5259c6d0687d72 (patch)
tree1c60903581a094e90cc8c3ab4a3626e4de6a5706 /src/test
parent766eb950c6e7cdbab89e15200d0bd2dfee58e25e (diff)
downloadrust-5c729c0dca65a014b6dec10cfd5259c6d0687d72.tar.gz
rust-5c729c0dca65a014b6dec10cfd5259c6d0687d72.zip
Check for comparisons to NaN in patterns
For every pattern that refers to a static value, evaluate it and emit a warning
if it is a NaN.

Fixes #6804
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/issue-6804.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/compile-fail/issue-6804.rs b/src/test/compile-fail/issue-6804.rs
new file mode 100644
index 00000000000..85e09a777d1
--- /dev/null
+++ b/src/test/compile-fail/issue-6804.rs
@@ -0,0 +1,16 @@
+// Matching against NaN should result in a warning
+
+use std::float::NaN;
+
+fn main() {
+    let x = NaN;
+    match x {
+        NaN => {},
+        _ => {},
+    };
+    //~^^^ WARNING unmatchable NaN in pattern, use is_NaN() in a guard instead
+}
+
+// At least one error is needed so that compilation fails
+#[static_assert]
+static b: bool = false; //~ ERROR static assertion failed