Skip to content

Duplicate unused variable warning #22599

Closed
@zokier

Description

@zokier

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-diagnosticsArea: Messages for errors, warnings, and lintsA-lintsArea: Lints (warnings about flaws in source code) such as unused_mut.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions