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