Diagnostics · Checked References
// Intentionally rejected. Each function illustrates a separate rule.// Check: build/flecha --emit-llvm examples/diagnostics/checked_references.fl
void missing_initializer() { &u8 ref; // FLECHA-S0027}
void moved_handle() { u8 value = 3; ref := &value; moved := ref; *ref = 4; // FLECHA-S0028}
u8 conflicting_access() { u8 value = 3; ref := &value; value = 4; // FLECHA-S0029 return *ref;}
void escaping_local() { u8 value = 3; ref := &value; { u8 inner = 4; ref = &inner; // FLECHA-S0030: owner has a shorter lexical lifetime. }}
unsafe void raw_to_reference(*u8 pointer) { ref := &*pointer; // FLECHA-S0031}
void out_of_range() { u8 value = 256; // FLECHA-S0032}