Closed
Description
I get two identical unused variable warnings when trying to compile the following code:
#[allow(dead_code)]
#[derive(Copy)]
enum ParseState {
Quoted,
BackslashQuoted,
Normal,
BackslashNormal,
}
pub fn parse(line: &str) -> Result<Vec<String>, String> {
let res = Vec::<String>::new();
let mut current_token = String::new();
let mut state = ParseState::Normal;
for c in line.chars() {
state = match (c, state) {
(c, ParseState::BackslashQuoted) => {
current_token.push('\\');
current_token.push(c);
ParseState::Quoted
},
(c, ParseState::BackslashNormal) => {
//TODO some fancy escape codes, eg \n
ParseState::Normal
},
(c, _) => {
current_token.push(c);
state
}
}
}
return Ok(res);
}
fn main() {}
I get the following output:
$ rustc reduction.rs
reduction.rs:21:14: 21:15 warning: unused variable: `c`, #[warn(unused_variables)] on by default
reduction.rs:21 (c, ParseState::BackslashNormal) => {
^
reduction.rs:21:14: 21:15 warning: unused variable: `c`, #[warn(unused_variables)] on by default
reduction.rs:21 (c, ParseState::BackslashNormal) => {
^
$
rustc version:
rustc 1.0.0-nightly (b63cee4a1 2015-02-14 17:01:11 +0000)
Operating system: Arch Linux x86_64