# Error code E0026

A struct pattern attempted to extract a non-existent field from a struct.

Erroneous code example:

    #![allow(unused)]
    fn main() {
    struct Thing {
        x: u32,
        y: u32,
    }

    let thing = Thing { x: 0, y: 0 };

    match thing {
        Thing { x, z } => {} // error: `Thing::z` field doesn't exist
    }
    }

If you are using shorthand field patterns but want to refer to the struct field by a different name, you should rename it explicitly. Struct fields are identified by the name used before the colon `:` so struct patterns should resemble the declaration of the struct type being matched.

    #![allow(unused)]
    fn main() {
    struct Thing {
        x: u32,
        y: u32,
    }

    let thing = Thing { x: 0, y: 0 };

    match thing {
        Thing { x, y: z } => {} // we renamed `y` to `z`
    }
    }