# Error code E0015

A constant item was initialized with something that is not a constant expression.

Erroneous code example:

    #![allow(unused)]
    fn main() {
    fn create_some() -> Option<u8> {
        Some(1)
    }

    const FOO: Option<u8> = create_some(); // error!
    }

The only functions that can be called in static or constant expressions are `const` functions, and struct/enum constructors.

To fix this error, you can declare `create_some` as a constant function:

    #![allow(unused)]
    fn main() {
    const fn create_some() -> Option<u8> { // declared as a const function
        Some(1)
    }

    const FOO: Option<u8> = create_some(); // ok!

    // These are also working:
    struct Bar {
        x: u8,
    }

    const OTHER_FOO: Option<u8> = Some(1);
    const BAR: Bar = Bar {x: 1};
    }