about summary refs log tree commit diff
path: root/src/test/compile-fail/precise-refutable-pattern-errors.rs
diff options
context:
space:
mode:
authorHuon Wilson <dbau.pp+github@gmail.com>2014-05-26 22:42:48 +1000
committerHuon Wilson <dbau.pp+github@gmail.com>2014-05-27 09:24:37 +1000
commit0df221e993a1f7f1fc4d80c6a4fa0e43c05c30c7 (patch)
tree70991567ab924e367ad9db9f46191e071ee53514 /src/test/compile-fail/precise-refutable-pattern-errors.rs
parentf2a137829e07505aaaa2be4ae97d6ecfb6ef6823 (diff)
downloadrust-0df221e993a1f7f1fc4d80c6a4fa0e43c05c30c7.tar.gz
rust-0df221e993a1f7f1fc4d80c6a4fa0e43c05c30c7.zip
rustc: provide more precise information about refutable patterns.
The compiler now points exactly which part(s) of a pattern are
refutable, rather than just highlighting the whole pattern.
Diffstat (limited to 'src/test/compile-fail/precise-refutable-pattern-errors.rs')
-rw-r--r--src/test/compile-fail/precise-refutable-pattern-errors.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/compile-fail/precise-refutable-pattern-errors.rs b/src/test/compile-fail/precise-refutable-pattern-errors.rs
new file mode 100644
index 00000000000..efa2dbad83f
--- /dev/null
+++ b/src/test/compile-fail/precise-refutable-pattern-errors.rs
@@ -0,0 +1,32 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+
+fn func(
+    (
+        1, //~ ERROR refutable pattern in function argument
+        (
+            Some( //~ ERROR refutable pattern in function argument
+                1), // nested, so no warning.
+            2..3 //~ ERROR refutable pattern in function argument
+            )
+        ): (int, (Option<int>, int))
+        ) {}
+
+fn main() {
+    let (
+        1, //~ ERROR refutable pattern in local binding
+        (
+            Some( //~ ERROR refutable pattern in local binding
+                1), // nested, so no warning.
+            2..3 //~ ERROR refutable pattern in local binding
+            )
+        ) = (1, (None, 2));
+}