Ruta graveolens  ·  notes from a language experiment  ·  cultivated since 2025

E0435: Reserved function name

CodeCategoryStability
E0435Struct and enumPermanent

Explanation

A user-defined function has a name reserved for a runtime or code-generation helper. Rue reserves every name beginning with __rue_, the entry-point symbols _start and _main, and the fixed memory-routine names memcpy, memmove, memset, memcmp, and bcmp so user code cannot collide with compiler- or runtime-emitted symbols.

Likely cause

The function was given an internal-looking name or the name of a platform entry point or memory routine. Rename the function to an ordinary user identifier that is outside the reserved set.

Examples

Define a reserved runtime-helper name

fn __rue_helper() -> i32 { 42 }
fn main() -> i32 { 0 }

Use an ordinary user function name

fn rue_helper() -> i32 { 42 }
fn main() -> i32 { rue_helper() }

References