E0007 - Error codes index
Description: Book listing all Rust error codes

# Error code E0007

#### Note: this error code is no longer emitted by the compiler.

This error indicates that the bindings in a match arm would require a value to be moved into more than one location, thus violating unique ownership. Code like the following is invalid as it requires the entire `Option<String>` to be moved into a variable called `op_string` while simultaneously requiring the inner `String` to be moved into a variable called `s`.

Erroneous code example:

    #![allow(unused)]
    #![feature(bindings_after_at)]

    fn main() {
    let x = Some("s".to_string());

    match x {
        op_string @ Some(s) => {}, // error: use of moved value
        None => {},
    }
    }

See also the error E0303.