Add detection of unused enum variants
This commit is contained in:
parent
9e3bf02c38
commit
2ec795b4f0
4 changed files with 110 additions and 39 deletions
|
|
@ -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>() {}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
},
|
||||
|
|
|
|||
41
src/test/compile-fail/lint-dead-code-5.rs
Normal file
41
src/test/compile-fail/lint-dead-code-5.rs
Normal file
|
|
@ -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);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue