about summary refs log tree commit diff
path: root/src/test/compile-fail
diff options
context:
space:
mode:
authorAndrew Cann <shum@canndrew.org>2017-01-20 22:57:38 +0800
committerAndrew Cann <shum@canndrew.org>2017-01-20 22:57:38 +0800
commitcc0d63c54642f1a07fd5fdf86cfc3c0d240ece59 (patch)
treee43413fa85d4515509b6acaf67afc9176626c2e7 /src/test/compile-fail
parentdd13cc3e5d353c54b0c25a83aa5e5bd9fd21a304 (diff)
downloadrust-cc0d63c54642f1a07fd5fdf86cfc3c0d240ece59.tar.gz
rust-cc0d63c54642f1a07fd5fdf86cfc3c0d240ece59.zip
Remove attribute on match
Diffstat (limited to 'src/test/compile-fail')
-rw-r--r--src/test/compile-fail/unreachable-try-pattern.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/compile-fail/unreachable-try-pattern.rs b/src/test/compile-fail/unreachable-try-pattern.rs
new file mode 100644
index 00000000000..6b334a0f275
--- /dev/null
+++ b/src/test/compile-fail/unreachable-try-pattern.rs
@@ -0,0 +1,30 @@
+// Copyright 2013 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.
+
+#![feature(never_type)]
+#![deny(unreachable_code)]
+#![deny(unreachable_patterns)]
+
+fn bar(x: Result<!, i32>) -> Result<u32, i32> {
+    x?
+}
+
+fn foo(x: Result<!, i32>) -> Result<u32, i32> {
+    let y = (match x { Ok(n) => Ok(n as u32), Err(e) => Err(e) })?;
+    //~^ ERROR unreachable pattern
+    //~| ERROR unreachable expression
+    Ok(y)
+}
+
+fn main() {
+    let _ = bar(Err(123));
+    let _ = foo(Err(123));
+}
+