“Memory leaks are memory safe in Rust”
doc.rust-lang.org
doc.rust-lang.org
please correct me if i'm wrong :)
Also it includes avoiding use-after-free and avoiding casting to the wrong type.
You might define memory safety to be that if you're accessing an object then (1) that object is actually there, and (2) it's the object you think it is.
So that immediately rules out buffer overflows, use-after-free, double-free, non-atomic data race, dangling pointers, wrong cast, etc.
Some people think memory leaking counts, but I have the same view as Rust. Memory leaking does not corrupt the correctness of a program. And there is no accepted method to universally define "memory leaking" in the first place.
There's a lot that languages can do to help manage memory, but the last step will always have to come from the programmer.