about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorJakub Wieczorek <jakub@jakub.cc>2014-09-20 13:26:10 +0200
committerJakub Wieczorek <jakub@jakub.cc>2014-09-24 21:03:55 +0200
commit2ec795b4f030ec19cf2ddc48fe5e2e158d5c0e42 (patch)
treec5ca465bb749f2080b34c5223bf8e8500b23ec40 /src/test
parent9e3bf02c381c9d4dd6b5ace6815febab3b89fecf (diff)
downloadrust-2ec795b4f030ec19cf2ddc48fe5e2e158d5c0e42.tar.gz
rust-2ec795b4f030ec19cf2ddc48fe5e2e158d5c0e42.zip
Add detection of unused enum variants
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/lint-dead-code-1.rs6
-rw-r--r--src/test/compile-fail/lint-dead-code-4.rs4
-rw-r--r--src/test/compile-fail/lint-dead-code-5.rs41
3 files changed, 48 insertions, 3 deletions
diff --git a/src/test/compile-fail/lint-dead-code-1.rs b/src/test/compile-fail/lint-dead-code-1.rs
index a2d2c02dc43..8c40ea2afe2 100644
--- a/src/test/compile-fail/lint-dead-code-1.rs
+++ b/src/test/compile-fail/lint-dead-code-1.rs
@@ -63,8 +63,12 @@ pub struct PubStruct2 {
 pub enum pub_enum { foo1, bar1 }
 pub enum pub_enum2 { a(*const StructUsedInEnum) }
 pub enum pub_enum3 { Foo = STATIC_USED_IN_ENUM_DISCRIMINANT }
+
 enum priv_enum { foo2, bar2 } //~ ERROR: code is never used
-enum used_enum { foo3, bar3 }
+enum used_enum {
+    foo3,
+    bar3 //~ ERROR code is never used
+}
 
 fn f<T>() {}
 
diff --git a/src/test/compile-fail/lint-dead-code-4.rs b/src/test/compile-fail/lint-dead-code-4.rs
index 718af1841b6..826faad32c9 100644
--- a/src/test/compile-fail/lint-dead-code-4.rs
+++ b/src/test/compile-fail/lint-dead-code-4.rs
@@ -28,8 +28,8 @@ fn field_read(f: Foo) -> uint {
 }
 
 enum XYZ {
-    X,
-    Y {
+    X, //~ ERROR variant is never used
+    Y { //~ ERROR variant is never used
         a: String,
         b: int //~ ERROR: code is never used
     },
diff --git a/src/test/compile-fail/lint-dead-code-5.rs b/src/test/compile-fail/lint-dead-code-5.rs
new file mode 100644
index 00000000000..c26ae1a7023
--- /dev/null
+++ b/src/test/compile-fail/lint-dead-code-5.rs
@@ -0,0 +1,41 @@
+// 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.
+
+#![feature(struct_variant)]
+#![allow(unused_variable)]
+#![deny(dead_code)]
+
+enum Enum1 {
+    Variant1(int),
+    Variant2 //~ ERROR: code is never used
+}
+
+enum Enum2 {
+    Variant3(bool),
+    #[allow(dead_code)]
+    Variant4(int),
+    Variant5 { _x: int }, //~ ERROR: variant is never used: `Variant5`
+    Variant6(int), //~ ERROR: variant is never used: `Variant6`
+    _Variant7,
+}
+
+enum Enum3 { //~ ERROR: enum is never used
+    Variant8,
+    Variant9
+}
+
+fn main() {
+    let v = Variant1(1);
+    match v {
+        Variant1(_) => (),
+        Variant2 => ()
+    }
+    let x = Variant3(true);
+}