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};
}